Back in 2013 I did a blog post about the art creation process for our game, and now with the final port available on Nintendo Switch we wanted to follow up with the story of how a small arcade shooter unexpectedly grew quite a long tail...
AQUA KITTY began life as an XBLIG experimental project by myself (art) and Gabor Dorka (code). We had already worked together on a few games for our day job, as well a mini Tigsource competition (Laser Bunny) which gave us confidence that we could get something completed and still remain friends by the end of it.
- Laser Bunny - TIGS Procedural generation competition.
Working in our spare time we did not plan it very well at the start and the design drifted from one thing to another each time we returned to it, meaning initially a lot of time would be wasted.
- early Aqua Kitty prototype.
Eventually the design settled into an arcade style underwater shooter, where you had to defend milk mining kittens from being abducted whilst clearing the sea of all manner of robotic fish. Essentially Defender-like at the core but with new weapon systems, branching map progress and so on.
We left audio a little late, and asked Electric Cafe if they would be interested. We loved their work from past projects which we had worked on together, and were very happy when they agreed to take on Aqua Kitty.
Around May/June of 2012 we had the good fortune to talk to Shahid Ahmad and Lorenzo Grimaldi at Sony Interactive Entertainment, and an opportunity arose to be a part of Sony’s new PSMobile platform. They wanted games which could be completed within a few months, and luckily we had a near complete game!
The PSM platform worked on a range of devices (PSVita, phones and tablets), but the game was not able to detect which it was running on, so you were forced to develop for the weakest rather than tailor any settings per device.
Aqua Kitty released on PSM in Oct ‘12 as a launch title, and was well received by the press and even got some awards and nominations. Thanks to Shahid and Lorenzo, the game began life with a healthy boost which would help carry it through the following years. Had we released on XBLIG first we may not have had the same momentum to push it forwards.
- PSM release screenshot.
We were busy with our respective day jobs once again, and slow to port back to other systems. First up was going to be completing an XBLIG version on the Xbox 360.
One of the original reasons to release on XBLIG was as a route to Steam. Many of the Xbox Indie game releases were, to be fair, a bit ropey. We thought that if the game could stand out on XBLIG, then that could help it to be noticed when applying to be on Steam. This was all pre-Greenlight remember.
Sadly by the Summer of 2013 XBLIG interest seemed to have fizzled and promotions like `Summer Uprising` were no longer active. We went ahead and released anyway in June – adding 2 player co-op, extra levels, enemies and an easy mode!
Alas sales here were pretty dire, however there was still the slim hope of nudging our game onto Steam through some contacts we knew, so we carried on with finishing the PC version - but enthusiasm was pretty low.
Uh oh – what should come along in August, but Steam Greenlight! Direct application was no longer looking possible, so up went our simple Greenlight page for the game in September - we hoped to be greenlit in no time at all thanks to all the positivity it received on PSM.
The interest graph peaked nicely, then fell fast. Most comments were positive however our mention of previously being on `PSMobile` caused a lot of people to mistakenly think it was a mobile phone game (and no, that was not a good thing).
Meanwhile we had the good news that GOG had accepted the game (helped in good part we think by the positive reactions/reviews of the PSM version) and a PC version was released in October. Always keen to try new promotion ideas, we commissioned this delicious set of cake pops from definitelycake.com.
- Aqua Kitty cake pops!
Finally we were greenlit in December 2013 (it wasn't entirely clear what had triggered it, there was no special interest spike or anything like that) and busily prepared a new build for Steam - adding a new `Arcade` mode, new directional weapons, achievements and trading cards for release in Feb.
The Arcade mode played much like the main game, but with a new `Gradius-like` weapon upgrade system and no continues. This was good as it meant we could add a new experience by essentially remixing the existing game – but the downside was it was also a bit too hard for most players to enjoy.
Steam unit sales were pretty good, there was the added bonus that there were not too many titles being released each day back then, so you had a good chance still of appearing on the front page to get visibility. We also rolled the game updates back into the GOG version.
Later around Easter ‘14, GOG ran a `pot of gold` sale which landed us with a small surprise sum of extra income. We decided to re-invest that into porting the game again – this time to PS4 and native PSVita. The game's original programmer (Gabor) was busy at the time, so a friend who was also an experienced coder (William Bell) was contracted to help do the ports over the summer.
Risk-averse as ever, we worked out a rough estimation of what sales might be in a worst case scenario, and went ahead assuming we would at the very least break even on the time and money spent.
Yet again we wanted to add improvements with the new ports, this time adding PSN specific changes like Cross-Save and trophy support, as well as new graphical enhancements (full 60hz, parallax skies, glows, distortion effects) and extra bosses which really helped punctuate the end of each sea area. The PSN versions would also be the first to move away from being made in C#.
- Aqua Kitty DX first area Boss
Whilst this was going on, we were invited to be part of a Humble Shmups Flash bundle. Previously we resisted all requests from other bundle sites, but Humble always seemed to stand shoulders above the others - with consistently strong unit sales and a tendency not to pack bundles with too many titles. We had a concern that selling the game at such a low price may harm future console sales, but this proved unfounded as each platforms user-base seemed pretty insular from the other. If anything, each new release of the game helped boost sales on other platforms.
Passing PS4 and PSVita QA took a little longer than hoped, and rather than releasing early October, AQUA KITTY DX came out at the end November 2014. Not the best time to release in hindsight as all the AAA games were coming out in full force, rightly dominating the attention of games press. We carried on anyway as it seemed a good idea to have the game at the top of the storefront ready for all the potential new PS4 and PSVita owners that Christmas.
Reviews were a nice steady 8/10 average which we were more than happy with.
Dynamic themes for PS4 were a relatively new thing, so we released a few fun ones with the hope they would maintain awareness of the game post-release. They proved to be pretty popular! `Keyboard Cats` was the trickiest to make as it had animation synced to the audio, but it ended up being the best selling.
In June 2015 we were invited to join a weekly Humble Cats! Cats! Cats! Bundle. We couldn't refuse of course, plus the PC version was quite old by now with sales slowing right down. Interestingly inclusion in the bundle actually helped boost Steam and other format sales rather than flatten them.
In 2016 Gabor was available to work again, and we released translated versions of the PSN game (plus themes and avatars) in Japan via Playism in March. To help promote the game we had some small cushions made up to use in a giveaway, using an online print service.
Amazingly we got into Famitsu, twice! The first was a review, and the second a 2-page spread of tips. Getting into physical print is always exciting, and Playism were even kind enough to post over copies of the magazine.
Later in the year a port to Xbox One was being looked into. They asked if we could add some new content for this version, and so had to work out what that might be. We came up with the idea for what ended up being called `Dreadnought` mode, which we made sure was quite different to the other game modes.
You had huge enemy ships which the player must fly through and destroy. First by attacking structures, and then destroying the reactor core once exposed. New tactics were required too, as imprisoned cats could be collected to boost your weapon timers.
In January Limited Run Games released a version of AQUA KITTY DX for both PS4 and PSVita, along with a CD of the soundtrack. At last the game was available in a physical form! This was super cool of course, and something we could never have imagined happening back at the time of finishing the PSM version.
The Xbox One version released soon afterwards in February.
And then in February 2018 we were extremely proud to release the final version of the game, and our first Nintendo title, `AQUA KITTY UDX` for Nintendo Switch.
Once again, we had wanted to enhance the game where possible. An in-game achievement system was added to emulate what was on other systems, gameplay tweaked, extra explosion art, new pump station animations and other subtle improvements.
We also had fun making new cat promotional posters! A few months later released a multilingual version on the Japanese sShop with EastAsiaSoft as publisher.
Being a small team of developers whose members were often tied up with other jobs, working on a platform at a time and being able to iterate improvements to the game proved very useful to our particular situation. It also allowed us the flexibility to adapt to and explore opportunities as they came.
Right now we are busy with a new game, this time being developed on multiple platforms at once (Nintendo Switch, PS4, PSVita, Xbox One and PC) so we can avoid the version differences which we had with Aqua Kitty.
Once that is complete we will look at updating the PC and PSN versions of Aqua Kitty with the UDX content and improvements.
I hope this has been an interesting read, and it shows that however small your project, you can never be quite sure where it might end up.
Dreadnought mode was interesting as it was the first real big change to the game. It felt very creative to develop and I personally think the gameplay is more interesting - it's a lot of fun even if I suck at playing it.
Working out a system to create the new complicated levels, we used libreoffice to store all the data for enemy waves and dreadnought core attack behavior and so on. But we also needed a WYSIWYG friendly method of building the giant ships.
The above image shows part of the first level. The block shapes were laid out by the artist, and then saved as a png. This was then processed, and by detecting the small x shapes and RGB colour values, these would mark the pivot points and type of block used in the game.
These blocks ranged from indestructible parts, to turrets, cat prisons and the ship core. Below is an example of what you see in-game on a later level. The dark grey background is the ship frame shape, on top of which are placed the blocks. The system was very flexible and allowed us to build a wide range of dreadnought styles, ranging from a couple of screens wide, to very very wide!
Porting game from C# XNA to C++ native SDK for PS4 and PSVita.
I started by porting the original C# code to C++. Whilst waiting for devkits to arrive, I ran the C++ on a Mac, emulating the XNA graphics functions in OpenGL. This helped debug the logic as it was ported.
Once the basic game was working and bug-free, devkits had arrived and I was able to compile the game with the native toolchains for each platform. The project was set up to use a shared code base, so logic / game changes could be reflected on both platforms - with separate platform implementations for things like the renderer, audio, input, game save etc. The original XNA interface was used in game code to abstract each platform's SDK implementation. The native Mac version was also maintained in case we needed to go back and double check anything.
The games were actually developed on Mac running Parallels VMs, with Windows 8.1 for PS4 development and Windows 7 for PSVita. Switching between each VM wasn't the best approach, but allowing the projects to be hosted on the Mac and shared with the VM helped a lot. Any custom written tools required to monkey assets could be written to run on Mac and the results would be immediately available to the VMs. Source control was done with Git on the Mac using Sourcetree as a GUI.
The PS4 version was very easy to get up and running and worked pretty much immediately, no changes were required.
PSVita initially had build performance issues with the way the renderer worked, and was rewritten to use a single vertex and a single index buffer, rendering sprites in batches based on texture changes.
Once the game was running well on each platform, PSN features were added like Leaderboards, Trophies and Cloud Save, with things going so well and development reaching completion quickly it was decided there was time to add some enhancements, ie bosses and additional graphical effects. Although the shockwave distortion effect was implemented on PSVita it was disabled later in development to help maintain framerate.
Both versions feature anti aliasing by rendering to textures larger than the screen and reducing with bilinear filtering to give a smooth result, the PS4 actually renders at a native pixel sharp 4K resolution ( 3840x2160 ) before being shrunk down to Full HD ( 1920x1080 ).