Tales of the Rampant Coyote

Adventures in Indie Gaming!

Guest Post: Random Gamer on Choosing Your Game Engine, pt 2

Posted by Rampant Coyote on February 19, 2013

(This is a continuation of yesterday’s post from Random Gamer, a long-time community member, and frequent contributor both on the blog and in the Forums. He’s earned war stories the hard way on indie game development. You can read Part 1 here. Enjoy!)

The last time, I talked about some of the lessons I’ve learned in my attempts .  This time, I’ll talk about some of the engines and tools I’ve tried, ending with the current set of tools I’ve decided to use for the new project.  This isn’t an exhaustive list and I’d like to re-iterate that this is my experience – the engines that I rejected may be perfect for you and your project.

dealwiththedevil-wallsPyOgre/PythonOgrehttp://python-ogre.org/ – PythonOgre is 3D engine API for the Python programming language.  It is quite low level and since I’m a fan of Python, I was very excited for this.  I started a very ambitious 3D space RPG in this engine, bought some pre-fab textures and 3D objects and got as far as getting the player walking around in 3D.  It ground to a halt on the art pipeline – I simply couldn’t afford to pay for the assets I needed and I simply could not produce what I needed in Blender.

PyGamehttp://www.pygame.org/ – PyGame is a 2D game engine for Python.  I didn’t do anything serious in it, but I have used it for small games/experiments in the past.

pygletrpg-screenshot6Pyglethttp://www.pyglet.org/ – So, having considered PyGame, I ended up going with Pyglet, another 2D game engine for Python.  The advantage for me was it had much better support for UI elements like buttons and for tile based games, because I was going to re-start my space RPG as a 2D old school RPG.  The thinking was that the art problem would go away with the shift to 2D… but it didn’t.  I was able to locate some appropriate sprites, but not nearly all the ones I needed, and nothing I could create myself was remotely close to what I had located.  Once more, a project killed by lack of art – or more accurately, a lack of forethought.

Torque Game Builder –  http://www.garagegames.com/products/torque-2d – I’ve tried Torque Game Builder (now Open-Sourced as Torque 2D) on a number of occasions, but I had what I thought was a project that could really use it.  I came up with a concept of a procedural murder-mystery – a bunch of AIs, one of which got murdered, and the player had to figure out motivation, etc.  I decided to do it in Adventure Game style and this time actually considered art pipeline right off the bat.  Since it was set in a modern day manor, I built ‘sets’ using Google Sketchup, saved those as images and then ran them through a few filters to take away the obvious ‘Sketchup’-ness of it.  In a burst of enthusiasm, I had purchased Torque Game Builder, but ended up deciding I really didn’t like the way it pushed you into its way of doing things.  Especially with me wanting to procedural content, this was the wrong way of doing things for me.  Please ignore the programmer art stick figure in the picture below – thanks!


Unity3Dhttp://www.unity3d.com/ – Encouraged by the use of Sketchup in the previous attempt, I decided to see about doing another 3D project, this time in Unity3D (the same engine that the new version of Frayed Knights is being done in!).   This, again, petered out on art assets – while I could produce base levels with Sketchup, I simply couldn’t make the things necessary to bring the world alive.  I went back to and back to and back to this approach several times, but simply couldn’t make it work.

MonkeyScreenshotMonkeyhttp://www.monkeycoder.co.nz/ – Monkey’s big advantage was its cross-platform ability (for the paid version).  It was extremely enticing, but ultimately, what caused me to reject this platform was the limitations – if I was to do cross-platform, I’d be very limited in my ability to save large amounts of data and if I didn’t do cross platform, I didn’t see the advantage to Monkey.  I did have some fun writing in this language, though, and if I ever write a shoot-em-up, I may take a serious look at Monkey again, since it could potentially get me onto all mobile devices + web.

