BMOSLFGEMW: A Spectrum of Game Engine Architectures

Similar documents
INTRODUCTION TO GAME AI

CS 354R: Computer Game Technology

Propietary Engine VS Commercial engine. by Zalo

Development Outcome 1

3D Game Engine Programming (Game Development Series) By Oliver Duvel, Stefan Zerbst READ ONLINE

CS Game Programming, Fall 2014

Understanding OpenGL

DM842 Computer Game Programming

Console Architecture 1

Game Jam Survival Guide

Computer Games 2011 Engineering

1hr ACTIVITY GUIDE FOR FAMILIES. Hour of Code

A Language for Game Design and Coreography

DOWNLOAD OR READ : GAME AND GRAPHICS PROGRAMMING FOR IOS AND ANDROID WITH OPENGL ES 2 0 PDF EBOOK EPUB MOBI

publi l c i c c l c a l s a s s s Ga G m a e1 e1 : M i M c i r c os o o s f o t. t Xn X a. a Fram a ew o k.ga G m a e m { G ap a hic i s c D s ev

Like Mobile Games* Currently a Distinguished i Engineer at Zynga, and CTO of FarmVille 2: Country Escape (for ios/android/kindle)

CSE 125 Boot Camp. Or: How I Learned to Stop Worrying and Love The Lab

Creating Computer Games

Level 3 Extended Diploma Unit 22 Developing Computer Games

2.6.1: Program Outcomes

Gaming Development Fundamentals

Console Games Are Just Like Mobile Games* (* well, not really. But they are more alike than you

Qt Developing ArcGIS Runtime Applications. Eric

Globulation 2. Free software RTS game with a new take on micro-management

Human Computer Interaction Unity 3D Labs

Towards a Reference Architecture for 3D First Person Shooter Games

Challenges in Transition

Individual Test Item Specifications

Level 3 Extended Diploma Unit 22 Developing Computer Games

Emergent s Gamebryo. Casey Brandt. Technical Account Manager Emergent Game Technologies. Game Tech 2009

the gamedesigninitiative at cornell university Lecture 4 Game Components

Level 3 Extended Diploma Unit 22 Developing Computer Games

Ubi meets the students. May 22nd, 2013

CompuScholar, Inc. Alignment to Utah Game Development Fundamentals Standards

Olde Tyme Game Making. Game Engines: Why and What? View from the CEO s chair. When I first noticed change. Complexity 10/16/2013

CSE328:Fundamentals of Computer Graphics. OpenGL tutorial. Shuchu Han (Jerome) Department of Computer Science, SBU

CompuScholar, Inc. Alignment to Utah Game Development Fundamentals 2 Standards

Game Design Document (GDD)

DM809 Computer Game Programming I: Graphics

Virtual Reality Mobile 360 Nanodegree Syllabus (nd106)

Game Tools MARY BETH KERY - ADVANCED USER INTERFACES SPRING 2017

The purpose of this document is to outline the structure and tools that come with FPS Control.

Gaming Development. Resources

Artificial Intelligence for Games. Santa Clara University, 2012

Lecture 1: Introduction and Preliminaries

Effects of Shader Technology: Current-Generation Game Consoles and Real-Time. Graphics Applications

Game Engines: Why and What? Dan White Technical Director Pipeworks Message

Game Programming Algorithms And Techniques: A Platform-Agnostic Approach (Game Design) Ebooks Free

Individual Test Item Specifications

HCI Design in the OR: A Gesturing Case-Study"

Unity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT

How to develop and localize Xbox 360 Titles. 강상진 XBOX Program Manager 한국마이크로소프트소프트웨어연구소

Videogame graphics. Ubisoft

Learning Unity 2d Game Development By Example Pereira Venita

Quake III Fortress Game Review CIS 487

Embedding Artificial Intelligence into Our Lives

IMGD Technical Game Development I: Introduction. by Robert W. Lindeman

Rapid Design of FIR Filters in the SDR- 500 Software Defined Radio Evaluation System using the ASN Filter Designer

Ball Color Switch. Game document and tutorial

ATLASrift - a Virtual Reality application

IMGD Technical Game Development I: Introduction

Survey Platform

Haptic Rendering of Large-Scale VEs

..... l ss t h t an an $100,000 of 000 of ann an u n al u al gross r evenu n e

New Physically Based Rendering (PBR) and Scene Editor included in latest release of Paradox, C# Game Engine - version 1.1.3β

Welcome to the Early Beta and Thank You for Your Continued Support!

VIBRATO DETECTING ALGORITHM IN REAL TIME. Minhao Zhang, Xinzhao Liu. University of Rochester Department of Electrical and Computer Engineering

OPEN YOUR MIND TO A WORLD OF GAME ART & DESIGN

CS 315 Intro to Human Computer Interaction (HCI)

The 8 th International Scientific Conference elearning and software for Education Bucharest, April 26-27, / X

IMGD Technical Game Development I: Introduction. by Robert W. Lindeman

Introduction to adoption of lean canvas in software test architecture design

In this lecture, we will look at how different electronic modules communicate with each other. We will consider the following topics:

Tilak Maharashtra Vidyapeeth, Pune. BFA- Game Design

vstasker 6 A COMPLETE MULTI-PURPOSE SOFTWARE TO SPEED UP YOUR SIMULATION PROJECT, FROM DESIGN TIME TO DEPLOYMENT REAL-TIME SIMULATION TOOLKIT FEATURES

unity 3d and playmaker pdf Unity 3D and PlayMaker Essentials: Game Development from Practical Game Design with Unity and Playmaker - pdf

Learning Unity IOS Game Development By Kyle Langley READ ONLINE

NVIDIA APEX: High-Definition Physics with Clothing and Vegetation. Michael Sechrest, IDV Monier Maher, NVIDIA Jean Pierre Bordes, NVIDIA

A flexible application framework for distributed real time systems with applications in PC based driving simulators

Engineering at a Games Company: What do we do?

Pure Versus Applied Informatics

Common application environment for interactive digital broadcasting services

CS277 - Experimental Haptics Lecture 2. Haptic Rendering

SOFTWARE REQUIREMENTS SPECIFICATION

Python & Pygame RU4CS August 19, 2014 Lars Sorensen Laboratory for Computer Science Research Rutgers University, the State University of New Jersey

DSP VLSI Design. DSP Systems. Byungin Moon. Yonsei University

Blackfin Online Learning & Development

Kismet Interface Overview

CS Computer Game Design. Introduction. Ken Forbus Spring 2002

Introduction to XNA; Game Loops. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

3d Game Engine Design Second Edition Stylum

Program a Game Engine from Scratch. Chapter 1 - Introduction

SE320: Introduction to Computer Games

ŞahinSim: A Flight Simulator for End-Game Simulations

Experience Report on Developing a Software Communications Architecture (SCA) Core Framework. OMG SBC Workshop Arlington, Va.

Direct Manipulation. and Instrumental Interaction. CS Direct Manipulation

LOOKING AHEAD: UE4 VR Roadmap. Nick Whiting Technical Director VR / AR

Development of a Dual-Extraction Industrial Turbine Simulator Using General Purpose Simulation Tools

Benchmarking C++ From video games to algorithmic trading. Alexander Radchenko

Transcription:

BMOSLFGEMW: A Spectrum of Game Engine Architectures Adam M. Smith 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.

Outline What s a game engine? The Spectrum Some Examples Spectrum Details What s in your engine? What s at stake?

What s a game engine? (first attempt) A 3D graphics library with optional support for physics and other animation-related computation. Example: Ogre3D

What s a game engine? (second attempt) A comprehensive game building environment with specialized languages, libraries, and tools. Example: Unity3D

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

The Spectrum Bare Metal Operating Systems Libraries Frameworks Game Engines Makers Wizards

Gameduino (bare metal)

Ubuntu (OS)

ODE (library)

PyGame (framework)

Flixel (engine)

Game Maker (maker)

Klik-and-Play (wizard)

The Spectrum, revisited Bare Metal Operating Systems Libraries Frameworks Game Engines Makers Wizards Used to build engines Used to build games

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

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

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

Frameworks Features Integration of many libraries using common vocabulary Examples DirectX XNA Delta3D (engine-ish) SDL PyGame Ogre3D (library-ish) Giveaways Contains multiple libraries!

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

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

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.

The Spectrum, revisited, again Bare Metal Operating Systems Libraries Frameworks Game Engines Makers Wizards You ll reinvent these over and over.

What s in your engine? Technical Solutions Languages Practices

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

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

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

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.

Thank you BMOSLFGEMW : A Spectrum of Game Engine Architectures Presenter: Adam M. Smith amsmith@soe.ucsc.edu