2018 November Dev Update

Here’s our November in-depth dev update!

The fleet off Cor Caroli
The fleet off Cor Caroli


Characters now only use accessories specific to their faction. The way it works is that the game chooses a gender for each ship’s role. Then we randomly choose one each of three different faction-specific accessories. We have functionality for a fourth accessory; I may be adding that to some factions. And while I’m still working on modeling and refining some of the accessories, the functionality works brilliantly. This really helps cement the differences between factions.

A Pact character
A Pact character

Characters also now must have one each of their three accessories. Previously they could have as few as one, but I designed the accessories to always work together. Having only one or two was leading to naked-looking characters and other odd results.

One of the largest accomplishments we made was adding the choice of going either right or left around the planet to all the actions that intercept other ships. We’re calling these directions ‘Spinward’ and ‘Antispinward.’ This solves a long-standing issue where you’d be forced to fly through a swarm of Harvesters instead of going the long way around to avoid them. Having this simple choice adds a critical tactical choice to the mix.

A Rover character
A Rover character

Tests were also written for each of the new movement commands, which sounds simple but involves quite a lot of effort, because each test has to be tested to ensure that the command works under a variety of situations.

As a result of adding spinward/antispinward, we dropped starward and planetward attack positioning as well as the running attack option. The first is accomplished better with formation layouts, and the second ended up basically duplicating the opposing movement action.

We also added a ‘follow’ command to the list of actions. This directs a ship to move to a target and nothing else. This command is particularly useful for non-warships.

An Irenic character
An Irenic character

We did a fair amount of work getting the game working with a controller in November. The assignable ‘select’ key now functions across the entire game for all cases where clicking the mouse selects something, which ended up taking much longer than expected.

As a result of a lot of controller testing, we changed camera control for the controller. Panning and tilting has taken the place of moving the camera and the result is much better. The camera position can still be moved using the WASD keys if you’re playing keyboard/mouse mode.

The key configuration section of the game was also implemented. You can now assign keys to every command we have in the game, both for keyboard and controller. It works how you’d expect; you select the command and press the key you want to use. These keybinds persist between games.

As a result of working on the controller and key assignment we combined ‘select’ and ‘confirm’ actions into just one idea – select. Simpler is better.

Spawning a Harvester carrier from an event now triggers the launch of fighters from that carrier. I needed this functionality for a number of critical events to function properly.

Adjustments were made to formations, allowing mining ships to be able to mine only when placed into the top row of a formation (the area closest to the planet).

Selecting ships was greatly improved last month. When paused, you can click any ship and add it to your selection. If you click on a selected ship, it deselects it. You can marquee-select while paused, adding to your selection. You can also select/deselect ships from the fleet list while paused. Clicking in blank space while paused now deselects all ships, just as it does when unpaused. This was a fairly tricky bit of work that required a lot of fine-tuning.

Ship movement received additional polish. The crew/evacuate command was causing ships to move incorrectly due to their need to close right up to the target ship. That’s been smoothed out now.

A lot of progress was made adding our final sound effects into the game. I spent most of the first half of the month on this. First I double checked which sound events we need. Then I went through all of the sounds we already have and began adding them to Wwise, the sound system we are using. Then I began adding those sounds into the game. All of the sounds in Wwise are now ready to be used by the game, and many of the sound effects are now working. I’ve also begun compiling a (thankfully) short list of new sounds that we need created by our amazing sound design team at SkewSound.

Actions in the contextual action list are now properly sorted. Hail, the most common command, is always the first action. Attack options always appear on the bottom. This is a perfect example of one of those small UI affordances that make a big difference when you play.

An Empire character
An Empire character

Camera zoom was fully and finally implemented. Zoom smoothly moves the camera to a specific ship, moving with the ship as it orbits or maneuvers. When zoomed you can pan and tilt the camera around the ship for a 360 degree view of the action. A ship need not be selected to be zoomed to. When you exit the starmap or emerge from jump the camera now zooms to the ship you have selected or your battleship if you had nothing selected. And the game always begins by zooming to the battleship.

We can now change the mission objective while an event is running with a new tag, newMissionTitle. This increases the amount of feedback I can give a player and allows me to create more depth in events. We still have a little more work to do on the way mission objectives are presented.

User Interface and Modeling

Alexander completed the last remaining ship icons, adding the Irenic cache and Harvester icons to the game. That means ship icons are completely finished!

I tested the new icons in several resolutions, tweaking them if necessary for consistency and presentation.

I fixed a rare z-fighting issue with our planet names, so now they can always be read. Sometimes when planets were close together, a planet would overlap the name tag.

I adjusted the colors of the molten planet, making all starmap colors and icons final.

Final icons for the starmap
Final icons for the starmap

I then removed unused icons from our planet prefabs now that we have finalized the rest.

I added eight more base head types to the game. I also made substantial adjustments to many of the existing eight heads, vastly improving their eyes and mouths. The way our shader works it required a lot of out-of-the-box thinking to get eyes looking like actual eyes instead of beady little pinpricks. Getting mouth shape to visualize properly was a similar challenge, but I’m very happy with the ones that I’ve improved and I’m looking forward to finishing them all.

The user interface for spinward/antispinward choices is still being worked on; it is too cluttered right now. I’ve done a few mockups that I’m waiting for feedback on.

