During the last couple of evenings I’ve been looking into the alternatives of developing cross-platform games, from another angle than “do everything yourself”. The angle I have for this post is that it should be simple and have a good tools/content pipeline, and the cheaper the better. My goal with this post is to share my findings and opinions. Followed are the ones that I have been digging into the most and that have competed within my attention space. As you will see, this article takes a bit of a branch in the end.
Shiva 3D
+ Deploy to many platforms, including console (with 2.0)
+ Native plugins
+ Basic version is affordable and you get a lot for that
- Difficult to navigate
- Seems to be playing catch up with Unity
- Might not be that suitable for 2D games
Unity
+ Deploy to lots of platforms, including consoles
+ Analytics
+ Large community
+ Addons
+ Very integrated and easy to access different thing
+ Lots of tutorials
+ Code in popular Javascript or C# (static typing)
- Expensive
- Might not be that suitable for 2D games
AIR/Flash
+ All the goodies from Flash community (this one is a HUGE plus).
+ Lots of 3D/2D engines already made
+ Free
+ FlashDevelop - with integrated debugger
+ Deploy to lots of platforms, including iOS as noted here and here.
- Assembly shaders, but there are probably 3rd party libraries to simplify
- No console support
haXe/NME
+ Static typing - which helps ensure stricter code
+ Deploy to native with NME
+ Deploy and use Flash APIs
+ Apparently better optimized output than ActionScript 3
+ HxSL - shader language
+ Free
+ Faster build times than with ActionScript
+ FlashDevelop with integrated debugger
+ MonoDevelop and many other editors available, which means you can use a Mac (with debugging?)
- Might be a little more work than standard AS3 in certain cases
- Not sure how to deploy an AIR app to iOS/Android, but I’m pretty sure it’s simple once you’ve got a SWF file
Before exploring Flash on iOS I was pretty settled on starting to learn Unity and use that one for future games. But after tonight I am all for using Flash via either ActionScript3 or haXe. From what I’ve seen on the Adobe site and samples from other places this is the way to go. You get a simple platform that is quick to get started with, excellent for prototypes or 2D games. If you need more performance or want to make 3D games, you can dig into Stage3D or the shiny engines like Away3D. And best of all, you can easily deploy to iOS.
From what I’ve understood, using existing 3rd party AS3 libraries with haXe requires some extra work. But I have also seen in forums that Away3D, for example, is being used with haXe. And I also found some interesting views about this programming language.
FlashDevelop debugging
I ran into at least two gotchas when testing this out. First I was missing a Java runtime on my Windows PC, so I needed to install that and naturally picked the 64-bit one, this one won’t work with the debugger. Then in the file `FlashDevelop\Tools\flexsdk\bin\jvm.config’ you need to point the Java path to a 32-bit JRE like this:
java.home=C:\Program Files (x86)\Java\jre6
It is also a good practice to set the `JAVA_HOME’ environment variable in Windows to the bin folder:
C:\Program Files (x86)\Java\jre6\bin
Summary
Unity is a proven tool and has a good pipeline for creating games. The downside with such a tool is that you can get a bit locked in to a certain way of doing things, and you have to take detours to make something real simple. Comparing with AIR/Flash runtimes, you do have a lot of choice. You could make your game with a simple 2D engine or go with a full suite which competes with the power of Unity or even more!
If you have a game already made in ActionScript and you want to start making money from it, simply get it into FlashDevelop and deploy it to iOS/Android, for example.
One interesting thing with haXe is that you could build a multiplayer game and share the same code-base with client and server, and even write your command line tools with it.
I believe it is very good if you are developing something new. If you want it to be future proof you make sure that you only write code that only uses the common true cross-platform APIs with it, but I suppose that might be a bit limiting.
Food and eating habits are very often up to discussion. Especially if you have an unorthodox method that you follow or embrace.
I often get asked about the “Warrior Diet”, and it is of course difficult to explain the whole concept of the diet and convince someone about it during just a couple of minutes. And why I have come to the conclusion that it is a really good diet - after spending about a decade on health and training issues. Maybe because it is so dead simple - it is hard for people to grasp the concept.
After I’ve explained it though, the most common response I get is: “Wow! I could NEVER go a whole day without eating”. That is probably the most difficult stepping stone for anyone, to be able to change routines.
I will share a link to Ori Hofmekler’s site. Ori is the origin of the modern “Warrior Diet” and has written a book with the same name - it contains references to some science reports - which makes it a very respectable book, at least to me. The website contains lots of free information - I say enough to get all the basic information about the diet. The book has some more to it - from history, to dishes and even training - all related to WD.