Here’s a bit of a write-up on the development:
This is the first solo project I’ve taken to completion in Unity and it’s been a great learning experience. Pretty much all the assets were made from scratch by myself including graphics, music, sound effects, and scripts. The graphics were created using Blender and Photoshop, and audio assets were made using Ableton Live and Audacity.
With an ever growing backlog of unfinished projects sitting on my hard drive, my plan from the start was to go for a simple idea that I could turn around in a few months, and hopefully see through to completion.
It’s based on a rough prototype that I’d had sitting around for several years. The original design was based around keyboard input, but I soon realised it would be perfect for touch input so set about re-designing and re-building it for mobile.
What worked well:
1. I stuck to the plan, kept it simple and got it finished
The total development time was around 2 months with a week or so in the middle over Christmas where I didn’t get much done. I set out a simple design document at the beginning and I mostly stuck to it. Feature creep has killed off too many of my previous projects, and I think avoiding it really helped my motivation to see this one over the finishing line.
2. Lighting
It took a bit of experimentation and a couple of custom shaders, but I’m really happy with the way the lighting turned out in this game. I have lot’s of dynamic lights flying around the scene, but rendering performance seems to hold up pretty well even on older devices. The star of the show here is the old Mobile-VertexLit shader, it’s very simple but it provided a more stable lighting result than any other shaders I tried, all I had to do was create a couple of custom variations to add in extra effects I needed like glow maps and alpha.
3. Camera shake
It was a simple feature to add, but I think it really helps to sell some of the impact and explosion effects that would otherwise probably feel a bit flat and underwhelming.
4. Two player co-op works quite well
Again, this was quite a simple feature to add, but I think it fits the gameplay really nicely. I’d almost go as far as saying it probably works better as a two player game.
5. I think it’s actually quite fun to play
It’s limited in scope, but I think what it does within that scope generally hits the right beats. The gameplay feels pretty solid and I think there’s a nice feedback to everything.
That said, this is probably one of the hardest things to judge as a developer. You spend so much time focused individual mechanisms, it can be difficult to step back and see it as a whole. The feedback I’ve received so far has been positive, but it’ll be interesting to see how people react to it now it’s out in the wild.
What didn’t work so well:
1. UI and overall layout
The UI ended up being a bit of an afterthought and I think it shows. I found it really difficult to find space to put everything without overlapping at different ratios or obscuring too much of the actual gameplay area. It really needed a bit more design thought from the beginning.
2. Ship movement and collision avoidance
I think if an experienced programmer was to look at some the code I’ve written for the movement on the small ships, there would be a lot of hand waving and blasphemy! It sort of works, and generally looks okay, but I’m fairly certain I’m doing it wrong. For example; I could never reliably get the faster ships to stay inside the level bounds without having them move unnaturally, so my solution was to make them explode if they touch the sides. It doesn’t happen often, and I actually quite like the sense of chaos it adds when it does, but I should probably have more control over it.
3.Maybe it’s a bit too simple
Although I’m not convinced that adding extra content or gameplay would make the game any better, there’s still a side of me which sort of feels there needs to be a bit more too it. I have a few ideas for future updates, but I think I’ll wait and see peoples reactions to it first.
Overall, given the time invested, I’m very happy with the end result. I’ve learnt a lot in the process, especially with regards to scripting, but it was also a nice opportunity to dive in and play with some of the Unity systems I’d not had much chance to explore before like the new UI and Audio.
My first, and hopefully not my last!