Gamasutra: The Art & Business of Making Gamesspacer
Choosing the Perfect Game Engine
Printer-Friendly VersionPrinter-Friendly Version
arrowPress Releases
April 18, 2014
PR Newswire
View All
View All     Submit Event





If you enjoy reading this site, you might also want to check out these UBM TechWeb sites:


 
Choosing the Perfect Game Engine
by Miko Charbonneau on 02/22/13 04:39:00 pm   Expert Blogs   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

When designing a game, you might start with a type of game you enjoy and work from there. Or you might choose an engine you already know and build a game around it. But what about when the game idea comes first? Do you pigeonhole it into what you already know how to use? Or do you let the game dictate how it will be made? Most of the projects I work on start from a narrative. I have a theme or concept that I want to get across, and the world, characters, mechanics, and features follow from there. So when possible, I try to choose the engine and platform after we have a good idea of what we want this product to be. At the moment, we're in a development position where three radically different games need to be attached to engines soon, so I thought this might be a nice time to talk about how we make this decision.

What is your game about?

Ever heard of an elevator pitch? If someone asked you, right now, could you describe your game in the time it takes to ride an elevator? Even if you're heading from ground to penthouse, this can be a tough challenge. But if you can't describe how awesome your game is in one sentence, you should re-evaluate. Try not to think just of the type of gameplay, but the mood or experience you want to get across. Every element of the game should support your concept, and having one you feel good about will keep you on track. Figuring out the soul of your game takes time, but it's time worth taking in order to shape its development.

What are your features?

Once you've found the heart of your game experience, you can start building a features list. Ideally, this will be as complete as possible before you start coding up a prototype, but you can learn a lot from playing around with working code so don't stress out if you're still working on some details. At the very least, you should think about these key decisions:

  • 2D or 3D? Will you be navigating a 3D environment, or using animations and illustrations? Will there be a mix of the two?
  • What kind of art style? What colors will you use? Will you need shaders, particle effects, or other special graphical features?
  • What's the control scheme? Mouse and keyboard or touch? Are you using special inputs like virtual ink, voice or video?
  • What about audio? Will you need music and/or sound effects? Will you need to blend them together? Will you need to attach them to certain objects or areas of the map?
  • What is the core gameplay? Is it a common genre that might already have free example code in a popular engine?
  • What's the business plan? Are you giving this game away for free? Are you selling it, or relying on ad revenue or micro-transactions? Every engine has its own policies on licensing fees, and you should choose the product that matches your budget.

What platforms do I want to support?

Now that you're armed with your list of features, there's one more thing to consider: what devices are you going to support? This is a very difficult question to answer, especially if you're a very small operation! But many game engines port to more than one platform, so you should take this into account if you know there are multiple places you want your game to shine. It's twice the work if you build it all for one device only and discover you'd rather have it on many. I recommend first choosing a device that you personally use, so you can do testing yourself and bring it with you to show others while in development. And if possible, choose the device with the control scheme ideal for your game.

 What are my options?

There are so many game engines to choose from! Doing a quick online search will pull up lots of choices, which you can then check against your requirements. You can also look up some of your favorite games and see what engine was used to make them. I couldn't possibly list all of the game engines out there, but here are a few that I've worked with personally:

  • JS-VINE This surprisingly powerful tool can be used to make visual novel style cut scenes with branching paths, all within your browser. I used it extensively in a user study and highly recommend it for web tutorials or story-based web games.
  • Inform7 I love this tool, which uses a programming language based in English to make interactive fiction. If you've got a strong idea but no code or art yet, it makes a great living design doc to walk people through and explain your idea.
  • Unity One of the best engines to use for 3D game development. It's fairly easy and exports to many platforms.
  • Unreal Development Kit Personally, I've fallen in love with UDK. I'm still learning it myself, but the visual coding style of Kismet clicks well with my brain, and while it was a bit of a learning curve, I like the way you can add and subtract shapes in the world. A very powerful 3D engine, with a reasonable license for those just starting out.
  • Construct2 This is what has caught our attention most recently. It's fun to play with, has lots of great, easy tutorials and you can make simple arcade style games within minutes. And it publishes to many platforms, including web and Windows 8.

 Can't I just write my own engine?

