Hi, Fadli here, I'm one of the developers in Weraku Games and have been in game development since 2011.
I have shipped at least 9 mobile games to date together with my fellow teammates. One though, up until beta release before it got shut down :P
We chose to use Cocos2d-x for most of our games. It is an open source C++ cross platform game framework.
We can talk about Unity vs Cocos2d-x or any other game engines in a great length, but it will be for another post or time. Note that, we chose Cocos2d-x over other engines is because the framework uses C++, open source and we have total control of everything under the hood.
It doesn’t mean other engines are not desirable, depend on your needs and requirements, you can choose whatever engines out there. Give it a try, make prototype(s) in any engines you are interested in to test out features, communicate with the community and most importantly, code! ;)
That being said, we started using the Cocos2d-x since it was no x in the title. It was primarily targeted only for iOS devices. From there, to both iOS and Android, where back in the day, we used Eclipse and now Android Studio with NDK support out of the box.
We will not be covering topics such as installation, setup and anything basics, as all these can be found on many websites including the official Cocos2d-x portal. For instance, take a look at this Cocos2d-x Programming Tutorial Series.
However, I do like to mention one thing, the most asked question from beginners is which platform should they start with first, iOS or Android. At the time of this write up, with Cocos2d-x version 3.17, you can choose either, both Xcode and Android Studio are capable editors. They work right out of the box. Heck, you can opt for any editors and compile your games in the command prompt of your choosing if you like.
Back in the day, if you have a Mac, always go for iOS first because setting up and compiling for Android was a hassle and need extra steps which sometime confusing for beginners. Nowadays, we can fire up Android Studio and start coding in C++ straight away.
Truth be told, for bigger, complex games which require to use specific device functionalities or having to use specific platform APIs, since our games will be on iOS and Android or other platforms, we are required to code not just C++ but in Objective-C and Java or other platform specific languages on top of the game core language.
Thus, the question pops up on how about doing that? Is it possible to interact between languages? Is Cocos2d-x can handle it? Can C++ play nice with others? It is also the common question in Cocos2d-x community too.
As the community goes bigger and more games released using it, more SDKs and libraries are Cocos2d-x friendly. We can integrate it seamlessly without a hitch.
But for most SDKs are usually intended for use in specific platform apps, the language used is always specific to that platform. For example, take a look at Spotify SDK below:
As you can see, there is no SDK for Cocos2d-x or Unity or any other game engines. It doesn’t mean you can’t integrate Spotify in your game for whatever reason it is.
For the next couple of posts, we will look into this specific problem. And the answer is YES, we can do it, we can integrate those SDKs and make it play nice with our Cocos2d-x framework.
That’s about it, a brief introduction of Cocos2d-x and our game development scene in general. We will get our hand dirty as we go straight to codes and more codes :)
Stay tune and happy coding!