GMNG 4312 –Game Engines - PowerPoint PPT Presentation

gmng 4312 game engines n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
GMNG 4312 –Game Engines PowerPoint Presentation
Download Presentation
GMNG 4312 –Game Engines

play fullscreen
1 / 80
GMNG 4312 –Game Engines
244 Views
Download Presentation
stan
Download Presentation

GMNG 4312 –Game Engines

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. GMNG 4312 –Game Engines Unit 01: Introduction Alireza Tavakkoli, Ph.D.

  2. Objectives • Learn about game development • Game Engine Terminologies • Game Genres • Game Engine Survey

  3. Introduction • A Long Time Ago Ubiquitous Game Engines!

  4. A Game Engine? • So what is a Game Engine? • Reusable Software • Easy to manipulate • Multi-platform • platform independence • Examples?

  5. Basic Game Engine Components • Core Components • Rendering Engine • Collision and Physics engine • Animation System • Audio System • Game World Object Modeler • Artificial Intelligence System • Etc.

  6. What We Cover • Overall Theories • Architecture of industrial grade engines • Game development team organizations • Major game engine sub-systems • Genre-dependent vs. Genre-agnostic systems • Game and Engine boundaries • Practical Systems • Unreal • OGRE • Unity • Tools and Techniques • Logical vs. Physical software architecture • Revision systems and software development environment

  7. Typical Game Development Team

  8. Engineers • Software design and implementation • Runtime Programmers • Engine and Game Itself • Tools Programmers • Offline tools • Example? • Sub-engine system Engineers • AI/Rendering/Physics/etc. • Gameplay • Scripting and gameplay programmers • Lead Engineers • Technical Director (CD) and Chief Technology Officer (CTO)

  9. Artists • “Content is king.” • Concept artists • Technical artists • 3D Modelers • Texture artists • Lighting artists • Animation • Animators • Motion Capture actors • Audio • Sound designers • Voice actors • Composers

  10. Game Designers • Design interactive portion of the player’s experience. • Gameplay • Senior (Macro-level) designers • Overall feel of the game • Story  chapter seq. goals and objectives • Micro-level designers • Each level individually • Geometry • Keypoints and logistics • Etc. • Writers (some can afford it!)

  11. Producers and Other Staff • Producers • Manage the scheduling and HR • Liaisons for financing, legal, marketing, etc. • Other Staff • IT • Marketing • Etc. • Publishers and Studios • Marketing and manufacture of the game title.

  12. What is a Game? • So what is a game? • General Terminology • Monopoly, chess, sports, etc. • In Academia • Game theory • In Digital • 3D images in virtual worlds • Even 2D older versions! • RaphKoster: • ”A game is an interactive experience that provides the player with an increasingly challenging sequence of patterns which he or she learns and eventually masters”.

  13. Video Games as Soft Real-Time Simulations • Soft Real-Time Interactive Agent-based Computer Simulation • Imaginary worlds • Approximation and Simplification of Complex Mathematics • SIMULATION! • Responsive • Use human/player’s input and react to it • INTERACTIVE! • One/more Opponents • Each object is potentially dynamic • AGENT_BASED! • Deadlines • Each action must happen at the time they are supposed to! • SOFT REAL-TIME! • Missed deadlines won’t be catastrophic!

  14. Mathematical Models and Game Loop • Analytical vs. Numerical Models • Analytical • y(t) = ½ g t2+v0t+y0 • Numerical • y(t+Dt)=F(y(t),y’(t),y”(t)) • Can anyone see the difference between these two models? • In Games • Use Numerical models  Each game state from its previous state(s). • Game Loop!

  15. What is a Game Engine • Doom  First Person Shooter  1st Game Engine • Separation between • core software component • rendering, collision detection system • the art assets • Models, objects, gameplay, etc. • Value? • Reusability! • Modability! • Licensing! • Lines between game and engine is often blurry!

  16. What Differentiates Game Engine from Game • Data-driven Architecture • No specific game rules • No object specific rendering • Extensible • Efficiency vs. Extensibility • Trade-offs! • Optimization vs. generalization! Customize for Similar Games Customize for Similar Game Genre Customize for Any Game Genre Just for 1 Game PacMan Hydro Thunder Engine Quake III Unreal Probably Impossible

  17. Engine Difference Across Genres • Similar in All Game Genre • User input • 3D mesh rendering • Powerful audio system • Heads-Up Display (UHD), etc. • Example of a Soft Engine (UNREAL) • First person shooter  Unreal Tournament • 3rd person shooter  Gears of War • Action-adventure  Grimm • Racing Game  Speed Star

  18. Game Genres • First Person Shooters (FPS) • Quake, Unreal Tournament, Half-Life, Counter-Strike, Call of Duty.

  19. Game Genres (continued) • First Person Shooters (FPS) • Slow on-foot roaming • Modern movements • On-foot Locomotion, driving, flying, etc. • Small view level (potentially large) • Possibly vast outdoors as well • Most technologically challenging! • Why? • Immersion in virtual reality! • Technologies: • Efficient 3D rendering • Responsive camera control • High fidelity animation • Hand held weaponry • Forgiving character collision models (floaty) • High fidelity AI • Small scale multiplayer

  20. Game Genres (continued) • First Person Shooters (FPS) • Adapting to large scale maps • Binary Space partitioning

  21. Game Genres (continued) • Third Person Shooters (FPS) • Space Panic, Donkey Kong, Pitfall, Super Mario Brothers!

  22. Game Genres (continued) • Third Person Shooters (FPS) • Can be 3D like Super Mario 64 and Galaxy!

  23. Game Genres (continued) • Third Person Action/Adventure(FPA) • Ghost Recon, Gears of war, Uncharted: Drake’s Fortune

  24. Game Genres (continued) • Third Person vs. First Person • More emphasis on character body, animation, locomotion • More fidelity in player character animation • What about online multiplayer FSPs? • Third Person Technologies: • Moving platforms and geometry • Puzzles • Follow camera • Complex camera collision system • Never clip through background geometry and foreground objects

  25. Game Genres (continued) • Fighting Games • Two player humanoids like Tekken, Soul Calibur, etc.

  26. Game Genres (continued) • Fighting Games • Two player humanoids like Tekken, Soul Calibur, etc. • Technologies • Fighting animations • Accurate hit detection • Complex user input systems • Crowds; typically static backgrounds with semi-random movements • Close-up cameras: • Little or no world subdivision and occlusion culling • However!

  27. Game Genres (continued) • Fighting Games • State-of-the-art like Fight Night • Technologies • Fighting animations • Accurate hit detection • Complex user input systems • Crowds; typically static backgrounds with semi-random movements • Close-up cameras: • Little or no world subdivision and occlusion culling • However!

  28. Game Genres (continued) • Fighting Games • State-of-the-art like Fight Night • Technologies • High definition character graphics • Realistic skin, hairs, subsurface scatter, sweat effects, etc. • High fidelity character animation • Physics based cloth and hair simulation

  29. Game Genres (continued) • Racing Games • Driving vehicles  Race! • Simulation  Realistic experience! • Technologies

  30. Game Genres (continued) • Racing Games • Driving vehicles  Race! • Simulation  Realistic experience! • Technologies • Tricks in rendering distant background! • Breaking down tracks into 2D regions • Optimized for pathfinding, AI, etc. • FPS or TPS cameras • Efficient collision resolution for cameras in tight spaces. • Tunnels, etc.

  31. Game Genres (continued) • Real-Time Strategy (RTS) • Dune II The first in this genre. • Warcraft, Age of Empires, Command and Conquer!

  32. Game Genres (continued) • Real-Time Strategy (RTS) • Dune II The first in this genre. • Warcraft, Age of Empires, Command and Conquer! • Technologies • Oblique cameras! • No viewer camera modification • Various optimizations in rendering. • Grid-base world construction • Simplified rendering • Relatively low-res units • Height-field terrain maps • User terrain modifications • Simple user interactions

  33. Game Genres (continued) • Massively Multiplayer Online(MMO) • World of Warcraft, Star Wars Galaxies, etc. • Huge number of simultaneous players!

  34. Game Genres (continued) • Massively Multiplayer Online(MMO) • One persistent large map! • A world larger than life (of its millions of logged users) • Subcategories • Role-playing • (Dream Of Mirror Online) • Real-time strategy • (Battle Forge) • First Person Shooter • (Sudden Attack) and (Soldier Front)

  35. Game Genres (continued) • Massively Multiplayer Online(MMO) • One persistent large map! • A world larger than life (of its millions of logged users) • Technologies • Massive battery of dedicated servers • Authorative state of the game • User logging • Inter-user chat VoIP • User transactions and account management • User subscriptions • Monthly charge • Pay per play • In game cost • What about graphics Fidelity?

  36. Game Genres (continued) • Other Genres? • Sports • Role Playing Games • God games • Environment/Social Simulations • Puzzles • Non-electronic • Web-based • Serious games • …….

  37. Game Engine Survey • The Quake Family • First 3D FPS ?  3DW • Doom  Quake  Quake 2  Quake 3 • Quake Engine has been used for many games • Quake2  Sin  FAKK 2  Medal of Honor • Valve’s Source Engine is based on Quake Tech. • Who wants to get the source code and play with it? • You can run the game in MSVS and debug! • What does that mean?

  38. Game Engine Survey • The Unreal Family • Epic Games Inc.  Unreal Tournament! • Unreal Engine 2  Unreal Tournament 2004 • Highly modable • Unreal Engine 3  The most powerful toolset in the industry • Rich Graphics UI, rendering, shading, animation, cinematic systems! • Game Logic Visual Programming  Kismet • Use to build almost in any game genre! • Developers Network  UDN • Free Developer Kit  UDK

  39. Game Engine Survey • The Source Family • Valve  Half-life • Microsoft XNA Game Studio • Based on MS C# CLR • Good for PC and Xbox

  40. Game Engine Survey • Other Commercial Engines • C4 Engine by Terathon • SAGE (EA’s RTS engine)

  41. Game Engine Survey • Open Source Engines • Freely available! • Licensing: • GPL • Free use  not profit • LGPL • Free use  Commercialize • Many open source engines exist • Some great, some awful! • OGRE 3D: • 3D Rendering engine • Advanced lighting, shaders, interaction, animation, HUD system!

  42. Runtime Engine Architecture • Runtime Engine Architecture. • Two components of a game engine • Tool Suite • Runtime Component • First let’s check the runtime component: • Layered Architecture! • Like all software it is based on a layered architecture.

  43. Runtime Engine Architecture • Runtime Engine Architecture. • Two components of a game engine • Tool Suite • Runtime Component • First let’s check the runtime component: • Circular Dependency • When lower layers dependon upper layers: • This is bad!

  44. Hardware • The computer system or console • PC, Xbox, etc. • What is a platform? • The hardware + The system software (OS, etc.) • Most of the things we study are platform-agnostic • As long as you write in c++ you can compile and run on any platform! • Not really 

  45. Device Drivers • The lowest-level software components • Either by OS or by the hardware vendor • IO management • Memory management • Graphics management • Really all hardware resources! • Why this is important? • Shield hardware from the upper layers including the OS! • Details • Variants • Communication

  46. Device Drivers • On PC this software controls the hardware • Running all the time. • Time-sharing • Multi-tasking • On traditional consoles • A thin library compiled into the game executable! • Owns the entire machine! • On modern consoles • System resources are shared by the OS! • Can interrupt the game execution to perform housekeeping tasks!

  47. 3rd Party SDKs and Middleware • Software Development Kits • These tools are widely used to develop system-dependent functionalities. • You don’t have to re-invent the wheel! • The functional interfaces provided by the SDKs • Application Programming Interface (API) • Examples? • OpenGL, DirectX, STL, etc.

  48. 3rd Party SDKs and Middleware • Data Structures and Algorithms • A game is an algorithm and all game components are structures – i.e. data structures. • Standard Template Library (STL) • C++’s basic I/O algorithms and data structures • STLport

  49. 3rd Party SDKs and Middleware • Data Structures and Algorithms • A game is an algorithm and all game components are structures – i.e. data structures. • Boost • A powerful implementation of a bunch of algorithms and data structures • www.boost.org • Cool huh 

  50. 3rd Party SDKs and Middleware • Data Structures and Algorithms • A game is an algorithm and all game components are structures – i.e. data structures. • Loki • a powerful generic programming template library!