Defendy Rocket: Development Update #4

Towards the end of last week we decided we were going to run a small, private beta for a few people, just to get some feedback on the game's mechanics before launch. We set next Monday (29th June, 2015) as the date for that beta and have been working towards it ever since.

But that means we've been rushing around trying to get as much of the game done as possible before then. There's no real reason we have to hit this deadline and we could overshoot it by two months if we wanted to, but we figured it would be a good idea to try and achieve it anyway (just so this game doesn't go on forever).

As a result, we've been severely slacking on the 'open development' side of things. We've not found any time to post any interesting blog posts and our twitter feeds haven't exactly been inspiring this week. So, apologies for that. We've been trying to improve our methods of dealing with putting out useful and meaningful information and, while internally it's been getting better, we just didn't find time to post anything this week. Hopefully this week's update list (below) will speak for itself though.

Something really notable: Dave designed a really awesome logo for Defendy Rocket earlier this week. We're both really pleased with it:

And, as always, here's this week's gameplay video:



  • Rockets now all have engine effects. The mega rocket has three engines.
  • All of the anticipation rockets now use outlined meshes (instead of solid meshes). We felt they read better this way.
  • We started work on the meta game this week, adding an upgrades system and a currency to the game. We're still working on this, but the idea is to award the player stars for performance and let them buy upgrades with them. Upgrades include: Improving the time dilation factor, increasing the length of the creation trail and spawning more rockets at once.
  • We re-wrote the logic that drives the mouse/touch/line creation system. We found a bug where it occasionally wouldn't draw a line at all on mobile devices, making the game feel really unresponsive. After this change the game feels a lot more reliable and consistent on mobiles. As a result of this change, we were able to remove the 0.2 second input lock we had in place when the game started up (to fix a previous bug where the player would accidentally start drawing a route as a result of hitting 'start game').
  • We've created a first-pass, very early set of rocket waves for the easy difficulty. This will be an ongoing thing until launch, but this gives us a starting point to get some feedback next week. In order to implement this change, we also had to make some minor modifications to the logic that drives spawning the waves and bringing the data into the game.
  • We created a google group to host the beta test next week.
  • We compiled a release Android APK and uploaded it to the google developer site. After filling out a ton of information (rating information, release information, uploading splash screens, screenshots and icons etc) we were able to publish this APK as a beta and test it out locally.
  • In hoping to make the mega rocket look good when it's destroyed (rather than vanishing out of existence), we tested out destructible meshes. Initial results we really good and we proceeded to make a small rocket that was destructible as well. This looked fantastic. Unfortunately, destructible meshes aren't supported on mobile platforms, so we had to dump the idea having invested a fair amount of time into it.
  • As a result of testing the destructibles, we came up with a solution for destroying the rockets in a different way, involving particle mesh systems. It's extremely time consuming and long winded to setup, but it adds a LOT to the game (you can see it in this week's video).
  • We now have a save game system in place to allow us to save out player upgrades / currency. This took a lot of trial and error to get to work correctly.


  • We created a low detail version of the rocket blueprint. This was supposed to help older phones with performance issues. We later discovered that this really wasn't needed and removed them again.
  • We found and fixed a bug where the engine FX from the rockets was being adjusted after they'd been destroyed (causing editor warnings).
  • We stripped most of the materials out of the game, replacing them re-usable materials and material instances. As part of this we had a huge tidy up on the materials folder.
  • We've now removed lots of placeholder / prototype assets from the game.
  • We've permanently disabled mobile HDR on all builds. Although this makes the game look really cool (and very Tron-like) on high end devices, it was breaking certain low-end devices and making even the best of phones run way below our performance expectations (read: 45FPS).
  •  We globally reduced the quantity of the particles in all particle systems. We'll ramp this back up again if we can maintain a stable 60FPS before launch (we have some bugs to fix, but we don't see this being an issue).
  • We completely re-worked the time dilation logic in the game, making things a little more organised and, we think, giving us a very small performance boost.


  • We re-wrote parts of the music system, fixing a bug where the music was transitioning to incorrect sections. 
  • We moved the intensity system out of the music system and moved it to the enemy spawning system. The music system is now told when the intensity changes and adjusts at the next possible point. The enemy spawning system now bumps up the intensity after a data-defined number of waves have launched.
  • We changed the music system so that the music no longer needs to be stopped when the game is paused, instead simply pausing and resuming the currently playing piece correctly.


  • We finally got around to re-enabling the splitters properly so they're now producing three rockets again.
  • The small rockets that the splitters spawn now travel upwards to random heights (instead of a fixed height like they were previously). This makes them a lot more interesting for the player to deal with.
  • Splitters now correctly spawn their rockets in the correct columns (one left; one right and one centre) instead of a predictable, but incorrect distance from the centre.
  • Towards the end of the week the splitters functionality broke and they are now spawning their rockets at the 45° angle. This needs to be addressed next week.


  • The large rocket now has a shield.
  • When the shield is destroyed, we added a new particle system to show this.
  • When the player destroys the shield, their player rocket is destroyed. This is the only time this happens in the game (with all other enemies, the player rocket continues onwards). We felt this was both an interesting new mechanic and made the large rockets more than simply just a bigger version of their younger brothers.
  • When the player destroys the large rocket's shield, the large rocket slows down briefly. This both gives the player time to react to their rocket being destroyed and allows them to combo two rockets into it.
  • Large rockets now spin on the way down the screen.
  • The large rocket now has extra fins on it to improve the look of it while it's rotating.
  • Due to the extra fins, the large rocket didn't look so good in the anticipation window any more, so we created a new mesh specifically for it. This is basically the old mesh, but made a little thinner.


  • We've fixed most of the bugs with the weakpoints, so they're now a lot more consistent to destroy.
  • We slightly reworked the design of the weakpoints: When the player hits the wrong weakpoint, we now highlight the weakpoint they did hit (previously we would count this as a complete reset). This makes the mega rocket a lot fairer to deal with.
  • The mega rocket has been redesigned to be thinner, making weakpoints easier to place and making it read better in the anticipation window.
  • The mega rocket has a new set of weakpoint meshes and materials.


  • We've been having issues with Android all week. I spent almost an entire day trying to solve issues with the build process not working properly. Dave lost a couple of hours to it too. And we're still seeing intermittent issues occasionally (game crashes on startup on certain builds; banner ads missing etc).
  • We found that, if the engine had the 'use mobile HDR' option checked, our old Nexus Android phone ran like a dog (5fps or less, despite not being able to use those features). Disabling that option boosted it back up to a near stable 60FPS though.
  • Made a full set of icons for Andoid.
  • Made a set of splash screens for Android.


  • We finally got around to setting up the mac we have and created and deployed new IOS certificates and provisions (to better match the game in its current form).
  • Made a full set of icons for IOS.
  • Made a set of splash screens for IOS.


  • We added a dynamic background to the frontend menu and removed the placeholder screens. The background is now a copy of the star field with procedurally generated rockets falling behind the menus. Later in the week we had to return and heavily optimise this asset, as it was causing significant frame drops in the game (it was running in the background during gameplay).
  • This originally started as a spinning shot with a camera panning around a static shot of a player rocket attacking an enemy rocket, but we felt this didn't work particularly well, so replaced it.
  • We no longer pause the game in the menus. This allows us to animate the background (see above).
  • We added a new main menu screen, including a new set of buttons and new layout.
  • We designed a Defendy Rocket logo.
  • We updated the game over screen, although this needs a lot of work.
  • We added an upgrades screen. Over the week we've been slowly improving this, although it still has some ways to go.
  • The pause menu has been completely overhauled with the new buttons.
  • We added an options screen, with the intention of being to give users with slower phones some options to reduce the detail.
  • Later in the week, we then removed the options screen again, due to testing showing that we really didn't need it (we're not gaining performance even on the crappest of mobile devices). We're now considering re-adding it, because we've quadrupled the polygon count in the game.
  • We've added more options to our debug menu allowed the save system and upgrades system to be tested. As a result we had to jig around the position of all of the debug menu (we ran out of space!).
  • We removed many multiple instances of 'start game' appearing on tooltips all over the game. We don't know how this managed to get on everything, but it did! Even after removing them all, we found more later in the week! They must be spawning from somewhere!

Posted on June 26, 2015 .