You are on page 1of 60

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Open Source & Low Cost Game Engines


LudoCraft | ELIAS-project

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Table of Contents
TABLE OF CONTENTS..............................................................................................................................2 INTRODUCTION.........................................................................................................................................4 PURPOSE OF THIS DOCUMENT ............................................................................................................5 WHAT IS A GAME ENGINE? ...................................................................................................................6 WHAT SHOULD BE TAKEN INTO ACCOUNT WHEN CHOOSING A GAME ENGINE? ............9 ENGINE LICENSE ..........................................................................................................................................9 GAME DESIGN VS ENGINE ..........................................................................................................................10 TRACK RECORD .........................................................................................................................................10 HARDWARE REQUIREMENTS......................................................................................................................10 PROJECT RESOURCES VS ENGINE ...............................................................................................................10 RECOMMENDATIONS ............................................................................................................................12 2D ENGINES...............................................................................................................................................12 3D ENGINES...............................................................................................................................................12 ENGINES MADE BY FINNISH GAME COMPANIES .........................................................................................13 TYPICAL GAME ENGINE FEATURES.................................................................................................15 AI..............................................................................................................................................................15 ANIMATION ...............................................................................................................................................17 CAPACITY .................................................................................................................................................18 COST AND LICENSING TERMS.....................................................................................................................18 GPL (General Public License) ............................................................................................................18 LPGL (GNU Lesser General Public License) .....................................................................................19 DEBUGGING ..............................................................................................................................................19 DOCUMENTATION & HELP CHANNELS .......................................................................................................20 GRAPHICS API ..........................................................................................................................................21 HARDWARE REQUIREMENTS......................................................................................................................21 LIBRARY VS. EDITING TOOLS ....................................................................................................................22 LIGHTING ..................................................................................................................................................22 LOCALIZATION ..........................................................................................................................................23 MATERIALS & TEXTURES ..........................................................................................................................23 NETWORK .................................................................................................................................................24 OTHER FEATURES ......................................................................................................................................25 PHYSICS ....................................................................................................................................................25 PROGRAMMING LANGUAGE .......................................................................................................................26 REQUIRED ASSET FILE FORMATS, SPECIAL TOOLS, ETC. .............................................................................26 SCRIPTING .................................................................................................................................................27 SOUND & MUSIC ........................................................................................................................................27 SPECIAL EFFECTS ......................................................................................................................................28 STATUS .....................................................................................................................................................29 SUPPORTED PLATFORMS & OPERATING SYSTEMS ......................................................................................29 TERRAIN....................................................................................................................................................29

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines


TYPE .........................................................................................................................................................30 2D ENGINES...............................................................................................................................................31 FLASH 8.....................................................................................................................................................31 GAME MAKER ...........................................................................................................................................32 GOLDEN T GAME ENGINE .........................................................................................................................33 POPCAP GAMES FRAMEWORK ..................................................................................................................34 SHOCKWAVE .............................................................................................................................................34 SIMPLE DIRECTMEDIA LAYER (SDL) .......................................................................................................35 TORQUE 2D...............................................................................................................................................36 OTHER POSSIBILITIES ................................................................................................................................36 3D ENGINES...............................................................................................................................................37 3D GAME STUDIO ......................................................................................................................................37 BLITZ3D ...................................................................................................................................................38 CRYSTAL SPACE ........................................................................................................................................39 DARKBASIC.............................................................................................................................................40 DELTA 3D .................................................................................................................................................40 IRRLICHT ...................................................................................................................................................41 KA3D ........................................................................................................................................................42 LIGHTWEIGHT JAVA GAME LIBRARY .......................................................................................................42 PANDA3D..................................................................................................................................................43 QUAKE 2 ...................................................................................................................................................43 QUAKE 3 ...................................................................................................................................................44 QUEST 3D .................................................................................................................................................45 REALITY ENGINE .......................................................................................................................................46 TORQUE GAME ENGINE ..............................................................................................................................47 TV3D SDK VERSION 6.2 ..........................................................................................................................48 UNREALENGINE2 RUNTIME ......................................................................................................................49 GRAPHICS ENGINES...............................................................................................................................52 OGRE .......................................................................................................................................................52 OPENSCENEGRAPH ...................................................................................................................................53 MISCELLANOUS ENGINES....................................................................................................................54 3D RAD .....................................................................................................................................................54 ADVENTURE GAME STUDIO ......................................................................................................................54 BLENDER...................................................................................................................................................55 GAMES FACTORY ......................................................................................................................................55 NEBULA ....................................................................................................................................................56 REALITY FACTORY ....................................................................................................................................56 SCROLLING GAME DEVELOPMENT KIT .....................................................................................................57 SOYA 3D ...................................................................................................................................................58 REFERENCES ............................................................................................................................................59 ADDITIONAL RESOURCES....................................................................................................................60

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Introduction
This document describes open source and low cost game engines found at the time of making this document, meaning years 2004-2005. The list is not comprehensive describing all of the available game engines because there are hundreds of them mostly available on the Internet. Some engines are one-man projects developed by students or other hobbyists while others might have big organized teams behind them. There are also a bit older game engines available which have been used in commercial games a few years ago and are now free for use. This document doesn't contain information about the latest commercial game engines which generally cost hundreds of thousands of dollars to license. Unreal 3.0, Doom 3 and Half-Life2 are examples of the top engines available at the time this document was written. When comparing the top commercial engines with the low cost engines described in this document, the difference between them when comparing just the game engine features is a huge one. Unreal 3.0 has just tons of features when compared to Torque game engine. But when developing smaller 3D games which don't require state of the art 3D graphics or 32 player network support, the need to use a top engine isn't there anymore. An example of smaller type games are casual games which might be sold on the Internet. Search for Bejeweled or DinerDash on the WWW for examples of casual games. Keeping the situation described above in mind, the first part of the document describes briefly the big picture of game engines and other related terms like game development toolkits, sdk's, etc. After this there is a chapter discussing what has to be taken into account when choosing a game engine for the project. The main part of the document is a list of open source and low cost game engines with descriptions and comments about the engines themselves.

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Purpose of this document


This document describes what are game engines and what kind of free and low cost game engines are available at the writing time of this document. This document is for all kinds of people looking for a game engine for their project. These people can be hobbyists who make games as a hobby and need a platform to develop games instead of starting from scratch. Also companies can use this document to find out what kind of engine technologies are available, what kind of licensing terms they have, what features the engines have, etc. There are no assumptions that the engine is going to be used in a project whose aim is to make a commercial game. This is because games can be also developed for teaching, commercial purposes and other kinds of purposes different from the very competitive commercial gaming business.

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

What is a game engine?


Game engine is the core software component of the game that makes the game work. It combines different media elements and makes them work together, thus creating the game. Without the engine game only has separate files like game rules & game logic, sound files, graphics files, 3D-models, level geometry and other art assets. According to Wikipedia (2005) game engine is the core software component of a video game. It typically handles graphical rendering and other necessary technology, but might also handle additional tasks such as game AI, collision detection between game objects among other things. The most common element that a game engine provides is graphics rendering facilities (2D or 3D). Another common attribute of game engines is platform abstraction, so the game can run in various platforms (game consoles, different versions of Windows) with little or no changes in the game source code. Typical engine subsystems include Renderer draws the scene with all approriate objects & effects to the screen. Collision detection is used to calculate collisions between objects. Physics are used to simulation gravity and other physics related elements. Input / output system is used for handling file operations, keyboard, mouse, etc. Sound & music system handles playing of sounds & music. AI system is used to have computer controlled opponents & allies. Network system is essential for multiplayer games played over networks. Database system is used storing the data. GUI system is used for creating and handling windows, menus, huds, etc. While engine has all of these smaller subsystems like rendering and collision, there isn't a single system which is more important than others. All systems are equally important because for a successful game you almost always have to have fun gameplay (which means good AI, good network code, and good physics), impressive visuals (meaning a modern and stable renderer), good sound, sufficiently powerful content creation tools to empower the artists to work their magic, and a sufficently powerful and stable engine framework (the unglorious things like resource management and loading) to enable the programmers to work productively. A game or engine seriously lacking in any of these areas is very likely to turn into a disaster. (Sweeney 2004). The relationship between a game and it's engine can be compared to a car and it's engine. You can take a car's engine and put it into another car which looks totally different from the original car. In games the engine is like this too so it can be used with different kinds of content (also known as assets) which include graphics, sounds, models, animations,

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

game logic, etc. You can have the same engine power a militaristic first person shooter, a third person fantasy-style role playing game or a pinball game for example.

Figure 1. Modular game engine structure (Lewis & Jacobson 2002) There are special companies that focus just on creating game engines. These companies are known as middleware developers and they provide game companies whole game engines or some parts of it like physics. The idea is to stop reinventing the wheel again and again by coding the physics component in every new game and instead use the same physics component in every game. Well known middleware developers include names like id software and Epic Games who both develop whole engines. Other companies who provide one specific part of the engine are for example Havok with their physics component and IDV with SpeedTree foliage & tree system. Some of the commercial games come with editor tools, game development toolkits or SDK's which can be used to create additions to the original game or create a whole new game using just the engine of the game. Most of the games which have these tools dictate the type of the game which can be developed using the tools. For example NeverWinter Nights development tools can be mainly used just to create same style role playing games are the original game. On the other hand there are tools like Unreal & UnrealEd which allow people to create pretty much any type of games they want (figure 2).

Figure 2. Editor from UnrealEngine2 Runtime.

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Graphics engines are engines designed just to show the 2D or 3D graphics of the game. They don't contain any scripting, sound, physics or network related components that are essential for games. OGRE is a good example of a pure graphics engine. On the side of graphics engines there are other types of engines or smaller components which can be combined to make a full game engine. Sound, physics and network engines or just library files can be combined with a graphics engine to make a fully working game engine.

Figure 3. A sample game engine architecture.

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

What should be taken into account when choosing a game engine?


When choosing a game engine for the project, there are many things which much be taken into account. This chapter provides a base for the decision making by describing those things.

