Finally, a story to share that isn’t about a new release or update for an app or game. I decided to sit myself down and start telling the wonderful story of how I landed on using cocos2d-x after using cocos2d-xna and Xamarin for a couple years. It’s a bit of a long story, so I decided to break it up into “chapters” or separate posts. (Probably two or three)
About a year ago I ran into a few problems, Windows 10, iOS 9, and an expired Xamarin Subscription.
A few things happened, iOS 9 came out and caused many apps previously made with Xamarin to crash pretty much immediately when you launch the app. My Xamarin subscription had already expired. This was pretty bad, and a sign that “silver bullet” frameworks, like Xamarin, were not what they were all cracked up to be. To Xamarin’s credit, they did quickly get a fix out and offered a very good explanation for the crashes. Unfortunately, it required developers to update their version of Xamarin, and in my case, renew a license just to get the update.
As you might guess, this made writing games natively, far more reliable and affordable, and most importantly, attractive again. These type of issues probably would not have happened if I had originally made the game for iOS using Swift and SpriteKit or Java and OpenGL for Android.
The attractiveness of going away from Xamarin was irrelevant at the time, what was more important was figuring out the quickest way to get games and apps back up and running on iOS 9. This led me to sadly paying up and renewing the license so I could update the apps with the latest version of Xamarin. A $300 bug can leave quite the sting.
After quickly pushing updates out to fix the crashing, I was left wondering “What if this happens again? How can I be better protected from something like this?”. First thing I had to consider, cocos2d-xna. You see, cocos2d-xna was the game engine that was picked because of how easily games could be ported over, using Xamarin and MonoGame.
Truly building a game for multiple platforms under one codebase. It was awesome, it was fun, it made development very magical. Until iOS 9 and eventually, Windows 10 came along.
It was obvious continuing with Xamarin would be expensive, but that also means changing from cocos2d-xna to a different game engine. What could possibly replace this? Could there be another cross-platform game engine out there? After this fiasco, does it even make sense to continue down the cross-platform path? There were so many questions running through my mind, and so many more answers I needed to find. One thing was for sure, cocos2d-xna’s time was beginning to run out and dependence on Xamarin needed to change.
The search was on for the next great amazing game engine, there were a ton of requirements that this new engine needed to fill in: support nearly the same amount of platforms, easy to implement, preferably in a more comfortable language like C#, strong support and community, just to name a few. As I started this search, something else crossed my mind, Windows 10. This is something that I know is going to come out soon and would love to be ready for and have games ready to jump on the platform.
This is where I hit the pause button in this story. I can only write for so long without a distraction, and I’m pretty sure the same is true for reading articles online. Look out for the next “chapter” coming soon!