We decided that ‘spinward’ should be the first choice when spinward/antispinward appears, and that was implemented, too.

I increased the size of the collision boxes on some of the smaller ships and adjusted their origins. They’re much easier to select now.

Overwhelmed by Harvesters
Overwhelmed by Harvesters

I adjusted the starmap colors, bringing them in line with the palette of the entire game.

I cleaned up our main scene hierarchy, removing prefabs that were not used.

We use our own font in the game, and it turns out that there were a lot of inconsistencies in it, leading to strange formatting problems when using certain characters. So I cleaned up the font, making it consistently spaced and adding a couple of characters that we didn’t have that I wanted. If you ever need to do this, FontForge is your tool. It was really easy to use and did everything I needed.

After this I made adjustments to the thickness and brightness of how our font rendered in the game, ensuring it was looking great across many resolutions.

Bug fixing

Heru fixed a bug where group conditional choices were triggering no matter what the condition was.

We discovered an issue where larger Harvester ships that touched shields were being destroyed just like the smaller fighters were. That’s no longer a problem; they take damage like they should now.

Ships were briefly spawned in to the wrong position before appearing in their correct location. This was causing a number of side effects; ghostly flickering, accidental damage, things like that. This doesn’t happen anymore.

This bears investigation
This bears investigation

Heru caught a syntax error I introduced into a few events – I had accidentally commented out the ‘start’ command. Oops!

There was an issue when multiple hailedBy triggers could be triggered by any ship in the group. That’s been fixed.

Finalizing the key configuration menu used in the game led to some amusing shenanigans. The left Alt key accidentally became mapped to an action, which led us to discover that in Rewired you cannot delete or reassign that second key in the game. Easy solution; we unmapped the left Alt key, but for a minute there I couldn’t take screenshots!

Another funny one had to do with trying to assign the skip button, which closed the configuration dialog instead! That’s been corrected.

Heru fixed an issue with our conditional choices where conditions that weren’t met (and weren’t visible) were still being counted in the index of choices.

We briefly lost the mouse pointer with a code update, but it is back now.

We had a situation where in some cases one formation would take on the orders of a second formation. Issuing orders to formations now works as expected.

Highlighting the selected choice in event dialogs briefly went away, but Heru caught and fixed that one too.

I removed a mystery light source that popped up in our starmap. It was was throwing warnings that Unity didn’t like.

We had a situation where selecting one action from the contextual action menu would trigger the wrong action, which Heru has solved.

Protecting while retreating
Protecting while retreating

Heru and I had a rare misunderstanding revolving around zoom. We’ve straightened that all out and the functionality works as specified.

Lastly, I discovered a strange bug with Wwise and our sound effects that required a lot of whack-a-mole time to pin down. It’s a little too complex to delve into here, but basically the wrong sounds were being played. I’ve identified the issue as a Wwise/Unity bug and have a workaround in place. Hopefully that part won’t need to be refactored.

Events, Narrative, and Balancing

You can be at a destination from any faction when the Harvesters first arrive, so I designed and wrote five special events that introduce the Harvesters to the game, one for each faction. Each event gives slightly different information about the Harvesters. The narrative is pretty long, but I feel it is necessary to set the tone and the story. Of course, like all of the events in the game, the narrative is easily skipped.

We’re at 371 total events now, plus a handful of events I use for testing. I still think somewhere around 400 is the right number.

They arrive
They arrive

I added day ranges for every event that involves bringing ships into your fleet, adjusting them so that the different ship types appear when they should. This also makes it easier for me to balance.

I also added day ranges for the other types of events- trade, combat, abandoned ships and the like.

While playtesting I made several rounds of changes to the timing of event, for example I adjusted all abandoned ship events to come a little later in the game, after the Harvesters arrive.

I also moved a number of specific events earlier or later in the game based on their difficulty. While I’m designing the game to be punishing, some events were just too brutal and had to be pushed back.

I’ve begun going through many events and adding conditional choices. For example, I’m able to adjust the starting event’s outcome based on whether or not there is a station where you jump. These add different outcomes for the same event on separate playthroughs.

And lastly it took me a couple of days to prepare the Kickstarter update, do screen caps, proofread, and add it to our website.

What’s remaining

Time to jump to safety
Time to jump to safety

So here is the latest update on where we stand until we reach alpha. DISCLAIMER: keep in mind that there are many smaller tasks that I haven’t included, things may come up that require attention, including a number of bugs we have yet to fix. We may decide to add things from the wishlist, or move things from beta to alpha or vice-versa. We will certainly encounter more bugs. None of this includes marketing tasks. And we have more to do between alpha and beta.

With the above disclaimer in mind, here is the list of major functionality remaining before alpha: The galactic map needs to display faction information and their correct 3D models. We still have a very, very long list of small but important UI bits remaining. We’ve made progress on the game over/restart cycle but it is not yet complete; we haven’t yet started on saving and restoring the game state. While we have begun optimization, much is remaining. Less than 50 events remain to be created. And as always testing and balancing is ongoing.

Most of what we’re doing now is getting the UI in place, filling in details, balancing, bug fixing and testing. I wish there was a way to speed things up, but we are moving as fast as we can and making considerable progress. Thank you for hanging in there, and for the encouragement!