Download presentation
Presentation is loading. Please wait.
Published byWhitney Griffith Modified over 9 years ago
1
Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1
2
Game Development is Hard 2
3
3
4
Challenges in Game Development Rapidly shifting design requirements Multi-platform development Integration of many different forms of media (sound, music, art, modeling) Highly interdisciplinary teams The demand for novelty 4
5
Three Routes for Development 5
6
Three Routes Roll your own engine Use a Framework Use an off-the-shelf engine 6
7
Rolling Your Own Engine Surprisingly common Special game mechanics require custom software architectures Existing tools are too restrictive for rapid design changes Using other people’s tools is a cop-out 7
8
Using a Framework Usually provide basic utilities and primitives Commonly built around a state machine in a loop 8
9
Using a Framework 9
10
10
11
Using a Framework Other Common Components: –Rendering Library –Physics Engine –Input Abstraction –Fast Math Libraries –Object Pooling/Resource Management –Audio Management 11
12
Using a Full Game Engine Use some kind of interactive editor Provide custom API or scripting language for defining game mechanics More approachable by design and art members of a development team Combines many tools into a single package 12
13
13
14
Entity/Component Model A pattern that is becoming more popular in game development Used in the Unity Game Engine Every game object is an entity which contains different components Those components are acted on by systems that run in loops 14
15
Example Entity class Entity { void AttachComponent(ComponentType, argumentList, name) void DetachComponent(name) void UpdateComponents() void UpdateComponentType(ComponentType typeOfComponentToUpdate) void HandleMessage(MessageType message) // echoes to all attached components... BaseComponentList attachedComponentList.... } 15
16
Example Component class BaseComponent { virtual void Startup() virtual void Update() virtual void Shutdown() virtual void HandleMessage(MessageType message).... } class RenderComponent: Public BaseComponent { virtual void Startup() // (registers the renderable mesh with the rendering system) virtual void Shutdown() // (removes the renderable mesh from the rendering system)... } 16
17
Components in Unity All public members of a script are exposed in the GUI allowing non- programmer team members to control game settings Built in Component types can also be accessed and edited this way Properties can be changed in the GUI while the game is running to test changes 17
18
Open Areas for Game Tool Development Implementing AI behaviors (complex simulation in general) Better animation control (some promising recent tools) Truly cross-platform deployment (particularly to web) 18
19
Questions? 19
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.