Hello dear reader. In this article I will describe my experience in creating game for Android mobile phones. Many people like the story, I think it should be published. I hope you like Runglish. It’s not a success story, but I think it will give an understanding of where to start and what to do to create a simple game. I will say about errors in game publishing process.
Great art by Jamie Hewlett and Alan Martin from Tank Girl comic, published without their permission
Forgive me guys, but it’s too cool
One day in 2011 I was bitten by a muse. After watching part of Tank Girl movie, I got an great idea to create arcade game in comic style. I wanted to people around say “Wow this game is awesome, dude!”
Why game for Android and not for Apple iOS? The reason is simple – I did not had the iPhone and Mac, but had a great desire to support Linux on mobile phones. At that time I liked ideology of the FSF, and Richard Matthew Stallman was my god.
You’ve gotta dance like there’s nobody watching
At the time of the development of the latest version of Android was 2.0, and also we needed to keep support for older versions since number of 1.6 users was very high. Many phone manufacturers do not even released an upgrade to version 2.0.
I immediately set a time frame for this project – one month. During this time, I had to pull knowledge of Java, explore the Android SDK, Eclipse, to meet with the monster in the face of OpenGL ES and to make friends with him. Also, it was necessary to create around six 3d models optimized for mobile devices. And we needed to release Mad Racer in Android Market (aka Google Play)
jPCT-AE engine is free 3d solution for Android
Since time was short, it was necessary to choose a ready 3d engine. Create your own engine from scratch is possible, but not very productive, as the testing and compatibility with all devices will take much of the time. Prior to joining Unreal Engine, Unity, ThreeJS (HTML5), a leading engine was JPCT-AE. The engine is supplied as a ready-java library that support older versions of android. Creator of engine – EgonOlsen operatively engaged in the support and error fixing by the requests of developers.
Cadres are all-important – bully Anton agreed to write the music for the game. I’ve always admired his work, his work served as a locomotive driving the whole gameplay, forcing the user to play until the last shot down the helicopter.
Where do you start? We must begin with the installation of Android SDK. Now it comes with a built-in IDE – Android Studio. But at that time the IDE and SDK are available separately. According to documentation by Google I installed Android SDK, Eclipse. And you also need to install the necessary packages for Eclipse, which provide compiler and Android emulator. An hour later I compiled a test project jpct-AE:
It was Wow! But emulator runs really slow. I decided to buy a phone on Android OS. For this purpose was I bough LG Optimus One P500. Since then I do not use Symbian OS phones with easy to use keyboard) There was problems with connecting phone to Linux, if someone found them until now, then check the udev settings.
Jobs steals a quote by Pablo Picasso
Looking at the Alien Runner, I realized that the alien can be replaced by a motorcycle and two punks with a bazooka, green hill turn to metropolis, and replace the fog to dark night from ballads of Iron Maiden.
How to make a 3d model? It’s very simple, you need to open a lesson about creating low-poly models on Youtube and do it. The whole process was to stroke the projections in 3D editor. I have found drawings of the helicopter Apache, and made a 3d model helicopter. Textures have been taken from public sources of the US Army.
Why do I need a helicopter in the game with two punks and a bazooka? When I played the prototype, I noticed that a player can simply stand still and get points. The ideal solution proved to be a helicopter arrives and throws submarine torpedoes to player, like smiley clouds from Super Mario Bros.
Mobile devices in 2011 had limited memory and RAM. Performance was also at C grade. One ARM processor with a frequency of 300-500 MHz. The testing on the phones of friends, it turned out that the HTC had half the video memory than LG, 8MB and 4MB to-but because of that the game knocked limits of memory and does not start. All resources were are clipped to the state to get a frame rate of 30 frames per second, and the ability to run on almost everything.
Sound and music was implemented by default Android API
In Alien Runner controls was based on screen taps. I don’t liked idea of arcade game with tap controls, I have implemented control by accelerometer. Ie you turn the phone – turn the motorcycle. I enjoyed it so much that I even added a first-person view, for the true outlaws.
I needed support from the developer of jpct-AE engine when I found a bug – dark fog in front of player is just disappeared. This happened after the folding and unfolding of the application. I created a thread in the forum jpct-AE and two days later the problem was solved. I integrated the fixed version of the game engine.
Also, the question was how to implement an endless supply of vehicles. For mobile game I had to figure out a way to add machines to game scene quickly. Option with loading from slow memory or the sd card was immediately rejected. It came to the aid design pattern called object pool. When the car goes out of scope or destroyed, it is turned off and at the time when it was required to submit a new car at the beginning of the scene – it was included and was put there.
Release day. The game has been tested, a preview for friends was made, now had to go to the gold on Android Market. Register on the Android Market cost $ 20, paid. Added description, screenshots. And at that moment I realized that it is necessary to record the video.
How to record a video for the mobile project? To play game with one hand on mobile device, and record by camera in another? The decision was interesting, I used the Android emulator, played the game with a frame rate of two frames per second, recording everything that happens on the screen with the help of the program which is called something like gtkDesktopRecorder. With VirtualDub video speed has been increased up to 30 frames per second. Then, in the best video editing program – Windows Movie Maker, I added all the game sounds and music.
Now talk about errors. For promotion of the project I invested nothing, no effort or money. I then believed that the project will promote itself. The game went gold, I created a thread in the forum jpct-AE about Mad Racer. I got 12 units on the dollar in two weeks. And found the game available for free on a pile of warez sites the next day.
Singing a song FSF “Share the software” I decided to make a free version with advertising. The game has been translated into the category of AdWare, ad network AdMob banner was added to the bottom of screen. Integration with advertising system went smoothly. For a month the game has been installed on ten thousand units. From advertising network, I received $ 50.
Generally do not forget about advertising, I believe that this should be one of the major expenses of your project.
On the positive side I got job – iOS developer in one of the best companies in our city. And of course, invaluable experience.
Link to Google Play
Share if you liked this article)