Development Update!


Hello everybody.

It's been a hot minute, hasn't it? I'm happy to report I'm still alive and as of about 4 days ago have still been  chipping away at At Skies' Edge v.0.05a. However, development speed has slowed down quite significantly due a few factors - being:

  • Tackling an very complicated and very important aspect of the game
  • General increase in study, work and social commitments 
  • My band deciding it would be a good idea to nominate several extremely complicated songs to perform for our next show
  • The untimely release of (in order) - Armored Core 6, Starfield and Cyberpunk Phantom Liberty

While these latter factors have combined to limit my bandwith available to work on ASE, the actual content of the release is probably the biggest reason I'm taking so long to push a new update out - so what exactly is upcoming? Well - ASE v0.05a is basically divided into 2 chunks: the AI, and the mission designer.

AI

The current AI in ASE is a hastily slapped-together solution that bootstraps lunetis's excellent OperationMaverick AI into a scenario where it can deal with multiple targets - really basically just adding the ability to select its next target. However, when I implemented basic formation flying in v0.03a, I noticed that it wasn't really fit for purpose for the game I wanted to make. In short, I needed an AI that could take orders- not only to switch targets, but also to protect something, or patrol an area, or to disengage and fly away. This sounded an awful lot like a state machine to me so I chose to build exactly that, surrounding the legacy AI code with a pilot brain structure that took over responsibility for changing targets, as well as swapping in and out of different mission archetypes.

As of writing, this is mostly more or less done. The AI pilot can currently perform the following:

  • Fly in formation
  • Break from formation
  • Fly to a waypoint or a series of waypoints
  • Patrol a series of waypoints 
  • Pick and attack targets at random
  • Attack a target or a set of targets

The only thing that I think is really missing is a cover mission, where the AI attacks anything that is attacking its protected object.

State machines are theoretically more performant than the legacy code, which needed the AI ask itself a whole lot of questions per frame, but any performance gains which were to be gained from the machine were unfortunately lost because I also tried upgrading the AI to be more responsive, which means it has to check target positions and run calculations more frequently.  My work in this field primarily revolves around edge cases and bug testing.


Mission Designer

Having a good AI is great, but is only one half of the equation. For the AI to really be put through its paces, there needs to be some way to tell it to react based on the situation or story. This is where the mission designer comes in. Conceptually, I should be able to detect when something needs to happen (i.e. a trigger), select a unit or series of units, then do something to them (like spawn them in, have them retreat, change their target, etc.). 

Unity offers a Events framework which is like 80% of what I need. The unfortunate shortcoming of this framework is that I cannot pass more than 1 argument to my units outside of the code- for example, I might need to specify a target object, mission type, and duration, but the Events system will only allow me to specify 1 thing in the UI. I could handle this through code, but doing so will be incredibly difficult when circumstances change. Off the top of my head, I could think of some incredibly janky and disgusting workarounds to this, but building a good mission designer is not only critically important to my vision of ASE, but also has performance and workflow implications, potentially setting up even player-facing mission editors later down the line (but let's avoid scope creep for now)

So this is where I'm at right now - tweaking the AI code (and fiddling with an Ace AI type in my downtime), and trying to work around the Unity Events framework to see if I can make a nice, clean mission designer which will make my life a whole lot easier in the future. I still randomly get views and subscribers here and there even when i don't push a release out, so I figured it would be nice to give you all an update as to where I am right now.

As for when it'll be done? I have no idea, it'll be ready once I'm happy with it. 

Thanks for sticking with me this far, if you indeed are still reading, and I will see you in v.0.05a!

Get At Skies' Edge

Leave a comment

Log in with itch.io to leave a comment.