Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I've worked for some time with Unity3d and found it's 2D part with OnGUI() or GUITextures too clumsy. Also, even a smallest game done on Unity3d is at least 10MB download which is just too much for a 2D game.
So, I'm currently looking for an engine for 2D. I've tried Cocos2D but it's iOS only and I wouldn't like to rewrite everything into another language for Android (so, e.g. Java port of Cocos2d for Android is not an option). Instead, I want to write the code once and with least hassle deploy it on iOS, Android and possibly Windows Phone 7. I have both Mac and Windows.
Just to be more detailed, here are my requirements to the engine:
must be cross-platform
must be efficient
should be C++, Java, C# or Objective C since I'm comfortable with them and NOT Flash, Javascript, HTML5 since I am not a web developer
must have a large community, tutorials, additional libraries which cover most of the stuff you'd have when developing on iOS or Android directly (in-app billing, facebook etc.)
the final delivered package must be not too large
the engine can be free, but I also wouldn't mind paying a reasonable price
I've found the following engines:
Marmalade (and IwGame engine on top of it) - C++, found overall very positive reviews of Marmalade but not sure about IwGame. EDIT (March 2013): Looks like Marmalade SDK now includes Cocos2Dx and some in-built IDE which makes it much better (and costs $150 per year for indie dev which is ok with me).
Corona SDK - Lua (efficiency doubtful), also needs internet connection to compile code
Cocos2d-x - C++, received lots of reviews from developers, mostly positive and many think it's best for 2D
Particle code - Java+Eclipse, found no reviews or comments
Moai - Lua, coudn't find any reviews/opinions on it
Monkey engine - seems to have too few features
Haxenme - it's Flash, I've never used it and don't want to
use Unity3d but with 2D packages like 2D Toolkit
ports of SDL to Android (also here) and iOS - doesn't look to have much support or current development (?)
GLBasic - Basic language, I don't like it
playN - seems to be early in development (?)
Gamvas - HTML5, doesn't look like a mature engine to me
Ignifuga - Python, also doesn't look mature
ORX - not sure if it's still developed (?)
Construct 2 - reminds GameMaker, might be ok for rapid prototypes but definitely not for industry-level games
XNA and then port the game using ExEn (would need Mono Touch to port to iOS and Mono for Android to port to Android) - C#, and is probably more thought for folks coming from Microsoft products like xBox (I come from Android). Also, those Mono tools cost $800 in total for small developers
Impact - JavaScript, uses HTML5. I'm not much into JavaScript (e.g. preferred C# on Unity3d), also not sure about efficiency since it runs in the browser (?)
GameMaker - own scripting language GML and I actually remember this one as a tool for non-programmers. Has it actually grown into a real engine, I mean for serious development?
AppGameKit - C++, yet seems to be still pretty new. Haven't found any reviews on it
use Cocos2D and Objective C to develop for iOS only and then make an APK for Android out of it using Stella SDK. Has anyone done this? I'm pretty sure there will be limitations, and how about Google's in-app billing, AdMob and Facebook integration on Android?
Moscrif - JavaScript, looks like it's more for former web-developers
Starling - Flash 11, i'm not much into Flash
ND2D - not yet 1.0, does it have many features?
So, I'd be happy if you could comment from your experiences with the engines and suggest which one in the list (or anything else that I've missed) is the best for the described requirements. I also may be wrong with my first impressions about some of the engines.
I'm currently thinking of Marmalade+IwGame as the best option but since I don't have much info about Cocos2d-x and Particle code, I am not really sure about it.
Thank you!
EDIT (June 2013): So far I made 2 cross-platform 2D games and used Unity3D with 2D Toolkit plugin for both. For the game with simple GUI I used a simple self-made GUI system based on Unity's own. For more complex one (e.g. where GUI elements can overlap) I used the NGUI plugin. Recently 2D Toolkit added some more classes for GUI which is very handy since one had to use 2 different systems for texture atlases when combining NGUI with 2D Toolkit. I'll definitely try that one in the next 2D game. The main reason for choosing Unity3D for 2D games was that I already was deep into Unity3D both in terms of experience and accumulated code snippets for re-use. Also, I purchased Unity3D pro (with Android Pro and iOS Pro) for 3D games and it made full sense to just pay additional $60 for the 2D Toolkit to get 2D games also covered. I so far don't regret my decision, it seems to have been optimal for my case. The only thing which gave me headache was adding social features with the Prime31's plugins (Android & iOS social plugins) but I assume that their bugs are not the fault of Prime31 but of Twitter/Facebook instead, so I probably would see the same bugs on any other engine or plugin.
EDIT (Jan 2014): I guess with Unity 4.3 the answer to my question is pretty obvious now: the Unity's new sprites system and maybe also 2DToolkit totally beat anything else, especially for people who have (like me) been on Unity for a while and purchased the Pro version with add-ons.
LibGDX is one of the best engines I've ever used, works on almost all platforms, and performs twice as fast as cocos2d-x in most tests I've done. You can use any JVM language you like. Here's a 13 part tutorial in Java, and here's a bunch using jruby. There's a good skeletal animation tool that works with it here, and it has baked in support for tiled TMX maps as well. The ui framework is awesome, and it has a scene graph and actor style API similar to cocos2d scenes, sprites and actions. The community is awesome, updates are frequent, and the documentation is good. Don't let the java part scare you, it's fast, and you can use jruby or scala or whatever you like. I highly recommend it for 2d or 3d work, it supports both.
I've worked with Marmalade and I found it satisfying. Although it's not free and the developer community is also not large enough, but still you can handle most of the task using it's tutorials. (I'll write my tutorials once I got some times too).
IwGame is a good engine, developed by one of the Marmalade user. It's good for a basic game, but if you are looking for some serious advanced gaming stuff, you can also use Cocos2D-x with Marmalade. I've never used Cocos2D-x, but there's an Extension on Marmalade's Github.
Another good thing about Marmalade is it's EDK (Extension Development Kit), which lets you make an extension for whatever functionality you need which is available in native code, but not in Marmalade. I've used it to develop my own Customized Admob extension and a Facebook extension too.
Edit:
Marmalade now has it's own RAD(Rapid Application Development) tool just for 2D development, named as Marmalade Quick. Although the coding will be in Lua not in C++, but since it's built on top of C++ Marmalade, you can easily include a C++ library, and all other EDK extensions. Also the Cocos-2Dx and Box2D extensions are preincluded in the Quick. They recently launched it's Release version (It was in beta for 3-4 months). I think we you're really looking for only 2D development, you should give it a try.
Update:
Unity3D recently launched support for 2D games, which seems better than any other 2D game engine, due to it's GUI and Editor. Physics, sprite etc support is inbuilt. You can have a look on it.
Update 2
Marmalade is going to discontinue their SDK in favor of their in-house game production soon. So it won't be a wise decision to rely on that.
You mention Haxe/NME but you seem to instinctively dislike it. However, my experience with it has been very positive. Sure, the API is a reimplementation of the Flash API, but you're not limited to targeting Flash, you can also compile to HTML5 or native Windows, Mac, iOS and Android apps. Haxe is a pleasant, modern language similar to Java or C#.
If you're interested, I've written a bit about my experience using Haxe/NME: link
V-Play (v-play.net) is a cross-platform game engine based on Qt/QML with many useful V-Play QML game components for handling multiple display resolutions & aspect ratios, animations, particles, physics, multi-touch, gestures, path finding and more. API reference
The engine core is written in native C++, combined with the custom renderer, the games reach a solid performance of 60fps across all devices.
V-Play also comes with ready-to-use game templates for the most successful game genres like tower defense, platform games or puzzle games.
If you are curious about games made with V-Play, here is a quick selection of them:
Squaby: a tower defense game
Chicken Outbreak: a platformer like Doodle Jump
Blockoban: puzzle game
Crazy Elephant: a game similar to Angry Birds
Snowball Mania: multiplayer action game
Blitzkopf: brain game
(Disclaimer: I'm one of the guys behind V-Play)
Here is just a reply from Richard Pickup on LinkedIn to a similar question of mine:
I've used cocos 2dx marmalade and unity on both iOS and android. For
2d games cocos2dx is the way to go every time. Unity is just too much
overkill for 2d games and as already stated marmalade is just a thin
abstraction layer not really a game engine. You can even run cocos2d
on top of marmalade. My approach would be to use cocos2dx on iOS and
android then in future run cocosd2dx code on top of marmalade as an
easy way to port to bb10 and win phone 7
I find a nice and tidy Wave game engine few days ago. It uses C# and have Windows Phone and Windows Store converters as well which makes it a great replacement of XNA for me
and what about LibGDX from BadLogicGames?
Check out Loom (http://theengine.co) is a new cross platform 2D game engine featuring hot swapping code & assets on devices. This means that you can work in Photoshop on your assets, you can update your code, modify the UI of your app/game and then see the changes on your device(s) while the app is running.
Thinking to the other cross platform game engines I’ve heard of or even played with, the Loom Game Engine is by far the best in my oppinion with lots of great features. Most of the other similar game engines (Corona SDK, MOAI SDK, Gideros Mobile) are Lua based (with an odd syntax, at least for me). The Loom Game Engine uses LoomScripts, a scripting language inspired from ActionScript 3, with a couple of features borrowed from C#. If you ever developed in ActionScript 3, C# or Java, LoomScript will look familiar to you (and I’m more comfortable with this syntax than with Lua’s syntax).
The 1 year license for the Loom Game Engine costs $500, and I think it’s an affordable price for any indie game developer. Couple of weeks ago the offered a 1 year license for free too. After the license expires, you can still use Loom to create and deploy your own games, but you won’t get any further updates. The creators of Loom are very confident and they promised to constantly improve their baby making it worthwile to purchase another license.
Without further ado, here are Loom’s great features:
Cross platform (iOS, Android, OS X, Windows, Linux/Ubuntu)
Rails-inspired workflow lets you spend your time working with your game (one command to create a new project, and another command to run it)
Fast compiler
Live code and assets editing
Possibility to integrate third party libraries
Uses Cocos2DX for rendering
XML, JSON support
LML (markup language) and CSS for styling UI elements
UI library
Dependency injection
Unit test framework
Chipmunk physics
Seeing your changes live makes multidevice development easy
Small download size
Built for teams
You can find more videos about Loom here: http://www.youtube.com/user/LoomEngine?feature=watch
Check out this 4 part in-depth tutorial too: http://www.gamefromscratch.com/post/2013/02/28/A-closer-look-at-the-Loom-game-engine-Part-one-getting-started.aspx
I've tried AppGameKit, It's both c++ and Basic.
It's very easy to code 2d games in the Basic varient, with physics, collision and heaps more.
It's also in active development, and really cheap (65$).
The main problem is that it's really hard to compile for Android (you need to download heaps of files and follow difficult guides and things like that)
My opinion is that it isn't yet good enough for commercial use, but is good for indie programmers
It's got a medium size community
I currently use Corona for business applications with great success. As far as games go, I'm under the impression that it doesn't provide the performance that some of the other cross-platform development engines do. It is worth noting that Carlos (founder of Ansca Mobile/Corona SDK) has started another company on a competing engine; Lanica Platino Engine for Appcelerator Titanium. While I haven't worked with this personally, it does look promising. Keep in mind, however, that it comes with a $999/yr price tag.
All that said, I have been researching Moai for a little while now (since I am already familiar with Lua syntax) and it does seem promising. The fact that it can compile for multiple platforms, not limited to mobile environments, is appealing.
Multimedia Fusion 2 is also a worth contender, considering the complexity of games produced and the performance realized from them. Vincere Totus Astrum (http://gamesare.com) comes to mind.
Recently I used an AS3 engine: PushButton (now is dead, but it's still functional and you could use something else) to do this job. To make it works with Android and iOS, the project was compiled in AIR for both platforms and everything worked with no performance damage. Since Flash Builder is kinda expensive ($249), you could use FlashDevelop (there is some tutorials to compile in AIR with it).
Flash could be an option since is very easy to learn.
Related
Are there any new options for converting a spritekit game to android? It seems the only options are to recode everything in Java or to use Cocos2D, LibGDX, etc.
Unfortunately ... no :{
And the cross-platform SpriteBuilder with the Apportable service that let you convert a Swift Cocos project to Android is no longer available (they got bought out by Google I believe).
SpriteBuilder is still available on GitHub but it's not active afaik and is abandoned.
So... what to do?
I would focus on iOS... you can make your game "cross platform" by converting to macOS and tvOS... This is where all of the money is in the market... Apple products...
If your goal however is cross platform, then you can look at Xamarin.forms alongside CocosSharp which will give you write once run everywhere games in C#
You also have regular Xamarin available to write gameplay code in C#, and share it across Android and SpriteKit wrappers written in C# as well.
Another thing to look at is Silver which has Swift wrappers for Android.. thus letting you port Gameplay code almost directly...
In all scenarios you will have to find another game engine for whatever Android solution you use..
IMO, developing with Swift for Apple is much easier and more fun than anything I've ever done with Android dev, even though I prefer Android devices (go figure), and since the revenue is higher it is sort of a no-brainer for starting up.
There are no easy options for supporting Android with a SpriteKit game, but with a little bit of work and not too much difficulty you can recode your game to use Cocos2d-x. I just completed such a project for my game. It took me about four months working half time. I've posted some tips here: http://doffen.org/porting-spritekit-to-cocos2d-x.
I would suggest to have a look here: http://processing.org/
and here : http://www.ricardmarxer.com/fisica/
Fisica is a wrapper of jBox2D for Processing and is quite easy to use. There are a few tweaks for android but nothing too hard.
I did it in the opposite direction (converting my fisica-based game to SpriteKit) and it was quite easy to create regex replacement to easily migrate to swift syntax.
I have game (of cards based on Contract Bridge) written in Qt (QML) for KDE, now I'm supposed to port the entire game to Android (with Android apapted UI of course). At first I considered to use Necessitas (a Qt port for Android) but found that it is still under development and is currently in 3rd Alpha. I'm new to Android development (as well as game development), while I have experience working in Java, C++ and web technologies like HTML5, JavaScript.
Hence based on my skills, I considered using MoSync. But I'm not sure if I'll be able to use any existing modules of game already developed in Qt (while in MoSync its possible to invoke C++ code from JavaScript and vice-versa), and since I didn't worked on the Qt version of the game, I'll first have to refer to that code and then I'll be working on Android version of the same. So I need suggestion that from where should I start. Also, I have 1.5 months of duration to complete the project (without any working hour constraints), so also suggest me if its a good idea to work from scratch using Android APIs.
Please let me know if I need to elaborate the question even further.
Thanks.
I recommend taking a look at V-Play (v-play.net). It's a cross platform game engine based on Qt/QML .
If your game is already written in QML, you have the least porting effort because you can use almost all of your existing code, and use V-Play QML game components for handling multiple display resolutions & aspect ratios, animations, particles, physics, multi-touch, gestures, path finding and more (API reference).
You can also take a look at Benefits to find out if V-Play satisfies your demands.
Qt is more cross-platform than ever now. instead of porting, just modify it a little and continue with Qt, then compile for iOS, Android, etc.
I'm developing an application separately for both Android and iOS using their native SDKs.
However, there's a some module in the application that should support basic 2D (it can also be 3D) abilities such as tilting, scaling, rotating of vector graphics + all kinds of optional fancy effects on simple textured planes for example.
I'd like to host this module inside some kine of a view and that its code will be shared between both the iOS and Android platforms, as much as possible.
I've been lurking around the web for all kinds of solutions.
First of all there's OpenGL, the problem is that I'm not familiar with coding for OpenGL and I wasn't able to understand if the code I will be writing with OpenGL will be shareable between the 2 platforms. It seems like no one actually had really tried to do it with NDK and such.
There are platforms like
a. Clutter (http://www.clutter-project.org/) - Which I couldn't find any example for its usage on mobile devices.
b. Platforms like Unity3D, though I don't think they could help me much because as far as I understand the whole application must run on their platform, and that's not what I'm looking for.
So, do you guys think that it is feasible to share 2d/3d code between the iOS and Android?
If so, is there any method you could recommend?
Or should I just go with each device's native method for 2d or 3d graphics?
Thanks!
Kivy: an open source cross-platform programming language for writing OpenGL-powered drawings, interfaces, visuals, anything, for Linux, Windows, MacOSX, Android and iOS. kivy.org
You can potentially drop using Android or iOS native widgets for Kivy widgets and you're apps will have the same OpenGL-powered interface on all platforms.
EDIT 9/27/11 1pm: I've done some more research. All in all, you should check out these 4 open-source frameworks for yourself and decide which one is best for you (I could list commercial frameworks, but those are easy to find):
Kivy (kivy.org)
Amazing GUI and Widgets library.
HaxeNME (haxenme.org)
Very nice 2D/3D API for making OpenGL graphics.
Amazing cross-platform support. The best of all the frameworks.
Unfortunately, no GUI or Widget library is built in though.
Qt Quick QML (qt-project.org)
Very nice 2D/3D API for making OpenGL graphics.
Similar to HTML, but for OpenGL. Already know HTML and JavaScript? QML (Quick Markup Language) includes basic necessities like text fields, radio buttons, check boxes, etc, which can be animated and controlled with event handlers. Animations, event handlers, etc, in your QML application are written in JavaScript; the difference is the JavaScript gets compiled instead of interpreted.
Qt Quick is really amazing; my personal favorite. Read up on Qt Quick QML then try the Animated Tiles app for Android to see Qt Quick's potential. The newest release of Qt (coming very soon) support iOS, Android, and Blackberry, and all desktop OSes. Windows Phone is a work in progress but will arrive soon considering that Qt Quick already supports Windows 8's Metro platform. Qt Quick is very nice, but it doesn't work on every single platform like HaxeNME does.
MoSync (mosync.com)
A hidden gem. This framework needs more exposure. The MoSync SDK provides a cross-platform OpenGL framework, an HTML/JavaScript framework similar to PhoneGap, a NativeUI framework for writing apps across platforms that use each platform's native UI widgets, and MAUI for writing C++ GUIs.
If you were gunna settle on just writing pure OpenGL, then I'd at least recommend checking out MoSync, as it provides a 1-to-1 implementation of OpenGL ES 1.0/2.0.
Also, if your app will be form based (not so much animated like a game), then PhoneGap might suit your needs. If you use the right features of HTML5, you can make apps that feel native (unlike the many horrible and discouraging examples out there). If you'd like to try an app made with PhoneGap that feels "native", try "Go 2012". The Go 2012 apps proves that if you use HTML5 correctly, you can take advantage of hardware acceleration across platforms (iOS, Android, Blackberry, and Windows Phone (I tested it on all)). The animations (scrolling, etc) in Go 2012 are all CSS3 hardware-accelerated animations. Don't let the poor quality of most of the app in the PhoneGap showcase fool you!
Use OpenGL ES and write the code in C. Write a NDK wrapper for Android. Theoretically, your open GL C code should be reusable between the 2 platforms.
Have you ever herd about small company name Adobe
Try using Air.
People do not appreciate the hard work that Adobe did, but it is the most strong cross platform available in market!
It support:
Windows with DirectX access to speed up your app, both in 3D and 2D.
Linux
Android (2.2 and above) with OpenGL background
iOS with OpenGL
BlackBerry
And many more... If you wish to work on the high level, use Air!
As the topic states - is there any technology that would let me write code for a simple commercial 2D game which could be then compiled to work well on Android, iOS and Web browsers or at least two of them (e.g. Android and iOS)? There is so much buzz about cross-platform nowadays that I was wondering if I'm missing something.
My goal (set by my producer) is to make this game for all of these three platforms, and so far I planned to use:
- Web browsers: Adobe Flex,
- Android phones: Java (since my favourite C++ is recommended only for short snippets),
- iPad/iPhone/iPod: Objective-C (are there any alternatives?).
It pretty much means re-writing the same source code three times. Is there any way to speed it up by using a technology that would work on at least both of them?
However, I don't want to use Adobe Flex for all three (though it's possible), because it requires Adobe AIR (works only with Android 2.2 and higher) and not a lot of phones have it (it's totally different with browsers where 98% of people have Flash).
I don't mind adding some platform-specific code for each version, of course.
Also, if you have any suggestions about choosing a fancier technology for any of the platforms (maybe some nice frameworks?), I'd really appreciate that, too.
Take a look at Corona and Moai both are Lua-based frameworks for game development targeting multiple platforms.
I would like to say that Multimedia Fusion was capable of doing this, but it isn't quite ready yet. There are currently a number of runtime exporters for the product which allow you to export your game to multiple target platforms which include flash, java and iOS at the moment. XNA and Android exporters are currently in the works. I should probably mention that I am only affiliated with these guys as a happy consumer of their products. It is probably worth checking it out even if they can't do everything you want yet. If it's not suitable for your needs it is still a very good choice if you wish to rapidly prototype your application.
See:
http://www.clickteam.com
On a side note, personally I would recommend against going down the js+html5 route, particularly if you are targeting mobiles. I should probably stress that it's simply an opinion I have and that there are plenty of people here who will disagree with me. In all javascript games I have played, I have felt the garbage collector. The issue is that without control over garbage collection it is free to run when it feels like, causing infrequent but very obvious pauses in the middle of your game. You can work around this but I don't see why it should be that difficult. I can definitely align with the ideals of being able to write the thing once and run it on all platforms, but I can't see it working just yet.
To offer some advice assuming you find no suitable tools for the job, your aim is to maximise reusability. This means all of your games resources and levels should be well defined as independent resources. For non-critical logic you can make use of embeddable scripting languages such as Lua, which will maximise your code reuse. C (or C++) code will also be reusable on a lot of platforms, and might be a good choice if you are familiar and confident with the language.
I'm personally using Phonegap and Zepto.js. But you may have more luck with jQuery mobile. Phonegap is nice because its website will compile the apps for you.
1) If you write your game in C++ you can use it for iPhone & Android (NDK) as well. Preferably, you write your game engine in C++, than you can use a OS specific layer for UI stuff..
2) Implement your game in HTML & Javascript. iPhone/Android users will have to use a webbrowser to play your game. For iPhone, you can even create a launcher, that looks like an app, but actually is a webview with HTML & Javascript
Unity3D should be able to do this for you, if you purchase some extra sprite addins to handle 2D (like Ex2D or SM2 or Toolkit 2D). Also right now until Apr 8, the iOS and Android license is free.
Game Maker Studio. It has a package that let's you deploy on all of the platforms you outlined.
http://www.yoyogames.com/gamemaker/studio
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
I tried corona sdk free edition, i really liked it. The problem is, that im not so good developer to use corona paid edition for my small project, i'm aware that i'll not earn my money back. Are there any free alternatives, like Corona? I'd prefer lua scripting, proper IDE and some other cookies.
Question two: Is there any way to publish app made with corona free edition on android market? Maybe there are some companies that provide publishing apps if i share my source with them.
Moai is open-source and uses Lua. I love Corona and put out an iPhone game I developed using it, but I'm planning to explore this new option for my next project.
We switched our studio from Corona to Moai last week. Corona is good for beginners learning Lua but has significant performance limitations that we could not overcome. It took me a week to port our Lua code over and write an extra management layer but overall we are much happier with an open source platform like Moai. I had a couple of questions on Moai which were answered promptly in their forums.
What finally pushed me over the edge was the Moai game Crimson Pirates which was #1 last week. See this video and download the game to see what I mean by performance in Moai. You couldn't write a game like that in Corona and get good performance.
Not sure if the Corona/Flash connection is a good thing. Flash may be popular but it's held in very low esteem by most game developers. When I challenged Walter on the performance issue, he didn't have any good answers. At least with Moai if I don't like the performance I can look at the code myself.
You may want to try Gideros Studio, which is free, and has an IDE. It includes some goodies like font creator and texture packer also.
If you send an email to the developers, I believe they'll also help you with your project.
There are Corona, Gideros, Moai, and LÖVE. Here is a review.
The other SDK's mentioned are also Lua-based and work much in the same way as the Corona SDK, however, Corona has had lots of time to mature, and is co-founded by Carlos Icaza and Walter Luh, both of whom are pioneers in the mobile industry (they have worked for Macromedia, Adobe, Apple, the list goes on, etc. etc.)... In fact, they've had their hands in industry-leading software that many of you probably use on a regular basis (Illustrator, Photoshop, the list goes on...)
The Corona SDK is also growing an amazing pace, so you can be confident that it's going to stick around for a while.
And to answer your final question, no, you cannot build for distribution using a trial membership with Corona. The trial, however, does not expire.
Moai is open source, and designed for pro game developers. It needs more work on documentation but if you are experienced you can generally find your way around it, and the forums are good at responding quickly.
Corona is aimed at beginners and is a closed source product. If you are a beginner, you are better off sticking with Corona or GameSalad. Bungie is using Moai. You don't see big studios using a closed source solution like Corona, mostly beginners and indie devs.
Moai! is awesome! It's a great alternative to Corona and if performance is a problem you can always get into the source code and address it yourself.
I've personally contributed to Moai (upgraded Box2D to the latest version). Their team was quick to integrate the changes in addition to some bug fixes. They're moving really fast and it's getting better every day.
At first I was hesitant writing everything in Lua, so I took Moai for a spin by porting on of my existing games on iPhone B.I.T.S Pinball written with my own engine in C++. I was pleasantly surprised that not only was it almost just as performant but MUCH faster to re-implement and cut way down on the code. Lua coroutines are like magical pixie dust.
If you are looking for an open source alternative to Corona, as others have noted, the Moai open source game framework is making a lot of progress and a number of experienced game developers are using it. I switched to Moai in since November and it's basically an open source, high performance game engine with Lua.
Moai might not be suitable for a beginner though. I'd stick with Corona Free edition if I was just getting started, then switch to Moai when you are 100% sure you can create a good game.
the free open-source thing of MOAI is just a (big) added bonus to its capabilities.
It's syntax is similar to corona due the fact they both usa LUA as wrapper, corona has a better number community, tutorials and DOCS are very well spreaded all over the net. Moai just lacks of them if you don't consider the examples on "samples" directory of the SDK and the few examples on their forum. Corona workflow is amazing, i can work with IntelliJ Idea and have both auto-completion on LUA (this works also in MOAI obviously) and Corona itself, plus i can run the output straight on the simulator.exe (time saving!)
Moai is more for advanced people, it's updated on the fly everyday but again, you really should check it and spare some time with it, you won't regret it!
I second the call to check out MOAI! I've done 4 titles with MOAI so far, and won't be stopping any time soon .. MOAI absolutely kicks ass!
Also check out LOAD81, which is a similar effort albeit with SDL as the target environment: http://github.com/antirez/load81
Please note that the Corona platform is totally free now.
Corona Product into page.
They call it completely free! :)