Legacy of the Elder Star: Dev Diary #11

REMINDER: We're launching Steam Greenlight and Kickstarter campaigns for Legacy of the Elder Star on September 17, 2015. If you'd like to be among our first supporters – and get first crack at early-bird backer rewards – just sign up here and we'll email you the moment our campaigns go live!

And of course, we'll also love you forever. <3

Last week we had a super-quick preview of a new environment type, with rocky mountains and spires and a smoky red atmosphere. Since then, we've brought a lot of that stage's gameplay online. It focuses mainly on tactical combat with enemy soldiers who actively track the Cosmonaut's movements:

We're introducing another new enemy type in this stage too: seekers, which are stabby little kamikaze drones that arrive in waves. It's pretty satisfying to kite them into a nice line and then wreck them all with a star dash:

Most of the time this week has been spent tuning the environment and getting the new enemies rigged up and behaving properly. The easiest part has actually been laying out the stage itself, and that's because at this point we have some pretty mature tools for doing so. Let's take a quick look behind the scenes, shall we?

Our stages are constructed from two things: an environment, and a stage sequence. The environment consists of a bunch of layers that spawn various props and effects in the background; we'll talk about that in more detail some time in the future. The stage sequence is a flowchart of events, and it looks something like this:

We have several different kinds of events right now. The most common by far is the RandomSquadsEvent, which simply defines a list of enemy patterns and spawns one after another, at random, until the event expires. We use a bunch of these in the stage sequence to establish different sections of the stage. In the one we're working on now, we start with a bunch of gunner soldier squads, then progress to some chasers for a bit, then beam soldiers, then the mid-boss fight, and so on.

In that screenshot you'll also see DialogueEvent, which shows an onscreen dialogue box like this:

(That's obviously not final dialogue, lol.)

We've also got MusicEvent, which changes the background music. It uses a simple fade-out transition right now, but in the future I hope to integrate something much more adaptive.

And finally, we've got HudMessageEvent, which displays any ol' message in the HUD message area, like this:

We have more event types, but there's no need to go into every single one today. ;)

This architecture has proven extremely useful. It's super quick now for us to set up stage sequences that ramp gameplay intensity up and down in specific ways, manage presentation pacing down to the microsecond, integrate dialogue and music changes to support quest narrative, etc. It being super quick to do means it's easier (and, crucially, more fun) to experiment, and in this business more experimentation tends to lead to higher final quality.

This stage isn't quite finished yet: I've still got to set up the mid-boss and end-boss fights and write some new music. But the core gameplay is there and I'm pretty excited with how it's come together. :D