Skip to main content

Getting My Engine Started

I have one again been backed into a corner by being a very picky gamer, and enough is enough.  As I clearly am not patient enough to wait for other people to get around to it, it is time for me to take game development into my own hands.

This is not the first time I seriously endeavored to create something, and I am no newbie.  On the other hand, making a computer game is an endeavor in which you are a perpetual newbie.  Further enhancing the difficulty of this, I am largely undertaking this endeavor all on my lonesome.  Past experiences have proven that this is not something to be untaken lightly.
Kittens are always a good thumbnail.
Anyway, I have a pretty good idea how to get this done, and right now I am mostly stymied with choice of engine.

Why choose an existing engine? 

Why not stop myself from being a slacker, buckle down in C# or C++, and create my own engine?  After all, that is the only way you can assure 100% freedom and compatibility with whatever cool idea you come up with (within hardware limitations).  However, there are actually a number of really good reasons for this:
  1. If you are developing your own engine, you are responsible for its hardware incompatibilities.  There is a wide degree of all sorts of wacky hardware out there, more than you have reliable access to troubleshoot.  If you do not have your very own brilliant hardware geek who revels at the chance to make your software compatible, then you need to borrow an engine developed by a company that (presumably) has taken these pains for you.
  2. If you are developing your own engine, you need to troubleshoot it.  Assuming you are not starting completely from scratch, perhaps importing a basic code IDE, you still need to go through all the painstaking debugging necessary to make sure that you have integrated those functions correctly and they work the way you want.  If you are starting from scratch, you have quite a bit to do in order to even get the computer to correctly display a single object on your screen.  Starting with an existing engine means someone already did this for you.
  3. If you are developing your own engine, you also need to develop the content generation tools for it.  Even when the engine is done, aligning by hand each bit needed for your game's content is a real chore, so you need to develop additional tools to streamline the process.  This is where having a complete game development environment (as opposed to just the engine) is a big advantage: because those content generation tools should be already done.
The big benefit you will see here is speed
  • If you tried programming something from scratch, even something simple like a breakout clone, then you are looking at weeks of work in order to see a good-looking product come to completion.  (This will widely vary depending on how much existing code and assets you have and how smoothly the integration goes.)  
  • Today, a good game development environment will allow an experienced user to come up with a good-looking breakout clone in mere minutes.  
This is why these environments are often used as prototyping agents for people who then move on to make their own engines: there is no quicker way to go from project conception to working prototype.
This is why Minecraft went with cubes: it might technically be a 3D
game, but they eliminated enough depth in the individual parts
that it attains a far greater ease in mental conception
for its players than a more detailed 3D game would.

Which engine should you choose?  

It depends on the type of game you want to make.  No kidding: these game engines tend to be specialized in various directions.  Want to make a JRPG?  Use RPG Maker.  Want a point-and-click adventure game?  Use Adventure Game Studio.  And so on.  While the people who use these platforms will tell you that they are flexible enough to do more than just those games, you will have to do quite a bit of coding to get them to bend them in that direction.

Personally, I think 2D games have greater potential for quality gameplay.  My rationale is that they are easier for players to wrap their heads around and this streamlines play.   If it were looking to make a 3D game, my choices are actually pretty narrow: Unity is sort of the only choice when it comes to a complete, comprehensive 3D IDE; working in Torque, CryEngine, or Source requires considerably more skill and effort.  However, I am choosing to make a 2D game. 

