It was 1983; Ivan Mandic was in the second grade, when his father’s friend knocked on the door and came in with something wrapped in a blanket. A small black box with a rainbow, lots of cables, and a cassette player. A few days later, Ivan decided to create his first game. 10 circle(10,10,x), 20 x = x + 2, 30 goto 10 – a sample code from Spectrum BASIC. “There were no books about ZX SPECTRUM in book stores, but Father found one and rewrote it by hand. The whole book, including images,” Ivan recalls as he shares the story of his game, AVION Checkpoint.
Because of 3D
In February 2014, for the umpteenth time, I decided to download Unity3D, but this time, I was prepared. I had downloaded some gamedev tutorials from YouTube (about 60GB) and already knew what a game object was, a prefab, how to rotate it, how to get input from keyboard, what Vector3D was, and how to make a Space Invaders clone. I had read anything and everything about Unity3D and game development. I got lots of experience with 3D Studio, so already had a clue about 3D objects, transforms and textures, which was all helpful.
In a few months and countless number of versions, I came up with a game similar to the one you can try on Google Play. Many people asked me: “Why the hell 3D, all good and successful games are 2D, have you tried Angry Birds?”, and every time my answer was: Because I need to make it 3D. It has to be 3D. I see it in 3D. End of story. This was the only time I didn’t want to listen to good and friendly advice.
Problems: Variety of Devices, Sound, iOS, and Lack of Time
The first problem was testing the game. Thousands of devices, OS versions from 2.3.4 to 4.4, small screens, big screens, screens bigger than my home TV, processors from single to quad core, memory, and skins…I decided to buy test devices: a SONY Xperia ARC as the low level device, SAMSUNG Galaxy TAB as the middle one, and Nexus 7 2013 as a high-end device. My goal was to make a steady 30+ FPS which would run easily on all test devices. But they don’t represent the whole world. On most phones older than four years and with processors slower than 1 – 1.5GHz, the game was unplayable. I didn’t find a way to check processor or memory on devices and to scale resolution/number of objects/textures to achieve at least 30 FPS, so I decided to limit the Android version to 3.0 or higher hoping that newer devices will have the higher OS version. This turned out to be a good decision.
The second problem was sound. I have worked in various areas of the IT industry, but I never touched sound. My biggest involvement in computer sound was to play Pink Floyd or Metallica in WinAmp. Luckily, my brother Vladimir Mandić is an MC in Czech Republic, so he sent me a sample which is now the main theme in the game. But this is a favor done for a family member. I still need proper sound effects and background music, and I can’t ask my brother to make changes or try something else a few times a day. So I will need to sit down and learn something about melody and harmony.
The third problem is the iOS version. Exporting from Unity, importing to xCode, compiling – and all I get is hundreds of errors. Maybe an OS X version? Downgrading the iMac from Yosemite Beta to Mavericks, and xCode to 5.0 didn’t produce any visible results. So the iOS version will have to wait for better times. Sorry Apple fans, it’s too complicated right now.
The fourth issue was time, and it was the BIGGEST problem. I realized that my one-man team wasn’t big enough when my friend Davor Končalovic started testing all versions up to the smallest details and telling me what he thought should be changed, added, or deleted. I’ve spent hours fixing bugs, making changes, and adding improvements. Testing is essential, but I have a regular job from 9 to 5, and kids are waiting at home with their own wishes and demands. So the only free time I have is at night. The first night was easy, the 10th one was sleepy, and the 100th night was hard. Now I’m used to less hours of sleep. Sometimes a short nap in a chair is refreshing enough for some more hours of work. I’ve heard that Nikola Tesla slept 15 minutes several times a day (and the maiden name of Nikola’s mother was Mandic, so you can see the connection).
Another obstacle is the need to cover so many different areas in order to make a good game: programming, design, modelling, rendering, optimization, sound, usability, gameplay… And I’m losing time because of the constant need to re-learn and remind myself how to do something – for example, add a new object or select all linked vertices in Blender. Of course, Google knows. But it’s 10 minutes lost! 10 minutes here, 10 minutes there… It’s too demanding to work on multiple projects/jobs at the same time.
The fifth problem was game design decisions. Should I focus on gameplay, or are graphics more important? What is the path to a successful game – nice and shiny or addictive? I know that the best games have this all, but how can I achieve this? I decided to focus on the gameplay – making it addictive and creating more levels, leaving the menu designs and options for the better times.
Marketing: Ask What is Wrong and Get Feedback
In the beginning, I thought, I will make a game, post it on Google Play, and that’s it. What a mistake! Making the game is a small part of development. Having posted the first public version, I decided to announce it locally. I sent nearly 400 emails to my friends and people from my business contact list with brief information about the game and a download link, and asked them to help me by testing and posting impressions. What I received were 4-5 replies and maybe 10 more downloads. WTF? OK, I thought, maybe they don’t have time for testing, or don’t know how to tell me that the game is not good. So I posted the link on lots of Android game forums – and nothing again. I started thinking that other devs didn’t want to encourage my development because of competition. In 10-12 days, I decided to openly ask: “Hey guys, what is the problem. Am I a black sheep? Do you hate me for some reason? Do I write in a language you don’t understand? Please say something, even that my game is the worst one ever and I need to format my HDD and go to work on a corn field. Anything, but don’t ignore me, please!”
And BOOM! Hundreds of replies in the next few days. People said it’s a great or excellent game. I got nice ideas, people tried AVION Checkpoint on so many devices, providing detailed reports, lots of them offered help. What a great feeling it was to receive nice feedback!
I’m now working mostly on optimization and new levels. I’ve made 12 new levels and 3 more airplane models, which will have their own flying properties. The already available levels will soon be remade with better textures and baked shadows. I made one level endless, for the most passionate players. I’m also making a better online score system: all scores will most likely be nulled every week so new players will have the opportunity to see their score in the top 10, even if for a few minutes. I didn’t forget about the iOS version, but right now, I don’t have enough time for it.
I can’t wait for the day when I will be able to tell myself: it’s time to leave everything behind and start fulfilling the dream of your whole life – BECOME A GAME DEVELOPER. I have energy, great support from family, and believe that day will come for sure, because I’m feeling butterflies every time I start Unity or Blender.
Ivan believes AVION Checkpoint has great potential, and promises to do his best to make it even better (and nicer), though he admits he will need help in marketing and promoting the game. It can already be downloaded in Google Play and from some other websites with Android games, and played online on Wooglie and Kongregate. Ivan adds that he hasn’t thought of monetization yet, since his day job takes too much time and strength, but plans to change that after meeting some publishers in the nearest future.