14
The Game Engine

Game Engine

Embed Size (px)

DESCRIPTION

Introduction to Game Engine

Citation preview

The Game Engine

The Game EngineWhat is it?A software system designed for the creation and development ofvideo gamesComprise of reusable components to help build the disparate elements of a the game and then pull them together to create a functioning wholeReusable help reduce dev cost and time

HistoryThe term arose in mid 1990sWith first person shooters Quake and Doom allowing other developers to use their core portionsLater Quake III Arena and Unreal were designed with this approach in mind, with the engine and content developed separately with making available usage of the core engine under license giving new source of incomeHow they are built?Often follows acomponent-based architecturethat allows specific systems in the engine to be replaced or extended with more specialized (and often more expensive) game middleware components such asHavokfor physics,Miles Sound Systemfor sound, orBinkfor Video.Some designed as a series of loosely connected game middleware components that can be selectively combined to create a custom engine, instead of the more common approach of extending or customizing a flexible integrated solution. E.g. RenderWare

ComponentsRendering engine for 2D and 3D graphicsPhysics engine collision detectionAI engine path finding, character behaviorSound engineAnimation engineNetworking engine (MMO middleware) for multiplayer gamesThreading engineLocalization engine

AdvantagesBuilding sequels faster and easier use same game engine, just change the textures graphics and mapsDeveloping game engine functionality in house Takes timeTesting increases cost3rd party engines already used in many games and hence are industry proved3rd party game engines develop stable and rapidly than those built in houseSupport for new hardware is added quickly to 3rd party enginesAdvantages3rd party game engines adhere to industry standardsHardware AbstractionMost engines built on APIs like Direct3D and OpenGL which provide hardware abstractions from GPUsLow-level libraries such asDirectX,Simple DirectMedia Layer(SDL), andOpenALprovide hardware-independent access to othercomputer hardwaresuch as input devices (mouse, keyboard, and joystick), network cards, and sound cards Before hardware-accelerated 3D graphics, software renderers were used and are still used in some modeling tools or for still-rendered images when visual accuracy is valued over real-time performance (frames-per-second) or when the computer hardware does not meet needs such asshadersupportHardware AbstractionWith the advent of hardware accelerated physics processing, various physicsAPIsuch asPALand the physics extensions ofCOLLADA became available to provide asoftwareabstraction of thephysics processing unitof different middleware providers and console platforms.

MiddlewareSpecialized game engines or more appropriately a component of a game engineSome contains fullsource code, others just provide anAPIreference for a compiled binarylibrary. Some middleware programs can be licensed either way, usually for a higher fee for full source code.

Middlewares major typesGraphics engines - Real time 2D and 3D rendering capabilities e.g. OGRE, RealForge, Crystal Space, Genesis3D and Jmonkey Engine etc.Video playback engines - Compresses presendered videos (of story line) and play them effortlessly during gameplay e.g. Bink video from Rad Game toolsPhysics Engine Simulates real-world interaction between game character and objects, like bouncing of item, fired bullet and damage caused by it. Handles collision detection. e.g. Havoc physics in Halo 3 and Half Life 2

Middlewares major typesSound Engine - Plays various background sounds at the right time during gameplay without affecting performanceProvides hardware abstraction allowing developers to concentrate on sounds instead of how these sounds can be played on different platforms.E.g. FMOD by Firelight TechnologiesAI EngineDrives automated decision making to build up game playFinding path by computer controlled bots, attacking on the user controlled character e.g. Havoc AI

Middlewares more targeted onesUsually does only one thing but does it more convincingly or more efficiently than general purpose middlewareEg. ,SpeedTreewas used to render the realistic trees and vegetation in therole-playing video gameThe Elder Scrolls IV: Oblivion Fork Particlewas used to simulate and render real timeParticle Systemsvisual effects or particle effects inSid Meier's Civilization V

Recent TrendsTodays game engines - matured and more user friendly used for : visualization, training, medical, andmilitary simulationapplicationsTargeted towards new platforms:Mobile game engines for Androids and iPhones like Unity3DBrowsers e.g. O3D, Unity Web Player, WebGLBuilt upon higher level languages like Java and C#.NET (e.g.TorqueX, andVisual3D.NET) or Python (Panda3D)