Author Archives: arrmaytey

Road to iteration 18

Kind of a late update… usually I try to do this late Sunday night, but it is now late Tuesday night.

The last week was pretty bad, there were several factors – I guess it might be interesting to some reader to know that there is a human being at the end of this – or maybe it is completely boring – anyway last Monday I visited the dentist for a crown after a root canal. Took very long since nowadays they literally 3D scan your mouth and then carve up a tooth out of a ceramic block – on site. Either way I was burned out, so Monday was out.

Tuesday I spent fighting a crash bug that cropped up when formations were disbanded/deleted. Pretty silly bug, took forever to find, but as usual I was very happy to have fixed. Some bad news on Wednesday – the HUD/GUI artist that was working with me has had a string of unfortunate events and can’t reasonably deliver for the project. This actually reminds me that I’m very lucky to be able to work on this project, given how much “free” time it requires. A reminder that not everyone is as lucky as I am and that is something I shouldn’t forget when I feel down or burned out of what not.

Wednesday – at my “day job” once a year a bit of a shake up happens and the office crew (which I’m part off) has to go to the warehouse and count inventory. This is unfortunately extremely exhausting (since it often involves physically lifting often heavy material), mind numbing and a bunch of other negative aspects. So the rest of the week was spent like that and when I got home later than usual I tried to focus on little things and surprisingly got a bunch of things done – mainly little improvements to tactical mode. It is not as rigid as it was before and hopefully much more user friendly. I should create a post just on this, or maybe a video.

Weekend - I wanted something quick and easy so I wanted to create a “rally” system. Where the player would first select a base or a shipyard then right click on the map and have ships go to that spot on launch from the shipyard. This was easy, and I fairly quickly set this up (in terms of basic functionality) and then I thought – hmm why not integrate the new formation system? This is where things took a turn for the worse. I spent a lot of time (practically all of Sunday) trying to jam the formation system into the rally system. I kept writing code, deleting it, restoring from a backup of previous code, etc etc. I finally gave up Sunday night and decided to keep the code separate. A few moments ago I setup a fairly decent rally system, so at least that’s that.

 

So what’s next? I want to put out Iteration 18 soon – I have to add in saving/loading to the formation system and the rally system, do a bunch of bug tests, finish up new story content for the Kickstarter Beta backers and then release. So seemingly a bunch of work, hopefully it will go smooth :)

In other news – I’ve started contracting out “graphics/effects” programming work. This is an area where I struggle a lot so I thought contracting this work out would be more efficient, so far some promising developments. This will also mean that I’ll learn a bit so overall should be a huge win for the project.

Formations #2

 

The past week and weekend was spent on formations. Its funny because a while back I was worried about the math (with me not being great in matH0 involved and the specifics of ships forming up, but that aspect turned out to be very easy. The harder aspect became management, leaving a formation, creating a new leader, etc etc.

This aspect became very complicated – because there are many ways that a ship leaves a formation. Though dying, through being promoted to a leader (at which point the ship isn’t [in code] a part of a formation), when a formation “rebalances” itself (meaning that ships re-organize themselves to be closer to proper [nearest] formation positions) ships can leave and then rejoin a formation.  Because the code wasn’t all the way thought out (my bad) this led to infinite loops. A few bits of code later they went away. The GUI and how formations worked on that side also took a bit of thought and doing – but overall things work. What’s left is having formations save/load across games, cleanups and a lot of tests. I’m a bit afraid that Iteration 18 will be fairly buggy.

Now that formations are soon to be mostly completed, this will allow for a across the board AI improvements, since formations are going to be a big part, AI is basically mostly completed as far as major features. The future goal will be to make it more obedient.

Almost forgot – another item added is “SPROG” fire mode – it is an add-on to turret/weapon control in Command mode – with it you can control all turrets in a formation from the lead ship’s Command mode – making an overwhelming amounts of firepower directed at the player’s cursor possible. It is funny because I’m not sure how useful of a feature this is – but I’m sure that its cool and unique.

 

 

 

Gates and Formations

Early this week – I focused on some bug fixes and improvements to the “gate exit” system. Strangely a bug cropped up on the new content map, where a ship (often though not always) wouldn’t exit the gate properly – and it would slowly drift towards the exit and thus hold up other ships in line or worse yet, be smacked into by new ships traveling through the gate at high velocity – sending them far off into space due to the collision.

Though fixed – I’m still not sure what the issue is/was. Seems like a timing glitch because I couldn’t track it down and in debug mode things worked fine (making finding the problem – much more difficult). Still in trying to fix the bug I did some nice improvements to the gate exit system. There is still a ways to go – most importantly getting ships out of gates faster, right now it is a one at a time affair. Improving just slightly would yield good results – since two at a time would be twice as fast :)

Post that I did some more work towards the new story content, the main result is that I need more art assets, the map is a bit too boring. Speaking of art assets – I got a few very important pieces in, and with them a new type of in game object – the “other” object. The other type of object – doesn’t do anything, but often it is important to have objects that don’t do anything, that you can link to objectives. In this case it is the destroy objective.

I was actually planning on releasing the story content sooner than working on formations, but while waiting for the new assets I decided to start work on the formation system. I wanted to do something major – and I’ve been battling burn out so this felt like a great fit.

It is in a barely functional state. Overall the hard part is done – the formations themselves. There is the line, the wedge, the V (reverse of a wedge), the X, the claw (X with ships being positioned forward in space relative to other ships) and the wall. The wall is actually an X formation combined with a “cross” formation. So post fiddling with the X code adding the wall formation code was very easy :) There will be some other formations in as well in the future.

There is another formation called the “custom” – which is basically – whatever the positions the ships are in at the time of creating the formation.So if you setup a ship formation manually they’ll maintain that shape if you move the leader. This will eventually turn into – editing the formation in 3D, which I haven’t seen as a feature before in a RTS/space sim so I hope that system is another “oh cool! I always wanted that!” type of a feature in Void Destroyer.

In the beginning of formations – ships bumped into each other – all the damned time. One solution was to intelligently have ships go to formation positions (via a simple – who is nearest loop). Another solution was improved collision detection/avoidance in the “thrust to position” AI. When I added the “thrust to position” AI – I knew eventually I’d use it for formations, and here we are. They “sort of ok” go to their positions now, still needs improvement which will help the AI overall.

To create the formations layouts/positioning I had to do some math figuring out odds/evens and multiples. It wasn’t too bad (I thought it would be harder), but I’m sure someone actually good at math would have done this so much faster than it took me.

Lots of work to do – and lots of little things which means lots of motivation and easy pickings ahead of me during the week days. I plan on putting in lots of neat standard and unique formation related features.

Mice, burnout and mines

