Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Comparison (page 1 of 13)

Maverick Game Engine Comparison Document

Table of Contents

1. INTRODUCTION...... 2 2. OVERVIEW OF GAME ENGINES...... 2 2.1. 3DGAMESTUDIO...... 2 2.2. CRYSTAL SPACE...... 3 2.3. OGRE3D ...... 3 2.4. REALITY ENGINE ...... 3 2.5. ...... 4 3. FEATURES...... 5 4. REQUIREMENTS...... 12 5. REFERENCES ...... 13

Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 2 of 13)

1. Introduction The following document outlines various game engines’ technical specifications that will be taken into consideration to help determine which game engine to use for our FPS project.

The document has three main sections:

• Overview of Game Engines o This section gives an overview of the five game engines that were researched. • Features o This section lists the general features of the five game engines. • Requirements o This section lists game engine’s requirements or features that are needed for this project. o Each 3D engine requirement is ranked from 1 to 3. A ‘3’ means that the specification must exist, whereas a ‘1’ indicates that if it is not available, the specification can still be fulfilled in another manner. If the specification does exist it will receive 1 point otherwise 0. Then each value (0 or 1) is multiplied with the corresponding rank and all the points are added up for the various 3D engines that were researched. The engine that receives the most points will be considered for purchase. If multiple engines are within a few points of one another, then we will inspect each engine individually and come up with a final decision. 2. Overview of Game Engines

2.1. 3DGameStudio 3DGameStudio is an authoring tool use to make 2D and 3D real-time 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. Simple games can be created with no programming knowledge by using pre-made scripts. For more advanced or commercial games, user can program using C-script or modify the code directly. User can import 3D models from cheap tools such as Milkshape or high-end tools such as 3d Studio Max. There are four different editions that can be purchase. Each edition has different features and different prices. Features and prices can be found on their website, http://www.conitec.net/a4info.htm. There is also a team edition that can be use by ten different users as long it is on the same project. In the team edition, the game can be distributed freely as long as you pay the extra commercial license. They do have company support by using email. I email the company five times since March 30, 2005 with questions about their product, and finally got a response on June 10, 2005, so the company support might not be very good. They do have good community support. Most questions on their forums were answer in a decent amount of Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 3 of 13)

time. Overall 3DGameStudio has a lot of features and seems very easy to use. The only major concern is maybe the poor company support.

2.2. Crystal Space Crystal Space is described as a portable 3D Game Development Kit written in C++. I have to agree with many of the comments that I have read about CS being a feature rich engine and meet many of our requirements, but I am leery of using this engine for our project for the fact that it is still under development and seems to have steep learning curve. There is a Crystal Entity Layer or C.E.L. that is being designed for use with CS to help automate the process of making games, but it is still in beta development. Since CS is still under development and has a high learning curve I cannot recommend this engine for use with our game.

2.3. Ogre3D Ogre3D is an object-oriented open source 3D graphics engine. The engine does not include typical built-in game engine components such as physics, handling of user input and AI. Instead the engine just focuses on 3D graphics and manipulation of a 3D scene. The engine is abstracted well enough so that a programmer does not specifically code for any particular 3D standard format, such as OpenGL or DirectX. From using a few of the tutorials the engine is logically laid out and easy to use. Ogre3D has great community support, which increases the amount of help that we would be able to receive. To use this engine on our project, we would need to integrate the physics library that is available, find a sound library and implement all the fps game code. Ogre3D would be a great engine choice because it’s ease of use and features, but due the lack of time, I do not think that we can implement all the things we need to use this engine.

2.4. Reality Engine The Reality Engine offers many of the tools that a 3D engine can offer to meet the demand of today’s game developers. However, there are some disadvantages as I will discuss below that may stop us from purchasing this product. If Reality Engine is purchased, the license would grant full C++ engine source, example C++ and C# source to the game and tech demos, including demonstration media and scripts, and source to all the editing and compiling tools and utilities. Reality Engine can be fully integrated with .NET scripting languages, allowing programmers and artists to write fully debuggable, IDE-integrated code, from C#, C++/CLI, to VB.NET without the need for a compiler Reality Engine has fully integrated support for physics-based vehicles, including player control, AI, and networking. Reality Engine has an advanced high-performance physics engine. The AI has intelligent pathfinding and decision-making. After doing some more research on this engine and visiting a couple of forums to see what current users had to say about the system, I found that majority of the users gave this a product a 4 or 5 out of 5 (5 meaning excellent). However, I was not able to find much about the ease of use of this product. After reading the forums it came to my attention that some of the current users of Reality Engine are game developers in the real world. Reality Engine website does not publicize the cost of this product, so I thought I would give them a call to find out more details about their product and pricing. Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 4 of 13)

Having spoken to Reality Engine representative on the phone I was asked what the product would be used for and I had described it to him as much in detail as I could. However, he would not tell me the price of the product and suggested that the Reality Engine would be too much and that I wouldn’t find much support for it. In overall, this seems like a product for serious game developers. Although it does have the features we need for our project, it might be out of the question due to the fact that we do not have the money to purchase it.

