Hey Everyone -
I'm in search of a sdk/platform/engine for my new game. I'm currently looking very hard at Moai SDK, Cocos2d-X, and LibGdx. I would say LibGdx is probably last on my list, just because I can't stand Java and would much prefer Scala but that can be a pain to get running on iOS.
Moai shows great promise but every time I spend time with it, I get frustrated. The hosts aren't really ready for prime time yet, they provide no lua file protection out of the box.. in fact, they provide very little out of the box. That's good because I really have complete freedom (which I like) but it's bad because I'll end up spending 50% of my time working on hosts and what not.
Then there's Cocos2d-x. Looks good and is based off the ever popular Cocos2d. However I haven't been able to find any good information on their Lua support. For instance: Can I write a whole game in Lua with Cocos2d-X? Some say yes, others say no. While I can write C++, and will if I have to, I would much prefer to spend most of my time in Lua.
So then I found Gideros. It does look pretty cool.. and seems to offer most of what I'm after: Lua, tools provided for me out of the box, etc. But with that said, I have a couple questions that I would like to hopefully get answered before I take the plunge and actually *try* Gideros
1) How open is Gideros? What I mean is, am I locked down like I would be with Corona or can I extend Gideros with native code? i.e: Can I write some of my game in native (c++, java, objective-c, etc) if I need the performance, or can I extend my game with some native functionality that's not provided out of the box?
2) What's the performance of Gideros like? I'm looking at doing something slightly more advanced than Battleheart (though Turn Based and not real time). Can Gideros handle that (surprisingly, I couldn't get Corona to play nice in my tests so I had to ask).
3) Does Gideros offer support for sockets out of box? Maybe LuaSockets? On this path, does Gideros offer the ability to call web services out of the box?
4) What kind of data persistence does Gideros offer? Can I use SQLite? How about serialization and deserialization to and from json? How about saving Lua tables and then loading them later?
5) Am I locked into the Gideros studio editor? I'd much prefer to be able to work in Sublime Text 2
Edit: forgot a question. I see there are plans for shipping to Windows and OSX. Are there currently any time tables for when this will be ready?
Many thanks in advance!!
Comments
1) With Gideros you can always write plugins to access native features or to add more features to it.
Find more information here:
http://www.giderosmobile.com/blog/2011/12/15/introducing-gideros-plugins/
In addition there are already couple of good plugins written by members and shared like: facebook plugin, admob plugin, other ad networks plugins, flury plugin, java-lua bridge plugin,hot-wax plugin etc.. Just search the forum you will find them easilly.
2) I never code something so much complicated in Gideros, but i am here around more than 6 months and as far as i read from the froum posts, old Corona users says that the performance of Gideros is much more better than it. (FPS)
3) Yep gideros is supporting Lua Sockets Here are good examples:
http://www.giderosmobile.com/forum/discussion/1098/complete-code-client-server-for-building-multiplayer-game
And here is other one:
http://www.giderosmobile.com/forum/discussion/1098/complete-code-client-server-for-building-multiplayer-game
Web services can be easilly called by UrlLoader class(Post, get methods). See here for example of calling web services:
http://www.giderosmobile.com/forum/discussion/1975/scoreoid-example-restful-api#Item_9
4) Sql lite is also supported for IOS and Android. In Android there are some limitations though right now.
Read here:
http://giderosmobile.com/documentation/reference_manual.html#sqlite3
For saving Lua tables it is easy see here for another lovely example:
http://appcodingeasy.com/Gideros-Mobile/Save-and-load-data-module-for-Gideros-Mobile
5) No you are not locked there. There are really other variants like, Zerobane, LuaGlider and so on just search the forum .( I will post them here also when i will find the corresponding links)
For your last question i can not answer officially but as far as know from the forum there is no specific time for supporting those platforms.
Again welcome
Likes: Mells, ar2rsawseen
LuaGlider Beta:
http://www.giderosmobile.com/forum/discussion/1534/lua-glider-ide-beta-test#Item_28
Here is ZeroBane:
http://www.bowerhaus.eu/blog/files/live_coding.html
Here is sublime:
http://www.giderosmobile.com/forum/discussion/861/text-editor-heaven
5)
- Sublime Text
- TextMate
- Please note that you can try Gideros Live coding with Zerobrane Studio Ide (video by @bowerandy).
- But also CodeHelper that goes very well with LeveHelper and SpriteHelper from the same developer
And finally the discussion about Gideros' users favorite IDE for Gideros.Likes: OZApps
What exasperates me about LibGDX is that the guy behind it has written an excellent introduction to Android development, but the documentation for his library seems pretty threadbare for beginners. Gideros has a very friendly and helpful community for sure, with plenty of tutorials available.
Windows and OSX support is still a question and is a matter of time and energy At the moment, there are no efforts to make Gideros Studio work on desktop platforms.
While a little saddened by the lack of "guaranteed" desktop support, it seems Gideros has enough to offer outside the desktop that I might be able to live with it. Should I eventually want to target the desktop I could always migrate the code over to Moai (or something similar).
@BJG LibGDX is a great SDK, if you're going to work in Java and you are an experienced game developer. It offers little in terms of "Frills". You get the foundation, and that's about it. The documentation, as you noted however, is far more advanced. Btw, I was able to get Scala running on Android fairly easily. The LibGDX sbt/g8 templates takes care of the Android part. It states it takes care of the iOS part too, but it didn't work for me.