This week has been mostly about a boss fight. This is good news because it means that there is going to be a boss fight. When I prepped a map and an opposing fleet for the next steps in the mission/story – I realized that once it was all said and done, without a boss, it is just another space battle that. So in those terms boring and not unique. With the help of a Kickstarter backer I’ve had an idea for a boss, and was lucky to get an 3D model to be able to put into the game.
So the week was spent on tweaking the 3D boss model’s texture/geometry. Adding weapons, defenses, etc etc. I don’t want to say too much because it would be a spoiler, but I’ve added the ability for ships to “turn towards the enemy” in certain ways. The best term is “broadside” attacks – like naval dreadnoughts.
Another unique addition to go along with the boss is the ability to attach “something” to it. Right now this is fairly basic – but it can easily be expanded to support “sub systems” or just plain blowing off parts off of a object – for example a wing of a ship. The biggest issue is that I don’t have 3D assets to support such a thing, but this opens up cool possibilities for future updates. A bit of a challenge arose here due to the (somewhat) recently added “physical turrets” – turrets that are part of the physical game world – not just visual representations. The physical turrets and the attached object were colliding with each other, causing physics glitches. Had to do a bit of research and filter out some collisions that don’t have to take place.
Finally – I hope that there is another surprise waiting for the player – don’t want to say too much, but it is another chance to turn something from fairly dull to memorable.
Been meaning to do more posts. There’s a few reasons why it seems that I haven’t been very successful at this task.
One of the reasons is that there are now three separate spots that I tend to talk with the community. Here, Kickstarter, and Steam. This section tends to be mostly left behind – as in my guesstimate it sees the least traffic. Another reason – when the initial Steam Early Access launch happened – my work load spiked (now it has fairly subsided) and I got out of the habit of updates. I’ve been meaning to fix this via a grand summary post, but that appears to just add to the whole – “don’t have time for it right now” excuse. I’ve also been meaning to combine Kickstarter updates and toss them here, but again – the whole don’t want to start because it would take too long creeps in.
So I decided to make shorter posts about what’s happening right now, and hopefully get back in the habit of weekly posts.
Here’s what I’m currently excited about (as in bored my wife telling her about yesterday)- I’ve been working on instant action scenarios while waiting for new ship assets (the new ship assets are by themselves very exciting to me). Anyway – instant action scenarios are a great way for me to design one off maps/missions – I know exactly what the player will have, and I know exactly what the enemy will have. This – as opposed to the more “flowing” nature of the continuous mission structure of main game – where the player can chose how many and what types of ships to build – is a great way of custom tailoring the experience. Still players have a lot of freedom, but I can at least start them off how I want. The other cool thing about instant action scenarios is that they are a great way of being able to tell the story from another angle. I’ve always loved this idea, and I’m happy that I’m able to realize this dream I had a while back. I hope that players see this the same way.
This new instant action scenario features a neat little twist – an ability/tactic that the player wouldn’t be aware off – it isn’t documented anywhere – though in terms of the game world makes sense. So it is an added bonus for the player to play this scenario – see the trick and potentially use it in the main game. Have to think of more ways to put these sort of happenings in.
Another great aspect of instant action scenarios – is that they let me re-use some ships that I wanted to be unique to the story line. For example boss ships. I didn’t want them to show up all over the place and diminish their uniqueness, but if I have a cool ship – I want to use it more than once. So having a scenario where a unique ship is involved – awesome!
The first batch of Steam keys for Kickstarter backers have been delivered. The Steam store page is looking more and more complete, many bugs and issues have been recently fixed. Some bugs – funnily enough – cropped up to the surface while I was working on new game play trailers. Fun times.
Seeing the light at the end of the tunnel.
Early in the week I was battling some major burn out due to the 4 day weekend of binge coding the week before. There were a bunch of bugs and issues to sort out with the new changes to hangars and ships carrying objects that were worked on and solved. That felt good and the burn out went away as they were fixed. I then continued working on the early game. I tried to look at what’s missing, what’s lame and what doesn’t quite make sense from the world’s perspective.
For example – early in the game there is a pirate attack that for game play purposes mainly serves as a combat tutorial. But for the world building/setting purposes the pirates should have a reason for the attack. Otherwise their actions are strange and would toss the player out of the game world and instead think of the game’s designers as lazy or incompetent. So to give the world more sense I added some loot for them to steal and since I worked on transport ship AI, this was a great spot to use the new AI and logic additions. Here’s the fun part this small thought, leads to other aspects that needed thinking about. What happens when the pirate succeeds in grabbing the loot? What happens if the pirate escapes? What happens if the player follows the pirate? In a dynamic and somewhat open ended game such as Void Destroyer there are a bunch of possibilities, especially considering luck and player skill. So these alternate paths were considered and added. I’m hoping to add in some more branching, with some branches leading to dead ends – going with the idea that making choices have consequences will have the impact that the “right” choices have more meaning.
So I’m very close for final polish, play testing then tossing the newest additions onto Steam.
Early this past week I finally solved a crash bug that had me worried for a while. Turns out it was a simple save game bug. It had me worried because at different times I thought it was a – hard drive issue (my hard drive failing), a memory issue, and/or some random instability. For the memory issue I thought that maybe I was sending too much data from memory to the save game file, so I cleaned up a bunch of code to make save game files less verbose. This – didn’t fix the issue but made a difference in the crash, so I thought I was on the right track. I then changed the way save game files – saved – instead of buffering and then writing the data to the hard drive (when the buffer decided to do so), I had them write the data as soon as new data was in the buffer. This again had an effect on the crash, but didn’t solve it, however it crashed at the same exact point in the save game file writing process so it led me to the actual problem, and moments later it was solved – it had to do with rally points.
The rest of the week was spent on the first 5 minutes of the game. But the impact will be felt through out. First off spending time on the very early beginning of a game is very important because – that’s a guaranteed everyone will go through. Including game reviewers. The changes help flesh out the setting of the game. There is more activity and goings on. The asteroid field setting gets a show case.
The changes are these – previously there was a hangar platform that would launch drones to pick up ore rocks, when the drones returned (with the ore rocks) to the platform, the “ore” would be transferred to the base. This was “invisible” – the new change has the platform launch a cargo pod, which then gets picked up by a transport ship (which the AI base builds based on need) and the cargo pod then gets delivered to the base. Ships picking up ore rocks and cargo pods – had a glaring issue – I would cheat and create “ghost” objects (visual only objects) instead of physical objects when a cargo pod was picked up (the physical side would vanish from the game). Although this looked ok – the ghost object wouldn’t respond to collisions – so you couldn’t damage it. This was mostly ok – except when I wanted for huge rocks to be moved – after all those mining platforms need to be near rocks to mine them, and they had to have gotten there somehow right? Again adding to the setting of the game. So now ore rocks and cargo pods are physical objects. This meant a bunch of changes and struggles, but thanks to the 4 day Thanksgiving weekend, this is mostly done – and I’m very happy. It will become a major feature of the game – especially – because anything that the AI can do – so can the player. So we’ll have to create situations where the players has to drag (or command his forces) to drag ore rocks, cargo pods, and – yep even other ships
Looks like I skipped last week’s update. Here’s what’s been going on – a lot of prep for Steam’s early access. I’m trying to make it the best early launch as I can so I’m thinking of small improvements.
Fixing glaring issues that have been here for a long time – for example ship switching via the V and B keys now takes distance to nearby ships into account. So does target nearest enemy target (T key) it will cycle nearby targets starting with the nearest.
Adding more visual polish – lots of HUD work and some special effects.
Speaking of HUD improvements – new methods of telling the player that their ship (or the command ship) is taking damage.
Adding in crash prevention – crashes have been a good thing overall for Void Destroyer – they mean an easy way to see that something is wrong, but for Early Access gamers I’d rather avoid putting them through my mistakes so I’m putting in crash detection/prevention. I’m making this a toggle so that I can disable the detection for my own debugging builds
Bunch of AI stuff – formations becoming a bit more intelligent.
Also I’m working on story content – there is going to be a new mini boss early in the game, and I’m hoping for a improvement on the long slog before capturing the first base and adding in some more “life” to the universe. Ships doing their own thing.
I forgot a very important thing that happened. I updated many of the libraries/engines that combine to form Void Destroyer’s “game engine.” So the latest physics engine – Bullet Physics. For the GUI (CEGUI) I initially went to the latest but discovered some changes that would delay me a bit too much so while we jumped a few years ahead in features and bug fixes, we aren’t on the latest and greatest. Latest stable rendering engine – Ogre. In addition I updated the project to use Visual Studio 2012 (previously on 2008). Overall this isn’t a hard thing to do, there are documentations and forum posts of people that went ahead of me, but taken together it is a fairly involved and stressful process. Stressfull because at certain points the game doesn’t build (aka work) with many errors and oversights on my part. Now trouble shooting can be very easy if there is one thing to fix, but when there are multiple it can become complicated and overwhelming. So I also switched to a new PC (Windows 8.1) to have my old workstation remain unchanged (after trying to do the update on the old PC and freaking out since the game wasn’t building) while I’m working on the new.
So long story short it is done – though it took about half a week and a weekend – all told. Some “funny” issues were the new PC constantly crashing (bad memory chips – brand new – but a apparently really cheap and unreliable brand), not to mention my constant – I’m using the wrong keyboard (there now being two one for the old and one for the new – I didn’t buy a KVM) dilemma. The new PC is a nice upgrade to the old – but I still haven’t had a chance to load a game on it and take it for a spin, I’m not sure when I will have the time.
Well – what I’ve been hoping, dreaming and stressing about happened. Void Destroyer has been approved towards becoming released on Steam. One of these days I have to write up a Kickstarter postmortem. I hope it ends up good reading.
Have to cut this short since its been a long week and weekend. The focus now is prepping for Steam’s Early Access – this means that I have to create a version of the game that will be scrutinized far more than it has up to date. Kickstarter backers are motivated by helping a project, so will some of the audience I hope to find on Steam, but Steam’s audience (I suspect) is a bit more motivated by playing the game and enjoying it. So I’ll have to add in value and polish. Things that have been planned to be added towards “commercial release” – which has now been pushed up in schedule. This is a great opportunity that I should try my hardest to maximize. It is essentially a chance at releasing twice, and projects tend to get the most attention when they are released, with early access it is another chance to be on Steam’s front page.
The cool thing is that with a few lines of C++ code Void Destroyer now connects to Steam and I get a pop up stating that fact whenever I run the game to test or check out a new addition or the status of a bug. Seeing that message is another layer of motivation.
I missed last week’s update and now I’m drawing a blank… so I’ll just keep it very short. There were many crash bugs, there was a lots of needed polish and finally late last week iteration 18 was released.
Right after releasing iteration 18 I took a look at some new effects code from the effects contractor – the goal was to enhance the “Sun” – it did do so but had a limitation – if the player’s camera was too far from the sun the effect has a negative effect on the sun visual. But then I noticed a subtle glow… and the effect had a unforeseen (by me) bonus – a cool “general glow” effect. Really like the extra polish this has on the game. Very excited about it.
In a lot of ways iteration 18 is incomplete – most of them having to do with formations. Iteration 19 should fix most of that. I started last week doing some enhancements to tactical mode, stuff that I should have been in 18 but I didn’t want to delay any longer. So now things like – double clicking a turret to select them all, and the ability to click on the “model” image (on the lower right hand corner) being the same as selecting the object itself – for use in double clicking. Also I’ve updated the base manage gui – with a list of bases – just like the shipyard has a list of shipyards. Minor – yet obvious things like that. Then I started to finally address ships traveling through gates – out of the sector. These are almost always player ships – and before the changes they would get lost if the game was saved and loaded. I added them to the save/load system and am very happy for it.
And finally the late weekend came and the main focus of iteration 19 – AI polish and enhancements. I ran through a lot of “attack patterns” and “attack nodes” – basically combat ships have a “attack nodes” that has one or more “attack patterns” – I’ve added a bunch of new ones and added code for the combat AI to more intelligently pick and use them, and in some cases fixed bugs that prevented the AI from using existing ones. So fighters and corvettes should display some new maneuvers and intelligence. Frigates will be more mobile in combat and ships that collision weapons should smack into other objects in a improved way.
Once I’m done with this – I’ll have to tackle issuing orders and giving the player better control over ships using the gravity drive – I’m looking forward to this very much.
As I was running out of weekend time – I also re-added “projectile life expiration” particles – little explosions when a projectile runs out of its “life timer” – and would previously just disappear, now there’s a little blip of an explosion – this is optional as there is a tiny performance penalty.
Speaking of performance – I’m basically at the point of needing an updated PC – the funny thing is that the need is for making videos of the project – I don’t want to advertise the game running below 60fps and with the new effects we are headed that way.
This week was spent on polish towards Iteration 18. Each one of the days I thought I’d be getting very close to releasing only to find more and more things to do, fix, improve and test.
When I started wanting to finish up the new story content I realized that I couldn’t bring myself to just have it be another sector in space like the rest so I wanted to add in some variety via “dust clouds.” A sector wide “nebula” – and I fairly quickly added that system in place. The cool thing about this variant of dust clouds (there was an older variant that I didn’t use much) is that it is highly and easily moddable and you can stack a dust cloud on top of another dust cloud (as many times as you want) so create a layered sort of nebula/dusty environment. I think it looks pretty cool – I’m very happy with it. The goal is to not have the game be so mechanical – which I think is a result of the programmer (aka me) doing much of the design.
Speaking of not having the game be so mechanical, I spent a good amount of time on using the newly acquired (via Kickstarter funds) consulting help towards tactical mode visual enhancements. I’m happy to say that tactical mode looks much closer to the final vision. Still a bunch of work to do, but I think it is a huge improvement.
The weekend was spent on finishing up the story content, working on the cutscene, prepping the installer and finally bug testing. So many bugs! I lose track of how many crash bugs, but each one I fix is one less that a player will have to deal with. Still I think that iteration 18 will be one of the buggiest, the new formation and rally systems are fairly complex additions to the game, they go across the board in their effects. Plus the tactical mode ui improvements – are hard to test given that they span the entire mode – meaning that there are a lot of combinations of actions that a player could do that might trigger a bug.
Hopefully iteration 18 will be released early this week and I can then move onto focusing on iteration 19 – whose goal is to vastly improve the AI. A part will be to make new formation system much more solid, another part will be to make AI ships much better at avoiding collisions and path finding, and a third leg will be on combat maneuvers and general AI intelligence. Exciting stuff!
Pretty tired at the moment, so I’ll probably skip a few things.
During the week I worked on the rally system (lots of improvements there) and more Tactical mode polish. Meanwhile a special effects artist sent me over some neat effects and I did some experiments with them. I’m looking forward to unveiling them in the near future and to getting even more effects. This is a great opportunity afforded via Kickstarter funds.
During the weekend I spent time on new content, bug fixes, on the new effects, on dust clouds, and even on the HUD via some new art - hoping to be able to say that it has reached a release ready state soon.
Iteration 18 should be ready this week.