2.5. Torque The Torque Game Engine (TGE), created by Garage Games, is a professional, cross platform 3D Engine that is available to the general public for $100 per license. There is also an educational license that could potentially be even cheaper. Its primary use was for a first person shooter that came out a few years back called Tribes 2. With the purchased license, the user gets full access to the C++ source code to modify as they see fit, and if one decided to create a game using it, you pretty much have no restrictions if you wanted to sell it. The engine also contains a powerful scripting language that allows one to modify most game logic without rebuilding a new .EXE. The TGE also comes with other tools that are mainly used to convert various external assets to one that can be used from within the engine. The code for these tools is included also. I have emailed one of the representatives at the company, and received a reasonably fast response (within the same day). He seemed interested in working with our team/school. There is also an active community of independent developers that frequently post tips, resources, and code samples on the Garage Games site. Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 5 of 13)

3. Features Game Engines Features 3DGameStudio Crystal Space Ogre3D Reality Engine Torque

Rendering • Material • Multi-texturing • Direct3D • Per-Pixel Lighting • Terrain properties for and • OpenGL and shading rendering for static and Mipmapping • Material • Shading Types: exteriors and dynamic • Supports GIF, declaration • Dynamic BSP style objects. TGA, PNG, language projection renderer for • 2D renderer for BMP, JPG • Shader support mapping, interiors still images, 2D • Perspective • Complete • Normal mapping, • Multi-pass sprites, panels, correct texture range of fixed • Phong specularity, texturing buttons, sliders, mapping with function • Per-pixel • Volumetric overlays, and interpolation operations reflection fog movies. every 16 pixels • Multiple pass mapping, • Decals • 3D views and • Transparent effects • Refractions, • Environment movies can be and semi- • Multiple • Virtual mapping rendered to transparent material displacement • Light curved surfaces. textures techniques (parallax) mapping • Programmable • Vertex and • Material LOD mapping, • Particle 2D and 3D Pixel Shaders support • Animated textures, engine effects like lens • CLOD for • PNG, JPEG, • Mix/detail shaders, • water engine flares, terrain TGA, BMP, • Fabric, • No shader holes, cartoon • Landscape DDS, 1D, • Anisotropic support by rendering. engine supports volumetric and scattering, default scattering and DXT/S3TC • Water, lod texture support • Other configurable • 2D sprites and • Projective pixel & vertex a particle texturing shaders. system for support • Dynamic world terrain • Multiple lighting and • Currently CS shadow shadowing fonts and true rendering type fonts are techniques supported • Particle • GUI system System • Per-vertex • Support for lighting and skyboxes, Light mapping skyplanes and • Special effects skydomes include • Billboarding Environment Mapping, Lens Flares, Billboarding, Particle System, Sky, and Mirror Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 6 of 13)

Licensing • Team/Instructor • LGPL license • Modifications • License includes • $100 per user edition plus a • Modifications must be full source to (user is single must be released back editor and full defined as commercial released back to the rights to distribute anyone who edition license: to the community editor with your views C++ $199 + $199 = community • Ogre3D source game to allow source code) $398. must be passed mod-makers and • 50% off for • Can be install on with all enthusiasts to educational on ten different copyrights breathe new life license machines. intact into your title. • No royalties • All members of • Customizations for most the team must must be clearly projects use the documented for the same • Full source is project or for included learning purposes. • The game can be publish or sell royalty free. • Has a ‘watermark’ or required ‘made by A6’ screen at startup for all develop games. Scripting • Has built in • Many • .NET scripting • Torquescript: script to have languages can languages, C#, C++ style full control of be used for C++/CLI, and runtime game. scripting if VB.NET scripting • C-script is a bindings are • Python language simplified created with version of C++. Swig. So far Also very Python has the similar to most bindings. JavaScript. • New users have pre-made script available. • Expert users can interface to the engine using C/C++ or Delphi. Built-in • Level • Reality Editor • GUI Editors • Model • World • World • Script editors • GUI Designer • Mission

Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 7 of 13)

Physics • Polygon level • Basic Physics, • Supports multi- • Bounding box collision Collision primitive, arbitrary collision detection. Detection, joint linkages, detection, • Physics engine Rigid Body stacking, collision with supports • Hierarchical breakage, and world and gravity, bounding box particle physics. other objects, damping, collision • Integrated physics vehicle elasticity, detection editing inside of physics friction, and system Reality Builder, hinge, ball, • physics library supporting wheel, and using ODE creation of slider joints optimized collision primitives for models and skeletal animated meshes; constraint editing; and interactive physics simulation and tweaking in-editor.

Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 8 of 13)

Scene • BSP, Portals, • Visibility • Highly • Full artist-driven • BSP/portals Management Occlusion system based customizable, and procedural for interior Culling, PVS, on a flexible and Level-Of-Detail objects LOD: combination of not tied any support. • LOD for • Seamless indoor portals, kd-tree, single scene • Per-pixel terrain, spatial and outdoor and coverage type Occlusion Culling. database support buffer • Hierarchical • Reload Scripts on • XML world file scene graph the fly to see your format allowing • Querying changes without you to easily features having to restart redefine the the application world • Levels can be stored in standard compressed ZIP archives so that you can easily make a bundle of one level • A converter to convert MAP files (from Quake/Half- Life) to CS is also included. Also, scripts (Python) are included to export models and levels from within Blender • Sequence manager with triggers allowing the definition of object interactions from within the level itself Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 9 of 13)

