Monday, May 7, 2012

The Cross Platform Problem


One of those problems I have struggled with desperately over the last several years is the platform problem. When I made Keptosh, I built it with AGS. This made sense at the time. AGS is a Windows only Adventure Game engine. Work is currently underway to change this and over the years many different versions have surfaced that allow users to play under Linux or OSX. However, this support has not kept pace very well with the main engine and it has left behind things like plugins. Back in 2003 though, it didn’t matter. No one played games on anything but consoles and Windows PCs. The idea of an amateur game on a console at that time was a bit of joke, as there was hardware involved and fees that ranged into the tens of thousands of dollars. The big three didn’t really want anything to do with having amateur gaming on their consoles. 

Today though, it is a different story. Nintendo, Microsoft, and Sony have all built platforms for amateur game distribution into their consoles. More and more games are being released for OSX and since then Macs are in nearly four times as many homes. Not to mention the mobile revolution. So, we now need to target between up to seven platforms right out the gate when building a game. Windows, OSX, iOS, Android, Wii, Xbox 360, and the PS3 all dominate the gaming market simultaneously right now. Those seven even make up a conservative estimate. Many amateur games are releasing with Linux versions and some developers are beginning to target Nintendo and Sony handheld systems early on. For the amateur developer this is a massive undertaking if you build natively. It is generally impractical for a single developer to tackle this alone. 

This is where engines like Unity 3D come in. Unity supports multiple platforms right from the start. It is an amazing piece of software. The editor is available on both Windows and OSX and the learning curve for the doing basics in the editor is not incredibly steep. A large community is available to help you through the more complex aspects of the engine. The one glaring problem for Unity 3D for me though is that pesky 3D part. I like my pixel art. I have been on the lookout for a 2D editor that accomplishes the same tasks. So far all I have found is Stencyl Works. Unfortunately, all they target are iOS and Flash. Android and HTML5 are still in the works for the engine. There are several alternatives ways to use Unity, a 2D Toolkit exists. I have also created a AGI styled 3D model in Blender which shows some promise. There is also the Minecraft approach to graphics in an engine like Unity. It seems that this is the most likely road for me to travel down for the time being. In the future I am hopeful that new engines will arrive that allow cross platform 2D development. I think the real challenge here for the engine developers is continuing to support all of those different platforms. The fact that Unity is such a performance champ on all platforms it runs on says a lot about the engine too. Plenty of tools exists to create simplistic apps on Android and iOS, but they sacrifice performance for their cross platform abilities. Not to mention that these platforms rarely tackle anything but mobile and flash. For now, it seems that Unity 3D is my primary engine of choice. It’s not so bad to be in a position where you are faced with an engine that is overpowered for your tasks. 

No comments:

Post a Comment