Cross platform vs. Performance

I’ve been working with a small team to build a cross platform game leveraging the Cocos2D gaming engine on iOS. I chose this platform for a few reasons:
1) There is a really good book explaining the basics of game programming and the libraries.
2) There seems to be a good number of other people using this engine
3) The game I am working on is a turn based strategy game and this engine seems to support that
4) I wanted to create a hex based map and had read that Cocos2d supported this
5) I had heard that it is cross platform capable with Cocos2d-X

Given those four reasons I have started looking around on StackoverFlow for more information on the cross platform nature of the libraries. Previously I had only found a single wiki that talked about cocos2d-x. So I was a bit worried already.

After a bit of reading, I didn’t feel any better or any worse for that matter. The biggest concerns that I have found in my readings are as follows:
1) Cocos2d doesn’t really support hex based maps (so I’ll change my design)
2) Cocos2d-x is really a C++ wrapper which requires that you code in C++ for iOS too (doesn’t seem too painful yet)
3) Like all cross platform development this is going to be hard (and will probably take a performance hit!)

Given those three findings, I am trying to decide, is it worth starting from scratch with a cross platform game and design? Will I learn enough, so even if the game is a bomb, the overhead will be worth it?

What do you think? Do you code for multiple environments upfront, or port your app once you have a success?

Games on rails

The popularity of the unreal engine on iOS can be seen by the success of games like Infinity Blade and Batman Arkham City. These games are bringing the excitement of combat games to that little device in your pocket; however these games are primarily another example of games on rails. Guiding your players thru a series of battles where your are blocking, hitting and doing combos. Players learn to do patterns to beat the hordes of baddies, in order to gain experience and loot which can be sold for upgrading your skills.

You can’t fight the popularity of the engine, but are these games really showcasing the power of the unreal engine? The beauty of the engine can’t be denied! The shading leads to some stunning vistas, while keeping the game play from completely degrading.

Is the reason that the popular unreal games are all on rails that iOS devices are not really created for good game input? Or is that we, as developers, are struggling with new game play mechanics that can leverage the beauty of this engine?

Are Certificates worth the hassle?

Back when I first started programming there were only three environments you could program for A) Main Frames, B) Mini computers, and C) Personal computers. Given that A & B where tightly controlled by people in suites and ties, and no respectable business used C for anything that could impact their business, there was no need for Certificates. Even today the locked down world of mainframes and midrange computing has their own internal controls which doesn’t require certificates to be used.

More and more, however, security certificates are becoming the norm in programming. Websites need them to ensure that you are access the site you think you are on, and not some phishing site. Even Apple is enforcing certificates in OS X, and perhaps Microsoft will require them for Windows 8. But in the world of mobile phones, you need a certificate to provision anything. It seems that the complexities of security require that not only do you have a certificate, it needs to be updated periodically to show that you are who you are, and oh yeah that you paid for your rights on the iOS store.

There are also multiple different types of certificates: Developer, Distribution, Ad Hoc, and who knows what else… This means that as an app developer I feel that if I am not putting out a new version of my app every few weeks, that I will forget the complexities of ensuring that all of the various certificates and profiles are current and setup correctly. I personally find that when I move from one PC to another I invariably get it wrong, and have to start over getting all the certificates resubmitted and recreated.

Does this happen to you? Do you feel that having a certificate on an app makes it more secure? Would you install a piece of code on your phone or tablet that didn’t have a certificate? Would you immediately delete it, just because the certificate expired?

Are they worth the hassle?