What’s Wrong with Game Software Tools
I love the idea of Stencyl, I love the fast development of Corona SDK, and I love the expandability of Moai SDK. But there’s nothing out there that does “game dev software” the right way. At least to my way of thinking.
Let’s create a list of 2D game development tools with GameSalad on one end and straight code on the other. I think the current crop of tools looks something like this:
- GameSalad
- Stencyl
- GameMaker Studio
- Corona SDK
- Moai SDK
- Cocos2D
- Obj-C, C++, etc.
That list is a combined “rapid game development” + “game tool ability” rating.
While GameSalad might allow you to make a game very quickly, you’re extremely limited in what you can do (and how). On the other end of the scale is straight code, like Objective-C, which will not constrain you in what you can do, but “rapid” is not a word I’d equate with that.
Sidebar: Not every current tool is listed, this is just a representative sample. Construct 2, for example, would fit in between GameSalad and Stencyl, Torque 2D would fit in right before (maybe after) Corona SDK, etc.
This list is subjective, of course, and you may place some of those packages in different places in the list, but that’s where I think they belong.
And when I look at the list of tools I can see there’s a big gap. There’s nothing that gives you rapid game development but also expandability. There’s nothing that’s easy for a beginner to jump into, but doesn’t get in the way of the experienced developer.
I’m going to pick on three of those tools (or frameworks).
First, Stencyl. What a fun piece of software. And while I haven’t made an entire game with it, I’ve played with it enough to know I really like it. And to know that it frustrates me. The snapping blocks thing is cool, but the amount of “work” it would take to learn to write those things in real code is very minimal.
Second, Corona SDK. So easy to jump into, even for rank beginners. And it has enough power to handle most things experienced game developers want to do. But there comes a point where you may want to do X and Corona doesn’t do X. You’re stuck at that point, hoping they add that ability in the future.
Finally, Moai SDK. Another Lua-centric framework like Corona, Moai SDK is the weapon of choice for a couple very high-profile game studios. As an open-source framework you can add whatever missing features you like (assuming you have the coding chops). But it’s a very low-level framework so the learning curve is like climbing a cliff.
Sidebar: Why did I pick on those three? Because in general, I *really* like them. If I’d picked one of the other tools/frameworks to make my point I probably would have gotten nasty and who needs that?
What do I think is missing? If Stencyl, Corona SDK, and Moai SDK ever had a menage a trois and produced a child, that’s the game dev software I want to use.
Since that will never happen I’ve decided to do the only thing I can — create that software myself.
It’s called Renegade.
And at the risk of sounding like a 12-year old who’s saying he’s going to build an awesome MMO this weekend, it’s going to be way cool.
Easy for beginners to jump into, handles all the mundane chores, makes developing a game fun, and with unlimited expandability so it won’t constrain the pros.
Some Inner Details
Renegade is a layout tool with code embedded in the scenes and objects.
In general, you’ll set up your game using a drag-and-drop system (although that’s optional) and then use Lua and an “easy like Corona SDK” API to write the logic. If you need more power than the API gives you, feel free to duck under the hood and use the low-level Moai SDK framework (Renegade is being built with Moai as the foundation).
Even when you’re writing the code you need, Renegade makes it easier than most tools. Select an alien in the layout area and you’ll see the events available for that object. If you want something to happen when you tap the alien, put some code in the “touch” field, or “release” field.
Or maybe you need something to happen when the alien collides with another object? Put your code in the “collision” field.
1 2 3 4 5 6 |
function alien_collision (obj as DisplayObject) if obj.name == “missile” then alien.die(“explode”) -- instant, fade, etc. score.add(100) end end |
That alien_collision() function? That automatically exists because you dragged an alien object into a scene. And you only need to fill it in if you want that capability.
You write the code, but Renegade guides you.
Renegade exports games for iOS, Android, Windows and Mac desktops, and Chrome.
Renegade is in development now and is scheduled to be out in late Q4, 2012. When it hits it will combine the best concepts from Stencyl, Corona SDK, and Moai SDK.
And it will be awesome.
Very much looking forward to this. Using Gideros at the moment which is in between Moai and Corona, thanks to its plugin system. Also is player is awesome, I can test on the device without having to build anything 🙂
Yeah, test on the device is one of the two cool things about Gideros. 😉 I don’t have specific plans to do that with Renegade, but it’s kind of an obvious step forward, so we’ll have to see how it all shakes out.
Jay
So excited to see what this is all about. Any price points announced yet? Will there be a trial version that maybe lets you do one or two systems with a non-removable splash screen or something? Would this be appropriate to make a basic simulation type game (something like Game Dev Story)?
No price points yet, but probably more than $100 and less than $500. 🙂 Also, I’ll probably go with a “hybrid subscription” model. When you buy you get updates for a year. At the end of that time the software keeps working and you only resubscribe for another year of updates (at probably 50%) when you see an update you want. I think that’s a pretty fair model — you never *have* to resubscribe, you can just keep using the last update forever if you want.
There will probably be a trial/lite version of some kind. You can *almost* count on it. 🙂
As far as what kind of games it will be good for, if you can do it in Corona SDK, Gideros, etc., you should be able to do it in Renegade.
As things come together over the next few months I’ll have less vague answers. 😉
Jay
Love the idea of a lite version! Seriously, I’m just starting with Moai and RapaNui because I’m a student, this would be my first game and I have no money to pay a Corona Subscription + the Apple Developer Subscription, I can only hope to make that much revenue with my first game!
Anyways, my point is that the Lite version is a really good help for people like me who are just starting and want to make some money with the Lite version before buying the full version
I’m new to game design but have a lot of art and graphics background so I’m going to use construct2 for the moment. I was wondering if you could add a 3d idea I have… a 3d skybox around a 2d game… so that you can have a simple 2d game design but have the camera set at an angle so that the floor has debth… that way, we can create multiple layers of 2d games and then have the camera see all of the layers at an angle… Imagine an agry-birds but with the ability to see it from different angles – a new type of 2.5d – but with the simplicity of creating a 2d game. You might even make it so you can “jump” from layer to layer…
Use Unity3D if you want to do something like this.
It’d be really cool if something like this also supported native UI components as well!
-Mark
Awesome, I wish you luck and keep us posted! I personally started out with Corona, got frustrated when I hit the “Corona doesn’t do X” wall. Picked up Moai, got frustrated with how low-level and undocumented it is. Went back to Corona, then back to Moai again, this time writing my own framework. Dropped Moai again last night when I realized that the Moai simulator doesn’t simulate touch events. Couldn’t build the Xcode project either… Taking a hard look at Gideros now.
When you say MOAI doesn’t simulate touch events, do you mean MOAI does not capture each and every x,y of touch drags/swipes? I ran into this and got a workaround from their forums at:
http://getmoai.com/forums/moaiimagetexture-not-updating-fast-enough-t998/
No, what I meant was that the Moai simulator doesn’t normalize click events to touch events. So as far as I can tell, you can only effectively test touch functionality by building for a device. Unless there’s some option I can set for the simulator that I missed.
Thanks for trying to offer a solution though.
Any ETA on Renegade? I’d really like to start my MOAI experience with a good tool ^^
Let me get this straight! You want to release the best Framework out there this year? i’ll buy it, that’s for sure, but doing it all on your own sounds impossible to me.
Paul,
It may turn out to be impossible, but I don’t think so because I don’t have to do the core coding. Basically I’m putting a friendly face on Moai.
Looking back in time I realized it’s what I’ve been doing since the mid-80s — adding to existing tools in order to create a faster/easier workflow. My first product was called PW Macros and it was simply a bunch of code that made assembly language programming (for the Orca/M assembler) easier.
Moai is going to do the heavy lifting and I’m going to make Moai accessible for “the rest of us” — those folks who aren’t AAA game dev teams with lots of resources to throw at a problem.
My timeline may be a little too aggressive — this summer brought a couple unexpected family problems that have sucked up most of almost two months so far. As a 1-man shop there’s nobody else who can take up the slack when life intervenes.
However, I also built a bit of a hedge into my original estimate so at this point I’m still hopeful of a usable version before the end of the year. 🙂
Jay
Putting a friendly face on Moai is possible. I believe that you will need a lot more though if you want to compete.
IDE (like what comes with Gideros, or Corona Cider)
Level Editor (with IDE integration).
Build to all platforms that Moai supports.
Ansca are dropping the ball in terms of desktop deployment and most are looking at the best ways to maximise profits across all platforms. Right now, Moai is too difficult for me, so believe it or not, Unity 3D is the better option (UnityScript is easy) and I can deploy to pretty much every platform! 🙂
Yes keep us updated! When you get to the beta test stage, I’d love to test.
Mark, my intention is to have a very open beta. In fact, I’ll probably start it at the alpha stage for those people who are really brave. 😉
Jay
I’m brave (or stupid)!
-Mark
How’s it going? Got an update on your progress?
Renegade sounds seriously cool.
Tim, this turned out to be The Summer of Drama and Little Coding. I’ll spare you the details, but it’s only in the past couple weeks that I’ve been able to get back to programming, and now I’m playing catch-up with everything that got pushed aside over the last several months.
That said, I did take a few hours yesterday to work on the database for Renegade (projects are tied to a SQLite database, not normal source code files) and did some more spec’ing to make sure I don’t head down any dead-ends. Or, fewer dead-ends than normal, anyway.
So while it’s not officially late, it will be soon. 🙂 However, I do plan on coding pieces of it starting in the next few weeks, so we’ll see what happens…
What is the status of this project? I always found this to be intriguing, but it seems as if it kind of fell to the wayside a bit, in leu of life.
Yeah, wayside. 🙂 But, I did work on it a little a couple weeks ago. Basically whenever I update Outlaw I tend to do a little Renegade code at the same time. Outlaw actually has some Renegade pieces in it, but hidden so that only I can get to them. I suspect Renegade will see the light of day when it sees the light of day. (Although if someone wanted to front me 4-6 months living expenses I think I could give you a good estimate of when it might be done. 😉