Top Banner
Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1
19

Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

Dec 26, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

1

Tools for Game Developmet

Erik HarpsteadCarnegie Mellon University

Page 2: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

2

Game Development is Hard

Page 3: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

3

Page 4: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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

Page 5: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

5

Three Routes for Development

Page 6: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

6

Three Routes

• Roll your own engine

• Use a Framework

• Use an off-the-shelf engine

Page 7: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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

Page 8: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

8

Using a Framework

• Usually provide basic utilities and primitives

• Commonly built around a state machine in a loop

Page 9: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

9

Using a Framework

Page 10: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

10

Using a Framework

Page 11: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

11

Using a Framework

• Other Common Components:– Rendering Library

– Physics Engine

– Input Abstraction

– Fast Math Libraries

– Object Pooling/Resource Management

– Audio Management

Page 12: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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

Page 13: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

13

Page 14: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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

Page 15: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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

.... }

Page 16: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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)

... }

Page 17: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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

Page 18: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

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)

Page 19: Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.

19

Questions?