RSS
 

Some Marmalade, please…

08 Jul

marmalade

I’ve been experimenting some stuff on mobile development, specially for iOS and Android…

Although I managed to build solid applications for both platforms, I’m always annoyed that I can’t use my normal development routines…

iOS

Stuck with XCode (which is dreadful) and Mac in particular (which I hate, to be honest)… To minimize by grief, I used the excelent Synergy, which enabled me to use my keyboard and mouse on the Mac and PC at the same time, without using ugly and non-functional KVMs, since it’s a fully customizable software solution… After I got that working, I still use Visual Studio with a remapped directory to do all the editing of code on the Mac… Basically, I just use the Mac to compile and debug.

But, even with this setup, I’m still stuck with Objective-C, which is horrible, and a unwieldy framework… Although I can work with that, it’s far from optimal…

Well, at least it has the advantage of being able to compile C and C++ code, which enables me to port parts of Spellbook (my engine) to it, making it a bit easier doing multimedia applications, unlike…

Android

Java… really, think that says all… Although Java isn’t as bad as Objective-C, it’s still a far cry from pure C++ in terms of code development (at least for me… I’ve got 15 years of C/C++ experience, and only 3 or 4 of Java, and never in the fields of multimedia).

The Android framework is slightly nicer than the iOS one, and Eclipse is much better than XCode, so it has that going for it… but still… Java…

 

So, until now, if I wanted to do a cross-platform game, I’d have to go through an existing engine like Unity, do two wholly different implementations of the game (just reusing assets), or ignore one of the platforms (which sounds like a terrible idea)…

Enter Marmalade… Marmalade is a framework that wraps most of the functionality of mobile frameworks and compiles ARM code directly, making the games developed with it able to be deployed in several platforms (iOS, Android, Bada, Symbian, webOS, with more coming soon)… And the best part is that you can develop and debug the games with Visual Studio (on the PC) or XCode (on Mac), using an ARM emulator… The build process is quite simple, and deploying the various versions can be done with some scripts and one button…

It’s really a good product… Initially, you have to edit a text file that describes some options of your project (files that are part of it, etc)… Then, (after you install Marmalade properly), you just double click the file and it generates a Visual Studio or XCode environment that you can work with like it was any normal application.

My experience was so good, I had my engine (all 200k lines of it) compiling under it in less than one day… Of course, this is just compiling, not working, since I have to implement an OpenGL ES layer to replace my normal DirectX layer… Anyway, got some of that working in one additional day (I got some amazing colored squares on screen, powered by Spellbook, with FFP “shaders” imported from Reality files (my own format), with some simple behaviors).

They even replace the C stdlib in the ARM projects, so that you can use the normal C functions you’re used to!

 

If anybody is looking into a good cross-platform development environment, I can recommend it… It has its drawbacks:

  • Documentation is terrible, but fortunately not very necessary, since you’re (hopefully) programming with the C stdlib, STL and OpenGL ES.
  • The code footprint seems to be a bit big, but it probably can be cut down with some options (I optimized for speed, not size)…
  • Price… There’s a 90 day evaluation license, but after that you have to pay for it… There’s Basic subscription, that costs $150 USD/year (which is more than the budget of loads of indies I know), and only supports iOS and Android, besides having an ugly splash screen when the game starts… And then there’s Standard, which supports all the platforms (except for the Beta ones) and doesn’t have the splash, for an hefty price of $500 USD/year… The price is a bit steep for indies, but if this just has to be weighted between the cost of doing different applications for different platforms or having a “one-size-fits-all” approach… Of course, Unity is less than that for indies, but it has its own set of restrictions for development (I don’t like GUI-based game engines, maybe that’s just me). The yearly fee might also be a deal breaker for lots of people, even if they have the money to spend on the license…They have an “App Program” that might ease the financial burden (or even remove it), but they’ll take 20% of your profits (although they do the distribution in all stores, etc) and you have to be approved by them…

 

The financial issue is the only thing that really detracts from the whole concept, and I think that if you’re serious in going indie, it might be worth the investment… Take a look at the evaluation and see if it’s for you! Smile

 
2 Comments

Posted in Games

 

Leave a Reply

 
*

 
  1. Graham

    November 6, 2014 at 2:54 pm

    Thanks for this page. I was wondering if a successful Marmalade compile can occur with DirectX or whether an OPenGL layer needs to be implemented. Thanks in advance.

     
    • Covenant

      November 6, 2014 at 4:00 pm

      You’re welcome, glad it helped!