[Translation] Badland - game on cocos2d-iphone

BADLAND was launched on April 4, 2013 on the App Store for iPad, iPhone and iPod touch. Since then, more than 100,000 copies have been sold. Play this game ( iTunes link ) or watch the trailer before you continue reading - so you get a more complete picture of the game about which I am going to tell. BADLAND was created by our indie company called Frogmind and consists of two people. This is our first iOS game and it uses the latest version of cocos2d-iphone 2.1 along with many other open source libraries.




Why cocos2d?


First of all, we wanted to create a game with the smallest possible number of people in a team. In our indie studio, we have only me, Johannes Vuorinen (programmer), and Juhana Myllys (artist). We signed a soundtrack with a very talented guy Joonas Turner, because themselves are not strong in this area. It was clear to us that we wanted to focus on developing the game itself, rather than implementing engines and our own tools.

Therefore, we decided to take a look at the engine with good tool support. BADLAND is a 2D game, so a 3D engine with 3D physics (e.g. Unity3D) would be a little redundant. In addition, I prefer engines with full access to the source code - I really know what is happening “under the hood”, and maybe change what I don't like. And, of course, most importantly, we wanted the engine to continue to be developed by an active community. Given all these requirements, cocos2d has become a great choice.

     

Other awesome engines, libraries and tools


When creating the game, not only cocos2d was used. Box2D as a physical engine is no less important. Box2D is so wonderful that we were able to implement everything we wanted in the game without changing a single line of source code. For example, the ability to set up continuous detection of collisions of individual bodies was really an important feature for us, because the game has some subtle obstacles and fast-moving objects.

To work with audio, we chose FMOD with FMOD Designer. I highly recommend FMOD. We were able to create a very dynamic sound without touching the source code of the game. Using FMOD is not free, but also not very expensive for indie developers.

We used the fantastic tools of Andreas Loew: TexturePacker andPhysics Editor . I highly recommend them both, and they work easily with cocos2d and Box2D. With TexturePacker, we were able to greatly optimize game performance and memory consumption, and with PhysicsEditor, it was easy to determine the physical boundaries of objects.

In addition to these, we used GlyphDesigner to quickly create a font and ParticleDesigner to create particle effects. They both work right out of the box with cocos2d. ParticleDesigner was not as perfect as the other tools mentioned, and I have many ideas for improving it, but it did its job.

Finally, we used CocosBuilderto create 80% of the menu. It was easy and effective. The only thing I really missed was the inability to use ready-made spritesheets to reduce rendering calls when rendering CocosBuilder nodes.

When creating the game, a large number of additional open source libraries were also used, which do not play such a large role as the ones listed above. However, this fact should give a general idea that we used many ready-made engines, libraries and tools in the development of BADLAND. I would say that 95% of the time we could devote exclusively to the development of the game.

     

Conclusion


All in all, I highly recommend using cocos2d for any 2D game. It is easy to learn, use and modify. Without an engine and community, BADLAND would not have been released so early. With cocos2d's, we have the opportunity to transfer the game to other platforms in the future. Thanks for the awesome engine and support!

Facebook - http://www.facebook.com/badlandgame
Twitter - http://www.twitter.com/badlandgame
Blog - http://www.badlandgame.com
iTunes link - https://itunes.apple.com/ app / badland / id535176909

Original article - http://www.cocos2d-iphone.org/badland-a-cocos2d-iphone-game/

Also popular now: