The week started with working on reinforcement code. The idea is that in certain points in the game the player will order up reinforcements via the gates. There are a bunch of reasons for this – one of them is that as a developer I need to know how many ships the player has access to so that I can properly send enemies at the player. So with the reinforcement system I can be sure that the player has a chance at a full fleet before at certain points. It also gives the player a sense of continuation with the assets that they hard fought for – researching new ships and capturing bases.
When I started working on the code I was a bit lost and then quickly realized that I should just re-use the shipyard code. So what I do is when the player enters a gate leaving a sector that includes asteroid bases behind, I copy their paramaters/properties/inventories including their shipyard capabilities. For simplicity I lump the external shipyards and the internal shipyards of the bases and give player access to them. This also led me to tweak the shipyard gui screen in tactical mode allowing selecting of shipyards from within that screen. This should make the process of managing ship building much less annoying – having to select a shipyard, then go back to tactical to select another. Now you get a list. I’ll have to create something similar for base management.
Next up was working on sounds. Early in the week my sound designer sent over about 1/3 or 1/4 of sounds needed in Tactical mode. I had to force myself away from coding the reinforcement system since I don’t like having an artist wait for me to send over funds for assets. So at around 10PM I thought, ok I have about an hour or two of life left in me I might as well use it at the relatively easy task of adding in sounds. This got the ball rolling and when I mostly finished up reinforcement code – Thursday it allowed to hit the sounds full force on Saturday. Things are going pretty well in that area, very pleased.
Saturday night I wanted to re-visit the pause/un-pause sounds. To give you a brief overview I wanted the pause sound to be a heart(s) beat that slows down, and the un-pause sound to be a heart beat(s) that speeds up. The quickly apparent problem was that pause/un-pause were instantaneous – but the sounds were over the course of 5 seconds. I asked my sound designer to cut it down to 3 seconds, but that change didn’t help. The solution became apparent to have a gradual slow down to a stop and a gradual speed up to a resume. This was a few weeks ago, and I wanted to ship iteration 17 to the Beta backers so I decided to put these guys off to the side. Like I said at the start of the paragraph Saturday night I revisited. My initial struggles melted away this time and I quickly got the gradual code running well. I went to sleep very excited and realized that since the idea of the pause system is that the command ship “overclocks” the player character’s in game brain – therefore seemingly slowing down time – it would be good not to have a total stop. And it does work very well – a (incredible) side bonus is that this solves an issue the game was having with issuing orders in tactical mode – where the AI when the game is paused wouldn’t respond to the order until the game was un-paused. Since now the action is slowed down – not paused completely – the AI responds. This system also works in ship mode – which before when paused was completely disabled – now the player can jump into command mode and have plenty of time to issue commands.
I plan on putting in a bullet time like system more suited for dogfighting, the current time slow down is about 5% of normal – which is too slow for combat but good for issuing orders. Something like a 33% or 50% slow would allow for a ok amount of control and dodging in a dogfight.
I think I’ll officially call an iteration released when the demo is updated. Its available on the main site so check it out – although it doesn’t feature new content like the Kickstarter Beta does – it does feature changes, fixes, etc. For example unit caps, the unlock system, and modding improvements. Pilot names are also in game now – this is a Kickstarter reward where those who pledged get an option to submit a name into a pilot’s database. These names now get randomly assigned to ships, so you can fly with people that helped fund the project.
So – this week was a bit of a slog. I was burned out, I had pretty big plans for it, and maybe accomplished half of what I wanted to accomplish. Putting out the Kickstarter Beta really took a toll on me – don’t get me wrong its an important step. When the immediate deadline was passed, and then when I released the promised update – the pressure eased so the burnout crept in.
Still there were a bunch of areas that needed immediate improvement so I mostly focused on those. Most important was modding support which I dinged when I added in the unlock system. The great thing about the new modding support is that it helps me out in a significant way. Part of releasing an update is me sorting data and media files from my – its all in there – folders to the limited Demo/Kickstarter Beta folders, then testing whether I got it all. Often I don’t and crashes happen, and then I have to hunt down the missing file. If it happens to be late at night – as is usual where I lose some sleep trying to put out a release well the toll of it being late adds up and this multiplies the – can’t find the damned thing – effect.
So the modding directory allows me to separate files – while I’m working on them. So this will greatly diminish the whole – separate for release aspects - since the files are now separated, and as I add in ships I’ll move files from the mod directory to the main directory. Very happy about this.
I also fixed a bunch of bugs – one of them I almost gave up on. I was doing final tests last night and setup a mine field, then had a ship fly into them – to make sure the explosion files were all ok. The game crashed. I tested the same thing in my development environment and the game didn’t crash. I thought that I was missing a file, so I duplicated the file structures, still a crash in the release and no crash in the development. An hour later – I almost gave up and disabled mines – but I told myself to keep going and found the bug, I didn’t properly initialize some values and the difference in release and development environments caused a crash. Very happy with myself that I didn’t give up because sooner or later this would have caused me more grief.
The week was mostly spent on unlockable scenarios. Its strange how long they take seeing as a cutscene is about 30 or so seconds, it might take several hours to create. What happens is that there tend to be game engine needs for new triggers and camera functions. This is overall good news since the more added the more possibilities in missions and cutscenes down the line, they are re-usable.
A lot of time is spent where I think to myself – ok what’s next. I have a broad picture of the mission/cutscene/scenario and when it comes to creating it I bump up against walls. Walls like – ok that aspect isn’t ready so I have to modify it. For example I wanted to involve cargo pods and trading ships. But to do so I’d need a AI for transferring pods, I have one for the ships, but don’t have a way of scripting it via XML – so hopefully down the line. I couldn’t invest time into this due to trying to reach Beta.
Then I did play testing, and a bunch of bugs cropped up and scripting errors. Hopefully most were fixed. Then I setup the installer, and I ran into issues (as usual) where I’d not include some asset (eg: model, texture, or xml file) that is needed and crash. It didn’t help that I was doing this late at night and had many windows opened up at the same time of seemingly identical data.
Still Beta was released and over this weekend I added in some polish. For example to put modding back in (the unlock system dinged it) and also to ease the transition from the in house version to the Beta/Demo version I setup a modding directory. I split my data and media files from the release and mod directories, so as I add ships to the released versions I’ll move them from the mod to release directories. Should have done this a while ago, but releases were sparse so there wasn’t a huge need. Now that I plan on releasing more frequently plus more polished versions (as we near the commercial release) this will help out a lot.
Its funny because there are some aspects of the game I am very proud off, and they amaze me. And some I go – ugh that’s terrible, there are very clear flaws. Issuing commands, formations, selecting ships, and many AI elements. There are also problems with pacing that I’ll have to look at. Plenty to do.
This week mostly focused on polishing the story elements. It is a bit fuzzy at the moment, but I’m sure that I renamed factions, changed some texts and the way I named files. I then ran a bunch of tests and fixed mistakes where needed. I also made use of new triggers and objectives in polishing up the main game. A new ship arrived, and I added it to the game and the mission. I almost headed down the path of putting in a improved pause/unpause system – which started off as putting in a sound effect - I’ll kept in under wraps for now, it would be some fairly minor polish but would help with immersion and would be very cool. I stopped the process looking at the schedule. Will have to re-visit.
The weekend – Saturday – a somewhat unexpected addition of a new ship and with it a modified weapon system and properties. This included some new code for the weapon and creating a particle system for it. I love the new ship and the additions - they did however cost most of the day – meaning that I’m at least a Saturday behind, either way I would make the same decision again.
Sunday I added this ship into the game, and then quickly realized that the AI wasn’t going to cut it. I improved the AI – its not perfect, but will have to do, at least it isn’t completely awful like it was before. Then tweaked the boss battle that this new ship is a part off. SO this one ship actually cost a Saturday and the morning of a Sunday.
Having mostly finished the main story portion of the Beta release – I then wanted to put in instant action scenario unlocks, so I spent adding code there. That code then being finished I started adding in the scenarios, and now I’m a bit burned out and realize its clear that I won’t be releasing the Beta today. Hopefully Tuesday… argh. My main concern is that there isn’t enough new content. I’m aiming at about an hour, without the added scenarios we are sitting in at about 20 minutes – depending on how players fare against the boss. The concern is that adding content is fairly difficult. Although the more content I add the more triggers, objective types and cut scene tools are in place. It seems like it should end somewhere, but at the same time thinking of the new scenarios I can see additions.