Animation • Keyframe • Keyframe • Skeletal • Character Normal • Blended Animation, Animation and animation Mapping, animations • Skeletal Skeletal Spherical • Skeletal- Animation Animation Harmonics, Rag based • Morphing • 3D animated Doll Physics, • Animation skeletal meshes skeleton-based Blending using Cal3D multi-weighted. animation • Seamless transitioning between physics & keyframe animation. • Physics-based character bone influences also allow for procedural animation. • Ragdoll character animation, allowing you to mix physics with animations for dynamic effects such as character damage • Shader animation

Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 10 of 13)

Mesh • Mesh Loading, • 3D triangle • Flexible • Character Normal • Exporters Skinning, mesh sprites formats Mapping & supplied for Deformation with frame accepted Spherical Milkshape, • Exporters animation. • Biquadric Harmonics, with 3dStudio, supplied for • Converters for Bezier patches skeleton-based, Maya. Milkshape, Milkshape, for curved multi-weighted- Worldcraft, Maya, Cal3d, surfaces bone vertex shader gamespace, 3DS, Quake • Progressive animation 3dStudio, Maya MDL and meshes • Characters can Quake II MD2 • Static contain any formats to geometry number of Crystal Space batcher arbitrary pixel & are included. vertex shaders on • Importers for multiple materials 3DS, MDL, • Precomputed MD2, OBJ, Radiance Transfer POV, and ASE data & lightmaps are also automatically included. The mapped to Level- meshes are Of-Detail meshes actually progressive meshes allowing for dynamic LOD (level of detail) changes. • There is also support for skeletal sprites Sound • 3D sound • 2D and 3D • Environmental • OpenAL 3D sources (wav, sound. Audio with EAX sound ogg, CD, • DS3D, EAX, and 5.1 Surround. support; loads mp3) with A3D • Ogg Vorbis sound .ogg and .wav Doppler effect • WAV, streams files Ogg/Vorbis, AU, AIFF, IFF, and MOD AI • Pathfinding, • Intelligent • Little official Decision pathfinding, both support, more Making predetermined and features • Finite State dynamic with available with Machines obstacle community • Also has pre- avoidance. resources made AI script • Decision-making based on adaptive state machines. • Reactions to stimuli such as sight and sound.

Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 11 of 13)

Input • Mouse and • Mouse and • Mouse and Handling keyboard keyboard support keyboard support support • Has a pre-made player-input script that can be modified.

Tools • Supports • Export from .NET support • Supports external 3D many external 3D modelers modeling tools Python support modelers mentioned including mentioned earlier in Milkshape3D, Max earlier in ‘Mesh’ section Maya and ‘Mesh’ • Terragen Blender Maya section • Quark • Hammer Platforms • Windows • Windows • Windows • Windows • Windows • Mac OS • Mac OS • Xbox • Mac OS • • Linux • Linux Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 12 of 13)

Misc • Slow • Common • Plug-ins for 3D • Extensive motion/quick resource Studio Max and networking motion effect. infrastructure Maya. • Large • Save / Load for memory • Includes Voice community system for management Communication • Extensive resuming games and loading • Optimized documentatio at arbitrary from archives Client/Server- n positions. • Flexible plug- Authoritative • Multi-player in architecture networking client/server allows engine mode for LAN to be extended and Internet without (TCP/IP, UDP). recompilation • “Controllers” allow easy organization of derived values between objects • Debugging memory manager • Examples of combing Ogre with other libraries • XMLConverter

4. Requirements

Game Engines Requirements (rank) 3DGameStudio Crystal Space Ogre3D Reality Engine Torque Graphics 2d overlays (3)      Indoor multi-floored      textured environments (3) Animation support (3)      Outdoor environments      (1) 3d mesh support (3)      Physics Collision detection (3)      AI Pathfinding (3)      Diep Nguyen, Ajay Dham, Billy Nolen, Jason Alexander, Jason Franks Senior Design I Team 11 Game Engine Comparison (page 13 of 13)

Decision making (2)      Input/Output Handle user input (3)      Sound support(3)      External Tools Mesh exporters for cheap      programs (3) Importing levels from      cheap editors (3) OS Support Windows (3)      Mac (1)      Linux (1)      Programming Source included (3)      Scripting (2)      Engine source in c/c++      (2) Object handling/manipulation      (3) Other License within budget (3)      License supports      unlimited distribution (3) Comprehensive      documentation (3) Free company support      (2) Community support (2)      Ease of use (3)      Built-in editors (2)      Fps framework (2)      TOTAL (68) 66 56 49 53 65

5. References http://www.conitec.net/a4info.htm http://www.crystalspace3d.org/tikiwiki/tiki-view_articles.php http://www.ogre3d.org/ http://www.artificialstudios.com/ http://www.garagegames.com/pg/product/view.php?id=1