Game Engines or Frameworks?

If you are a prospective, independent or hobby game developer you have probably herd about Game Engines and Frameworks. These look pretty appealing if you are watching the demos and you see what other great games have been built on them. The studios who develop them make it look like the easiest most powerful way to make a good game fast. So, what is a Game Engine anyways? What is a Game Framework? What’s the difference? Which one should I choose?

The first thing you need to understand when figuring out you’re development path is “What exactly is a Game Engine or Framework?” There are many misconceptions about the definitions of Engines and Frameworks. Also everyone on the Internet seems has an opinion on which is the best, why it’s the best and why you are stupid for choosing to use one or not. I’m going to try and avoid these arguments for now and focus on definitions.

A Game Engine (A Very Basic Overview)

A game engine includes the full workings of a game released to be modified, skinned, and made to look the way you want it. Do you remember the Build* engine? Well, have you ever played Duke Nukem 3D, Nam, Shadow Warrior or Power Slave? They are all classic games from the infancy of 3D First Person Shooters (post Doom pre Quake). Allot of those games looked and felt pretty much the same, this is because they all used the same game engine. All of there game play mechanics, graphics pipelines and physics were defined by the Build engine. The engine also handled control over game state. When game companies licensed the engine to build new games they tweaked the engine in order to make the game there own. Admittedly some games just used the engine stock as it was in Duke Nukem and put new graphics and textures on it. However some reworked the engine allot, but the games pretty much looked and played the same.

As time went on engines became more advanced and more flexible. the Quake engine was able to render full 3d objects on top of the world and use semi-realistic lighting, script based modifications using Quake-C and so on. Of course game engines today are exponentially more flexible and and powerful. An engine is essentially everything you need to make your game on a relatively high level. One of the draw backs of the game is that you can only tweak an engine so far. Once you run into core game play, physics or graphics pipeline issues that can not be overcome by engine tweaks it’s time to start looking at another engine that has what you need built in, or going to a lower level of development.

An engine can take several forms. It can be a comprehensive set of APIs (Application Programming Interfaces) which easily implement game play, graphics, shaders and physics or it can be a set of tools that that you can use to build your game.

A Game Framework (A Very Basic Overview)

A game framework is a lower level set of APIs that make it easy for you to set up your game. Frameworks (XNA for example) usually have APIs for setting up your display, drawing objects on screen, loading objects from files, capturing control input and playing sounds and timing. A framework had NO game play mechanics built in. You have to add that your self. Also loading and displaying objects are usually much more low level and allow you much more control over how things are done. You can build an engine on top of a Framework or use the Framework directly to build your game. Building large complex games becomes quite a task with no predefined game play mechanics to modify. Everything outside of the APIs has to be done from scratch. While you have allot more control over how everything works and you can cut out anything that is not directly part of your game, it can become a complex task to make a complex game using just a framework.

How do I choose what to use?

First of all you need to figure out what kind of game you want to make. How should the game control? Is it an action game? A puzzle game? What kind of graphics are you going to put into it? Once you have all of your game play, graphics, and sound requirements solidified you can then begin to choose an Engine or Framework. Do some research! Do you want to make you’re game in code or visually? Which engines support the features that you want to include in your game? What engines and frameworks are free? Which have free Demos and Licences?

Should I use one at all?

How complex is you’re game? How much effort do you want to put into it? Many simple games can be made pretty easily using to graphics libraries built into most languages like C#, Python, or Java. You will have to learn them and build your game around them. If you think that a Framework or Engine would be too bulky for your new addictive puzzler!

I have made my choice! What next?

So you have decided to use a particular Engine or Framework… GREAT! Don’t make your game yet! Take some time to learn the tools! Go through all of the tutorials available on there web site. If you can find a book GO BUY IT! If you are going to use this engine to make a good game, you are going to have to know it! Make small projects to experiment with various aspects of the engine or framework. There is no faster way to get frustrated with your game than starting the whole thing without any practical knowledge of the Engine or Framework. Learning as you go is great, but you are going to need that solid foundation.


Engines I recommend:

Unreal® EngineTM 3

By: Epic Gamestm

Information: Http://www.UDK.com

License: Free for educational or non-commercial use.

– Epic GamesTM flagship engine has got allot to work with. Amazing tools, visual sequence editing, movie scripting, super robust lighting system and amazing flexibility. Games using this engine include: Unreal Tournament III, Batman: Arkham Asylum, Borderlands, Dark Void, the Gears Of War series, Mass Effect series, Mirrors Edge and much more!

Source® Engine

By: Valve

Information: http://source.valvesoftware.com/

License: A copy of the source engine comes with any Source based game. Free for educational and non-commercial use.

– The engine that made Half Life. Amazing physics, graphics and flexibility make this engine a staple for both hobbyists and professionals alike. Games attributed to this engine include The Half Life series, Portal, Counter-strike and the Team Fortress series!

Blender Game Engine

By: Blender Foundation

Information: Http://www.blender.org

License: Free open source.

– Blender is THE free 3D tool. Modeling, rigging, animation, rendering, ray tracing, video editing, physics and Game Development. The Blender Game Engine uses both visual logic blocks for game creation as well as Python scripting for complex logic. Games include Boro-Toro and Yo Frankie! Blender’s modeling and rendering capabilities have been used in thousands of independent games and films!

Frameworks I recommend:

XNA Game Studio

By: Microsoft

Language: C#

Information: https://www.dreamspark.com/

License: Free! (fees apply for publishing on Xbox Live and Windows Phone)

– Microsoft’s XNA Game Studio is a robust development framework which will allow you to use C# to create games for the PC, Xbox 360 and Windows Phone platforms.

Processing

By: Open Source

Language: Java

Information: http://processing.org

License: Free open source.

– Processing is a framework designed for visual artists. While not targeted directly at games processing is robust enough for entry level game developers! Android development is also supported (beta)!

Other Options:

Flash

By: Adobe

Language: Action Script

Information: Http://www.adobe.com

License: $699.00

– Arguably the most popular browser based gaming platform! While it can do much more than games. Ease of development and massive support makes Flash prefect for writing the next big browser based game!

Silverlight

By: Microsoft

Language: C#, Visual Basic

Information: http://www.silverlight.net/

License: Free (advanced development tools available to download or buy from many sources)

– Silverlight is Microsoft’s approach to interactive web applications. Not targeted specifically at game developers, silver light offers flexibility and ease of use to rival Flash. There are lots of development resources!


*Short list of games using the Build engine by 3D Realms
Duke Nukem 3D
Blood
Shadow Warrior
Redneck Rampage
Witchhaven
TekWar
Extreme Paintbrawl
Powerslave
NAM/Napalm
WWII GI

Edit: Updated registered trade marks and copy rights for Epic Games™. All games, engines, and titles mentioned are © by there respective developers and publishers.

Edit: XNA Game Studio website has been updated to it’s new location.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: