Feature: My Fortnight As An Indie Developer

This feature was written by Pixelation Studios Founder Rohan Wadsworth. Grab their latest game Zombie Frenzy HERE

Like you, I love games. Like some of you, I considered working in the games industry as a teen. Like a smaller amount of you, I went to Uni to study Multimedia Design with the goal of getting into games as a 3D animator. It didn’t quite work out that way though and I am currently a full time web developer.

But I still love games and I still want to make them, so every year over the Christmas holidays, after stuffing myself with food and the family disperses back out, I sit down at my computer and do everything I can turn to turn an idea into something worth playing.

This is now my second year and second published game on Google Play, but this second game I’m going to talk about really started back 3 years ago in my first full time job holiday time where I decided I would see if I could still use Unity and that is where I first started converting Zombie Feeding Frenzy, initially a Uni project made in flash into a touch screen mobile game.

Swipe It
That year was more a test run and I got something half playable done but all too soon it was back to work and the motivation had waned. Year 2, I purposefully set a lower goal that I thought would be achievable and a stepping stone into Android development. The game was Swipe It, a very simple game, where the goal was to swipe as many arrows in the right direction as possible within a time limit in the hopes of a highscore. It turns out even this simple game was a stretch for my limited programming ability so it took a lot longer than expected ballooning out of the holidays for a final release date of January 22nd 2014, not to mention the weeks after trying to spruik it to anyone who would listen.

By July 1st, after all my marketing ideas were well and truly dried up and I had reached out to every single Android device owner I knew, I had only reached a measly 318 users – which to be honest I was quite pleased with but at the same time a little disappointed I hadn’t become an overnight millionaire who could quit his job and start making games full time with enough cash to cover it.

Then something interesting happened that I still can’t really explain. Suddenly my Google Analytics tracking was showing a crazy amount of users, over 1000 on one day! I had no idea what was going on, but digging into the stats I found all the new users were from China and this is where it gets strange – China doesn’t allow Google Play (it’s blocked over there) which means that these people weren’t getting it officially and I wasn’t getting the benefit of the increased user count on the games Google Play page. Again due to the great firewall of China, the banner ads in my game were also blocked so it meant even with all these users I was still not going to make any money from my game. I am still very happy to have had my game played by that many people, but I’d be lying if I said I wasn’t slightly annoyed that the influx didn’t really help my games rep or my bank balance.

To this day Swipe It has had 11,485 unique users and 27,614 failed swipes. Not bad for a few weeks of sacrificed holiday and late nights after work finishing it off.

dev diaries
So now you have some background, on to this year and Zombie Feeding Frenzy! Below are the edited for readability time logs I made:
[toggler title=”DAY ONE: 26/12/2014 – 6 HOURS SPENT” ]
12:45 Fired up Unity for the first time about 12:45pm and drew the Game & Watch case for use on rectangular screens after initial tests of screen side positioning code. Break at around 3pm for popcorn and Craig Fergusson then back to it, adding up and down buttons and setting them up to move the zombie. Started working on the humans – got em instantiating at the first 4 positions with some trial and error then tried to work out their movement. I could only work out how to move them out of sync so need to revisit. Finished around 5:30ish.

7:30-9:30 read a bit more about arrays, finally got the zombies moving properly, but could only make 1 zombie per column so looked into that but gave up for awhile and moved to the hit detection. Turns out it was easy enough to add that to the same movement function. Got the score stuff going pretty easily borrowing from previous code and then fixed an issue where the humans spawned and where immediately moved forwards so they started too far from the screen edge.

[toggler title=”DAY TWO: 27/12/2014 – 2 HOURS SPENT” ]
5:05 Started on rewrite to allow for multi row zombies
5:15 strong Started working on lives
7:00 Finished a playable build with lives, speed increases and death flashing stuff + some quick exit and restart buttons – a pre pre Alpha!