That’s about the order of things. Last Monday was Labor Day – a holiday in the US. I spent it finalizing the mouse changes, packaging new installers and creating marketing videos. The goal being to get more Steam Greenlight votes – (PS: If you haven’t voted – please do so: http://steamcommunity.com/sharedfiles/filedetails/?id=146068036 ). I told my wife how thankful I was for the extra weekend day and most likely without it what I accomplished on Monday would have taken me till Friday.

As usual post a release I was burned out and this stretched into the weekend. Still I started working on new story content and have made pretty good progress and am excited. I don’t want to reveal too much but the new leg of the content involves mines. So I spent time giving the ability for defensive platforms to generate mine fields. Meaning that they have a mine quota, that they will maintain and keep track off. Also the mine launchers now can be configured with additional parameters. An additional velocity and angle of launch, allowing for random angles and speeds. The end result is mine fields.

 

 

Happenings

The goal of this week was to “overhaul” the mouse system. Meaning that I would scrap the old code and start fresh. I tried this several times and went back to a backup file of the source code dealing with mouse control.

Finally I realized that – I would be creating a nightmare scenario. The code is extremely complex, most of it is my fault – in terms of choosing such a design where the player can control the game via joystick, mouse for maneuvering, mouse for camera, mouse for GUI, in multiple views and even a RTS interface. So the code is complex because it needs to be complex, and since it mostly works (its just a pain to work with) I decided to leave it along. I did simplify a bit of old code via deleting and got rid of some redundant code via merging/re-use so I guess there was a – ever so tiny – overhaul.

The goal of the overhaul was to simplify the code so that adding in new features would be easier, now that the overhaul was a bust I still wanted to add the new features. For the most part I’m very pleased. The mouse maneuver code now has added functionality where the “maneuver cursor” returns back to the “dead zone” – which is an area of the screen (at the center) where the mouse doesn’t have an impact on the ship’s rotation - the ship moves forward. This allows for the dead zone to be much smaller since there is assistance in hitting it, thus allowing for greater precision in flight. Making mouse flight much improved. It feels better, I enjoyed a few rounds of the simple dogfight instant action scenario.

Next up was something a bit more complex – “mouse look to turn” and the ability to manually steer in command mode. To recap – command mode has a “turn to” and “go to” commands. Allowing for the player to issue orders on where to go, but I wanted a manual mode as well. This works now, though I stumbled for a moment wanting to change the command mode camera to eliminate the effect of the attached to ship’s roll. I wanted to eliminate roll because when the ship rolls the camera inherits the roll and thus can feel wild as it changes orientation without the player’s input. Sadly the camera system fought this and I decided to let it go for now. Once I moved on from that aspect the mouse look to turn was quickly added – and I really like it. Although command mode is intended for large ships – there is a sort of a “complex” dogfight mode in there as well with lots of interesting options for the player on how to fly and maneuver. Still this works best for ships with turrets due to the freely rotating/orbiting aspect of the command camera.

Next up was putting in a “mouse look to turn” mode in first and chase person cameras. Works pretty well though I’m a bit disappointed at the end result – its not as good as I imagined it. Though I think some players will prefer it to the “mouse turn” to maneuver mode. The difference is this: mouse turn to maneuver – the camera is attached to the ship’s front, the ship chases the mouse maneuver arrow that the player moves and the attached camera moves with the ship. In “mouse look” to maneuver – the camera can freely turn – without having the ship turn – and the ship chases the center point of the camera. So – the difference is that in mouse look – the player looks at the target or turn to point (like in a first person shooter game) and the ship rotates to achieve that heading. I’m a bit disappointed with it, because it isn’t as “efficient” as “mouse turn” – which feels more “in control” and “responsive” – still this is the first iteration that this feature  is fully in (years ago I had a more basic functionality like this – when I first put in turrets) so we’ll only improve it from here on out.

 

 

Reinforcements, sounds and pauses.

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.

Iteration 17 – Demo Released

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.

 

 

 

 

Iteration 17

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.

Road To Beta – PT 4

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.

 

 

Road To Beta – PT 3

Last week (had to glance at the blog post to make sure ) I wrote about the repair beam visual clipping through, I posted an update to Kickstarter backers with a video of the effect and got some comments about that there as well. So Monday I fixed it so it doesn’t clip anymore – it will be optional. So  some (for example) super powerful beams will still go through the target, but a repair beam won’t.

 

I still had a lot of thoughts towards rebalancing, so I did another overhaul and changed a bunch of parameters of ships. Removed some turrets and overall increased health and decreased firepower – on ships larger than corvettes. I sped up some corvettes and fighters.

Then the task turned to scripting the mission and boss fight. I actually started enjoying it – mainly because it started becoming cool. There were still a bunch of struggles and balance is an issue. I also changed how the boss behaves – it should be interesting how people new to it will react and what kinds of feedback I’ll get.

 

So Beta is very close – I was hoping for the “month” post Kickstarter promise to be very literal – but I think that we’ll more likely do a month plus a weekend post Kickstarter. What is left is the “unlockable” instant action scenarios. I want Beta players to experience them along side the story, so I don’t want to add them in post or at a later time. Also I need to add in music (I have several un-used tracks available) and other such polish.