The Engine I Need Vs The Engine I Deserve

After thinking about the last entry for awhile, I came to a realization that what I essentially need for my indie game development endeavors are two entirely different solutions:
  1. A solution to quickly iterate the game concept to something I think it might be worth taking to completion.
  2. A solution to harness the maximum platform power in order to present the end game concept optimally.
It's a relatively famous The Dark Night quote, alright?
To these ends, it is currently looking like those two solutions are GameMaker and LibGDXGameMaker is the fastest iteration-producing IDE I have that still has adequate flexibility to see my ideas to a reasonable, if not completely optimized, production.  LibGDX is currently benchmarking among the fastest 2D API out there so it is a good choice for platform power optimization.

The reason for this dual-pronged approach is to protect me from two problems I would likely encounter.  The first problem is that I might do a ton of programming work only to find out that I don't like the end result: GameMaker's relatively high speed of iteration production keeps that to a minimum.  The second problem is that I might end up unable to realize the game due to an engine limitation, and LibGDX's power and complete flexibility provides an ace in the hole for if that happens.

I know there's a lot of Unity fans out there who are righteously happy to promote the engine, and for good reason.  However, I am not immediately jumping onto that platform is because the scope of my project is likely going to be a tile-based 2D gameUnity can be programmed to do that, but it's so far away from what it does by default that I would have to dedicate a lot of effort just reeducating the engine on what it takes to be a tile-based 2D gameGameMaker is not exactly that, either, but its wholly 2D focus makes it a closer start.

In all honesty, I am unable to prove that GameMaker truly produces faster iterations of the game without being equally skilled in all platforms and attempting a comparison.  But I feel that the theory is reasonable because Yoyo Games' approach to GameMaker's out-of-the-box code library seems designed to provide quick and easy solutions to most tasks you are likely to encounter in creating a game.

A good example would be pathfinding: GameMaker has a selection of motion planning functions all ready to go.  LibGDX has a powerful artificial intelligence package that requires quite a bit of learning to get working, and you can also utilize whatever JAVA-based solutions you might find and learnUnity has a rudimentary 3D pathfinding method that usually sends people to the asset store to find paid community alternatives.  In this example, I think it's clear that GameMaker would be the quickest method to get some reasonably effective pathfinding up and running, and I think this same general design philosophy permeates much of the platform.

It is also important to mention that Construct 2 and Clickteam Fusion are even faster to iterate, but have a much more narrow focus of applicable game functionality unless you are able to code your own extensions.  For example, Construct 2 has a rather nice pathfinding extension that is even easier to use than GameMaker's and even supports path costs (to estimate the effect of passable, but slowing, terrain).  However, my game concept involves more unique procedural generation that it's not reasonable to expect Construct 2 to provide by default, but its "code free" IDE significantly complicates my implementing it that way.  Thus, getting around this would necessitate coding an extension, an intensive process that is a significant disruption to producing design iterations!  In this way, GameMaker's integrated scripting language, GML, provides an important medium: it's less rigid than a "code free" interface, rendering the platform flexible enough to accept most custom behaviors without having to code extensions that override engine functionality entirely.

For me, the best part about choosing to utilize GameMaker is that I already know how to use it.  Well, I'm a little rusty, there's still more I can learn, but I've done some pretty advanced work in it in the past.  I am already at the point where I can start creating a game immediately rather than having to wait however long it takes for me to wrap my head around another IDE, but I should make time for a tutorial or two to expand my knowledge.

Much of my development entries over the past few months (or even years) have been because I felt the need to explore alternative development platforms.   So I have; provided an obviously better alternative doesn't show up to suit either of the two solutions above, I think I've finally arrived at the moment where I can start making things in earnest!


Popular Posts