Author Topic: AI War 2 - Programming - Alpha 0.502 (Two Videos)  (Read 593 times)

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 30,653
AI War 2 - Programming - Alpha 0.502 (Two Videos)
« on: July 14, 2017, 07:09:00 PM »
From Keith:



Implementing a UI usability feature: making the 0 key always open the master menu, so command sequences starting with 0 have a reliable meaning regardless of the UI's current state.



Hooking in Chris's new audio cues for when your units are taking damage, your Ark's shields are down, a hack has completed, etc.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Online BadgerBadger

  • Hero Member
  • *****
  • Posts: 578
  • BadgerBadgerBadgerBadger
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #1 on: July 15, 2017, 12:42:52 PM »
Hey, these are really cool! These give some fun insight into the code. Keep em coming!

It's too bad you stopped recording just when you were about to get to the stuff on my list ;-).

You mentioned the additional map generators; I've tidied that code up a bit to make it easier to include when you get around to it.

Online keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,257
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #2 on: July 15, 2017, 12:46:54 PM »
Hey, these are really cool! These give some fun insight into the code. Keep em coming!
Glad you enjoy them, I look forward to doing more. As it happens I'm leaving on a trip tomorrow and won't be back to work until the 24th, but so it goes.

Quote
It's too bad you stopped recording just when you were about to get to the stuff on my list ;-).
Haha, yea, had to take care of other duties.

Quote
You mentioned the additional map generators; I've tidied that code up a bit to make it easier to include when you get around to it.
Thanks! Those will be a huge addition to the game.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Cyborg

  • Master Member Mark III
  • *****
  • Posts: 1,901
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #3 on: July 15, 2017, 01:11:39 PM »
This is great. I saw you are using some intermediate tool to build the external DLL. What is that?

Video request:

Modding workflow.
Kahuna strategy guide:
http://www.arcengames.com/forums/index.php/topic,13369.0.html

Suggestions, bugs? Don't be lazy, give back:
http://www.arcengames.com/mantisbt/

Planetcracker. Believe it.

The stigma of hunger. http://wayw.re/Vi12BK

Online keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,257
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #4 on: July 15, 2017, 02:51:21 PM »
I saw you are using some intermediate tool to build the external DLL. What is that?
The external tool has a button for rebuilding the dll's, but I wasn't actually using that function here. I was using the run-standalone button that just runs the .exe (a player generated by Unity, including a stripped down version of the mono runtime), but is more convenient than using the filesystem to do so (especially when running an MP test with two windows).

The DLL is recompiled by VS in this case, with a post-build step that uses the mono compiler to recompile it with debugging symbols that the mono runtime can understand.

The tool itself is just something I cobbled together, and most/all of the buttons just run batch scripts.

Quote
Modding workflow.
Sure. Any particular concrete thing to show modding? Like making fighters faster, or making a new ship that's like a fighter but faster, etc?
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Online BadgerBadger

  • Hero Member
  • *****
  • Posts: 578
  • BadgerBadgerBadgerBadger
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #5 on: July 15, 2017, 04:50:00 PM »
There are just so many different things that can be modded! Modifying existing ship types or adding new ones, doing stuff with the UI, making a new map type, messing around with a special faction, giving the AI new and terrifying abilities...

I just modded up a new Dyson Sphere-style faction that hunts down other factions. At the moment I have it only trying to kill the Devourer (which it does handily), but it was a fun exercise and might be useful as a template for some other sort of interesting work. It will wait until it has "enough" strength on a planet, then move in and strike.

Offline Cyborg

  • Master Member Mark III
  • *****
  • Posts: 1,901
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #6 on: July 15, 2017, 08:06:48 PM »
I'm looking for a full workflow of what needs to be downloaded and installed. And then I think videos like this one would make more sense. A way to guide modders to get where you are in the process.
Kahuna strategy guide:
http://www.arcengames.com/forums/index.php/topic,13369.0.html

Suggestions, bugs? Don't be lazy, give back:
http://www.arcengames.com/mantisbt/

Planetcracker. Believe it.

The stigma of hunger. http://wayw.re/Vi12BK

Offline eRe4s3r

  • Core Member Mark II
  • *****
  • Posts: 2,800
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #7 on: July 15, 2017, 08:41:44 PM »
Basically, the first and foremost question that needs answering is, to someone who comes FRESH to modding, where to start, what does that person need, where does that person GET what he needs. What version of what does he need. What are the workflows for adding sound/music/models/textures, what is there to do to get a completely new mesh and a completely new texture for it appear in the game as a new custom ship, with custom weapon, custom FX, custom sound, etc.

