SlideShare a Scribd company logo
1 of 29
Download to read offline
BMOSLFGEMW:
A Spectrum of Game Engine Architectures

Adam M. Smith


expressiveintelligencestudio

UC Santa Cruz
amsmith@soe.ucsc.edu

CMPS 164 – Game Engines
March 30, 2010
What I’m about to show you cannot be found
                          in any textbook,
                          on any website,
                          on any sheet of paper anywhere.




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?




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




expressiveintelligencestudio                    UC Santa Cruz
What’s a game engine? (second attempt)
 A comprehensive game building environment
  with specialized languages, libraries, and
  tools.

 Example: Unity3D




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
          …



expressiveintelligencestudio                      UC Santa Cruz
The Spectrum
    Bare Metal
    Operating Systems
    Libraries
    Frameworks
    Game Engines
    Makers
    Wizards



expressiveintelligencestudio   UC Santa Cruz
Gameduino (bare metal)




expressiveintelligencestudio   UC Santa Cruz
Ubuntu (OS)




expressiveintelligencestudio   UC Santa Cruz
ODE (library)




expressiveintelligencestudio   UC Santa Cruz
PyGame (framework)




expressiveintelligencestudio   UC Santa Cruz
Flixel (engine)




expressiveintelligencestudio   UC Santa Cruz
Game Maker (maker)




expressiveintelligencestudio   UC Santa Cruz
Klik-and-Play (wizard)




expressiveintelligencestudio   UC Santa Cruz
The Spectrum, revisited
    Bare Metal
    Operating Systems
                             Used to build engines
    Libraries
    Frameworks
    Game Engines
                       Used to build games
    Makers
    Wizards



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
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”



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

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!


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


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

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.
expressiveintelligencestudio                                   UC Santa Cruz
The Spectrum, revisited, again
    Bare Metal
    Operating Systems
    Libraries
    Frameworks        You’ll reinvent these over and over.
    Game Engines
    Makers
    Wizards



expressiveintelligencestudio                              UC Santa Cruz
What’s in your engine?
 Technical Solutions
 Languages
 Practices




expressiveintelligencestudio   UC Santa Cruz
Technical Solutions (library components)
    Input


       
     Network
             Keyboard/mouse/joystick/gamepad/touchscreen    Other CS topics:
                                                              Data structures
            Event synchronization
            State propagation and prediction
            Protocols
       
                                                              Algorithms
             Roles (client/server/peer/supernode/etc.)
    Simulation
            Physics
       
       
             AI
             Graphics                                         Storage
    Content Storage
       
       
             Textures / models / levels / characters
             Downloading/streaming from remote sources        Databases
            De/compression and caching
    Modeling
            Game modes                                       Graphics
            Finite state machines
       
       
             Scene graphs
             UI stacks                                        AI
    Output
            Video
            Audio
            Force feedback
    Platform Integration
            Achievents / trophies / badges
            Points
            Presence and text/voice chat
            Matchmaking
            Metrics



expressiveintelligencestudio                                                     UC Santa Cruz
Languages (data and code, syntax and tools)
 Base classes                       Other CS topics:
        Game Object
        Component                     Programming
 Scripting languages                    languages
        For designers                 Compilers
        For developers
 Data languages
        Object vs. Level formats
        Interop
        Language specification
 Tools
        Compilers, assemblers,
         packagers, decoders,
         debuggers

expressiveintelligencestudio                             UC Santa Cruz
Practices (the human part)
 How do you create             Other CS topics:
  and integrate art?              Software engineering
 How do you plan?                HCI / Interfaces
 How do you build?
 How do you debug?
 How do you
  deploy/ship?




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”.
expressiveintelligencestudio                    UC Santa Cruz
Thank you




 BMOSLFGEMW :
  A Spectrum of Game Engine
  Architectures

 Presenter:
       Adam M. Smith
       amsmith@soe.ucsc.edu

expressiveintelligencestudio   UC Santa Cruz

More Related Content

What's hot

Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyShaz Riches
 
Project presentation FPS
Project presentation FPSProject presentation FPS
Project presentation FPSShubham Rajput
 
Funky game engines
Funky game enginesFunky game engines
Funky game engineseduriez
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game DevelopmentShaan Alam
 
Unity Programming
Unity Programming Unity Programming
Unity Programming Sperasoft
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyAlex Kirby
 
Habitat Indie Game Development Pre-Post Mortem
Habitat Indie Game Development Pre-Post MortemHabitat Indie Game Development Pre-Post Mortem
Habitat Indie Game Development Pre-Post MortemCharles Cox
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyLuke Summers
 
Introduction to Unity3D Game Engine
Introduction to Unity3D Game EngineIntroduction to Unity3D Game Engine
Introduction to Unity3D Game EngineMohsen Mirhoseini
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyJordanianmc
 
Task 1- Engine terminology
Task 1- Engine terminologyTask 1- Engine terminology
Task 1- Engine terminologycrimzon36
 
Designprocesser lecture1
Designprocesser lecture1Designprocesser lecture1
Designprocesser lecture1Petri Lankoski
 
Y1 gd engine_terminology
Y1 gd engine_terminology Y1 gd engine_terminology
Y1 gd engine_terminology Jordanianmc
 
Game engine introduction and approach
Game engine introduction and approachGame engine introduction and approach
Game engine introduction and approachDuy Tan Geek
 
Engine Terminology
Engine TerminologyEngine Terminology
Engine Terminologykamkill
 
Game Engine for Serious Games
Game Engine for Serious GamesGame Engine for Serious Games
Game Engine for Serious GamesKashif Shamaun
 
Game Engine Overview
Game Engine OverviewGame Engine Overview
Game Engine OverviewSharad Mitra
 

What's hot (19)

Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Project presentation FPS
Project presentation FPSProject presentation FPS
Project presentation FPS
 
Funky game engines
Funky game enginesFunky game engines
Funky game engines
 
Introduction to Game Development
Introduction to Game DevelopmentIntroduction to Game Development
Introduction to Game Development
 
Unity Programming
Unity Programming Unity Programming
Unity Programming
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Habitat Indie Game Development Pre-Post Mortem
Habitat Indie Game Development Pre-Post MortemHabitat Indie Game Development Pre-Post Mortem
Habitat Indie Game Development Pre-Post Mortem
 
Wakka Monkey - Game Development
Wakka Monkey - Game DevelopmentWakka Monkey - Game Development
Wakka Monkey - Game Development
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Introduction to Unity3D Game Engine
Introduction to Unity3D Game EngineIntroduction to Unity3D Game Engine
Introduction to Unity3D Game Engine
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Task 1- Engine terminology
Task 1- Engine terminologyTask 1- Engine terminology
Task 1- Engine terminology
 
Designprocesser lecture1
Designprocesser lecture1Designprocesser lecture1
Designprocesser lecture1
 
Game design doc template
Game design doc   templateGame design doc   template
Game design doc template
 
Y1 gd engine_terminology
Y1 gd engine_terminology Y1 gd engine_terminology
Y1 gd engine_terminology
 
Game engine introduction and approach
Game engine introduction and approachGame engine introduction and approach
Game engine introduction and approach
 
Engine Terminology
Engine TerminologyEngine Terminology
Engine Terminology
 
Game Engine for Serious Games
Game Engine for Serious GamesGame Engine for Serious Games
Game Engine for Serious Games
 
Game Engine Overview
Game Engine OverviewGame Engine Overview
Game Engine Overview
 

Similar to BMOSLFGEMW: A Spectrum of Game Engine Architectures

How to develop and localize Xbox 360 titles
How to develop and localize Xbox 360 titlesHow to develop and localize Xbox 360 titles
How to develop and localize Xbox 360 titlesSangJin Kang
 