To these ends, I have located a pretty good list of 2D game engines.  While this "voting" idea makes this seem like mostly a popularity contest, I will say that quite a bit of cream has risen to the top of that list.   Here are my thoughts about the top four (I am skipping Monkey X because, to my knowledge, it's not a complete IDE):

Construct 2 

The way I hear it, Scirra (the developers of Construct) originally were developing extensions for Clickteam's products.  However, they were disappointed by the limitations of that engine, and so they set out to create their own, largely borrowing the best part of Clickteam's methods in the process.  Naturally, this created quite a bit of bad blood between the two developers.

That aside, having extremely briefly dabbled with both products, I am going to say that they are roughly on the same level.  The tradeoff is this:
  • Construct 2 is more flexible, due to frequent updates and a development team that largely intended to improve the original.  You can even code your own extensions in javascript if you have the skills.  Consequently, you can reasonably expect do almost everything in Construct 2 that you can in Clickteam Fusion 2, and more.
  • Clickteam Fusion 2 is more stable and generates more powerful products.  This is due to efforts taken towards hardware optimization in Windows or MacOS.  Construct 2 actually is highly reliant on javascript, which is less efficient.
I think perhaps the most telling thing is the games made for Construct 2... where are they?   I took a look at the indiedb list of Construct 2 games, and I have not heard of any of them.  It might be because Construct 2 is still relatively new, having been released in July, 2011.  However, I think the reduction in power from the HTML5 target platform may have made the biggest difference.

Clickteam Fusion 2.5 

I messed around with doing the Clickteam Fusion 2.5 tutorials today, and I was quite impressed.  It is very slightly more complicated than Construct 2 to use, but seemed to be quite powerful and easy to understand.   It reminds me a little of Adobe Flash (which is not doing so hot these days) but the games made by Clickteam products can compile as standalone.

In practice, Clickteam Fusion 2.5 and Construct 2 resemble each other so much that it is difficult to split hairs against one or the other any more than I have already.   I will say that, in the Clickteam Fusion 2.5 product, I was extremely impressed with the power of the integrated sprite editor and the careful attention towards friendly interface-driven game development.  Comparatively, Construct 2's interface seems minimalist, Scirra has improved upon Clickteam's efforts in some ways, but in others they have yet to catch up.

I may need more time with both to really understand the difference.  Subjective observation at the general Internet consensus establishes that Construct 2 is the superior product, but I am not so sure.  It may be that they are speaking in terms of its potential, as development on Construct 2 is still very active.  However, I really have a hard time accepting Construct 2's javascript native environment.
Ultimately, I think the best way to judge a difference between the two is in what has been made for both of them.  Clickteam Fusion 2.5 is currently doing extremely well here, partly because it is the latest iteration of a product line that has been around since 1993.

If I look at their game roster, some big names jump out at me:
  • Five Nights At Freddies - An incredible cult hit that is currently ravaging the top image galleries on
  • The Escapists - A game for PC and the XBone that has garnered quite a bit of attention for its unique premise of being a prisoner plotting escape.
  • Freedom Planet - A lot of fans of the Sonic games have been using Clickteam products for years to come up with their fan homages, but this one may well have transcended the original.
  • Noitu Love and its sequel -  Extremely-well received commercial arcade 2D shooters.
  • Under The Garden - One of the more novel takes to the survival genre I have seen in awhile, this one is half metroidvania.
  • TinyTrek -  An open-ended space odyssey inspired by Star Trek, this game does things so radically differn from most games I see on Clickteam Fusion that it says much for the platform's flexibility.
Dare I say it?  Clickteam Fusion may well have transcended Game Maker in producing quality commercial products.  Speaking of which...

Game Maker

I thoroughly regret having already bought a professional license to this hunk of junk... okay, that's too strong, actually Game Maker has a good deal of potential, and it is perhaps among the easiest IDE to port games cross-platform with, having optional export modules purchasable for Windows, Mac OS, Android, HTML5, iOS, Ubunto, and Windows Phone 8, slightly more than Clickteam Fusion 2.5 is capable of.

In terms of difficulty of use, I would rank Game Maker as considerably easier to use than Unity, but not quite as easy to use as Construct 2 or Clickteam Fusion 2.5.  However, Game Maker has an important advantage over the few competitors that are easier-to-use than it: Game Maker allows its users to optionally write their own code in its own integrated programming language, GML (which resembles C), and this introduces a great deal of potential flexibility.
As I have a little coding experience, I would probably be quite happy to use Game Maker, but I encountered some major deal breakers when I tried:
  1. The room maker is extremely cumbersome.  In any of the other three engines mentioned here, dragging and dropping or cutting and pasting several elements at once is quite intuitive and works how you expect it to work.  Oddly, Game Maker makes this fundamental operation extremely hard to do.  The room maker is long overdue for radical revision to rectify this problem.
  2. The GML coding interface is poor.  Though Game Maker has some intellisense built into its GML text editor, it would seem to be extremely flaky, because it simply stopped working most of the time when I tried to use it.  Of all the engines mentioned here, only Unity has good intellisense (borrowed from Microsoft Visual Studio's C# integration) but both Construct 2 and Clickteam Fusion 2.5 subvert this by requiring no coding.
  3. Games created in Game Maker are fairly inefficient.  YoYo Games knew that Game Maker-produced products needed further optimization, and so they actually rolled up their sleeves and developed a compiler for it that can regularly produce (I kid you not) over ten times better performance on target platforms.  That would be great, but they decided to charge $299 for add-on access to this improved compiler!  I cannot believe they were unaware that this was no mere feature, but rather fixing the greatest fault in the engine, but they opted to hold it for ransom!
Basically, the prima donna that is my inner game development muse has stormed out of the dressing room that is Game Maker, refusing to work under these conditions. 

Logically, I know that Game Maker is capable of making some pretty decent games, as there are a quite few I have heard of.  For example:
  • Spelunky - A glorious classic procedurally generated side-scrolling roguelike action game.
  • Risk Of Rain - A procedurally generated platformer that is actually a lot of fun.
  • Valdis Story - A quality metroidvania experience.
  • Vambleer games including Nuclear Throne and Luftrasers - Low-fi games that offer quality gameplay experiences.
  • Charles Barkley's Shut Up And Jam: Gaiden -A JRPG-style parody game featuring pop culture references to a post-apocalyptic future staring basketball star, Charles Barkley.
A noticeable trend in most Game Maker games is that they must keep things low-fidelity due to the lack of optimization.  Many developers prefer to keep their involvement with Game Maker to the prototyping stages, as was the case with DustforceSpelunky was similarly remade in a custom engine.

If YoYo Games would bundle the improved compiler as standard and fix the broken aspects of the IDE, Game Maker would be a major contender.  Instead, it runs aground on its flaws.  Game Maker Studio is hard to recommend for this reason, but a future version that fixes those flaws has the potential to take the crown for 2D game development.


Of all the IDEs mentioned here, Unity is undeniably the most powerful.  However, that power comes with a price:
  • Although Unity is initially free to use, its license is the most expensive of the ones mentioned here.  Where the other products will typically run you up to three digits to unlock their better features, Unity is currently $1,500 per target platform set!  (Alternately, $75/mo/platform set.)
  • Although Unity is very much capable of making 2D games, it is inherently a 3D engine, so the overall impact on any piece of hardware running a Unity game will be that much more significant.  This makes it a poor choice for developing 2D games that target less hardware intensive platforms.
  • Although Unity is certainly capable of virtually everything the other engines mentioned here are capable of, the learning curve is considerably steeper.  You will definitely want to know how to program.  You will probably want to know a bit about handling 3D objects even if you are creating a 2D game.  You can learn to use the other programs via a pamphlet-sized instruction manual and tinkering... but learning Unity comprehensively will probably require more than one thick tome at your desk, thanks in part to your newfound reliance on Blender.
Of course, if one were to look at a Unity games showcase, it would appear to blow the other ones out of the water...
... but bear in mind that there was a lot more talent developing those games.  Unity Technologies was not screwing around when they made Unity: where the other products on this list were initially conceived with the idea of allowing non-computer-savvy users to dabble with game creation, Unity was intended to make professional grade development tools a lot more accessible.

This is why I am afraid I will have to give up on Unity.  I have been hesitant to come to that decision, because I am just good enough of a coder to really like the potential of C#, and Unity's IDE has coding integration that is a wet dream compared to the competition.  However, I have to face facts that I am not quite good enough to use Unity.

The main problem is that I am attempting to one-man my endeavors.  Professional grade tools take professional grade skills and possibly professional grade resources (like working in a team).  I do not have those right now... maybe later but, as for now, I am just a hobbyist looking to realize something cool.  Time will tell if this turns out to be the right decision, but I am very much thinking in terms of, "One must walk before they can run."

Though there are some other 2D engines to consider, it is looking a lot like I am probably going to try to use Clickteam Fusion for now.  This is because it provides the best mixture of ease-of-use and end-product power.  There could potentially be the problem down the line that it's not quite flexible enough for my pie-in-the-sky game concepts, but this could be resolved by limiting my ambitions to the best I can do with the engine.
Post a Comment

Popular posts from this blog

Ancient Warfare - What Is It Good For?

The Ancient Warfare mod for Minecraft threw me for a loop.  I was looking for "villagers" that would perform useful tasks while simultaneously resolving the glut of food with a need to eat, thereby turning Minecraft into a bit of 4X game you can play from the inside.  Millenaire wasn't quite there, partly because recent updates to Forge had broken its compatibility with Minecraft 1.7.10, and Minecolony's development is not quite fast enough to keep up with the state of mods in general (they probably need to make a core API).
In comes Ancient Warfare, which does indeed provide workers and soldiers who need to eat, you can even order around a little army of them to defeat your enemies.  It has working waterwheels and windmills, something I thought was awesome in Resonant Induction.  It has a warehouse with a built-in sorting system, as well as courier NPCs that can move things from building to building, and crafting NPCs that can create things for you automatically - w…

Resonant Induction Really Grinds My Gears... In A Good Way

From about 2pm yesterday until 8pm today, I've been dabbling with my latest custom mod mix for Minecraft 1.6.4, which is this time very much Universal Electricity focused.
Aside from the usual GUI enhancers and Somnia, the primary contenders in this mix were:
Calclavia Core - Of course: this is the base of the Universal Electricity system.Resonant Induction - This seems to be largely focused on increasingly more advanced methods of refining ores divided across 4 ages of technological progression.  It also includes some really cool things such as assembly lines.  I'll primarily be talking about just a few blocks out of this mod today.Atomic Science - A mod dedicated to generating more of those lovely universal electricity volts via the power of splitting the atom.  Build your own nuclear reactor!  Deal with nuclear meltdowns!  You maniac!ICBM - A mod dedicated to generating more destruction using those lovely universal electricity volts (and more than a little gunpowder), it cer…

Not Getting Over It

One of the recent fads to go through YouTube recently is Getting Over It With Bennett Foddy, a game about a man sitting in a cauldron filled with his own sweat dragging himself up a mountain of societal detritus with nothing more than a huge staking hammer.
As can be expected from the creator of QWOP, the game is extremely hard to control, requiring great precision on behalf of the player's mouse skills in order to propel the man up the mountain.  It is known as a "rage game" because it is deliberately engineered to punish the player.

I think I figured out a significant chunk of the source of that rage.  Basically, by investing our time and energy into trying to figure out how to get the little man on the screen up the mountain, we come to care about it.  Even though there's nothing important waiting for us at the top of our trash mountain, even though it's a ridiculous little game about mountain climbing, we care about it because we are trying.

By wanting to win…