Also, I wonder, does the game engine support turrets on ships as separate entities, and dynamic hull attachments triggered by scripts? (ie, can be destroyed, can target independent from main ship weaponry, etc?) Would be pretty vital for Homeworld style ships... ie. way bigger scale with less ships, but more turrets on and armor plates/modules on the ships that can be destroyed.... just wondering really ;)
Proud member of the Initiative for Bigger Weapons EV. - Bringer of Additive Blended Doom - Vote for Lore, get free cookie

Online keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,257
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #8 on: July 15, 2017, 09:47:52 PM »
Basically, the first and foremost question that needs answering is, to someone who comes FRESH to modding, where to start, what does that person need, where does that person GET what he needs.
For xml mods you just need the game and a text editor, so nothing in addition to what everyone will already have in this context.

For external code mods you'd also need either visual studio or monodevelop (or something else that compiles C#); I could give a link to where to download VS (it's not very version specific in our case, but I could specify what I use) and show how to use it to set up the build process for the external dll (and later, a new dll of the modder's devising).

Quote
What are the workflows for adding sound/music/models/textures, what is there to do to get a completely new mesh and a completely new texture for it appear in the game as a new custom ship, with custom weapon, custom FX, custom sound, etc.
I don't handle any of those workflows myself, so it wouldn't be a video from me.

Quote
Also, I wonder, does the game engine support turrets on ships as separate entities, and dynamic hull attachments triggered by scripts? (ie, can be destroyed, can target independent from main ship weaponry, etc?) Would be pretty vital for Homeworld style ships... ie. way bigger scale with less ships, but more turrets on and armor plates/modules on the ships that can be destroyed.... just wondering really ;)
Each GameEntity has zero or more EntitySystem objects, each of which is a gun or a tractor beam or a tachyon emitter, etc (shields and hull strength are built into the ship itself, though, not a system; in theory that could be changed). The list of systems an entity has can change at runtime and need not be identical between different ships of that same entity type, but the game does need to know the total list of all systems a ship might have to put them in the right rollups on creation.

Systems are not individually destroyable, which can be changed to some extent if the mechanism for them being destroyed is clearly articulated. There are some vestiges of code which allow them to be temporarily or permanently disabled, but that would need to be cleaned up to be resuscitated and, again, the mechanism would need to be described unambiguously.

