Today, we talk with Pedro Soares, the author of World Soccer Challenge about how he made the game with Cocos2d-x. Let’s hear what he has to say!
1. Tell us where you came up with the idea for this game. What were your inspirations?
In 2012, I created my first game and it was a success. Elastic World was selected by Google to feature on the top banner of the first page of Google Play and it went straight to the top of the charts in that weeks. It was a game developed over six months alongside a full time job. The Android version was implemented in Java and the iOS version in Objective-C.
In 2013 I decided to create World Soccer Challenge, a soccer game about World Cups and inspired by the classics of the past like Sensible Soccer, Kick Off and Championship Manager. This time, instead of coding separate versions of the game for iOS and Android I went to Cocos2d-x to be able to code only once.
But games like Sensible Soccer were designed for computers with joysticks and its gameplay experience it’s impossible to recreate on mobile devices with touchscreens. So I had to get inspiration from other mobile soccer games, like New Star Soccer (my favorite mobile game), Score! and Flick Kick Football.
World Soccer Challenge took me two years to develop and release.
2. What version of cocos2d-x did you use?
The first version of the game was released with cocos2d-x 3.8. But the next version coming out this week with several bug fixes uses cocos2d-x 3.9.
3. How did you decide to use cocos2d-x instead of Unity, Unreal Engine or SDL?
I tried a lot of platforms. I was very inclined towards Unity, but cocos2d-x was completely free and open-source. Every platform has bugs, and I thought that if I ever stumbled across a platform bug I could correct it by myself if there was no other way around.
4. What features did the engine offer you that made development easy? What do you wish the engine did better?
- Animations and visual effects are very easy to implement.
- Platform is widely used. When facing a technical difficulty or trying to implement a new feature, it’s easy to google and find similar situations from other developers. There plenty of samples from the community.
Where it could be better:
- It would be nice to have XCode templates to automate the creation of new cocos2d-x classes. I use one CPP template and one H file for every new class.
- cocos2d-x suffered a lot of refactoring on the previous versions. When you google something, the code you find is not always valid on the latest versions.
5. What tools did you use besides the engine?
For designing the soccer field I used the tool Tiled which is an app normally used for map based games. It helped me to quickly draw the field.
I also developed a few auxiliary apps on C# in Visual Studio. i.e. created a tool for designing and managing tactics and attacking plays, and a tool to create the fictional names of the players of the 196 nations represented on the game.
6. What 3rd party libraries did you need to use?
7. Did you create the art yourself? What tools?
Most of it, yes. I had a designer for the players sprites. And everything was created on Adobe Photoshop CS6.
The illustrations featuring the section “Moments in Soccer History” were created by a very talented pixel artist from the site 8 bit football.
For managing the sprites I used the tool Texture Packer (great tool by the way).
8. Did you create the music yourself? What tools?
No. There is no music in the game, but there are many sound effects. They were acquired from different websites and some edited later on the app Audacity.
9. Will you continue to make games in the future?
I hope so. But not in the near future as I have just embraced a new challenge on my professional career as Support Engineer at Microsoft.
10. Was there a technical challenge that you faced that you would care to share?
There were many challenges. The most complicated and important was the physics engine. Although the game is 2D, its ortogonal view requires real 3D processing. So I couldn’t use Box2D. Tried for two months to create a prototype with Bullet 3D but after several obstacles, decided to create my own physics engine from scratch.
11. Do you use SDKBOX? If so, what plugins are you currently using?
Yes I do. SDKBOX is great. It allowed me to implement IAP, Review and Vungle Ads in a few hours. Too bad it doesn’t have support for Windows Phone.
12. Lastly, any advice for those also making games on how to get to a release point?
Always prototype. Sometimes you invest a lot on some idea or feature, and then it doesn’t work well when the users try it. Make sure to test with users on earlier stages.
There are millions of games and apps on the market today and it’s very hard to get yourself noticed. You can create a great game, but without adequate promotion no one will find it on the store. Make sure to invest into marketing your game.