Engine license
Do you need an engine for a commercial game or for some open source application? Engine which has a GPL license means that you have to also release your source code if you use the engine. Also people can make copies of your game as much as they want without your permission. LPGL is also a bit similar and it is somewhat unclear what you have to release if you use LPGL licensed components. So the best choice is always to get a commercial license for the engine you are going to use. Contact the company or person who made the engine and try to negotiate a commercial license for the GPL'ed / LPGL'ed engine. When licensing an engine, the costs are usually one or a combination of the following: Flat licensing fee which is paid when the engine is licensed from the developer. There might be different editions or versions of the engine available with different prices. Royalties based on number of copies sold. Especially the middleware companies like Epic usually have licensing terms which allow you to buy the engine either cheap with royalty payments or more expensive with no royalties. Payments for additional platforms (Linux, PS2, XBox, etc). The more platforms you want to support, more you usually have to pay. Payment per programmer using the development software. Some engine manufacturer's require you to buy a license for every developer using the engine development tools. Payment for engine updates or support. Some engines require the use of specific programs which cost a lot of money. For example KA3D requires the use of 3DSMax which is a very expensive 3D modeling program to make game levels. Another example is that Unreal engine has export tools ready only for commercial 3D modeling programs 3DS Max and Maya. Some engines are free but use libraries like FMod (sound library) which is free unless you use it in a commercial product. In this case you have to license it for about $2000. 9

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Game design vs engine


What kind of game is being developed affects the decision about the game engine. It's a matter of comparing game design vs. game engine feature support. The engine should support the main elements the game design but not necessarily all of them. So for example if the game is heavily based on good physics simulation, choose an engine that supports it already or it's easy to add the required feature to it. The list of typical engine features on the previous page gives a picture what to look for in game engines. For example is the game going to be 2D or 3D? What about AI support?

Track record
Has the engine been used already in commercial games or in any games? If the engine has been indeed used and has a solid track record, it's much safer to choose it rather than going for an engine which hasn't been used in any commercial games yet. Normally you don't want to be the betatester for the engine who finds the engine's bugs. You want to be the user of a solid game engine and focus on the game development instead.

Hardware requirements
If you are planning on making an indie game for lower machine specifications, choosing an engine which requires a state of the PC is not that wise. So choose an engine which suits the needs and the target platform / specifications of the game.

Project resources vs engine


The cost and licensing deal of the engine. Some engines cost more and some less. The ones which cost more are usually more robust and have more features than the cheap engines. The experience and structure of the development team. If the team has many programmers, it's possible to choose an engine which demands much programming to get things working. In case there are only a few programmers, the engine should support most of the functional requirements already at the start of the project.

10

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Time table of the project. Some engines need more work to make things work or graphics look good. On the other hand, some engines are easy and fast to work with but lack in some other areas like good graphics or physics. There are also some negative things when using an existing game engine rather than making one by yourself if you have skills and resources for it. According to Fristrom (2004) using other's game engines doesn't give you as much of an advantage as you might hope. You'd think it would turn a three year project into an eighteen month one, but he says that it really saves just about six months. It still took 3 years for Valve to develop Half-Life although they used Id's Quake 2 engine. A big benefit of this time savings is that your designers can begin making levels much earlier in the development process. That's your critical path. By reusing an engine, your designers can begin prototyping levels immediately, even though those levels won't have all the features that you envision for the final project. You've leveled six months off your schedule. The fact that you're using an engine that two or more years have gone into doesn't seem to matter; you don't get to save those two years. And working with the engine brings its own price: You continually feel painted into a corner. You'll find yourself saying things like, If only the engine was designed from the start for network play and If only the engine was designed from the start for a full-state save game. (Fristrom 2004.)

11

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Recommendations
This chapter has recommendations which engines should be used for particular kind of projects. The recommendations are based on the evaluations presented in the next chapters and on the personal experiences gained when testing and using the specific game engines.

2D engines
2D games which are simple, relatively static and don't depend many moving objects we recommend using Flash 8. Only problem with it is the speed because it is just so slow when compared to 2D games using C++ / DirectX (Bilas 2005). Flash 8 has the following strengths making it the best choice: - A complete game authoring system. No need for additional programs or libraries. - Has the best support for doing all kinds of 2D animation - Supports making games for Web - Developing is easy with ActionScript For fast 2D games there aren't any obvious choices. PopCap Games Framework has been used in many commercial games and it's license allows to use it freely without any restrictions. This means that it is one serious option worth checking out. When choosing a development platform for casual 2D games, Steinmeyer (2005) suggests Flash, Java and Compiled C/C++ hooked to DirectX, using the SDL library. If the game needs to be made with java, Golden T Game engine is an obvious choice.

3D engines
3D applications which are not games and require solid and robust engine we recommend using the UnrealEngine 2 Runtime. It is more expensive than the other low cost and free 3D engines but it just has so many features and is very solid. It is a complete game authoring system so you don't need to add any extra plugins or software to it, rather you start developing your application immediately. But if you are developing a game, using this engine is not an option because the license denies it. Also if you decide to use this engine, you should negotiate about the exact licensing costs first and then move on with the development. This is because the licensing information for this engine is not public at the time of the writing so the exact costs cannot be described here. UnrealEngine2 Runtime has the following features making it the best choice: - A complete game authoring system. No need for additional programs or libraries. - Content driven, you start developing the application immediately 12

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

- Developing is easy with UnrealScript - Based on a commercial engine meaning that it is very solid Also for 3D games there isn't an obvious engine or game authoring system which is so much better than the other ones. For freeware 3d games (not commercial) Delta 3D and Quake 3 are the main contenders. Delta 3D integrates many other open source middleware components into a working game engine and is developed by the US army. Quake 3 has been used in many commercial game and has just a lot of features. This means that it is also quite complicated and heavy to use. For commercial 3D games Crystal Space, Torque and TrueVision 3D are options worth checking out. Their licensing issues are clear and all are more than just graphics engines. All three engines have also been used in commercial games before.

Engines made by Finnish game companies


One realistic option is also to negotiate with Finnish game companies about possibilities to use their engines. Remedy might be too big company who are too busy but other smaller companies should listen to you more than to some foreign developers. Here's a list of Finnish game companies who are known to have their own engines or game development tools: BugBear Entertainment, www.bugbear.fi Own engine used in FlatOut, a demolition derby-rally style game. FrozenByte, www.frozenbyte.com Own engine used in ShadowGrounds, a top-down alien shooter. Gamelion, www.game-lion.com Claw technology for porting games to different mobile platforms. Hybrid, www.hybrid.fi Has products for mobile game development named Hybrid Rasteroid. PixelGene, www.pixelgene.com Own engine KA3D used on mobile games. Also a book is available describing how to use the engine named Making a Game Demo (Wordware Game Developer's Library) by Chad Walker, Jani Kajala and Eric Walker. Remedy, www.remedygames.com

13

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Max Payne technology. SecondBrain, www.secondbrain.net Has a game engine named Reality Replicator which produces realistic outdoor environments. For a more comprehensive list of Finnish game companies see: http://www.igda.org/finland/companies.htm

14

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Typical game engine features


Game engines can be evaluated according to their supported features. Below is a list of game engine features which are typical for modern day engines. Some of the features are only relevant to 3D engines, but most are typical in any kind of game engines. Complete 3D game engines with built-in editors are complex software programs. To get a general view of features for modern 3D engines visit the following Unreal technology site. Links Unreal Engine 3 technology overview http://www.unrealtechnology.com/html/technology/ue30.shtml

AI
AI is short for Artificial Intelligence and it is used in games to give player an opponent(s) to play against. Also simple puzzle games like Bejeweled or Tetris have some kind of AI which decides what kind of pieces are set on the board or what kind of piece falls next. On the other hand AI can consist of multiple computer controlled soldiers working together as a squad or multiple squads on the game's battlefield. Advanced AI behaviour describes what kind actions AI can do in the game. Can the AI controlled characters use triggers, how they use different inventory items, how they choose their weapons? Bot is a computer controlled "player" used in multiplayer games. Bots can be used both as enemies or team mates in different kinds of game modes to stand in place of missing human players. Bots can be also used in offline matches for training. Formations are related to bots, can they work as a team and use formations? Or can player give orders to the bots? Fuzzy logic replaces the boolean logic (true or false) with multiple degrees of the truth, vague definitions of different sets. This can be used in the game's AI code. Line of Sight (LOS) checking is used to determine if a one can see from point A to point B inside a game level. Bots use these checks to determine if they "see" different objects on the level. Natural language processing is used in some games so that player types in natural language sentences instead of choosing them from predetermined list. Check out a free game named Faade for reference. Path finding is important as it is used by bots to find different places in the level. Some games like UT2004 use static path finding so that path nodes and waypoints must be placed to the map in order for the bots to work. Other games use dynamic style path finding so that the bots learn the levels during the play. 15

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Scripting support determines whether bots in the game can be scripted to do certain sequences. This can be used to make cutscenes for example. State machines are used when programming AI to the game. For example UT2004 uses states in it's bot code and there are different states for different behaviours like roaming, driving vehicles and fighting with the enemies. Team based AI means that computer opponents or player's allies can work as a team making decisions based on the status of the whole team. Links AboutAI.net, the GameAI section http://www.aboutai.net/ GameAI Page http://www.gameai.com/ Gamics laboratory, lead by Tomi Pasanen, dept. of Computer Science University of Helsinki. Research focused on artificial intelligence in games. http://gamics.cs.helsinki.fi/ Gamedev.net, section on artificial intelligence http://www.gamedev.net/reference/list.asp?categoryid=18 Sunbir, G. Visual Finite State Machine AI Systems. http://www.gamasutra.com/features/20041118/gill_01.shtml Leonard, T. 2003. GDC 2003: Building an AI Sensory System: Examining The Design of Thief: The Dark Project http://www.gamasutra.com/gdc2003/features/20030307/leonard_01.htm Tapper, P. 2003. Personality Parameters: Flexibly and Extensibly Providing a Variety of AI Opponents' Behaviors http://www.gamasutra.com/features/20031203/tapper_01.shtml Woodcock, S. 2000. Game AI: The State of the Industry. http://www.gamasutra.com/features/20001101/woodcock_01.htm