Assignment instructions
Assignment instructionsAssignment instructions
Assignment instructionswallinplanet
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsPouya Pournasir
 
The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...rndmcnlly
 
Applications of Artificial Intelligence
Applications of Artificial IntelligenceApplications of Artificial Intelligence
Applications of Artificial IntelligenceJake Fudge
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009David Fox
 
Implementation of Artificial Environment using DirectX
Implementation of Artificial Environment using DirectXImplementation of Artificial Environment using DirectX
Implementation of Artificial Environment using DirectXS.Susant Achary
 
Components of Computing Game
Components of Computing GameComponents of Computing Game
Components of Computing GameMuhammad Sajid
 
Implementation of artificial environment using direct x
Implementation of artificial environment using direct xImplementation of artificial environment using direct x
Implementation of artificial environment using direct xS.Susant Achary
 
Implementation of artificial environment using direct x
Implementation of artificial environment using direct xImplementation of artificial environment using direct x
Implementation of artificial environment using direct xS.Susant Achary
 
Game software development trends
Game software development trendsGame software development trends
Game software development trends_veronika_
 
Web Game Development
Web Game DevelopmentWeb Game Development
Web Game DevelopmentSabin Buraga
 

Similar to BMOSLFGEMW: A Spectrum of Game Engine Architectures (20)

How to develop and localize Xbox 360 titles
How to develop and localize Xbox 360 titlesHow to develop and localize Xbox 360 titles
How to develop and localize Xbox 360 titles
 
Assignment instructions
Assignment instructionsAssignment instructions
Assignment instructions
 
Introduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & ComponentsIntroduction to Game Engine: Concepts & Components
Introduction to Game Engine: Concepts & Components
 
The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...
 
Resume
ResumeResume
Resume
 
Xna
XnaXna
Xna
 
Applications of Artificial Intelligence
Applications of Artificial IntelligenceApplications of Artificial Intelligence
Applications of Artificial Intelligence
 
Cse191 01
Cse191 01Cse191 01
Cse191 01
 
Indie Game Development Intro
Indie Game Development IntroIndie Game Development Intro
Indie Game Development Intro
 
Sprite js vs craftyjs
Sprite js vs craftyjsSprite js vs craftyjs
Sprite js vs craftyjs
 
Ankit goel cv
Ankit goel cvAnkit goel cv
Ankit goel cv
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
MIKE BAGLEY
MIKE BAGLEYMIKE BAGLEY
MIKE BAGLEY
 
Implementation of Artificial Environment using DirectX
Implementation of Artificial Environment using DirectXImplementation of Artificial Environment using DirectX
Implementation of Artificial Environment using DirectX
 
Components of Computing Game
Components of Computing GameComponents of Computing Game
Components of Computing Game
 
Implementation of artificial environment using direct x
Implementation of artificial environment using direct xImplementation of artificial environment using direct x
Implementation of artificial environment using direct x
 
Implementation of artificial environment using direct x
Implementation of artificial environment using direct xImplementation of artificial environment using direct x
Implementation of artificial environment using direct x
 
Game software development trends
Game software development trendsGame software development trends
Game software development trends
 
Gw01 introduction
Gw01   introductionGw01   introduction
Gw01 introduction
 
Web Game Development
Web Game DevelopmentWeb Game Development
Web Game Development
 

Recently uploaded

EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........LeaCamillePacle
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationAadityaSharma884161
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxsqpmdrvczh
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 

Recently uploaded (20)

EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........
 
ROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint PresentationROOT CAUSE ANALYSIS PowerPoint Presentation
ROOT CAUSE ANALYSIS PowerPoint Presentation
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 

BMOSLFGEMW: A Spectrum of Game Engine Architectures

  • 1. BMOSLFGEMW: A Spectrum of Game Engine Architectures Adam M. Smith expressiveintelligencestudio UC Santa Cruz amsmith@soe.ucsc.edu CMPS 164 – Game Engines March 30, 2010
  • 2. What I’m about to show you cannot be found in any textbook, on any website, on any sheet of paper anywhere. expressiveintelligencestudio UC Santa Cruz
  • 3. Outline  What’s a game engine?  The Spectrum  Some Examples  Spectrum Details  What’s in your engine?  What’s at stake? expressiveintelligencestudio UC Santa Cruz
  • 4. What’s a game engine? (first attempt)  A 3D graphics library with optional support for physics and other animation-related computation.  Example: Ogre3D expressiveintelligencestudio UC Santa Cruz
  • 5. What’s a game engine? (second attempt)  A comprehensive game building environment with specialized languages, libraries, and tools.  Example: Unity3D expressiveintelligencestudio UC Santa Cruz
  • 6. 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  … expressiveintelligencestudio UC Santa Cruz
  • 7. The Spectrum  Bare Metal  Operating Systems  Libraries  Frameworks  Game Engines  Makers  Wizards expressiveintelligencestudio UC Santa Cruz
  • 15. The Spectrum, revisited  Bare Metal  Operating Systems Used to build engines  Libraries  Frameworks  Game Engines Used to build games  Makers  Wizards expressiveintelligencestudio UC Santa Cruz
  • 16. 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 expressiveintelligencestudio UC Santa Cruz
  • 17. 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” expressiveintelligencestudio UC Santa Cruz
  • 18. 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 expressiveintelligencestudio UC Santa Cruz
  • 19. Frameworks  Features  Integration of many libraries using common vocabulary  Examples  DirectX  XNA  Delta3D (engine-ish)  SDL  PyGame  Ogre3D (library-ish)  Giveaways  Contains multiple libraries! expressiveintelligencestudio UC Santa Cruz
  • 20. 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 expressiveintelligencestudio UC Santa Cruz
  • 21. 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 expressiveintelligencestudio UC Santa Cruz
  • 22. 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. expressiveintelligencestudio UC Santa Cruz
  • 23. The Spectrum, revisited, again  Bare Metal  Operating Systems  Libraries  Frameworks You’ll reinvent these over and over.  Game Engines  Makers  Wizards expressiveintelligencestudio UC Santa Cruz
  • 24. What’s in your engine?  Technical Solutions  Languages  Practices expressiveintelligencestudio UC Santa Cruz
  • 25. Technical Solutions (library components)  Input   Network Keyboard/mouse/joystick/gamepad/touchscreen  Other CS topics:  Data structures  Event synchronization  State propagation and prediction  Protocols   Algorithms Roles (client/server/peer/supernode/etc.)  Simulation  Physics   AI Graphics  Storage  Content Storage   Textures / models / levels / characters Downloading/streaming from remote sources  Databases  De/compression and caching  Modeling  Game modes  Graphics  Finite state machines   Scene graphs UI stacks  AI  Output  Video  Audio  Force feedback  Platform Integration  Achievents / trophies / badges  Points  Presence and text/voice chat  Matchmaking  Metrics expressiveintelligencestudio UC Santa Cruz
  • 26. Languages (data and code, syntax and tools)  Base classes  Other CS topics:  Game Object  Component  Programming  Scripting languages languages  For designers  Compilers  For developers  Data languages  Object vs. Level formats  Interop  Language specification  Tools  Compilers, assemblers, packagers, decoders, debuggers expressiveintelligencestudio UC Santa Cruz
  • 27. Practices (the human part)  How do you create  Other CS topics: and integrate art?  Software engineering  How do you plan?  HCI / Interfaces  How do you build?  How do you debug?  How do you deploy/ship? expressiveintelligencestudio UC Santa Cruz
  • 28. 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”. expressiveintelligencestudio UC Santa Cruz
  • 29. Thank you  BMOSLFGEMW : A Spectrum of Game Engine Architectures  Presenter: Adam M. Smith amsmith@soe.ucsc.edu expressiveintelligencestudio UC Santa Cruz