Java + Slick2Dhttp://www.slick2d.org/ – I write Java for a living.  Going to Java made sense as it allowed me to leverage all the tools (Eclipse, FindBugs, SVN integration, etc) that I am used to using every day.  Slick2D is a 2D game engine that doesn’t do very much for you – it gives you a very thin skeleton and requires you to flesh it out.  This was ideal for me, as I was still really interested in a procedural game.  Rather than going with the murder mystery idea (though that one may resurface), I started work on a 2D Star Flight inspired space exploration/trading/combat game.  This is the project I am currently working on and pushing towards a pre-pre-pre-pre-pre-alpha release, with just a touch of the core gameplay done, to see if it is actually any fun.  This time, before doing any serious work, I set out a tools chain.  I purchased Corel Paint Shop Pro X5 to replace GIMP – I used a very old version of PSP back in the day and always loved it and while they have concealed a lot of the old program behind a layer of cruft, once you strip that away, there is still a very decent image editor there.  I stuck with using Google Sketchup with the limited models I needed (the ships and space stations, which would only be shown as informational images). I added Anime Studio Debut to create character portraits.   I worked through to having images ready to import into the game before I decided that the pipelines would work.  I also ensured that installers and launchers were easily built, settling on WinRun4J for the launcher and Inno Setup to create an installer.  There are downsides to this approach – I’m having to re-invent the wheel a lot, as I’m not using any of the available GUI packages.  I perhaps have veered to far away from letting the Game Engine take care of some things, but so far, I’m really enjoying this process and making some progress.  If you’d like to keep an eye on how I’m doing, I’ve been posting occasional updates in the “Game Making” forum of this very website.

Thanks for reading!  I’d be interested in what you think of my ‘lessons learned’.  I’d like to re-iterate that this is only a few of the engines out there (this isn’t even an exhaustive list of the engines I’ve tried, just the ones I’ve done more significant project attempts in) and that these are based on my experiences – each of these engines have people using them successfully every day.  They all have their advantages and disadvantages – I’m just hopeful these articles will help you make up your own mind.