16

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Animation
Animation is used in games in many different elements and it can be either 2D or 3D. 2D animation can be based on vectors or it can be traditional animation where each frame is drawn by hand. 3D animation is used to animate 3D models which can be for example player characters, space ships, flying birds or grass slowly moving in the wind. Animation channels are the number of animation channels one model can use in the game. Blending animations means that multiple animations are played simultaneously in the same model, blending the different animations together. Facial animations are used to show emotions in game's characters. There can be different expressions like happiness, sadness, etc. See Half-Life 2 game for examples of good facial animation technology. Exporters are used to convert models and animations from 3D modeling programs (Max, Maya, Blender, etc) into the game engine's format. Inverse kinematics is used to determine the parameters of joints in order to go to the desired pose. Morphing means changing an image from one to another with a transition. Skeletal based animation uses a hierarchy bones to move the model and animate it. Keyframes are frames that are drawn or constructed by the animator. Vertex (or mesh) based animation uses vertex positions to store the animation sequence. Tweening (animation or shape) means that computer fills the gap between key frames. Links Edsall, J. Animation Blending: Achieving Inverse Kinematics and More. http://www.gamasutra.com/features/20030704/edsall_01.shtml Fernando, R& Kilgard, M. 2003.Animation with CG http://www.gamasutra.com/features/20030325/fernando_01.shtml Gamedev.net, section on animation and modeling http://www.gamedev.net/reference/list.asp?categoryid=61

17

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Capacity
Engines have different kind of demands from the hardware and the following figures are used to describe the limits or power of the engines. Frames per second (FPS) means how many frames in a second does the engine draw the game to the screen. Number of network clients determines how many clients does the engine support in multiplayer games. Typical FPS shooters have support for 4-64 players. Number of polygons on the screen describes the amount of polygons on the screen. There are other factors like the use of textures which affects this number so it is hard to compare engines with this feature. Number of objects on the map. Number of executed script commands per second. How fast is the scripting engine? Size of textures, what kind of textures and how big does the engine support?

Cost and licensing terms


Using other people's engines usually (but not always) costs money. When buying an engine from some developer, costs might include: - Flat licensing fee which is paid when the engine is licensed from the engine developer - Royalties based on number of copies sold - Payments for additional platforms (Linux, PS2, XBox, etc) Freeware engines are usually distributed according different licensing types. The typical licenses are GPL and LPGL. To put it simple, GPL can't be used at all with commercial applications because you have to release the source of the application. One way to take care of this issue is to try to negotiate buying a commercial license from the maker of the GPL'ed software. GPL (General Public License) General Public License is commonly used license agreement used with free software and is also used with some of the game engines. GPL is a free software license and it lets people to use and even redistribute the software without being required to pay anyone any money. This license grants the following rights to the software user: Freedom to run the program, for any purpose. Freedom to study how the program works, and modify it. (Access to the source code is a precondition for this) Freedom to redistribute copies 18

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Freedom to improve the program, and release the improvements to the public. (Access to the source code is a precondition for this)

The primary difference between the GPL and more "permissive" free software licenses such as the BSD License is that the GPL seeks to ensure that the above freedoms are preserved in copies and in derivative works. It does this using a legal mechanism known as copyleft, invented by Stallman, which requires derivative works of GPL-licensed programs to also be licensed under the GPL. In contrast, BSD-style licenses allow for derivative works to be redistributed as proprietary software. (Wikipedia, 2005.)

LPGL (GNU Lesser General Public License) Lesser General Public License is a free software license which is a compromise between GPL and simple permissive licenses. The main difference between the GPL and LGPL is that the LPGL can be linked to a non-(L)GPLed program, which may be free software or proprietary software (which has restrictions on using and copying it). The LGPL places copyleft restrictions on the program itself but does not apply these restrictions to other software that merely links with the program. There are, however, certain other restrictions on this software. Essentially, it must be possible for the software to be linked with a newer version of the LGPL-covered program. The most commonly used method for doing so is to use "a suitable shared library mechanism for linking". Alternatively, static linking is allowed if either source code or linkable object files are provided. (Wikipedia, 2005.) Links GNU license texts http://www.gnu.org/licenses/licenses.html

Debugging
Engines are complicated systems so usually they have many debugging systems to help developers find the problems and fix the bugs from their code. The most simple engines have just logging but most advanced can have profilers, run time debugging and even options for simulating different kinds of network environments. Logging is used to write things to the log file from the code. Profilers can be used to find the bottlenecks from the code, places which take a lot of time to execute and which should be optimized.

19

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Run time debugging means that program code can be traced during it's execution, going through the code lines one by one. Simulating different kind of network environments like lag and latency is beneficial for testing the game in all kinds of environments. Links Fristrom, J. 2003. Production testing and bug tracking http://www.gamasutra.com/resource_guide/20030714/fristrom_01.shtml Frommhold, D& Rken, F. 2005. Automated Tests and Continuous Integration in Game Projects http://www.gamasutra.com/features/20050329/roken_01.shtml Marselas, H. 2000. Profiling, Data Analysis, Scalability, and Magic Numbers, Part 1: Meeting the Minimum Requirements for Age of Empires II: The Age of Kings http://www.gamasutra.com/features/20000809/marselas_01.htm

Documentation & help channels


Because game engines are complicated, good documentation is needed so that developers can use them. Descriptions of typical documentation and help channels are below. Books about the game engine or developing games with it. Developer forums, news groups and mailing lists are places where the game engine developers and people using the engine meet to discuss their problems, feature requests, etc. Email to developers or calling them are the most direct ways to get help. It is another matter if the developers respond to your mails and calls. Level of documentation describes how thoroughly the engine is documented. Online help is located usually on the game engine developer's website and is usually more up-to-date when compared to offline help files. Sample code / scripts / games help game developers to know the engine. It's much easier to study sample code than to start from scratch. Tutorials (text, image based, flash, video) in addition to sample code are a good way to learn more about the used engine.

20

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Graphics API
Different engines use different graphics APIs which provide primitive functions used to build a graphics library. DirectX (or actually Direct 3D) is a graphics API used only in Microsoft operating systems. OpenGL is an open graphics API and can be used with many operating systems. Software rendering means that the graphics are drawn by the CPU instead of the 3D graphics card. This makes it much slower than DirectX or OpenGL. Links DirectX homepage http://www.microsoft.com/windows/directx/default.aspx Open GL homepage http://www.opengl.org/

Hardware requirements
What kind of hardware does the engine need in order to function properly. These are usually referred as hardware requirements. 3D card is used to draw graphics to the screen. Different cards support different DirectX versions and have different memory sizes. CPU speed is reported in Ghz, like for example 2 GHz CPU or better. DVD-Drive (or CD drive) so that the game can be installed Hard drive space, how much space does the engine take? What about other game's assets like maps, sounds, textures, models, etc? Internet connection (modem / ADSL) to be able to play the game in the Internet Memory requirements differ between engines. This is usually reported in megabytes (MB) and the requirements can be anything from 16 megs to 512 megs. Sound card is usually a requirement for playing games but the model isn't that important these days.

21

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Library vs. Editing tools


This game engine feature describes what kind of support does the engine have. The engine might be just a collection of dll files (libraries) which hold C++ code. The libraries could be used just for drawing models on the screen and nothing more. On the other side the engine might include a comprehensive editor which is used to make levels, import art & sound assets, code the game logic, build menus, animate characters, etc. Source code, does the engine come with source or not? The code can be anything from C++ to Java Library files, does the engine consist of just library files (dll) so that you have to make the executable yourself? Script editor. You can write code for game with this editor instead of using some other program like notepad. Map editor is used to make maps for the game. Some map editors are used to build the entire level from BSP geometry while other map editors are used to place 3D models and other objects to the map. Path editor is used to place waypoints or path nodes to the map. Some path editors also include autopathing option. Terrain editor is used to build terrain for the map. Sound and music editor is used to import sounds and music to the game. Cut scene editor is used to make in game cutscenes which are also known as machinima. Particle editor can be used to create particle effects for the game. Physics modeling tool can be used to define different kinds of physics attributes to the models and objects of the game. Textures & material editor allows the developer to add textures to the game, define their properties and make different kinds of shaders. Animation editor is used to import animations made in 3D modeling programs and tweak them to be used in the game. Built-in editor combining different editors into one package is the most ideal choice. Game engines like Unreal or Source have the most complete built-in editors.

Lighting
Maps in the game can have different kinds of lighting. The lighting is important part of the game's look. Anisotropic filtering enhances image quality on surfaces which are steeply angled or far away.

22

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Dynamic lighting means that the lights can change in the game, like for example player can use a torch to light up a room. High dynamic range (HDR) lighting or rendering is a technique to get authentic looking lighting to the game. It basically adds more possibilities to the contrast values of the rendered image. See Half-Life 2's free Lost Coast map. Light effects like blinking, wavering, pulse, disco, etc Lightmaps are used to store the brightness of map's surfaces. They are precalculated. Per pixel, calculating light for each pixel in the rendered image. This produces more realistic images than per vertex lighting. Per vertex, calculating light for each vertex. Radiosity is a lighting mechanic which simulates many reflections of light in the map. This means usually natural shadows and reflections. Static lighting, the whole map or a zone is lighted with one static value. Shadows, produced by different rendering techniques. These can be also tricked in some engines by using projectors. Volumetric, light rays are visible because of mist, fog, etc. Links Gamedev.net, section on graphics http://www.gamedev.net/reference/list.asp?categoryid=40

Localization
Since games are made for global markets, it is important that they support localization. The things that need localizing in the game are Text and speech sounds. Links Monton, D-D. 2005. The Video Game Translator Wishlist http://www.gamasutra.com/features/20050615/monton_01.shtml Puha, T. 2001. Eurospeak: Localizing Games for the European Market http://www.gamasutra.com/features/20010403/puha.htm

Materials & textures


Textures are used in many kinds of things from hud graphics to 3D model skins. 16/32/64 bit textures, have different amount of colors.

23

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Antialiasing is used to minimize jagged edges Effects with materials include for example bloom, depth-of-field, motion blur and halo Material system includes for example technologies like alpha channels and bump maps Mipmaps are smaller versions of the original texture and their use is based on the distance of the player from the texture. The idea is to speed up rendering. Multi textures means that one model can have multiple textures. Procedural textures are generated by algorithms. Size limits, what kind of textures can be used? Some engines use textures which must be sized with power of 2 (256x256, 512x512,1024x1024, etc) Supported formats, what formats does the engine support? (bmp, jpg, png, dds) The format usually determines what kind of compression the images have. Links Gamedev.net, section on graphics http://www.gamedev.net/reference/list.asp?categoryid=40

Network
Game engines with network support provide different kinds of features described below. Streaming means downloading content from the server on the fly Player count is the number of players the game can have in a game. This can be anything from 2 to hundreds. Level of network implementation. On what level is the network functionality implemented and can for example script coding be used to extend the network functionality. Network games between different platforms, can for example PC and console players play on the same server in the Internet? Massive multiplayer games might have hundreds or thousands of players playing at the same time. Performance, how much bandwidth is needed for the server or clients. Also what kind of ping is needed to be able to play the game? Protocol, TCP / IP or UDP Security, how secure is the network game against cheating? Support for gameplay features describes if features like physics are supported in network games. Server browser contains a list of servers on the internet. Stat system, is there functionality ready for keeping player stats? Type of network, different models include for example client / server, peer-to-peer and master Server.

24

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Links Jenkins, K. 2004. Designing Secure, Flexible, and High Performance Game Network Architectures http://www.gamasutra.com/features/20041206/jenkins_01.shtml

Other features
Game engines usually have some of the following specific systems. Demo record & playback system is used for recording offline or online games to a file which can be played back later. In-game cut scenes (also known as machinima) are used to make and playback cutscenes made with the game engine. Instant replay system for game events is important especially in sports games where recent game events can be played back. Level of detail system (LOD) is an optimization tehcnique which is based on drawing models with less polygons when they are further away. Load & save system is used to save the game in some state and later load that save game to continue playing from the saved position. Video playback, the format might be for example avi or mpg. Links Hancock, H. 2000. Machinima Cutscene Creation, Part One http://www.gamasutra.com/features/20000930/hancock_01.htm Wagner, C. 2004. Developing Your Own Replay System. http://www.gamasutra.com/features/20040204/wagner_01.shtml

Physics
During the recent years, game engines have started supporting physics simulation. While being a complex subject matter, the features described below offer some insight into what kinds of things engines support regarding physics. Buoyancy, how objects behave in fluids in the game.

25

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Collision detection is one of the most important features of physics. It used to determine collisions between objects. Usually engines use simplified collision models instead of using the model's actual polygons to determine collisions. Flight model is used to describe the simulation of flight physics in flight sim games. Fluid simulation, for example water. Movement modes like walking, falling, flying, swimming, gliding, walking on walls, etc. Network support for physics describes whether the engine supports physics also in network games. Some games have just client side physics so that rag dolls for example behave differently on different clients but since they don't affect gameplay, it doesn't matter. Physical properties like mass, friction, gravity and inertia. Also related to object properties and interactions with each other like colliding objects, falling, rolling, hinges, balls, sockets and constraints. Projectiles, physics for grenades or even bullets for example, important in FPS games. Rag dolls are used when game characters die and physics are used to simulate the behaviour of their bodies while they fall, fly through the air hitting objects or fall down the stairs for example. Vehicle physics are used to simulate the functionality of different vehicles and driving them. Examples of vehicles are motorcycles, cars, hovercrafts, airplanes, etc.

Programming language
What language can be used to make games for the game engine. Also what language has been used to write the engine itself. The most common language is C++ but also other languages like Java are used. Some engines have support for multiple programming languages ready or there might be some 3rd party programs or libraries which use the engine as their basis.

Required asset file formats, special tools, etc.


Some game engines support only a couple formats while other's support a wide variety of formats. Some engines require specifically the use of some 3D program to make their levels. Also the game source code might be designed to be compiled only with a certain compilers and it requires a lot of work to make it compile on some other environment or compiler.

26

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Scripting
Instead of hardcoding the functionality to the source code, game engines can support some scripting language which is usually used to program the game's functionality. It depends on the engine what things are hardcoded and what can be scripted. Game engine can have it's own scripting language like UnrealScript or it can use some common language like LUA or Python. Links Epic Games, UnrealSript Language Reference. http://udn.epicgames.com/Two/UnrealScriptReference LUA programming language http://www.lua.org/ Python programming language http://www.python.org/

Sound & music


Sounds systems for game engines have been neglected in the past but modern engines are starting to use 3D effects and other features in their sound systems. Also other advanced audio features like VOIP support and TTS are used more and more. 3D sound positioning means that the sound can be placed on the level and when player hears the sound, it sounds like coming from the correct direction based on the positions. Basic sound parameters, for example doppler shift, level, filtering, pitch, looping, etc. Dolby digital is a digital coding method. It is normally associated with version 5.1 which contains five channels + low frequency subwoofer channel. EAX, Sound Blaster's technology for creating more ambience with 3D sound to games Music support, supported formats can be for example ogg, mp3, midi, etc Network support for sounds, how the sounds work in network games Obstruction, does the sound system take obstacles like walls between player and the sound source into account Spatialization makes the sound appear to come from specific location in the game level Streaming, the sound is loaded and played at the same time Text to speech (TTS) uses a speech synthesizer to convert text into speech sound. Voice over IP (VOIP) is technology used to enable voice conversations between people over the Internet.

27

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Links Gamedev.net, section on sounds http://www.gamedev.net/reference/list.asp?categoryid=34 Marks, A. 2000. Breaking the Sound Barrier: How to Work with a Third-Party Sound Designer http://www.gamasutra.com/features/20000420/marks_01.htm OpenAL, cross-platform 3D audio API for gaming & audio applications http://www.openal.org/ Waugh, E-J. 2005. What Makes Music for Games "Music for Games"? http://www.gamasutra.com/gdc2005/features/20050318/postcard-waugh.htm

Special effects
Game engines implement all sorts of special effects and most of these effects are visual. Color correction, currently only a demo feature of Valve's source engine. A "filter" used to change the colors of the rendered scene. Environment mapping is a method where cube mapping is used to make object look like it reflects the environment around it. Fog, which can be based on distance or height for example. Distance fog is normally used to limit the drawing distance. Lens flare is used to simulate the real world effect when camera is pointed toward a bright source of light. Mirrors & reflections Particle systems are used to make special effects like explosions, fire, flowing water, sparks, dust, fire, etc. Portals are used to draw an image from some part of the level camera into a texture. Projector (also known as decals) are used to project a texture on top of the level geometry. Skybox is used to make a distant background for a game level. Weather effects like clouds, rain, snow and wind. The effects can use particle systems.

28

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Status
Game engines and especially low cost game engines have many different kind of development status. The typical status of the engines are described with the following terms. Alpha means that the engine is not finished and is under development. Alpha version can be used to evaluate the engine but no final conclusions can be made yet, The engine might crash on occasions and have bugs. Beta means that the engine has been tested but it isn't finished yet. This version won't crash as often as the alpha version and has most of the features planned for the stable release. However, there are still known issues or features to be developed, hence the beta before version number. Stable means that the engine has been tested and a stable release has been made. The engine shouldnt contain any open bugs or they are well known. Low cost engines usually different versions available for the users. There could be a stable version 2.1 available and also beta 2.23.

Supported platforms & operating systems


What operating systems and platforms the game engine supports. Common platforms are listed below. Consoles are nowadays divided into handheld ones (Nintendo DS, Sony PSP) and normal ones (PS, PS2, Nintendo GameCube, XBox, XBox 360, etc) Linux Mac Mobile Phones (S60, etc) Windows WWW (HTML, DHTML, Flash, Shockwave, etc)

Terrain
When doing a game where game events happen outdoors, the game engine should support terrain. Terrain is the basically the ground of the level. Basic terrain support, determines if the engine support terrains. Deco layers, for example grass which is automatically placed on the ground. 29

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Deformable terrains, determines if the shape of the terrain be changed runtime, for example adding holes to the ground because of explosions. Size of terrain. Texturing, how is the terrain textured? Can the terrain use multiple textures with blending. Links Virtual Terrain Project, games section http://www.vterrain.org/Games/index.html

Type
Text based game engines are becoming old and not used but they are described shortly here. These kind of engines can be used to develop text adventure games using nothing more but text and sometimes images. 2D engines use 2d objects like graphics, numbers and texts to display information to the player about the game. Also other programs like Flash which can be used to create 2D games could be categorized as a 2D engine though it's main purpose is for doing small applications for websites. 3D engines are the most commonly used game engines at the time of making this document. Usually players move in a 3D world looking the world either from the 1st perspective (like from the eyes of the game character) or from the 3rd perspective (behind the player seeing the back of the character on the screen). These kind of engines are based on drawing polygons on the screen.

Additional framework for evaluation named Comparative Classification of Multi-user Virtual Worlds (Manninen & Pirkola, 1998) can be found from: http://www.tol.oulu.fi/~tmannine/game_design/multi-user_virtual_worlds.pdf

30

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

2D Engines
Here's a list of the compared 2D game engines and libraries.
Name Flash 8 Game Maker Golden T Game Engine PopCapGames Framework ShockWave SDL Torque 2D Type Authoring system Authoring system Library (java) Library (c++ files) Authoring system Library (c++ files) Authoring system Platform Web & all platforms Windows Java platforms Windows Web & all platforms Windows Windows Price $699 Free / 15 Free Free 1439 Free, LPGL v2 $100 / $395

Flash 8
By Macromedia, www.macromedia.com $699 for new licence, $299 to upgrade 30 day trial version available 2D Web authoring tool (could be also categorized as a 2D game authoring system) Flash can be used to develop small 2D programs which also include minigames. The games cannot be very complex or contain many moving elements on the screen simultaneously. The games are created using object oriented ActionScript which is the used programming language. Almost the things related to graphics of the game can be self-made and controlled including the mouse pointer. Changing the icon of an exe file created with Flash 8 requires using a 3rd party program. Pros: - Very fast tool to use so this is a good tool for making quick prototypes. - The software itself has good tutorials which make the start of using this tool easy. Also WWW has lots of tutorials for using Flash and ActionScript. - ActionScript used to create the game logic is easy and simple. It's similar to JavaScript. - Once the game has been done with Flash, you can make it into an executable Windows file or a swf file for WWW use. Both versions are generated from the same file so no need for separate porting. - Flash has good animation tools for 2d objects and you can also draw objects inside the editor. Animation is keyframe based using a timeline. You can things like shape tweens, motion tweens and multiple animations for the same 2d movie clip. - There are working debugging tools which allow you to trace the program execution, step into functions etc.

31

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

- Games made with Flash8 don't require much from the PC running them. Macromedia reports minimum hardware requirements as low as 450 MHz Intel Pentium II with 128 MB ram memory. The player also supports basically all Windows platforms from Windows 98 to Windows XP and also Macintosh (Mac OS X 10.1.x to Mac OS X 10.4.x). - Deliverable size is small - Built-in printer support Cons: - Flash is not 3D accelerated so the rendering system is slow when compared to engines using DirectX. Especially using large PNG images with alpha channels and moving them on the screen is slow. - ActionScript contains some weird design issues like defining the level where the code runs (this, _parent, _root) is confusing. There were also some other random bugs like making log entries to the output didn't always work from everywhere in the code. - No code or functionality ready for especially making games. You basically have to begin from scratch. Links ActionScript.org, very good site for Flash tutorials http://www.actionscript.org/tutorials.shtml Bilas, S. What About Flash? Can We Really Make Games With It? http://www.drizzle.com/~scottb/gdc/flash-paper.htm Macromedia ActionScript dictionary http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/ Tile based games, making a tile based game with Flash http://www.tonypa.pri.ee/tbw/start.html

Game Maker
by Mark Overmars, www.gamemaker.nl Free version, registered version 15 euros 2D Game Authoring System Game Maker can be used to create 2D games. These can be for example side-crollers, static screens or top-down games. The registered version contains network support. Game

32

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Maker has a game editor which you use to make the games. Games are created as exe files. Pros: - Quite easy-to-use editor which allows drag&drop of game logic items. - A separate scripting language to make more complicated games - Can handle many objects on the screen moving at once - When compared to Flash, has typical game specific elements ready like collision detection, etc. Cons: - When compared to Flash8, does not contain 2D animation tools. You must make the animations separately using many frames. - Has a "hobby" feel to it when compared to Flash 8.

Golden T Game Engine


by Golden T Studios, http://goldenstudios.or.id Free 2D game library (Java) Golden T Game Engine (GTGE) is an advanced cross-platform game programming library written in Java language. GTGE library provides a complete routines for making 2D game from low level routines such as hardware accelerated 2D graphics, mouse and keyboard input, audio support, game timing, to game specific routines such as sprite, background, collision detection. Pros: - Clean code, good documentation, - Good tutorials to start with - Site has additional programs for making tiles, animated sprites, etc.. to the game Cons: - 2D library, not authoring tool

33

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

PopCap Games Framework


by PopCap Games, http://developer.popcap.com Free 2D game library (C++) The Framework has been used on a number of different game types, from simple matchthree games to hardcore side-scrolling shoot-em-ups. Although it supports 3d acceleration for graphical effects, it is principally a 2d game engine. This framework and its predecessors have been used for all of PopCaps Deluxe games, which account for over 100 million framework-derived game units downloaded. Flexible high-level library that provides commonly required functions and reusable components. Written in C++ and is specifically compatible with Visual C++ 6.0 and Visual C++ .NET. The framework supports DirectX 6 and above. Pros: - Seems solid and has been used in successful 2D games - Easy to install & includes 6 demo game applications - Active developer forums Cons: - Only 2D library, not a game authoring system - Mid-level programming, meaning that you need to write code for both lower level functionality (drawing graphics, collision checks, etc.) and gameplay logic. For example drawing an image on the screen is done with: g->DrawImage(IMAGE_HUNGARR_VERT, mHungarrX, mHungarrY);

Shockwave
by Macromedia, www.macromedia.com/software/director/ Update 439 euros, 1439 euros full new version 2D Web authoring tool (could be also categorized as a 2D game authoring system) Similar to Flash but is faster drawing graphics on the screen. The differences between Shockwave and Flash are listed below: Description Flash Shockwave Designed Internet / WWW All kinds of multimedia programs especially for from CD-ROMs to small games. Works also on the WWW.

34

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Loading time on the web How many people have this plugin installed? Creation software 3D support Speed Additional notes

"Quick" 98% (Steinmeier 2005) Macromedia Flash 8, $699 No. "Slow" because lacks 3D hardware acceleration. Used heavily in the Web. Reigns supreme in terms of creating energizing graphical content through a high level scripting language (Mills 2005)

Slower than Flash 52% (Steinmeier 2005) Macromedia Director, $1439 Shockwave3D. Also supports rendering in Direct3D and OpenGL. Faster than Flash. More versatile than Flash. Macromedia seems to emphasize Flash more than ShockWave (Steinmeier 2005). Can integrate Flash files into own format.

Simple DirectMedia Layer (SDL)


by SDL Team, http://www.libsdl.org Free, under LPGL v2 2D game library (C++) Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power." Simple DirectMedia Layer supports Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. There is also code, but no official support, for Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS, and SymbianOS. SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, Eiffel, Java, Lua, ML, Perl, PHP, Pike, Python, and Ruby.

35

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Torque 2D
by GarageGames, www.garagegames.com Indie version $100, commercial version $395 2D Game Authoring System Torque 2D features a rendering engine, collision detection, physics engine, particle effects, sound, utilities, Torque Core, Torque Script and a GUI editor. This means that it is a complete game authoring system.

Other possibilities
When building a 2D game, one possibility is to make the game purely with some programming language. There are lots of programming languages, but the most important ones are Java and C/C++.

36

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

3D Engines
Here's a list of compared 3D engines.
Name 3D Game Studio Blitz3D Crystal Space DarkBasic Irrlicht KA3D LightWeight Java Game Library Panda3D Quake 2 Quake 3 Quest3D Reality Engine Torque TV3D 6.2 UnrealEngine2 Runtime Ogre OpenSceneGraph Type Authoring system 3D engine 3D engine 3D engine 3D engine 3D engine Library (java files) 3D engine Authoring system Authoring system Authoring system Authoring system Authoring system 3D engine Authoring system 3D library 3D library Platform Windows Windows Windows Windows Windows & Linux Windows, console, mobile Java platforms Windows Windows Windows Windows Windows Windows Windows Windows, Linux, Mac Windows, Linux, Mac Windows, Linux, Mac Price $89 - $899 $100 Free, LPGL 45 - 150 Free, zlib/libpng ? Own license, free Free, own license Free, GPL Free, GPL $129 - $8999 5 figures $100 - $495 $150 - $500 $8000 Free, LPGL Free, modified LPGL

3d Game Studio
by Conitec Datasystems, www.3dgamestudio.com $89-$899, different editions 30 day trial version available Game Authoring System With hundreds of published titles, 3D GameStudio is the leading authoring suite for 2D and 3D realtime applications. It combines the C-Script programming language with a high-end 3D engine, a 2D engine, a physics engine, a level, terrain and model editor, plus extended libraries of 3D objects, artwork and ready-assembled games. It was never easier to create 1st person games, 3rd person games, role playing games, side scrollers, flight

37

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

simulators, board games, sports games, real-time presentations, virtual exhibitions and 3D applications. Offers three levels of games creation: 1) 'Click together' games in the level editor - for simple games, like shooters 2) Program games in C-Script using the built-in compiler - for commercial projects 3) Program games in C++ using an external compiler - for professional developers Engine features polygon level collision detection for terrain and 3D objects, Physics engine supports gravity, mass, damping, elasticity, friction, and hinge, ball, wheel, and slider joints, 3D sound sources (WAV and OGG) with Doppler effect, slow motion / quick motion effect, arbitrary axis rotations for space and flight simulators, path tracking for camera, actors or vehicles, Mouse picking and manipulating of 3D objects, Save / Load system for resuming games at arbitrary positions Multi-player client/server mode for LAN and Internet (TCP/IP, UDP), Multizone / multiserver support for massive online multiplayer games and Expandable through DLL plugin interface. 3D game studio includes script editor, model & terrain editor and 3D level editor. Pros: - Full game authoring system - Has been used on several small published games so should be solid Cons: - Technology is old and outdated

Blitz3D
by Blitz Research Ltd., www.blitzbasic.com $100, 30 day trial version available Game authoring system Blitz3D provides a simple yet powerful environment for game creation - simple, because its based around the popular and easy to use BASIC programming language; and powerful, thanks to a highly optimized underlying 2D/3D engine. Super flexible entity system, meshes, terrains, sprites, cameras, lights, super flexible brush system, multitexturing, environment mapping, etc. Pros: - Simple to use - Basic coding is simple, thanks to good samples and developer forums

38

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Cons: - Only editor coming with the system is the code editor

Crystal Space
by Jorrit Tyberghein & Team, www.crystalspace3d.org Free (LGPL) Game engine, but no real editor tools Crystal Space is a free (LGPL) and portable 3D Game Development Kit written in C++. It supports:
True six degrees of freedom Colored lighting Lightmapped and stencil based lighting Shader support (CG, vertex programs, fragment programs, ...) Mipmapping Portals Mirrors Alpha transparency Reflective surfaces 3D sprites (frame based or with skeletal animation using cal3d animation library) Procedural textures Particle systems Halos Volumetric fog Scripting (using Python, Perl, Java, or potentially other languages) 16-bit and 32-bit display support OpenGL, and software renderer Font support (also with freetype) Hierarchical transformations Physics plugin based on ODE

Pros: - Contains a lot of features which are actively developed Cons: - Low & mid level programming with C++

39

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

DarkBASIC
by The Game Creators, darkbasic.thegamecreators.com Several licenses, freeware & commercial from 45 euros to 150 euros 3D game engine, includes editor Engine features include: Binary Space Partitioning (BSP), Potential Visibility Set, Pixel & vertex shaders, Real time shadows, True reflections, Lights, Matrices, Advanced terrain, Multiple camera views, Particle system, Lightning fast 2D sprites, Polygon collision detection, Bump mapping, Light mapping, Environment mapping, Multitexturing, Bone based animations Cartoon shading, Rainbow rendering, Low level access of object data and Vector and matrix manipulation. Has also 2D features, integrated debugger and editor. Cons: - Old technology, not recommended to anyone. Use Blitz3D instead.

Delta 3D
by MOVES Institute, Naval Postgraduate School, www.delta3d.com Free, LPGL 3D game engine with some editors Delta3D is a full-function game engine appropriate for a wide variety of modeling & simulation applications (training, education, visualizations, and entertainment). It is developed by the US military as a well-supported and fully-funded open source project. Delta3D is an Open Source engine which can be used for games, simulations, or other graphical applications. Its modular design integrates other well-known Open Source projects such as Open Scene Graph, Open Dynamics Engine, Character Animation Library, and OpenAL. Rather than bury the underlying modules, Delta3D just integrates them together in an easy-to-use API -- always allowing access to the important underlying components. This provides a high-level API while still allowing the end user the optional, low-level functionality. Delta3D renders using OpenGL and imports a whole list of diverse file formats (.flt, .3ds, .obj, etc.) Only supported platforms are Windows and with some modifications Linux. Pros: - Combines several open source modules as a game engine

40

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

- map editor - Solid and is used by several military projects Cons - Low & mid level programming required to make games - Samples are pretty basic

Irrlicht
by Nikolaus Gebhardt, irrlicht.sourceforge.net Free, license based on the zlib/libpng license Only game engine, no editors The Irrlicht Engine is a cross-platform high performance real-time 3D engine written in C++. It is a powerful high level API for creating complete 3D and 2D applications like games or scientific visualizations. It comes with an excellent documentation and integrates all the state-of-the-art features for visual representation like dynamic shadows, particle systems, character animation, indoor and outdoor technology, and collision detection. All this is accessible through a well designed C++ interface, which is extremely easy to use.
High performance realtime 3D rendering using Direct3D and OpenGL Platform independent. Runs on Windows95, 98, NT, 2000, XP and Linux. Huge built-in and extensible material library with vertex and pixel shader support. Seamless indoor and outdoor mixing through highly customizable scene management. Character animation system with skeletal and morph target animation. Particle effects, billboards, light maps, environment mapping, stencil buffer shadows, and lots of other special effects. .NET language binding which makes the engine available to all .NET languages like C#, VisualBasic, and Delphi.NET. Platform and driver independent fast software renderer included. It features z-buffer, gouraud shading, alpha-blending and transparency, fast 2D drawing. Powerful, customizable and easy to use 2D GUI System with Buttons, Lists, Edit boxes, etc. 2D drawing functions like alpha blending, color key based blitting, font drawing and mixing 3D with 2D graphics. Clean, easy to understand and well documentated API with lots of examples and tutorials. Written in pure C++ and totally object orientated. Direct import of common mesh file formats: Maya (.obj), 3DStudio (.3ds), COLLADA (.dae), DeleD (.dmf), Milkshape (.ms3d), Quake 3 levels (.bsp), Quake2 models (.md2), Microsoft DirectX (.X).

41

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines


Direct import of Textures: Windows Bitmap (.bmp), Portable Network Graphics (.png), Adobe Photoshop (.psd), JPEG File Interchange Format (.jpg), Truevision Targa (.tga), ZSoft Painbrush (.pcx). Fast and easy collision detection and response. Optimized fast 3D math and container template libraries. Directly reading from (compressed) archives. (.zip) Integrated fast XML parser. Unicode support for easy localisation. Works with Microsofts VisualStudio6.0, VisualStudio.NET 7.0-8.0, Metrowerks Codewarrior, and Bloodshed Dev-C++ with g++3.2-4.0. The engine is open source and totally free. You can debug it, fix bugs and even change things you do not like. And you do not have to publish your changes: The engine is licensed under the zlib licence, not the GPL or the LGPL.

Pros: - A nice renderer with some additional features like loading Q3 levels & collision handling Cons: - Low-middle level programming - Not complete so has no editors, no sound support

Ka3d
by PixelGene, www.pixelgene.com Low cost Game engine (3DS Max used as level editor) Ka3d is a game engine developed by PixelGene located in Helsinki, Finland. The engine doesn't have built-in editors, instead you use 3DS Max as your editor to build the game levels. The engine can be used to develop games for PC, console and mobile platforms. The mobile platform is the most used platform of the engine.

LightWeight Java Game Library


by lwjgl.org, www.lwjgl.org Free, BSD license Game engine, no editors

42

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

The Lightweight Java Game Library (LWJGL) is a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. LWJGL provides developers access to high performance crossplatform libraries such as OpenGL (Open Graphics Library) and OpenAL (Open Audio Library) allowing for state of the art 3D games and 3D sound. Additionally LWJGL provides access to controllers such as Gamepads, Steering wheel and Joysticks. All in a simple and straight forward API. LWJGL is not meant to make writing games particularly easy; it is primarily an enabling technology which allows developers to get at resources that are simply otherwise unavailable or poorly implemented on the existing Java platform. We anticipate that the LWJGL will, through evolution and extension, become the foundation for more complete game libraries and "game engines" as they have popularly become known, and hide some of the new evils we have had to expose in the APIs.

Panda3D
by Disney, http://www.panda3d.org Free Game engine A library of subroutines for 3D rendering and game development. The library is C++ with a set of Python bindings. Game development with Panda3D usually consists of writing a Python program that controls the the Panda3D library. Panda3D is unusual in that its design emphasis is on supporting a short learning curve and rapid development. It is ideal whenever deadlines are tight and turnaround time is of the essence.

Quake 2
by ID Software, www.idsoftware.com/business/technology/ Free, souce released under GNU General Public License (GPL) Game engine, editors also available so basically Game Authoring System QUAKE II is one of id Software's all time best-selling titles and it was released under GNU in December 2001. For teams that don't want to operate under the GPL, ID is also offering a "non-GPL" QUAKE II engine license for a flat fee of $10,000 per title with no backend royalty whatsoever. The tools have not yet been released under the GPL and are still available for non-commercial use only. These tools can be licensed from id Software

43

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

for $5,000/project, or there are a number of other third party tools that can be used. This engine has been used in many games like Hexen II, Heretic II, Kingpin, Daikatana, Sin, Soldier Of Fortune and Half-Life. A solid FPS engine with multiplayer support. It also has 3D acceleration support. Pros: - Used in dozens of games over the years Cons: - Old engine with outdated technology - GPL license means that you can sell the game, but the source must be also available and people can make copies of the software without any restrictions. So making a product for the commercial gaming market is not possible.

Quake 3
by ID Software, www.idsoftware.com Source available on the Internet (quake3-1.32b-source.zip) Free, source released under GNU General Public License (GPL) Game engine & editors so basically a game Authoring System Quake III was released December 3 1999. It basically includes most of the features from te previous Quake engines and new features such as shaders, curved surfaces, 32-bit color, special effects, bleeding-edge networking and super-smooth speedy hardware rendering is what this state-of-the-art engine is all about. Games that have used the Quake 3 engine are many, examples include Wolfenstein: Enemy Territory, Medal of Honour Allied Assault, Start Trek: Elite Force and Jedi Knight II: Jedi Outcast. On a side note the source code for Quake III is said to be cryptic and by modern standards "old" style. There are projects on the Internet to make the code more clear and updated to modern standards. Pros: - Relatively new engine with full source code available Cons: - Same thing as with the Quake 2: GPL license means that you can sell the game, but the source must be also available and people can make copies of the software without any restrictions. So making a product for the commercial gaming market is not possible.

44

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Quest 3D
by Act-3D ID Software, www.quest3d.com 129 lite, 899 professional, 2299 enterprise, 8999 vr edition Game Authoring System Designed mainly for 3D presentations like interactive adverts, architectural presentations, interactive 3D training material, product visualization, etc. which requires real-time rendering but it can be used to create simple games as well. The engine is professionally made and the demos on the website look very good. Quest 3D s based on a channels (compiled pieces of code) which are linked together with a WYSIWYG editor. It's also possible to make own code for channels using C++ and Quest 3D SDK. Different editions have different kinds of features: Lighting
Dynamic lighting (up to eight lights, types: spot, omni and linear) Diffuse and specular lighting, import radiosity light maps, built-in light map ray tracer Bump mapping using environmental bump map technique, Bump mapping using per-pixel shading technique

Camera
Supports wide screen (16:9) displays (any other aspect ratio), multi monitor setup, render to portion of the screen, linear or exponential fog effect, Zoom in and out, view frustum culling, auto look-at feature and can use multiple cameras for one image.

Material
Multiple materials per object, special materials effects through per-pixel shading Multiple transparency modes, Z-buffer write/read and alpha z-reject options Real-time compressed texture support (DXTC), Up to eight texture stages (depends on hardware) Primitive meshes: donut, square etc, Imported meshes: polygons, lines or points

Textures
Render to texture, maximum texture size: 4096x4096 (depends on hardware) Cube maps, projective texture mapping, 3 different hardware accelerated reflective mappings Hardware accelerated mapping for lighting cube, auto bump maps from height image Image compression support (DXTC), vertex color support. Transform texture coordinates using a motion

Audio
Mono, Stereo and 3D audio, doppler effect simulation, roll off effect simulation 3D positioning, compatible with multiple speaker setups (5.1) (depends on hardware)

45

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Input
Support for mouse, multiple joysticks and keyboard buttons are supported) 5DT data glove support, support for force feedback input devices

Logic
Many operators and modifiers, built-in Finite State Machine (A.I.) Path finding system (A.I.), table/array system, LUA scripting language Switch between any module type, If, else, for loops etc. Use expressions for binary operations, load and unload any part of your project dynamically Trigger events based on time or action, use operators to modify text, values, vectors etc

Publishing
Publish as single executable, installer, web page, screen saver, Winamp visualizer. Automatic compression, encryption of source files

Networking
Microsoft DirectPlay network synchronization, network text, matrices, vectors, values and commands, lobby system, Interpolation for good results on slow networks

Pros: - Professional tool for 3D applications requiring real-time rendering and game like functionality - Good documentation - Content oriented with a WYSIWYG editor, no programming required Cons: - Custom made channel components are hard to debug

Reality Engine
by Artificial Studios, www.artificialstudios.com Low-medium cost (5 figures mentioned somewhere) Game engine with editor tools The Reality Engine is a true next-generation toolset for developing games for the next generation, where near-photorealism will be expected, and the growing demands on artists must be met with more efficient pipelines and tools that can make the most of your time and resources to meet demanding schedules. The engine looks very impressive based on the feature list and screenshots on the webpage. This engine was also bought by Epic Games so the availability of it is not 100% certain. The features of the engine are listed below.

46

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Rendering technology includes:


Built with DirectX 9.0 from ground-up to take full advantage of cutting edge technology developments, while fully scalable to DirectX7/8 generation hardware. Per-Pixel Lighting and shading with support for PS3.0, PS2.X, PS2.0 and PS1.1. Shading includes dynamic projection mapping, normal mapping, Phong specularity, per-pixel reflection mapping, refractions, virtual displacement (parallax) mapping, animated textures, mix/detail shaders, fabric, anisotropic scattering, water, and other configurable pixel & vertex shaders. Unified dynamic world lighting and shadowing, including day/night cycles. Heavily optimized for maximum performance in huge, complex scenes. HDR lighting. Image post processing effects.

Editor tools and content creation include:


Total integration with popular commercial 3D editors (Max, Maya) allows artists to create environments, view & configure shaders and lighting with realtime viewport feedback, and implement powerful Python-driven or C#-driven scripts. Powerful WYSIWYG Scene Editor running on Reality. No compile times. Includes material library, entity library, shader configuration, physics setup, entity setup, rendering setup, sky configuration, redundancy-filtered PRT lighting compiler, all with realtime visualization as lights and meshes are moved around the scene.

Physics
Advanced physics engine for constraint resolution of thousands of rigid bodies, supporting multiprimitive, arbitrary joint linkages, stacking, breakage, and particle physics. Ragdoll character animation, vehicles and collision primitives

Scripting and programming


Full integration with .NET scripting languages, allowing programmers and artists to write fully debuggable, IDE-integrated code in your favorite language, from C#, C++/CLI, to VB.NET without the need for a compiler. Python support.

Networking
Optimized Client/Server-Authoritative networking incorporating latency prediction & adaptive data degradation. Voice communication

AI
Pathfinding (both predetermined and dynamic with obstacle avoidance), decision-making based on adaptive state machines and reactions to stimuli such as sight and sound.

Torque game engine


by GarageGanes, www.garagegames.com/pg/product/view.php?id=1 Indie license $100, commercial license $495 Game Authoring System, out-of-the-box game engine specifically aimed at FPS Torque game engine is a fully featured AAA game engine with award winning multiplayer network code, seamless indoor/outdoor rendering engines, state of the art skeletal

47

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

animation, drag and drop GUI creation, a built in world editor, and a C-like scripting language. Unlike most commercial game engines, as part of the low cost license, you receive all C++ source code to the engine, so you can make any additions you need for your game. This engine can be used for creating small 3D games. The Torque Game Engine started life as the technology behind Dynamix/Sierra/Vivendi'd products Tribes, Starsiege, and Tribes 2, and is an industry proven engine. It is currently being used by developers around the world with shipping titles such as Marble Blast, Orbz, Think Tanks and Tennis Critters. About Torque licensing issues: the indie license costs $100 per programmer. As long as the company has less than $250,000 in sales, you can publish your game anywhere, for any price without any royalties or further commitment to GarageGames. Source code to the Torque Game Engine, examples and tools included in $100/programmer. Torque supports many industry standard content creation tools for 3D modeling and animation, and comes standard with exporters for 3D Studio Max on the high end and Milkshape on the low end. Community members are creating exporters for other popular 3D modeling programs such as Maya, Lightwave, gameSpace and Blender. See Torque Game Engine DTS Exporter Matrix. Buildings and levels are created with the industry standard free program Quark. TorqueEdit is a powerful terrain generation and object placement toolkit for easily building game scenes and structure. This editor gives you control over all elements in your game from a graphical viewpoint. TorqueGUI is an easy to use, drag and drop graphical user interface creator. Don't spend time stressing over small changes in your interface. Exercise your creativity without breaking your development budget. TorqueScript is a C++ like scripting language that ties all of the various elements of the game together. Most of the game can be programmed in TorqueScript with engine additions such as physics or intense AI coded in C++ to be called from script.

TV3D SDK Version 6.2


by TrueVision 3D team, www.truevision3d.com/ Free version, $150-$500 depending on the license Game engine with some editors The TV3D SDK is a complete programming suite that accelerates the development of 3D games and applications. If you need to quickly prototype an idea, or need to quickly bring

48

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

a product to market, then the TV3D SDK will save you time and money. With our 3D engine you have the power of an expensive 3D SDK, at a price that will not break your budget. Our multi-language support is second to none in the industry, and our community support forums bring over 2000 users together, who all share ideas and rendering techniques on a daily basis. The TV3D SDK has the simplicity that an SDK should, and the flexibility and power that it needs. Supports Visual Basic 6, Delphi, C++ and C#. Features:
Full DirectX8.1 and DirectX9 support, pptimized Hardware T&L support DirectX Hardware Lighting support (up to 8 simultaneous lights) Fast view frustum culling (sphere and box) and fast Terrain Rendering System with quadtree BSP Rendering Engine with PVS/Lightmapping, billboard-based Particle System Hardware Vertex Shaders to optimize rendering if available and shader script system to setup texture effects Atmospheric effects like fog, cloud, sky (box and sphere), stars, DOT3 bumpmapping support, optimized dynamic stencil shadows for meshs, fast 2D Interface with custom fonts Powerful animation system, skeleton-based, Keyframe-based, or Morph-based animations, attach child meshes to bones and animation via custom bone rotations

Media Engine:
DirectSound, DirectMusic, DirectShow support, allows to make unique sound atmosphere for your games, hardware/Software Sound mixing, Unlimited simultaneous sounds, MP3, WAV, MOD, SM3, IT, MID, RMI, SGT support, 3D Sound support that can be linked easily to a 3d world, effects (reverb, echo, etc.) to give more depth to your sounds and movie playing (all formats) for cut-scenes

Pros: - Fast engine & professional looking - Very active developer forums Cons: - Low level & mid-level programming. You need to write both low level functionality and gameplay logic. - No map editor, you need to write your own - No network support - Very simple collision support (box and sphere)

UnrealEngine2 Runtime
by Epic Games, http://udn.epicgames.com/Two/UnrealEngine2Runtime Free for noncommercial & educational use. Licensing costs $8000 49

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Game Authoring System First important thing to know is that the license of this version of the Unreal2 engine doesn't allow you to develop games! The license allows the development for noncommercial and educational use only. There are also commercial licenses available but the price is not public information. The sum of $8000 was mentioned somewhere but this isn't very reliable information. This engine could be licensed for example for scientific research applications, architecture applications and other these kinds of things which use the game engine without having an actual game in them. Making a game for children with this engine is a borderline case, Epic might actually give the permission for use unless the game is for public commercial game markets like a Muumi-game. Feature-wise UnrealEngine2 has more features than any of the other engines listed in this document. It has full editor tools which allow full game development. The features are listed below in more detail: Rendering:
BSP geometry, static meshes, animated skeletal, vertex meshes,height-mapped terrain, mirror surfaces, semi-reflective materials, skies, backgrounds, both outdoor ad indoor environments supported, support from DX6 to DX9

Animation:
Up to four bone influences per vertex, no polygon or bone count limits, hierarchical skeletal animation, multiple channels of animation, skeletal keyframe interpolation, tweening, artist controlled compression

Lighting:
Dynamic lighting on all geometry types with vertex lighting and projective texturing, directional lights, point lights, spot lights, projected textures allow shadows & flashlights, light effects like blinking, wavering, etc.

Effects:
Particle system, fluid surfaces supporting water simulation, distance fog

Terrain:
Alpha blended layers, decoration layers, terrain manipulation tools

Textures:
Material system with alpha blending and multiple layers of textures, scrolling, rotating, panning, detail textures, max texture size 2048x2048, 12 levels of mipmapping, texture animatios

Sound
OpenAL based audio subsystem for Windows, linux and Mac. 3D spatialization, ogg vorbis support, hardware sound acceleration with EAX 2.0

50

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

UnrealEd
Editor fully integrated into the engine and it provides a view of the game level. Editor is used to place textures, geometry and lights to the level. Max and Maya exporters are used to export 3D models from those programs into Unreal. Also other assets like sounds and textures are imported into the game using UnrealEd.

UnrealScript
Powerful object oriented script language used to implement the functionality. It is also used for adding the network functionality so there isn't a need to do C++ coding for example. Has lots of good features like automatic garbage collection, dynamically scoped state machines and time based code execution

Other features include VOIP support which is not very reliable based on the experience of LudoCraft. Also vehicles, physics, AI, networking, different platforms, localization and solid documentation. Pros: - The most professional and robust 3D engine with most features Cons: - This version can't be used in game projects because of the license - Relatively expensive when compared to other engines in this document

51

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Graphics Engines
The following list describes pure graphics engines. They only contain the renderer and scene management things which allow to load 3D models, textures, position lights, etc.