Admit it, some of you are thinking that there is no reason not to write your own game from scratch. I know lots of programmers that were incredibly excited about making everything themselves. And I have seen many of those projects wither away almost from the start. I strongly advise you not to reinvent the wheel. By starting with a pre-existing base, you can usually still go into the code and modify whatever you want! Isn't it going to be more fun to write brand new features that no one has ever seen before? Having said that, there are cases where it's okay. Our first two games were built ground up without an outside game engine. Especially if it's your first project, it's more important to get something done and feel good about it. But don't go at it without a plan! If you're going to do this, start small. Like, really small! Our first Android app was literally a list of information. But it went in the store, got some good reviews for what it was, and we had a base to build off of in the future.

 What happens next?

Once you made a decision, start playing with your new toy! Do tutorials, make prototypes, break other people's example code. No matter what choice you made, you should constantly be re-evaluating your progress against your concept. Trust your instincts, and don't be afraid to change things if you're off-track. In our case, we've decided to take a smaller, easier game to test out Construct2 all the way to a finished product. I think it's going to work out great, and give us lots of good information about using this engine for our other projects.

Best of luck to you, whatever you decide!


Related Jobs

TapZen
TapZen — Los Angeles, California, United States
[04.18.14]

Database Engineer
Fun Bits Interactive
Fun Bits Interactive — SEATTLE, Washington, United States
[04.18.14]

Senior Engine Programmer
2K
2K — Novato, California, United States
[04.18.14]

DevOps Engineer – Core Tech
2K
2K — Novato, California, United States
[04.18.14]

Senior Graphics Engineer - Core Tech Team






Comments


GameViewPoint Developer
profile image
No mention of Flash? Adobe AIR? Starling?

Joseph Elliott
profile image
This was clarified. "I couldn't possibly list all of the game engines out there, but here are a few that I've worked with personally".

Clearly there are other options, but one article can't really catalogue every possibility.

GameViewPoint Developer
profile image
@Joseph E

The articles headline is "Choosing the perfect game engine" not "My personal experience of game engines"

If the article just focused on 3D I would understand (sort of) the lack of Flash/Starling etc being mentioned, but it mentions 2D, and Flash/Starling/AIR are a great choice for 2D games and are still being used by lots of people, so I was surprised it wasn't included.

Michael Whiteley
profile image
@GameViewPoint "Choosing the perfect game engine" does not equal "Here are all the possible game engines available in the world" or even "Here are the most popular engines that will suit your needs." The article discusses things you should consider when choosing the engine that suits the game you are making and it happens to make the nice gesture of providing an extra bullet for engines that the author has tried with some feedback.

So basically the article is: Determine what your game is, What's the target platform, Look for an engine (and oh by the way here are some I've tried) and then try out the engine and see if it suits the game like you thought it would. So given that those are the main take aways of the article the title of the article matches the content.

Also with the potentially soon deprecation of Flash across more platforms due to the adoption and standardization of HTML5 do you think it's worth pointing a developer at Flash based technology? It's also possible that Flash will regain its foothold (not that it's really lost it too much) and this is a moot question. Just curious (maybe there are AS3 to X converters/engines).

With that in mind, you wouldn't happen to have any experience with good HTML5 based engines? I know there are still issues with the sound API (or at least there was a couple months back).

Even neater would be starting a series of articles that investigates popular engines for a given technology base and target game type, but I'm not expecting that of anyone. It would just be interesting.

Nicklas Holmgren
profile image
Here's a few more which can be interesting to you game developers:

What about Löve? (https://love2d.org/) - this game is made with that: http://stabyourself.net/mari0/
Or Multimedia Fusion 2? (http://www.clickteam.com/website/world/multimedia-fusion-2)
Or Game Maker? (http://www.yoyogames.com/gamemaker/studio)
Or RpgMaker? (http://www.rpgmakerweb.com/)
Or Novelty? (http://www.visualnovelty.com/)
Or Flixel? (http://flixel.org/)

Kind regards!

fabian san
profile image
Thanks for the article, i have a question, why make a game from any language such as java and not use game engine, I win something?

what are the advantages of not working with game engine?

thx.


none
 
Comment: