29
expressive intelligence studio UC Santa Cruz BMOSLFGEMW: A Spectrum of Game Engine Architectures [email protected] CMPS 164 Game Engines March 30, 2010 Adam M. Smith

BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures [email protected] CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio

UC Santa Cruz

BMOSLFGEMW:A Spectrum of Game Engine Architectures

[email protected]

CMPS 164 – Game EnginesMarch 30, 2010

Adam M. Smith

Page 2: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

What I’m about to show you cannot be found

in any textbook,

on any website,

on any sheet of paper anywhere.

Page 3: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Outline

What’s a game engine?

The Spectrum

Some Examples

Spectrum Details

What’s in your engine?

What’s at stake?

Page 4: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

What’s a game engine? (first attempt)

A 3D graphics library with optional support for physics and other animation-related computation.

Example: Ogre3D

Page 5: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

What’s a game engine? (second attempt)

A comprehensive game building environment with specialized languages, libraries, and tools.

Example: Unity3D

Page 6: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

What’s a game engine? (giving up now)

All the software and hardware in your game that isn’t part specific to that particular game.

Examples:

cstdio

HTML5+javascript

iOS

Page 7: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

The Spectrum

Bare Metal

Operating Systems

Libraries

Frameworks

Game Engines

Makers

Wizards

Page 8: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Gameduino (bare metal)

Page 9: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Ubuntu (OS)

Page 10: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

ODE (library)

Page 11: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

PyGame (framework)

Page 12: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Flixel (engine)

Page 13: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Game Maker (maker)

Page 14: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Klik-and-Play (wizard)

Page 15: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

The Spectrum, revisited

Bare Metal

Operating Systems

Libraries

Frameworks

Game Engines

Makers

Wizards

Used to build games

Used to build engines

Page 16: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Bare Metal

Features

Processor, memory, I/O hardware

Primitive programming languages

Examples

Gameduino

PC with no OS

Early consoles

Giveaways:

Reinventing dynamic memory allocation, managing hardware registers

Page 17: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Operating Systems

Features

Filesystems, IO streams, memory management

Examples

Windows 7, Mac OSX, Ubuntu

Some consoles (OtherOS on PS3)

Giveaways

Developer documentation suggests you are making “applications”

Page 18: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Libraries

Features Isolated technical solutions

Internal vocabulary of domain

“middleware” in enterprise marketspeak

Examples ODE (physics), bodies/geoms/joints

OpenGL (graphics), matrices/primitives/textures

Fmod (sound)

Giveaways: Used outside of just games

No reference to computational hardware

Page 19: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Frameworks

Features Integration of many libraries using common

vocabulary

Examples DirectX XNA Delta3D (engine-ish) SDL PyGame Ogre3D (library-ish)

Giveaways Contains multiple libraries!

Page 20: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Game Engines

Features Support for genre-specific abstractions

Examples Flixel (“a platformer engine”, modulo abuses)

Unity3D

Unreal Engine

Giveaways Only for games, only for games in certain genres

You are writing one yourself after your second game in a genre

Page 21: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Makers (/ Construction Toys)

Features Drag-and-drop GUI Integrated level editor Usable with mouse only

Examples Game Maker Game Salad RPG Maker FPS Maker

Giveaways Marketed at non-programmers Programming is optional / impossible

Page 22: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Wizards

Features

Included content libraries

Coarse mechanics

Machine has initiative (it asks you questions)

Examples

Klik-and-play

Customizable games (insert your friends)

Giveaways

There is a clear set of steps to follow that always results in a game.

Page 23: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

The Spectrum, revisited, again

Bare Metal

Operating Systems

Libraries

Frameworks

Game Engines

Makers

Wizards

You’ll reinvent these over and over.

Page 24: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

What’s in your engine?

Technical Solutions

Languages

Practices

Page 25: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Technical Solutions (library components)

Input Keyboard/mouse/joystick/gamepad/touchscreen

Network Event synchronization State propagation and prediction Protocols Roles (client/server/peer/supernode/etc.)

Simulation Physics AI Graphics

Content Storage Textures / models / levels / characters Downloading/streaming from remote sources De/compression and caching

Modeling Game modes Finite state machines Scene graphs UI stacks

Output Video Audio Force feedback

Platform Integration Achievents / trophies / badges Points Presence and text/voice chat Matchmaking Metrics

Other CS topics:

Data structures

Algorithms

Storage

Databases

Graphics

AI

Page 26: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Languages (data and code, syntax and tools)

Base classes Game Object Component

Scripting languages For designers For developers

Data languages Object vs. Level formats Interop Language specification

Tools Compilers, assemblers,

packagers, decoders, debuggers

Other CS topics:

Programming languages

Compilers

Page 27: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Practices (the human part)

How do you create and integrate art?

How do you plan?

How do you build?

How do you debug?

How do you deploy/ship?

Other CS topics:

Software engineering

HCI / Interfaces

Page 28: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

What’s at stake?

A good engine hides the problems you don’t care about and amplifies your ability to tackle the ones you do care about.

A bad engine brings out new problems and weighs you down as you go about your other business.

Use/make the right tool for the job, even if it doesn’t look like a traditional “game engine”.

Page 29: BMOSLFGEMW A Spectrum of Game Engine Architectures · A Spectrum of Game Engine Architectures amsmith@soe.ucsc.edu CMPS 164 –Game Engines March 30, 2010 Adam M. Smith. expressiveintelligencestudio

expressiveintelligencestudio UC Santa Cruz

Thank you

BMOSLFGEMW :A Spectrum of Game Engine Architectures

Presenter:Adam M. [email protected]