OGRE
by OGRE Team, www.ogre3d.org Free, LPGL license Graphics Engine Ogre is a pure graphics engine developed with C++. It has no level editors, sound system or other systems used in game engines. However, it is a very popular and robust graphics engine. Ogre has even been used in some upcoming commercial games like Ankh (www.ankh-game.de) which is a cartoon-style 3D adventure game happening in ancient Egypt. Other game using Ogre is a WW2 flight simulator game named Pacific Storm (www.pacificstorm.net). Pacific Storm is created by Lesta Studios which is located in St. Petersburg, Russia. OGRE has the following features:
Simple, easy to use OO interface designed to minimise the effort required to render 3D scenes, and to be independent of 3D implementation i.e. Direct3D/OpenGL. Extensible example framework makes getting your application running is quick and simple Common requirements like render state management, hierarchical culling, dealing with transparency are done for you automatically saving you valuable time Clean, uncluttered design and full documentation of all engine classes Direct3D and OpenGL support Windows (all major versions), Linux and Mac OSX support Builds on Visual C++ 6 (with STLport), Visual C++.Net 2002 (with STLport), Visual C++.Net 2003 on Windows Builds on gcc 3+ on Linux / Mac OSX (using XCode) Extensive material / shader support Mesh support, export from many modeling tools (Milkshape3D, 3D Studio Max, Maya, Blender and Wings3D) Skeletal animation, including blending of multiple animations, variable bone weight skinning, and hardware-accelerated skinning Biquadric Bezier patches for curved surfaces Progressive meshes (LOD) Static geometry batcher Customizable scene management Particle systems, sprites

52

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

OpenSceneGraph
www.openscenegraph.org Free, License is OSPGL (based on LPGL) Graphics engine The OpenSceneGraph is an OpenSource, cross platform graphics toolkit for the development of high performance graphics applications such as flight simulators, games, virtual reality and scientific visualization. It is a 3D graphics library for C++ programmers. Based around the concept of a SceneGraph, it provides an object oriented framework on top of OpenGL freeing the developer from implementing and optimizing low level graphics calls, and provides many additional utilities for rapid development of graphics applications.

53

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Miscellanous engines
The following list of engines are good to know to get the whole picture of the engine scene but aren't recommended to use. Some have websites that haven't been updated for a long time, some don't have a solid feel to them, etc. However, there might engines in this list which suit some special needs so that is the main reason to include the engine list here.

3D Rad
by 3D Rad, www.3drad.com Different versions, from $19 to $79 Game authoring system, includes script & level editors 3D Rad is a Basic-like language, specifically suited for 3D games creation. But, unlike most game-creation languages, it is not based on pure coding, and can be used as an easyto-use point & click developing tool as well. It is based on controlling, by independent Basic-scripts, the evolution of independent objects, that, at first, are placed to Virtual Space by using a powerful WYSIWYG visual world editor. Objects can interact one another and the intuitive and powerful language controlling them makes developing any kind of behavior straightforward and funny. The simple and genuine object-oriented structure makes 3D Rad easy to understand and master, even if you have never programmed before.

Adventure Game Studio


by AGS Team, www.adventuregamestudio.co.uk Free Game authoring system Adventure Game Studio (AGS for short) allows you to create your own point-and-click adventure games, similar to the early 90's Sierra and Lucasarts adventures. It consists of an easy-to-use development environment, and run-time engine. The game interface is fully customizable, although the classic Sierra interface is supported by default. You need no programming experience to make a game using AGS - setting most game options is just a matter of point-and-click (though scripting is of course available if you prefer).

54

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

AGS manages most of the game so that you don't have to - it provides load/save game functions, inventory management, and more.

Blender
by Blender Foundation, www.blender.org Free Modeling software with built-in game engine features Blender is a freeware 3D modeling program which also has some game engine features so you can make basic 3D games with it. The 3D and game engine features include:
Graphical editor for defining interactive behavior without programming Collision detection and dynamics simulation Python scripting API for sophisticated control and AI, fully defined advanced game logic Supports all OpenGLTM lighting modes, including transparencies, Animated and reflectionmapped textures Playback of games and interactive 3D content without compiling or preprocessing Audio, using the SDL toolkit Multi-layering of Scenes for overlay interfaces

Pros: - The whole thing is basically a game authoring system - Script level programming with Python Cons: - Seems slow and can only be used for very simple singleplayer games or presentations

Games Factory
by ClickTeam, www.clickteam.com Low cost $29 to $49 Game authoring system 2D game authoring system similar to Game Maker. However, does not have a scripting system so isn't as good as Game Maker. Also quite old. Features: AVI and QuickTime video, Formatted text, Customizable screen transitions, Full screen scrolling, True MDI interface with tool bars, Enhanced animation/picture editor, Alter the application's menu bar, Enhanced event editor, grouping of events,

55

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

improved drag & drop, complex calculations, text support, etc, expandability with the release of the extension kit: anyone with C programming knowledge can program their own objects. Cons: - Outdated technology, use GameMaker instead.

Nebula
by Radon Labs, nebuladevice.cubik.org Free Game engine, no editors Open Source 3D game and visualization engine used in dozens of commercial games and professional visualization applications released worldwide. Features include:
A well-tried and robust C++ game engine An Operating System for games OpenSource - Its free ! Multiplattform (Win, Linux, Irix, Mac, Xbox) A portability wrapper (unified APIs) An abstraction layer (simplified APIs) A DX9 rendering engine An extensive and most modern feature set Flexible scripting: TCL, Python, Lua,

Nebula is not:
A complete out-of-the-box running and genre specific game framework (like the Quake-, Unrealor Lithtech engines) A point & click or prototyping tool (like Macromedia Director or VirTools) You still need a team of programmers.

Reality Factory
by Reality Factory Team, www.realityfactory.ca or dhost.info/realityfactory/index.htm Free Game authoring system

56

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

RealityFactory is a program that, in conjunction with other tools, allows you (the user) to create first and third person perspective games - without programming! RealityFactory is built on top of the powerful Genesis3D Open Source engine and supports all major 3D graphics cards. RealityFactory provides most of the tools you need to make a game. You'll still need software to make actors (characters and props in your game) with, and software to make textures with, but what you won't need is a C/C++ compiler and a couple of coders to crank out your engine for you. By using things called "entities" which you place in your world, you can set up a game - with audio effects, multiple soundtracks, and special effects. RealityFactory is intended to be a "rapid game prototyping tool" - it's able to make playable, interesting games across a wide range of genres but it's not optimized for any ONE kind of game. While you can certainly make a good game with RealityFactory, and even give it away and/or sell it to others, you won't see the kind of blazing optimized speed that you would in other single-purpose engines (like Quake 3 or Unreal Tournament).

Scrolling Game Development Kit


by Benjamin Marty, gamedev.sourceforge.net Free Game authoring system for 2D games The Scrolling Game Development Kit ("GameDev") is a free / freeware open source tool for 2-D game development. It is designed for the Windows 9x/DirectX platform, and targeted at people spanning a range of skill levels. It can be used by the beginner to become familiar with the structure of computer games and to create complete games that don't require any coding. It also has applications for the experienced developer who perhaps simply wants to use the program to draw the graphics or define maps. And in the middle there's applications for creating a game and controlling it through scripting. GameDev features a graphics editor with smoothing and anti-aliased rotation abilities. The graphics editor is used to edit graphics for tiles and sprites. GameDev has a tile matching editor which allows you to define how tiles fit together, which makes drawing coherent maps much easier. The map editor has a built in maze generator which can create mazes based on tile matching definitions or on a single tile against the background.

57

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

It supports scripting which allows you to customize how the map and graphics editors work, even without recompiling the program. Scripting can also be used at game runtime to control details of the gameplay. Paths can be defined in the map editor, and various types of sprites can be defined based on the graphics and the paths contained in the project. Animated tiles are also supported.

Soya 3D
by Soya Team home.gna.org/oomadness/en/soya/index.html Free (GPL) Game engine, some kind of editor for using with blender, Linux only Soya 3D is a high level 3D engine for Python ; it aims at being to 3D what Python is to programming : easy and powerfull. It is designed with games in mind, focusing both on performance and ease-of-use. It relies on OpenGL, SDL and Cal3D.Soya 3D is available under the GPL and currently runs on GNU/Linux. Features includes, portals, terrain rendering (heighmap), characters animations with Cal3D, Blender exporters and tutorials set.

58

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

References
Bilas, S. 2005. What About Flash? Can We Really Make Games With It? Available online: http://www.drizzle.com/~scottb/gdc/flash-paper.htm Fristrom, J. 2004. Manager In A Strange Land:Reuse and Replace. Available online: www.gamasutra.com/features/20040109/fristrom_01.shtml Lewis, M. & Jacobson, J. 2002. Game Engines in Scientific Research. Communications of the ACM. Vol. 45,no. 1, 27-31. Mills, E. (ed) IGDA 2005 Casual Games White Paper. 2005. http://www.igda.org/casual/IGDA_CasualGames_Whitepaper_2005.pdf Robbins, B. (ed) IGDA 2004 Web and Downloadable Games White Paper http://www.igda.org/online/IGDA_WebDL_Whitepaper_2004.pdf Steinmeier, P. 2005. Development Platforms for Casual Games. http://www.gamasutra.com/features/20050324/steinmeyer_01.shtml Tan, A. 2004. Interview of Tim Sweeney at Beyond3D. http://www.beyond3d.com/interviews/sweeney04/ Tinney, W. (ed) IGDA Casual Games Quarterly - The Technology Issue. 2005. http://www.igda.org/casual/quarterly/1_1/ Wikipedia, Available online: en.wikipedia.org

59

Oulun lninhallitus

EUROOPAN YHTEIS Interreg III A Karjala

Open Source & Low Cost Game Engines

Additional Resources
A comprehensive list of game engines. Includes both free and commercial game engine information stored in a database. Good search feature. http://www.devmaster.net/engines/ A page concentrating on commercial game engines that have been subsequently released openly, with sources: http://www.liberatedgames.com/ A list of game creation programs, mostly old freeware programs http://www.ambrosine.com/resource.html 3d Gamestudio page comparing some 3d engines and game authoring systems http://www.conitec.net/a4faq.htm

60

You might also like