Download presentation
Presentation is loading. Please wait.
Published byValerie Smith Modified over 9 years ago
1
ITB/ITN751 Games Production Lecture 5 Game Engine Programming
Ross Brown
2
Lecture Contents Game Engine Programming
Guest Lecture – Lachlan Bland, THQ
3
Readings Textbook Chapters: Websites: Chapter 7
- a programmers view of game programming skills – nice reference for the assignment - some wage issues covered here
4
Bigger, better, faster, stronger
“Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning” - Rick Cook
5
Havok Euphoria Engine Software
6
Game Engine Programming
This is the first lecture on a programming role within the game industry Game Engine development is one of the basic jobs within the computer games industry…maybe the oldest Argument: it predates graphics technology, so text-based art free games were still programmed
7
What is a Game Engine? Underlying software technology that supports the execution of the game Contains a number of software modules (amongst others) integrated together to provide the gaming experience: Graphics Physics Sound Scripting Animation Artificial Intelligence Networking User Interface
8
Game Engine Overview Game Engine Audio AI Physics Game Content Scene
Graphics Scene Graph User Interface
9
Game Engines Developed to abstract away underlying aspects of a game
Enables reuse of code Facilitates porting code to other hardware platforms
10
Graphics Module Provides an abstraction of the Graphics Processing Unit (GPU) in the hardware Provides the ability to render the geometric content created by artists at the highest level of fidelity possible Incorporates advanced real-time mathematical models of how light interacts with the surface of an object Modern GPUs are programmable allowing for very sophisticated effects
11
Graphics Sprites Sprites Surface Materials Shadows Bloom Bump Mapping
12
Physics Model Implements Newtonian model of physics for the game environment objects Gives the game object’s mass, force and velocity and uses collision detection methods to provide animation Often uses simplifications of physics models to simulate the physics in order to provide real-time responses
13
Sumotori Dreams Simple physics demo Fits into 96k Illustrates:
Simple physics demo Fits into 96k Illustrates: Collision Detection Animations Newtonian Physics Rag Doll Physics
14
Sound Module Manages the components of the soundtrack content developed by musicians and sound designers Executes sounds based on triggers in the environment from explicit execution, time events or interactions between game objects – eg. collisions
15
Scripting A language add-on to the engine that exposes internal engine architecture Allows designers to glue the game together by implementing the gameplay mechanics for events, AI, rewards, etc.
16
Animation Data structures are provided to manage and support hierarchical rigging and to animate the scripts stored from mocap and animations hard coded by the animators The animation system needs to blend between the various canned animations and the physics interactions
17
Artificial Intelligence
Provides finite state automata and a behaviour model for the agents in the game to behave Also provides facilities for learned behaviours – Neural Networks Group behaviours (swarming), predator (seek), prey (flee) behaviours Path finding is another included component for Non-Player Character (NPCs) to find their way around a game environment
18
Artificial Intelligence
Neural Network Seek and Flee Behaviour Finite State Automata Flocking
19
Networking Software to support network connections to other clients on a network or to servers Used to maintain verified game state on any machine connected to the server Sophisticated caching software is used to make sure every node is made aware of the present state of the game
20
Scene Graph Tree data structure used to store the content
Is operated upon by the Artificial Intelligence and Physics modules to update its state Fed to Graphics Module to be rendered (drawn) into the framebuffer (screen memory)
21
Scene Graph Above shows a simple example of a scene graph for a robot
22
Game Loop While user input not exit Endwhile
Update Scene-Graph with network cache Update Scene-Graph via AI Update Scene-Graph via Physics and Animation Render Scene-Graph to Screen via Graphics System Endwhile
23
Game Engine is Real-time
All of this has to be updated at ~30 frames per second for a game Thus entire loop must run in 1/30th second or less for high quality animation rates Thus a very tight real-time system Thus programmer skills MUST be at a high level
24
Game Engine Developer Programs the Game Engine
Programs one or multiple modules in the engine Tends to be a specialist in one area Usually the best programmers in the shop
25
Roles Engine Development Engine Research and Development
Cross Platform Development Bug fixing with Quality Assurance (QA)
26
Roles Work with a lead developer in a development team
Works with technical director who oversees a number of projects Work with animators and designers to negotiate technical requirements for the game
27
Skillset High level Software Engineering skills – specification, testing, documentation skills Deep understanding of basic computer science algorithms – hashing, data structures, pointer arithmetic, code optimisation (necessary) C++ a necessity
28
Skillset Usual analytical skills required from general ICT programming for specification/understanding of program design Problem solving skills – creative solutions and or bug fixing Mathematics, Physics and AI skills very desirable
29
Skillset Multiprocessor programming – concurrant programming of multiple threads (mini programs) - for the new multicore Xbox, PC and PS3s Do lots of development of your own mods - good Development of deep technical skills via creation of your own engine components People skills – yep, that again
30
Development Tools Interactive Development Environments (IDE)
Visual Studio, Eclipse… Sophisticated environments for the development of software: Intelligent Editors – think word processor for source code Debuggers – allows you to watch the code execute to find problems (bugs) Profilers – enables analysis of the efficiency of developed code
31
Development Tools Application Programming Interfaces (APIs)
Libraries of useful code to use within into your source code DirectX – graphics/audio OpenGL – graphics Open Audio – audio Middleware – useful software APIs that facilitate various smaller tasks in games (goes between other components) Physics, Data Processing, Networking, AI, User Interfaces Goto:
32
Console/Handheld Development Tools
Console/Handheld Development Kits To develop for a console or handheld device – X360, PS3, DS, PSP Specially manufactured hardware is used to communicate via a network link Aug. 2006, PS3 Dev. Kit
33
Console/Handheld Development Tools
Remotely debug software on device Consoles only run signed code, so need dev. kit hardware for unsigned code Code is then given signature which runs on normal consoles
34
Some Commercial Games Engines
Gamebryo – classed as a middleware game engine solution Unreal – full engine with tools and scripting interface for game development Half Life 2 Source Engine – C++ engine with toolset
35
Some Free Game Engines XNA Game Studio Express – free proprietary game engine and development environment Irrlicht – free open source game engine
36
Guest Lecturer Lachlan Bland – Engine Programmer THQ Studios
37
References Eberly, David H., 3D Game Engine Architecture: Engineering Real-Time Applications with Wild Magic, 2004 – Available online at QUT Library Eberly, David H., Title3D game engine design : a practical approach to real-time computer graphics, Morgan Kaufmann, 2001
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.