[toggler title=”DAY THREE: 28/12/2014 – 4 HOURS SPENT” ]
DAY THREE: 28/12/2014 – Sunday – About 4 hours
2:30 Set up sprites for the humans and started on setting up changing materials
3:30 After lots of trial and error and failure managed to set the starting materials at least! Now to change them on each move…
4:15 Got it swapping with game speed for each move but sometimes it still flickers. Also had to fix reset button now this stuff was in there and stopped the material changing when the player was dead.
5:20-6:20 cleaned up reset button and added Game A and Game B buttons and the functionality for them
9:25-9:40 Found a cool vibration plugin but the but the license for using it looked too annoying
10:10 fixed the 4 flamers per column issue and looked into fps stuff to see if that had anything to do with the flicker but didn’t seem to help
10:40 Called the mat cycle function from the humans.js script instead and that seemed to do it – I’m an idiot for not doing it like that originally!

[toggler title=”DAY FOUR: 28/12/2014 – 6 HOURS SPENT” ]
10:55-11:40 put in Google analytics stuff but the data wasn’t getting through yet to confirm
12:00 went through some ideas for highscore popup
1:50 did some sketches for menu ideas
2:10 started making sprites for menu and putting in highscore stuff
5:00 Menu basic stuff kinda in, revMob adverts kinda in
7:05-8:55 Continued menu stuff – the game over landing bit is close to done, still a bit to go on the actual highscores but it is FUNCTIONAL at least

[toggler title=”DAY FIVE: 28/12/2014 – 5 HOURS SPENT” ]
9:40-10:35 Built and run for testing highscores split for game A and B with highscores area all styled to suit
11:00 Fixed up analytics issues and did some tests
12:10 Started going over GA stuff
1:15 Finished initial clean up of analytics – got a few different methods of tracking the final score to try out
1:20 put in vibrate on death
3:40 Played the game a bit and made some notes of stuff to still to do
5:05 Pause menu and hardware button functionality added
5:15 Some further text stuff (uppercase) and sizing
9:45-10:40 Google analytics and tracking final scores is being impossible to work out

[toggler title=”DAY SIX: 31/12/2014 – 8 HOURS SPENT” ]
9:30-10:30 ARCADE – Sorting out, cleaning up and fixing the initial 3D models from the previous attempt
1:40-4:25 ARCADE – breaking and fixing the previous project with the new FBX’s and wasting heaps of time with rigidbodies and colliders not working how I was expecting
4:25-5:45 ARCADE – Added human death animation to the 3D model
9:05-11:40 ARCADE – Added blood to death animation and fixed up the eating animation in game to give some better feedback for actions – had some un needed trouble from changing the mesh names and breaking stuff

[toggler title=”DAY SEVEN: 01/01/2015 – 8.75 HOURS SPENT” ]
9:20-10:15 ARCADE – Updated controls to a steady speed rather than matching exactly where the finger was at all times
10:15-11:10 ARCADE – Added the side screen position stuff and set up background scrolling, plus some further movement and controls tweaking
12:15-2:25 ARCADE – Set up arrays for selecting preset combos of zombies
3:25-5:40 ARCADE – Tested using scripts and arrays to create levels and got it working, then took some time to think about and write out possible options for working with the arrays in arcade and story modes especially after the addition of power ups + Fixed human animations all starting at the same time and looking weird + further tweaks to array stuff for arcade use to ensure no flame walls and random intervals
8:00-8:20 Mulling over the leftover work and deciding on how a few things should work and also decided to cut story mode for now.
8:20-10:30 ARCADE Decreased the humans but added speed and density stuff to make it harder as it goes + starting with 3 set easy waves every time + GUI label explaining to touch to start the game

[toggler title=”DAY EIGHT: 02/01/2015 – 10 HOURS SPENT” ]
9:50-3:00 ARCADE – Mulling over power up stuff, drawing new skins and textures for them and tested them out. Hat didn’t fit into the texture so added new plane like for the blood. Imported in and set up in the first 3 waves for testing and added basic script that can tell they are special and to do something when you eat them. Added hatplane to the zombie and put in the initial texture change stuff ready to go.

4:55-9:55 ARCADE – Made new zombie textures to indicate the powerups and started working on the actual powerup implementation. Got ’em all pretty much working