Nor do they have any visual representation of their own, which I don't expect to change given the extra complexity that would place on Chris's side of the engine.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark IV
  • *****
  • Posts: 3,905
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #9 on: July 16, 2017, 01:33:14 AM »
Basically, the first and foremost question that needs answering is, to someone who comes FRESH to modding, where to start, what does that person need, where does that person GET what he needs.
For external code mods you'd also need either visual studio or monodevelop (or something else that compiles C#); I could give a link to where to download VS (it's not very version specific in our case, but I could specify what I use) and show how to use it to set up the build process for the external dll (and later, a new dll of the modder's devising).

That I think is what most folks will be after.
Even already having VS I still had to poke and prod things to get it to "work."

Online BadgerBadger

  • Hero Member
  • *****
  • Posts: 578
  • BadgerBadgerBadgerBadger
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #10 on: July 16, 2017, 01:03:31 PM »
For anyone using linux, I use this bash script to do compilation. It should work for you with some minor editing (you'll have to tell the script where AI War 2 is installed on your system), and it has some useful notes.
« Last Edit: July 16, 2017, 02:06:11 PM by BadgerBadger »

Offline Cyborg

  • Master Member Mark III
  • *****
  • Posts: 1,901
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #11 on: July 16, 2017, 06:06:13 PM »
Just want to say, I agree with everyone on a getting started, with everything that we need to do DLLs. I have Visual Studio community edition. What else do I need? I will wait for the FAQ or thread for this topic.
Kahuna strategy guide:
http://www.arcengames.com/forums/index.php/topic,13369.0.html

Suggestions, bugs? Don't be lazy, give back:
http://www.arcengames.com/mantisbt/

Planetcracker. Believe it.

The stigma of hunger. http://wayw.re/Vi12BK

Offline Wanderer

  • Master Member Mark II
  • *****
  • Posts: 1,576
  • If you're not drunk you're doing it wrong.
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #12 on: July 16, 2017, 08:33:15 PM »
Neat videos.  Some tips, if I might be so bold.

I noticed you were using Audacity.  It's got a great ambient noise removal system; in particular it's amazing to remove the background fans.  I need to use it constantly right now as my GPU fan is loud as heck.  It's particularly pronounced at the beginning of your second video.  A quick and solid walkthrough is here:

https://www.maketecheasier.com/remove-white-noise-audio-audacity/

Also, I think I saw you were using Bandicam?  There's a great way to split microphone and computer generated sounds buried in the options so you don't run into the problem again you mentioned.  General tab, Advanced Options, Others tab, Video Record Settings.  In there you can list two sound sources, such as your sound card (game) and microphone (voiceover).  Uncheck Two Sound Mixing and it will keep these as separate .avi files (.avi.1 and .avi.2). 

For fun and profit, Secondary Device recording can also be done if you only want to record game sound during displays of the game, so the pings, pops, and whatnot of the coding environment don't get recorded, but that's probably overkill.

Keep 'em coming, they're interesting!
... and then we'll have cake.

Online keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,257
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #13 on: July 16, 2017, 11:27:57 PM »
I noticed you were using Audacity.  It's got a great ambient noise removal system; in particular it's amazing to remove the background fans.  I need to use it constantly right now as my GPU fan is loud as heck.  It's particularly pronounced at the beginning of your second video.
Yea, that's after a low-pass (<4000Hz) and high-pass (>75Hz) and an 8db noise reduction (sensitivity 3, smoothing 1) based on analyzing about 9 seconds of only-background-noise that I record at the beginning of each go (I try to cut that from the final video but am not consistent yet). Then I do a normalize, compress, and one more normalize to get the volume levels reasonable. This is recorded via a Samson Meteor oriented so that the main hvac noise source is outside its field, though when the laptop fan kicks on it's just closer to the mic in general.

Probably the biggest difference between the first video and the second was that the first had mic gain set to 80, and the second had it set to 100, because my voice was coming through so soft in the first one.

I should probably go ahead and get an actual mic stand for it to achieve more distance from the machine and less distance from me. That would let me drop the gain, in theory. I could also use a more aggressive noise-reduction, but that tends to distort my voice heavily.

Quote
Also, I think I saw you were using Bandicam?  There's a great way to split microphone and computer generated sounds buried in the options so you don't run into the problem again you mentioned.  General tab, Advanced Options, Others tab, Video Record Settings.  In there you can list two sound sources, such as your sound card (game) and microphone (voiceover).  Uncheck Two Sound Mixing and it will keep these as separate .avi files (.avi.1 and .avi.2).
Good to know; in this case my problem was not the mixing, but the fact that it was recording game noise at all, since I have the game muted and none of its sound was coming out the speakers. Later if I actually want game sound on the track I'll try the method you mentioned.


Thanks for the feedback :)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Wanderer

  • Master Member Mark II
  • *****
  • Posts: 1,576
  • If you're not drunk you're doing it wrong.
Re: AI War 2 - Programming - Alpha 0.502 (Two Videos)
« Reply #14 on: July 16, 2017, 11:53:35 PM »
Yea, that's after a low-pass (<4000Hz) and high-pass (>75Hz) and an 8db noise reduction (sensitivity 3, smoothing 1) based on analyzing about 9 seconds of only-background-noise that I record at the beginning of each go (I try to cut that from the final video but am not consistent yet). Then I do a normalize, compress, and one more normalize to get the volume levels reasonable. This is recorded via a Samson Meteor oriented so that the main hvac noise source is outside its field, though when the laptop fan kicks on it's just closer to the mic in general.

Oof, wow.  I can typically use just .5-1 second of background silence and get it cleared with a single pass at 16 db reduction, 6 sensitivity, and 3 bands.  Unfortunately I can't use the starting silence trick because my GPU typically kicks in about 1-2 minutes into playtime, but I can catch the ceiling fan and the HVAC then, so I typically just need to find a moment where I'm just quiet.  I find it doesn't distort me much because of the high frequency of the fan sound(s).  Guess I'm just lucky.

*looks up the meteor* Oh, it's a Condenser USB.  Those pick up the world.  I still have my first condenser, with it I can hear the ants in the house next door chewing bread.  I have no idea how some of the podcasters/streamers get those to work without tons of background pickup.  If you ever go get another mic, look for a dynamic one, cardioid to reduce pickup and echo.  It should save you a lot of headaches.

Good luck, looking forward to the next videos!
... and then we'll have cake.