The Great Journey – The Fall of cocos2d-xna

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!

Dev Diary Updated for UWP and Android – iOS Coming Soon

Woo! Another update out for Dev Diary and here is what’s new:

Windows 10 (UWP) Version

  • Added shortcut to open articles in browser


Android Version 1.1

  • Added support to save app to SD
  • Added shortcut to open articles in browser


Aside from the obvious “fixed minor stuff”, the list is a little short but as you might guess, the app for iOS is on its way out! That’s right! It has already been submitted and soon those of you on an iOS device will be able to download the app 🙂

So just to go through real quick, with a shortcut you can now open articles in browser if you’d like (some prefer this and that’s cool) or make it a little easier to share articles (SPOILER: Feature coming soon!)


Stay tuned for cool updates coming out real soon.


Download for Android

Download for Windows 10 (UWP)

Band-Aid Update Released – Android and Windows (UWP)

It’s been some time now that Band-Aid has been available for Windows, Android, and iOS. And today I’m pleased to announce that there are updates available now, yes right now!

At the moment, the update is available for both Android and Windows (UWP, which is fancy for PC and mobile). Don’t freak out, there’s an update for iOS going through the usual week long Apple review process, that should be out soon and I’ll make sure to post an update on that once it’s out too. 🙂

So you may be wondering…what’s new in this super awesome update?

Well for Windows, the version has bumped up to and Android has bumped up to 1.5. Here are the changes below:

Windows (UWP) Version

  • Fix for Battery Percentage not displaying when Personalization is not turned on
  • Battery theme has been optimized to update more efficiently
  • Seconds have been removed from the timestamp in the Band-Aid tile


Android Version 1.5

  • Fix for Battery Percentage not displaying when Personalization is not turned on
  • Battery theme has been optimized to update more efficiently
  • Fix orientation issues with the Personalization settings
  • Seconds have been removed from the timestamp in the Band-Aid tile


That’s about it folks for this update, be back soon for the iOS update.

Download for Android

Download for Windows (UWP)

Band-Aid Released for Android

Woo! Finally, Band-Aid makes it’s way to Android!

After quite some time, scheduling and other projects, we finally released Band-Aid on Android. It aims to bring the same amazing functionality that exists today that the Windows 10 Universal app offers.

There are some differences under the hood though that I had to keep in mind about when developing the app for Android, biggest difference is Doze. Turns out Doze is very good about putting background services into a “stand-by” state. Which causes background services to not fire off when expected. Instead, we rely on Intents to help kick the service out of its “hibernated” state. One cool thing that Android offers is listening to battery change events, and as you may guess, Band-Aid is a lot about battery changes on the phone. So combined this with a background service to try to deliver a more reliable reading when you view the phone’s battery percentage from the Band.

Download Band-Aid for Android

There will be an update coming out soon, as well as the iOS app! So stay tuned!

© 2024 Dev Diary

Theme by Anders NorénUp ↑