1 / 19

Tools for Game Developmet

Tools for Game Developmet. Erik Harpstead Carnegie Mellon University. Game Development is Hard. Challenges in Game Development. Rapidly shifting design requirements Multi-platform development Integration of many different forms of media (sound, music, art, modeling)

kineta
Download Presentation

Tools for Game Developmet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tools for Game Developmet Erik Harpstead Carnegie Mellon University

  2. Game Development is Hard

  3. 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. Three Routes for Development

  5. Three Routes • Roll your own engine • Use a Framework • Use an off-the-shelf engine

  6. 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. Using a Framework • Usually provide basic utilities and primitives • Commonly built around a state machine in a loop

  8. Using a Framework

  9. Using a Framework

  10. Using a Framework • Other Common Components: • Rendering Library • Physics Engine • Input Abstraction • Fast Math Libraries • Object Pooling/Resource Management • Audio Management

  11. 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. 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

  13. Example Entity class Entity { void AttachComponent(ComponentType, argumentList, name) void DetachComponent(name) void UpdateComponents() void UpdateComponentType(ComponentTypetypeOfComponentToUpdate) void HandleMessage(MessageType message) // echoes to all attached components ... BaseComponentListattachedComponentList .... }

  14. 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) ... }

  15. 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

  16. 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)

  17. Questions?

More Related