Filed Under: Game Development, Guest Posts - Comments: 9 Comments to Read

  • RandomGamer said,

    Hey, all. Just thought I’d note that a screenshot of my work in progress is in the “Star Sector Gamma” thread of the Making Games forum (click Forums above)

  • Rampant Coyote said,

    Thanks, I needed to make an edit and ran out of time. The install out here in Georgia has been pretty all-consuming.

  • Xenovore said,

    As I mentioned in the previous post, you really can’t beat Torque 2D and Torque 3D for good, full-featured, open-source engines. (Hell, they are on par or better than a lot of closed-source engines.)

    You keep mentioning wanting to do procedural content; what’s keeping you from doing it? Any engine, particularly any engine with scripting capability and/or full source code, is capable of procedural content. Yeah, you might have to actually take some time and learn how the engine works, but there’s nothing wrong with that.

    Regarding lack of art skills: This should never stop you from making a game. Art quality does not determine game-play quality. Placeholder art is easy enough, and once you know the game-play is solid and fun, then you can practice, practice, practice until your art is good enough. Or go find some 3rd-party art; there’s plenty out there that’s either free or quite inexpensive. Or find some budding artists to help you for cheap or free.

  • Earl said,

    I’m still waiting for the Instinct Engine to be released.It will open source and you will be able to write once and publish on pc,consoles and mobile.

  • RandomGamer said,

    Hey, Xenophore. Sure, you can write anything in Torque2D / Torque3D – the question is, it is the right tool for what you want to do. From my experience, Torque2D wasn’t the right tool – I probably COULD have made what I want, but I think I’d have been fighting the engine’s assumptions all the time or I’d have ended up rewriting chunks of that. If I’m doing that, I might as well just use something that doesn’t have those assumptions. I’ve written text parsers in dbase because my boss paid me to do it, but that wasn’t the right tool. I think, with all the tools out there, you can find the right one for you and your project. Again, if Torque2D/3D works for you, great! It didn’t for me.

    With regards to the art, there’s not only the quality of the art, there’s simply the using the tools from start to finish. It needs to be things that you can comfortably work with and that produce things that you are happy with. If you look at my screen shots, you can obviously see my standards for art aren’t that high, but I need to be able to comfortably reach whatever standard I set. The lesson I learned that I was trying to impart was not to leave sorting out that art pipeline as ‘something you’ll figure out later’ – make it an integral part of picking your engine.

    Thanks for the comments and feedback 🙂

  • Xenovore said,

    Hmmm, okay… I get that people have preferences for different engines, but I’m boggled when somebody just says “this isn’t right for what I want to do” when clearly whatever it is, is fully capable of doing what they want to do.

    Could you elaborate on why T2D didn’t work for you? What was the primary sticking point? Because, from looking at the screenshot of Star Sector Gamma, I’m just not seeing any reason that couldn’t be done just as easily (or more easily) in T2D…

    Art: Okay, I’ll agree that you need to make sure the content pipeline of an engine isn’t going to be obnoxious. Yes, if Blender is part of your pipeline, you will suffer the consequences. Key word: suffer. =P

    “I’m really enjoying this process and making some progress.”

    I guess that’s what it really come down to. Maybe you do have to re-invent the wheel (and the motor, the gas tank, the brakes, the seats, and the body), but as long as you don’t feel like you’re constantly banging your head against the wall, then that’s right for you.

  • RandomGamer said,

    As I mentioned above, when I tried (and paid for it 🙂 ), T2D was Torque Game Builder 1.7.5, so a slightly different beast (no source, for one thing, at least as far as I know). That made things somewhat more opaque and going through the tutorials and going through the api docs certainly reinforced the idea that while doing what I wanted was possible, it really wasn’t what the engine was designed to do. And previous experience being in that position made me shy away from that. Maybe if I went back into it now with the expectation that I’d be modifying the source, that’d be a different experience – but I didn’t even realize it had been open sourced until I went back to the webpage to write the article.

  • CdrJameson said,

    Cool! Thought I’d share some of my experiences too.
    A lot of it is pipeline, although in my case it’s usually editing/build pipeline.

    Things I consider when choosing a game engine:

    – Is the game logic/source/UI design described in text files?

    Makes life soooo much easier. Easy to merge, search, edit, run tools over (eg. spelling checks, build scripts) and generally muck about with.

    iOS’ Interface Builder for example uses annoying pseudo-text files. Thanks, Apple, really enjoyed changing 140 nearly identical screens by hand!

    RPGMaker stores its data in serialised Ruby files, needing a potentially troublesome translation step.

    Vital if more than one person is going to be working on the game at the same time, otherwise you WILL be writing over each other’s changes.

    Stick to text, people, and you can leverage forty years of wonderful tools.

    – Can I put these files where I want, or do I have to do follow the Engine’s arbitrary restrictions?

    I have a development folder. It is offsite backed up. It is versioned. Don’t make me put my game files in ‘my documents’

    – Does it have a decent search/edit facility, or let me use my own?

    Not a problem if it’s text, of course. MultiMedia Fusion was (in days gone by) a nightmare for this. We used to call it a ‘write-only’ language, because of the difficulty you’d have tracking something down to change it once you’d not touched it for a while.

    RPGMaker wants you to edit its script files in their own (adequate, but it’s not Slickedit or Emacs) editor, which is irksome, because you have to keep copying and pasting things backwards and forwards.

    But, most importantly,

    – Does this engine support the kind of things that I want
    to do?

    RPGMaker: Great for making 2D JRPGs
    Ren’Py: Visual novels? Knock yourself out.
    Gamemaker: Was good for sprites.
    Unity: Easy for baked-in, meter scale ‘levels’

    Unfortunately I have a knack for thinking up a practice application that doesn’t work almost immediately. In Gamemaker I went for a nice 2D vector race game. Oops. Didn’t do vectors. Does sprites. FAIL.

    In Unity I wanted a simple, sparse geometric world a la Mercenary. Doesn’t handle even simple geometry with large scale differences well. FAIL.

    I’ve had most success with languages-with-libraries style engines. These let me do what I want, when I want, (largely) where I want but give me the code libraries that mean I don’t have to write the boring, low-level nonsense.

    So far I’ve gone with Monkey for quick projects (it becomes unmaintainable after a certain size, and the editor isn’t up to the search requirements) and Ogre for larger things.

  • Xenovore said,

    @RandomGamer: Thanks for the extra details. Although, I’m pretty sure all Torque engines have come with full source (aside from that misguided T3D Basic version). And yeah, T2D just barely went open source, so it’s probably not common knowledge yet. You should definitely grab it now and give it another try; after all, you’ve already got some experience from TGB to build on. And you’ll get the full source for certain now. =)