[toggler title=”DAY NINE: 03/01/2015 – 8 HOURS SPENT” ]
9:10-10:55 ARCADE – A few adjustments and working on the powerup stuff a little more
1:00-1:35 ARCADE – Hopefully final fixing of policeman shooting controls…
1:35-2:15 Classic – added bleeps and stuff
2:15-4:00 Classic – GUI screen size stuff
4:00-4:20 Classic – misc tweaks
4:20-5:20 Classic – clean up of code and files ready to build in together
8:05-8:55 ARCADE – clean up ready to merge
8:55-9:05 Merged projects and started on new Menu scene
9:05-10:35 Set up menu and tweaked some things so it almost works

[toggler title=”DAY TEN: 04/01/2015 – 7.5 HOURS SPENT” ]
1:20-1:40 some Classic mode fixes
1:40-4:30 ARCADE – some tweaks and more powerup stuff to hopefully explain what to do and what the buff is / duration etc. Wasted ages trying to lerp the alpha in 15 seconds but couldn’t get it right
4:30-5:05 Classic – sound muting stuff
5:05-6:45 ARCADE – duplicated the GUI stuff and highscores for Arcade mode and added Google analytics stuff and some quick tests
8:10-10:15 More cleanup and fixes for GUI related stuff and added counter for Arcade mode for cool stats

[toggler title=”DAY ELEVEN: 05/01/2015 – 2.25 HOURS SPENT” ]
First day back at work so end of holidays deadline officially missed.
8:00-8:45 Tweaks and fixes + added gun to zombie texture
8:45-10:15 Finding and messing with sounds

[toggler title=”DAY TWELVE: 06/01/2015 – 2.25 HOURS SPENT” ]
8:40-10:55 Made logo from scanned sketch and added + Set up the help menu functionality, made icons and put in the text (will need to fix for screen size though)

[toggler title=”DAY THIRTEEN: 07/01/2015 – 2.25 HOURS SPENT” ]
8:45-10:30 Working with sounds and a few little main menu additions

[toggler title=”DAY FOURTEEN: 08/01/2015 – 2.5 HOURS SPENT” ]
8:25-10:55 More sounds and lots of testing and small fixes and tweaks

[toggler title=”DAY FIFTEEN: 09/01/2015 – 2.5 HOURS SPENT” ]
8:50-11:15 Updated the help menu text and added the PPI fix + Fixed zombie / human z axis positioning to correct weird overlap and cleaned prefabs so the mesh and collider were centred + changed how the highscores worked so only 1 name can exist at a time to fix previous weird ranking issue

[toggler title=”DAY SIXTEEN: 10/01/2015 – 6.25 HOURS SPENT” ]
2:00-3:00 Updated pause and menu labels to also be clickable + fixed up ranking text and score text
3:00-4:15 Equalising sound
4:15-5:45 PHP saving stats + writing for store description
5:45-6:40 store asset creation
7:55-8:15 Save mute preference
8:15-8:50 Testing
8:50-9:30 Updated name text field to now allow funny characters and therefore break the php stuff

the aftermath
The next day after the approval process the game was fully live and I immediately spammed everyone I knew with the link and even physically downloaded the game to any people’s phones I could get my hands on for them.

So if you were wondering what it would be like to make a game, even a pretty simple one, I hope that was informative. All up it took 16 Days of varying commitment and a total of about 83 hours (and that was building on previous work, although most of the original code was re-written).

$25 USD for a Google Play developer license
$10 gift card for a prize
A lot of hours working
A lot of hours trying and failing to sleep with a mind too busy trying to solve problems for the next day

$1.38 from selling 2 copies of the “Donate” version of Swipe It
$16.4495 from the adverts in Swipe It that I can’t actually get until I reach the minimum $50 payout limit

If you’re wondering why I didn’t make use of Unity’s cross platform publishing, specifically for iOS devices (my most frequently asked question) – These are the things I’d need:
-$99 a year to be on the App store
-The entire range of iOS devices enabled for development for stringent testing on each one because the entry requirements are super strict
-A Mac to build the game from
-A nice approver when the game is submitted so it is accepted
-Another week or 2

If you’ve made it this far don’t forget to check out the results HERE and HERE. If you want to see how the story continues you can like my Facebook page for further updates.