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

Size: px
Start display at page:

Download "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"

Transcription

1 Game Engine Architecture Spring Introduction and overview Juha Vihavainen University of Helsinki [Gregory, Chapter 1. Introduction, pp ] [McShaffry, Chapter 2. What's in a Game ] On classroom etiquette Please, silence your cell phone while in class. Please, do not take or make phone calls in class. Please, do not keep up discussions among each other during lectures really, the lectures are voluntary and ongoing discussions disturb others wishing to listen but, of course, do ask me questions.. 2 Preliminary course outline Game subsystems and its general architecture Large-scale C++ techniques in a games context C++11/14 features (for "modern" C++ programming) essential C++ programming techniques logical modularity (concepts) vs. physical modularity (files) on programming standards and C++ style rules Simplified and component cases Miscellanous game technology, tools, and techniques Game subsystems: rendering, physics, audio, scripting..... Course prerequisites General maturity in programming object-oriented oriented concepts, data structures, etc. use of programming environments, and programming experience.. Some knowledge of C++ is required Software Design C++ (2014), or similar skills.. user-defined types, and basic OO idioms and patterns how to use pointers and manage memory in C/C++ some material on C++ will be given in the lecture notes Some knowledge on graphics programming is beneficial as background and motivation, and for optional future projects 3 4

2 Topics of GEA book include The course textbook large-scale C++ software architecture in a games context mathematics for game programming game development tools for debugging, source control and profiling subsystems including foundation systems, rendering, sound, collision, physics, character animation and game world object models multiplatform game s game programming in multiprocessor environments tools pipelines for game asset management Jason Gregory: Game Engine Architecture (2. ed., 2014) Ch. 1 Introduction what is a game/game /cases.. Ch. 2 Tools of the trade prog. envs, Visual Studio., version control, profiling, leak detection, etc. Ch. 3 Fundamentals of SE for games C++ techniques and practices Ch. 4 3D math for games points, vectors, matrices, quaternions.. Ch. 5 Engine support systems memory, strings, start-up, configs.. Ch. 6 Resources and the file system Ch. 7 Game loop and simulation main loop, and dealing with time.. Ch. 8 Human interface devices (HID) Ch. 9 Tools for debugging and developm. logging, tracing, debugging, cheats.. Ch. 10 Rendering the rendering pipeline, visual effects Ch. 11 Animation systems skeletons, poses, skinning.. Ch. 12 Collision and rigid body dynamics physics, collision detection, etc. Ch. 13 Audio (new in 2nd. edition) Ch. 14 Introduction to gameplay systems implementing game objects/worlds Ch. 15 Run-time gameplay foundations object model architectures events and message passing scripting, loading worlds.. Ch. 16 There's more? Related teaching in our department Introduction to Game Programming (Autumn 2016, 2017, 2nd period) Game Engine Architecture (this course, now: 2017, 3rd period) serves as "Game programming II" requires/teaches programming skills in C/C++ Tietokonegrafiikka (Spring 2017, 4th period, Otto Nurmi) computer graphics: rasterisation, shading, texturing.. based on OpenGL graphics library Game Project course (Spring 2017, 4th period) an optional project for IGP and GEA courses Compiler design & Code generation courses (Spring 2018) for understanding script languages and their implementation; include practical implementation projects (interpreter, compiler) Juha Vihavainen / University of Helsinki Juha Vihavainen / University of Helsinki 8

3 Using C++ in game programming XNA Game Studio / MonoGame : a "graphic " C++ is widely used in the game industry: "industrial-strength strength 3D game s are written primarily in C or C++, and any serious game programmer needs to know C++" " [Gregory, p. XXII] Games are complex applications to build multiple interactions within the program need to use visual, audio, and other resources and file formats interfacing with OS/hardware components/3rd-party party libs A sample game framework and scripting system (C#) 2D/3D games with a game predefined game skeleton, components, and 2D sprites the provides support for 2D images, IO, and audio Graphics libraries require programming knowledge of C/C++ At least, rendering and scripting s (VM) are written in C++ Most C++ programming features and techniques are relevant for game development(?) 3D scene is rendered on 2D screen: needs to use the graphics pipeline set camera and view frustum using 3D models, and shaders (GPU programs) 9 10 XNA Game Studio: a "graphic " Free tool/libraries for creating 2D and 3D games Used C# as the scripting language (an interesting choice..) Integrated with Visual Studio C# use Visual Studio 2010 for XNA version 4 (September 2010) - either Express or Full version Hardware requirements are identical to Microsoft Visual Studio Games could be run on Windows free or on Xbox 360 but did require arrangements/costs But not as powerful as many other game s (physics, GO model) was it really easy - required C# knowhow.. Engines were build on the XNA design, e.g., MonoGame Unity killed XNA?? 11 public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; public Matrix CameraView { get; set; } public Matrix CameraProjection { get; set; } public Vector3 CameraPosition ;... public Game1 () { graphics = new GraphicsDeviceManager (this); Content.RootDirectory = "Content"; } protected override void Initialize () { CameraPosition = new Vector3 (0.0f, 0.0f, f);.. CameraProjection = Matrix.CreatePerspectiveFieldOfView ( MathHelper.ToRadians (45.0f), AspectRatio, 1.0f, float.maxvalue); new Ship { Position = new Vector3 (2000, 500, 50), Rotation = MathHelper.ToRadians (40f), Scale =.75f };... base.initialize (); } protected override void Update(GameTime gametime) { if (Keyboard.GetState ().IsKeyDown (Keys.Up)) } XNA code sample CameraPosition.Y += (float)gametime.elapsedgametime.totalmilliseconds * 5;... base.update (gametime); }... rotating 3D objects & moving camera 12

4 What is a game? A "game game" " is an interactive experience that provides the player with an increasingly challenging sequence of patterns which he or she learns and eventually masters (Gregory quoting Koster, A Theory of Fun for Game Design, 2004 [26]) Gregory: "a game is a soft real-time interactive agent-based computer simulation" agent = any game entity, very often implemented as an object in an object-oriented oriented programming language The GEA textbook [Gregory] focuses on the implementation of a subset of games that comprise two- and three-dimensional virtual worlds with a small number of players (say, between 1-16): 16): primary focus will be on game s capable of producing first- person shooters, third-person action/platform games, racing games, fighting games, and the like 13 What is a game? The game term arose about the mid-1990s Doom by id Software was a FPS architected with a well-defined separation between its (1) core software components (the rendering system, the collision detection, the audio, etc.) and (2) the art assets, game worlds, and rules of play Developers began licensing games and remaking them into new products by creating new art, world layouts, weapons, characters, vehicles, and game rules with only minimal changes to the "" software Thus,, game s provide a selected set of core components, including the rendering, the collision and physics, the animation system, the audio system, the game world object model, the artificial intelligence system, etc. 14 What is a game?? (cont.) A "game " should be designed to be extensible and to be used as the foundation for many different games without major modification a game containing hard-coded logic, or any special-case case code becomes difficult or impossible to reuse to make a different game Especially, a data-driven driven architecture can separate a game from a piece of software that is a game but not an ; one definition for "data-driven": driven": all game contents & logic are driven by external data sources Note that there is also a separation between logical and physical software architecture: the inheritance/component hierarchy vs.. the source and binary file structure (very relevant for C/C++ programs) Within each game component, a number of semi-standard standard design alternatives are emerging (we can hope..) 15 What is a game?? (cont.) Originally, game s were designed to run a particular-style game (of a given "genre") on a particular hardware platform Now game s are trying to support multiple platforms,, e.g., Unreal: Windows, Xbox 360, PlayStation 3, Mac OS X, Wii U, ios, Android.. The more general-purpose a game component is, the less optimal it may be for a particular game on a particular platform as usual, optimal efficiency may require customization and trade- offs (bindings)) based on assumptions about target hardware... 16

5 The main components of a game Scene graphs (i.e., a hierarchical spatial representation of a graphical scene/level) may well need multiple different versions depending on level characteristics (outdoors, dungeon, or whatever) A rendering for 2D and/or 3D graphics A physics for more-or-less realistic world simulation and collision detection (strongly interrelated and used together) Sound and music Character animation Artificial intelligence Scripting These may also be realized as kind of subs Game (pros and cons) Benefits (mostly the same as general ones for software reuse) provides simplified access to underlying technologies organizes and speeds up development process reusing the same game (software) to create multiple different games less testing and debugging many features directly available better focus on the game design aspects enables the game to run on multiple platforms (consoles, operating systems) Drawbacks (potential costs and complexity) dependencies on the quality of design, available features, implementation decisions, licensing schemes, third-party libraries Other general game tasks Your game Initialization: : linking/using multiple different APIs and libraries Managing the game loop and real/simulation time (system clock) Reading input (and giving it meaning for game control/mechanics) Managing memory, and string/name management File systems, and resource caching (make resources available - but hide, e.g., level loading; prefetch for speed optimization) Dynamically loaded libraries (DLLs), e.g., to delay loading or to replace renderer or some other subsystem or sub Threads and thread synchronization parallel execution: multi-core, GPU, physics card (?) Network communication Shutdown 19 Graphics Sound Game API Physics AI... Hardware abstraction layer DirectX, OpenGL, Hardware layer - sound card, graphics card (physics card?) Scripting For a bit more detailed architecture, see the following slides [Gregory, p. 33]. 20

6 There are hundreds of game s, e.g.: Unreal Engine 4 (free for making free games, otherwise royalties) Unity 5 (free/professional versions) CryENGINE also free for non-commercial use.. OGRE graphics (open source) Blender game (completely free) Check out online sources ( ) Why so many graphic APIs & game s? possibly for differing target applications and requirements real-time vs. non-real real-time applications provide application specific optimizations provide genre-specific game entities and functionality provide custom platform optimizations and dependencies open source vs. manufacturer-specific APIs Game architecture by [Gregory, p. 33] (sorry, it is big) 21 A simplified GE architecture (Antti Hietasaari, 2016) Gameplay foundation systems (Game-specific subsystems) (Game- subsystems) (Utility subsystems) (Game- core systems) (Resource files) (mem. mgt, testing, math, strings, platform independence, 3rd-patry llibraries) (Parent/child model) Provide the (most direct) support for implementing the game logic "Gameplay Gameplay" " = the rules of a game world, the abilities/properties of the player and other entities in the world, and goals and objectives Related "software object model" " = the specific way to implement this : what language? use inheritance/components/templates? how to refer/identify entities (GUID), create, update, and destroy objects

7 Scripting s in game programs Potential advantages (depending on the scripting language): a convenient high-level language to control a game strongly promotes "data-driven driven design": a game should not contain any game-specific code can change the game rules/behaviour while the game is running can provide state machines, configuration, and option set up.. A script can provide parameters and actions for a game data parameters: time-of-day => determine overall lighting etc., object mass/friction, game options, AI goals and objectives behavior: set lights, move objects, select path, calculate decisions (e.g., state machines in script) Problems: : how to bind scripts to game logic and objects? performance? custom languages may lack mature development support tools (IDEs); we may have learning curve for (yet another) new language Game-specific subsystems On top of the gameplay foundation and the other low-level level components, we implement the actual game itself Typical game entities include static background geometry (buildings, roads, terrain), rigid bodies (rocks, cans, chairs), player & non-player characters, weapons, power-ups, projectiles, vehicles, lights (dynamic/ static), game-tailored cameras Tools and the asset pipeline 3D modeling tools use very complex internal data formats are rarely suitable for direct use in game software they support, e.g., full hierarchy of 3D transformations (position, orientation, scale, shear), interconnections as a directed acyclic graph (DAG) of scene nodes, edit history (for undo/redo) are often too slow to read at game run time in some cases use a closed proprietary custom format A game typically only needs a tiny fraction of all such information in order to render the model in-game; a 2-way process: 1. Data produced by a tool is first exported to a more accessible standardized format, or another custom file format 2. Exported data is further processed before being sent to the game - possibly differently for each target platform direct data flow dependencies, use [Gregory, Fig.1.35, p.55] Each needs such an asset conditioning pipeline of its own 27 Tools and the asset pipeline. 28

8 Approaches to tool architecture (in different s) Applying "model-view" architecture for games Model-view architecture (a MVC variant, here V includes C) separate content (data = "model") from view & input processing use the proven "standard" solution for GUI systems Standalone tools architecture 2. Tools share a framework with games 3. Unreal Engine's tool architecture [Gregory, Fig , p.60-61] 29 Goals and principles for game programming provide multiple views on the same shared data (game state) loose coupling between parts: update events are used for notification of changes human players, AI agents, network views can be uniformly treated an event system can provide centralized debugging/logging etc. Implementation may not be so simple need to provide a general message system (using callbacks, or applying the Observer design pattern) 30 "Ideal model-view" game architecture (sketch) Game logic state & data physics, events command interpreter game world simulation Devices: input, files RAM, time Game view... game state & commands Game view (Human) display, audio input handling Application support layer OS: PLs, DLL threads networking easy to add/replace views; provide symmetric handling of game views Game view (AI agent) stimulus interpreter decision system Game lifetime: core libs, main loop, init&shutdown Modified from [McShaffry, 2013] Example data flow in model-view system The support layer gets low-level level input from physical devices and creates input events/commands the interpreter of the human view transforms input to general game events/commands The interpreter of the game logic receives messages and updates the state of the game accordingly can handle uniformly messages from all the views: input system, AI agents, the scripting, a playback file, or network connections can also allow user commands from a screen command console (txt commands using a script, or a custom AST interpreter) sends notifications to separate views to be processed locally (or possibly to be forwarded) 31 32

9 Summary Computer games are a very specialized application area can be small (casual games), or very complicated commercial- quality interactive 3D real-time simulation systems Game s provide the foundation on which to build new game programs (very similarly to applications frameworks) provide concepts/models for a game world and its entities reuse libraries and components (also managing and hiding new versions of libraries and updating for such versions) reuse design ideas and experience Some problems are by nature general and can (possibly) be solved by standard software practices (style rules, testing, patterns,..) Hopefully, also some game-specific techniques and ideas can be identified and used as working solutions 33

On classroom etiquette. Introduction to Game Programming Autumn Introduction and overview. Course outline

On classroom etiquette. Introduction to Game Programming Autumn Introduction and overview. Course outline Introduction to Game Programming Autumn 2017 0. Introduction and overview Juha Vihavainen University of Helsinki On classroom etiquette Please, silence your cell phone while in class. Please, do not take

More information

INTRODUCTION TO GAME AI

INTRODUCTION TO GAME AI CS 387: GAME AI INTRODUCTION TO GAME AI 3/31/2016 Instructor: Santiago Ontañón santi@cs.drexel.edu Class website: https://www.cs.drexel.edu/~santi/teaching/2016/cs387/intro.html Outline Game Engines Perception

More information

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT Introduction to Game Design Truong Tuan Anh CSE-HCMUT Games Games are actually complex applications: interactive real-time simulations of complicated worlds multiple agents and interactions game entities

More information

Game Architecture. Rabin is a good overview of everything to do with Games A lot of these slides come from the 1 st edition CS

Game Architecture. Rabin is a good overview of everything to do with Games A lot of these slides come from the 1 st edition CS Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1 st edition CS 4455 1 Game Architecture The code for modern games is highly complex Code bases

More information

Lecture 1: Introduction and Preliminaries

Lecture 1: Introduction and Preliminaries CITS4242: Game Design and Multimedia Lecture 1: Introduction and Preliminaries Teaching Staff and Help Dr Rowan Davies (Rm 2.16, opposite the labs) rowan@csse.uwa.edu.au Help: via help4242, project groups,

More information

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

The 8 th International Scientific Conference elearning and software for Education Bucharest, April 26-27, / X The 8 th International Scientific Conference elearning and software for Education Bucharest, April 26-27, 2012 10.5682/2066-026X-12-153 SOLUTIONS FOR DEVELOPING SCORM CONFORMANT SERIOUS GAMES Dragoş BĂRBIERU

More information

Game Tools MARY BETH KERY - ADVANCED USER INTERFACES SPRING 2017

Game Tools MARY BETH KERY - ADVANCED USER INTERFACES SPRING 2017 Game Tools MARY BETH KERY - ADVANCED USER INTERFACES SPRING 2017 2 person team 3 years 300 person team 10 years Final Fantasy 15 ART GAME DESIGN ENGINEERING PRODUCTION/BUSINESS TECHNICAL CHALLENGES OF

More information

DM842 Computer Game Programming

DM842 Computer Game Programming DM842 Computer Game Programming Rolf Fagerberg and Marco Chiarandini Fall 2017 Why Computer Game Programming? Fun, attraction, curiosity Career goal Great display of use of many Computer Science subjects

More information

Sensible Chuckle SuperTuxKart Concrete Architecture Report

Sensible Chuckle SuperTuxKart Concrete Architecture Report Sensible Chuckle SuperTuxKart Concrete Architecture Report Sam Strike - 10152402 Ben Mitchell - 10151495 Alex Mersereau - 10152885 Will Gervais - 10056247 David Cho - 10056519 Michael Spiering Table of

More information

Gaming Development. Resources

Gaming Development. Resources Gaming Development Resources Beginning Game Programming Fourth Edition Jonathan S. Harbour 9781305258952 Beginning Game Programming will introduce students to the fascinating world of game programming

More information

DM809 Computer Game Programming I: Graphics

DM809 Computer Game Programming I: Graphics DM809 Computer Game Programming I: Graphics Rolf Fagerberg August/Fall 2010 1 Goals for Today s Lecture Introduction to course: Motivation Contents of course Formalities of course Textbook Tentative courseplan

More information

BMOSLFGEMW: A Spectrum of Game Engine Architectures

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

More information

Towards a Reference Architecture for 3D First Person Shooter Games

Towards a Reference Architecture for 3D First Person Shooter Games Towards a Reference Architecture for 3D First Person Shooter Games Philip Liew-pliew@swen.uwaterloo.ca Ali Razavi-arazavi@swen.uwaterloo.ca Atousa Pahlevan-apahlevan@cs.uwaterloo.ca April 6, 2004 Abstract

More information

CS Game Programming, Fall 2014

CS Game Programming, Fall 2014 CS 38101 Game Programming, Fall 2014 Recommended Text Learn Unity 4 for ios Game Development, Philip Chu, 2013, Apress, ISBN-13 (pbk): 978-1-4302-4875-0 ISBN-13 (electronic): 978-1-4302-4876-7, www.apress.com.

More information

Pangolin: A Look at the Conceptual Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy

Pangolin: A Look at the Conceptual Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Pangolin: A Look at the Conceptual Architecture of SuperTuxKart Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Abstract This report will be taking a look at the conceptual

More information

Beginning 3D Game Development with Unity:

Beginning 3D Game Development with Unity: Beginning 3D Game Development with Unity: The World's Most Widely Used Multi-platform Game Engine Sue Blackman Apress* Contents About the Author About the Technical Reviewer Acknowledgments Introduction

More information

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

..... l ss t h t an an $100,000 of 000 of ann an u n al u al gross r evenu n e Outline Introduction to Game Programming Autumn 2016 3. Game architecture case Unity game engine Juha Vihavainen University of Helsinki Basic concepts and architecture of Unity On origins/developments

More information

Development Outcome 1

Development Outcome 1 Computer Games: Development Outcome 1 F917 10/11/12 F917 10/11/12 Page 1 Contents General purpose programming tools... 3 Visual Basic... 3 Java... 4 C++... 4 MEL... 4 C#... 4 What Language Should I Learn?...

More information

Propietary Engine VS Commercial engine. by Zalo

Propietary Engine VS Commercial engine. by Zalo Propietary Engine VS Commercial engine by Zalo zalosan@gmail.com About me B.S. Computer Engineering 9 years of experience, 5 different companies 3 propietary engines, 2 commercial engines I have my own

More information

Outline. Introduction to Game Programming Autumn Game architecture. The (classic) game loop. Fundamental concepts

Outline. Introduction to Game Programming Autumn Game architecture. The (classic) game loop. Fundamental concepts Introduction to Game Programming Autumn 2017 1. Game architecture [S. Madhav, 2014], Ch. 1. Game programming overview [J. Gregory, 2015], Ch. 15.2 Runtime object model architectures Juha Vihavainen University

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology http://www.cs.utexas.edu/~theshark/courses/cs354r/ Fall 2017 Instructor and TAs Instructor: Sarah Abraham theshark@cs.utexas.edu GDC 5.420 Office Hours: MW4:00-6:00pm

More information

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

Emergent s Gamebryo. Casey Brandt. Technical Account Manager Emergent Game Technologies. Game Tech 2009 Emergent s Gamebryo Game Tech 2009 Casey Brandt Technical Account Manager Emergent Game Technologies Questions To Answer What is Gamebryo? How does it look today? How is it designed? What titles are in

More information

Engineering at a Games Company: What do we do?

Engineering at a Games Company: What do we do? Engineering at a Games Company: What do we do? Dan White Technical Director Pipeworks October 17, 2018 The Role of Engineering at a Games Company Empower game designers and artists to realize their visions

More information

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

Game Programming Algorithms And Techniques: A Platform-Agnostic Approach (Game Design) Ebooks Free Game Programming Algorithms And Techniques: A Platform-Agnostic Approach (Game Design) Ebooks Free Game Programming Algorithms and Techniques is a detailed overview of many of the important algorithms

More information

Individual Test Item Specifications

Individual Test Item Specifications Individual Test Item Specifications 8208110 Game and Simulation Foundations 2015 The contents of this document were developed under a grant from the United States Department of Education. However, the

More information

Concrete Architecture of SuperTuxKart

Concrete Architecture of SuperTuxKart Concrete Architecture of SuperTuxKart Team Neo-Tux Latifa Azzam - 10100517 Zainab Bello - 10147946 Yuen Ting Lai (Phoebe) - 10145704 Jia Yue Sun (Selena) - 10152968 Shirley (Xue) Xiao - 10145624 Wanyu

More information

the gamedesigninitiative at cornell university Lecture 4 Game Components

the gamedesigninitiative at cornell university Lecture 4 Game Components Lecture 4 Game Components Lecture 4 Game Components So You Want to Make a Game? Will assume you have a design document Focus of next week and a half Building off ideas of previous lecture But now you want

More information

Program a Game Engine from Scratch. Chapter 1 - Introduction

Program a Game Engine from Scratch. Chapter 1 - Introduction Program a Game Engine from Scratch Mark Claypool Chapter 1 - Introduction This document is part of the book Dragonfly Program a Game Engine from Scratch, (Version 5.0). Information online at: http://dragonfly.wpi.edu/book/

More information

Pangolin: Concrete Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy

Pangolin: Concrete Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Pangolin: Concrete Architecture of SuperTuxKart Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Abstract For this report we will be looking at the concrete architecture

More information

Unity Game Development Essentials

Unity Game Development Essentials Unity Game Development Essentials Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone 1- PUBLISHING -J BIRMINGHAM - MUMBAI Preface

More information

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

3D Game Engine Programming (Game Development Series) By Oliver Duvel, Stefan Zerbst READ ONLINE 3D Game Engine Programming (Game Development Series) By Oliver Duvel, Stefan Zerbst READ ONLINE Python Programming/Game Programming in Python - Wikibooks, open - PySoy is a 3d cloud game engine for Python

More information

Introduction. Video Game Design and Development Spring part of slides courtesy of Andy Nealen. Game Development - Spring

Introduction. Video Game Design and Development Spring part of slides courtesy of Andy Nealen. Game Development - Spring Introduction Video Game Design and Development Spring 2011 part of slides courtesy of Andy Nealen Game Development - Spring 2011 1 What is this course about? Game design Real world abstractions Visuals

More information

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

IMGD Technical Game Development I: Introduction. by Robert W. Lindeman IMGD 3000 - Technical Game Development I: Introduction by Robert W. Lindeman gogo@wpi.edu What to Expect This course is mainly about the nuts and bolts of creating game-engine code Game architecture, algorithms,

More information

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

The purpose of this document is to outline the structure and tools that come with FPS Control. FPS Control beta 4.1 Reference Manual Purpose The purpose of this document is to outline the structure and tools that come with FPS Control. Required Software FPS Control Beta4 uses Unity 4. You can download

More information

IMGD Technical Game Development I: Introduction

IMGD Technical Game Development I: Introduction IMGD 3000 - Technical Game Development I: Introduction by Robert W. Lindeman gogo@wpi.edu What to Expect This course is mainly about the nuts and bolts of creating game code Game architecture, algorithms,

More information

Introduction. Video Game Programming Spring Video Game Programming - A. Sharf 1. Nintendo

Introduction. Video Game Programming Spring Video Game Programming - A. Sharf 1. Nintendo Indie Game The Movie - Official Trailer - YouTube.flv 235 Free Indie Games in 10 Minutes - YouTube.flv Introduction Video Game Programming Spring 2012 Nintendo Video Game Programming - A. Sharf 1 What

More information

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

IMGD Technical Game Development I: Introduction. by Robert W. Lindeman IMGD 3000 - Technical Game Development I: Introduction by Robert W. Lindeman gogo@wpi.edu What to Expect This course is mainly about the nuts and bolts of creating game-engine code Game architecture, algorithms,

More information

Computer Games 2011 Engineering

Computer Games 2011 Engineering Computer Games 2011 Engineering Dr. Mathias Lux Klagenfurt University This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Agenda Game Loop Sprites & 2.5D Game Engines

More information

CS 387/680: GAME AI DECISION MAKING. 4/19/2016 Instructor: Santiago Ontañón

CS 387/680: GAME AI DECISION MAKING. 4/19/2016 Instructor: Santiago Ontañón CS 387/680: GAME AI DECISION MAKING 4/19/2016 Instructor: Santiago Ontañón santi@cs.drexel.edu Class website: https://www.cs.drexel.edu/~santi/teaching/2016/cs387/intro.html Reminders Check BBVista site

More information

Virtual Reality as Innovative Approach to the Interior Designing

Virtual Reality as Innovative Approach to the Interior Designing SSP - JOURNAL OF CIVIL ENGINEERING Vol. 12, Issue 1, 2017 DOI: 10.1515/sspjce-2017-0011 Virtual Reality as Innovative Approach to the Interior Designing Pavol Kaleja, Mária Kozlovská Technical University

More information

Console Architecture 1

Console Architecture 1 Console Architecture 1 Overview What is a console? Console components Differences between consoles and PCs Benefits of console development The development environment Console game design PS3 in detail

More information

3d Game Engine Design Second Edition Stylum

3d Game Engine Design Second Edition Stylum We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer, you have convenient answers with 3d game engine design

More information

Pangolin: A look at the conceptual Architecture of Super Tux Kart. A CISC 326 Project by:

Pangolin: A look at the conceptual Architecture of Super Tux Kart. A CISC 326 Project by: Pangolin: A look at the conceptual Architecture of Super Tux Kart A CISC 326 Project by: Mohammed Gasmallah Russell Dawes Caleb Aikens Leonard Ha Vincent Hung Joseph Landy Overview Architectural Style

More information

Moving Web 3d Content into GearVR

Moving Web 3d Content into GearVR Moving Web 3d Content into GearVR Mitch Williams Samsung / 3d-online GearVR Software Engineer August 1, 2017, Web 3D BOF SIGGRAPH 2017, Los Angeles Samsung GearVR s/w development goals Build GearVRf (framework)

More information

Killzone Shadow Fall: Threading the Entity Update on PS4. Jorrit Rouwé Lead Game Tech, Guerrilla Games

Killzone Shadow Fall: Threading the Entity Update on PS4. Jorrit Rouwé Lead Game Tech, Guerrilla Games Killzone Shadow Fall: Threading the Entity Update on PS4 Jorrit Rouwé Lead Game Tech, Guerrilla Games Introduction Killzone Shadow Fall is a First Person Shooter PlayStation 4 launch title In SP up to

More information

Game Jam Survival Guide

Game Jam Survival Guide Game Jam Survival Guide Who s that guy? @badlogicgames Preparation? What Preparation? Choose your tools! Engine, framework, library Programming language, IDE Audio editors & generators Graphics editors

More information

Artificial Intelligence for Games. Santa Clara University, 2012

Artificial Intelligence for Games. Santa Clara University, 2012 Artificial Intelligence for Games Santa Clara University, 2012 Introduction Class 1 Artificial Intelligence for Games What is different Gaming stresses computing resources Graphics Engine Physics Engine

More information

Key Abstractions in Game Maker

Key Abstractions in Game Maker Key Abstractions in Game Maker Foundations of Interactive Game Design Prof. Jim Whitehead January 19, 2007 Creative Commons Attribution 2.5 creativecommons.org/licenses/by/2.5/ Upcoming Assignments Today:

More information

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

Unity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING Unity 3.x Game Development Essentials Game development with C# and Javascript Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone

More information

PASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal

PASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal PASSENGER Story of a convergent pipeline Thomas Felix TG - Passenger Ubisoft Montréal Pierre Blaizeau TWINE Ubisoft Montréal Technology Group PASSENGER How to expand your game universe? How to bridge game

More information

Beginning ios 3D Unreal

Beginning ios 3D Unreal Beginning ios 3D Unreal Games Development ' Robert Chin/ Apress* Contents Contents at a Glance About the Author About the Technical Reviewers Acknowledgments Introduction iii ix x xi xii Chapter 1: UDK

More information

An Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment

An Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment An Overview of the Mimesis Architecture: Integrating Intelligent Narrative Control into an Existing Gaming Environment R. Michael Young Liquid Narrative Research Group Department of Computer Science NC

More information

New Developments in VBS3 GameTech 2014

New Developments in VBS3 GameTech 2014 New Developments in VBS3 GameTech 2014 Agenda VBS3 status VBS3 v3.4 released VBS3 v3.6 in development Key new VBS3 capabilities Paged, correlated terrain Command and control Advanced wounding Helicopter

More information

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

Effects of Shader Technology: Current-Generation Game Consoles and Real-Time. Graphics Applications Effects of Shader Technology: Current-Generation Game Consoles and Real-Time Graphics Applications Matthew Christian A Quick History of Pixel and Vertex Shaders Pixel and vertex shader technology built

More information

Getting Started with XNA

Getting Started with XNA Rob Miles Department of Computer Science XNA XNA is a framework for writing games Includes a set of professional tools for game production and content management It works within Visual Studio There are

More information

Processors Processing Processors. The meta-lecture

Processors Processing Processors. The meta-lecture Simulators 5SIA0 Processors Processing Processors The meta-lecture Why Simulators? Your Friend Harm Why Simulators? Harm Loves Tractors Harm Why Simulators? The outside world Unfortunately for Harm you

More information

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

Console Games Are Just Like Mobile Games* (* well, not really. But they are more alike than you Console Games Are Just Like Mobile Games* (* well, not really. But they are more alike than you think ) Hi, I m Brian Currently a Software Architect at Zynga, and CTO of CastleVille Legends (for ios/android)

More information

SPACEYARD SCRAPPERS 2-D GAME DESIGN DOCUMENT

SPACEYARD SCRAPPERS 2-D GAME DESIGN DOCUMENT SPACEYARD SCRAPPERS 2-D GAME DESIGN DOCUMENT Abstract This game design document describes the details for a Vertical Scrolling Shoot em up (AKA shump or STG) video game that will be based around concepts

More information

Human Computer Interaction Unity 3D Labs

Human Computer Interaction Unity 3D Labs Human Computer Interaction Unity 3D Labs Part 1 Getting Started Overview The Video Game Industry The computer and video game industry has grown from focused markets to mainstream. They took in about US$9.5

More information

Ubi meets the students. May 22nd, 2013

Ubi meets the students. May 22nd, 2013 Ubi meets the students May 22nd, 2013 UBISOFT 1 Ubisoft - a global network of talented people 2 What do we do? 3 Heroes Wanted 4 UBISOFT - A GLOBAL NETWORK OF TALENTED PEOPLE UBISOFT Over 8,350 talented

More information

ATLASrift - a Virtual Reality application

ATLASrift - a Virtual Reality application DPF2015- October 26, 2015 ATLASrift - a Virtual Reality application Ilija Vukotic 1*, Edward Moyse 2, Riccardo Maria Bianchi 3 1 The Enrico Fermi Institute, The University of Chicago, US 2 University of

More information

Oculus Rift Getting Started Guide

Oculus Rift Getting Started Guide Oculus Rift Getting Started Guide Version 1.23 2 Introduction Oculus Rift Copyrights and Trademarks 2017 Oculus VR, LLC. All Rights Reserved. OCULUS VR, OCULUS, and RIFT are trademarks of Oculus VR, LLC.

More information

Game Design Document. RELEASE December 18, Austin Krauss

Game Design Document. RELEASE December 18, Austin Krauss Game Design Document RELEASE December 18, 2003 Table of Contents Disclaimer...- 1 - Game Overview...- 1 - How should the game be unique?...- 1 - How is it different from other games?...- 1 - What sort

More information

Z-Town Design Document

Z-Town Design Document Z-Town Design Document Development Team: Cameron Jett: Content Designer Ryan Southard: Systems Designer Drew Switzer:Content Designer Ben Trivett: World Designer 1 Table of Contents Introduction / Overview...3

More information

Federico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti

Federico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti Basic Information Project Name Supervisor Kung-fu Plants Jakub Gemrot Annotation Kung-fu plants is a game where you can create your characters, train them and fight against the other chemical plants which

More information

TINY METAL: Developing a big game with a small team AREA35 - GIAN PEIRCE - BIZDEV & LOCALIZATION AREA35 - DANIEL DRESSLER - CHIEF ENGINEER

TINY METAL: Developing a big game with a small team AREA35 - GIAN PEIRCE - BIZDEV & LOCALIZATION AREA35 - DANIEL DRESSLER - CHIEF ENGINEER TINY METAL: Developing a big game with a small team AREA35 - GIAN PEIRCE - BIZDEV & LOCALIZATION AREA35 - DANIEL DRESSLER - CHIEF ENGINEER About This Presentation Development of TINY METAL started early

More information

Survey Platform

Survey Platform Survey Doron Nussbaum COMP 350 Survey Results 202 Platform Weighted Nintendo DS 7% Other Play Station 0% PC/Mac 50% PC/Mac Xbox Play Station Nintendo DS Other Xbox 30% Doron Nussbaum COMP 350 Survey Results

More information

Interfacing ACT-R with External Simulations

Interfacing ACT-R with External Simulations Interfacing ACT-R with External Simulations Eric Biefeld, Brad Best, Christian Lebiere Human-Computer Interaction Institute Carnegie Mellon University We Have Integrated ACT-R With Several External Simulations

More information

SIMGRAPH - A FLIGHT SIMULATION DATA VISUALIZATION WORKSTATION. Joseph A. Kaplan NASA Langley Research Center Hampton, Virginia

SIMGRAPH - A FLIGHT SIMULATION DATA VISUALIZATION WORKSTATION. Joseph A. Kaplan NASA Langley Research Center Hampton, Virginia SIMGRAPH - A FLIGHT SIMULATION DATA VISUALIZATION WORKSTATION Joseph A. Kaplan NASA Langley Research Center Hampton, Virginia Patrick S. Kenney UNISYS Corporation Hampton, Virginia Abstract Today's modern

More information

Using a Game Development Platform to Improve Advanced Programming Skills

Using a Game Development Platform to Improve Advanced Programming Skills Journal of Reviews on Global Economics, 2017, 6, 328-334 328 Using a Game Development Platform to Improve Advanced Programming Skills Banyapon Poolsawas 1 and Winyu Niranatlamphong 2,* 1 Department of

More information

A Cross-platform Game for Learning Physics

A Cross-platform Game for Learning Physics A Cross-platform Game for Learning Physics Name: Lam Matthew Ho Yan UID: 3035123198 Table of Contents Project Introduction... 2 Project Objective... 3 Project Methodology... 4 Phase 1: Preparation... 4

More information

Oculus Rift Getting Started Guide

Oculus Rift Getting Started Guide Oculus Rift Getting Started Guide Version 1.7.0 2 Introduction Oculus Rift Copyrights and Trademarks 2017 Oculus VR, LLC. All Rights Reserved. OCULUS VR, OCULUS, and RIFT are trademarks of Oculus VR, LLC.

More information

BooH pre-production. 4. Technical Design documentation a. Main assumptions b. Class diagram(s) & dependencies... 13

BooH pre-production. 4. Technical Design documentation a. Main assumptions b. Class diagram(s) & dependencies... 13 BooH pre-production Game Design Document Updated: 2015-05-17, v1.0 (Final) Contents 1. Game definition mission statement... 2 2. Core gameplay... 2 a. Main game view... 2 b. Core player activity... 2 c.

More information

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

Like Mobile Games* Currently a Distinguished i Engineer at Zynga, and CTO of FarmVille 2: Country Escape (for ios/android/kindle) Console Games Are Just Like Mobile Games* (* well, not really. But they are more alike than you think ) Hi, I m Brian Currently a Distinguished i Engineer at Zynga, and CTO of FarmVille 2: Country Escape

More information

SPIDERMAN VR. Adam Elgressy and Dmitry Vlasenko

SPIDERMAN VR. Adam Elgressy and Dmitry Vlasenko SPIDERMAN VR Adam Elgressy and Dmitry Vlasenko Supervisors: Boaz Sternfeld and Yaron Honen Submission Date: 09/01/2019 Contents Who We Are:... 2 Abstract:... 2 Previous Work:... 3 Tangent Systems & Development

More information

MAGE: A FLEXIBLE, PLUGIN-BASED APPROACH TO GAME ENGINE ARCHITECTURE AMIT MATHEW. (Under the Direction of Jeffrey Smith) ABSTRACT

MAGE: A FLEXIBLE, PLUGIN-BASED APPROACH TO GAME ENGINE ARCHITECTURE AMIT MATHEW. (Under the Direction of Jeffrey Smith) ABSTRACT MAGE: A FLEXIBLE, PLUGIN-BASED APPROACH TO GAME ENGINE ARCHITECTURE by AMIT MATHEW (Under the Direction of Jeffrey Smith) ABSTRACT MAGE is an open-source game engine that uses third-party middleware components

More information

the gamedesigninitiative at cornell university Lecture 14 Data-Driven Design

the gamedesigninitiative at cornell university Lecture 14 Data-Driven Design Lecture 14 Data-Driven Design Take-Away for Today What is data-driven design? How do programmers use it? How to designers/artists/musicians use it? What are benefits of data-driven design? To both developer

More information

Ebooks Kostenlos Introduction To 3D Game Programming With DirectX 12 (Computer Science)

Ebooks Kostenlos Introduction To 3D Game Programming With DirectX 12 (Computer Science) Ebooks Kostenlos Introduction To 3D Game Programming With DirectX 12 (Computer Science) This updated bestseller provides an introduction to programming interactive computer graphics, with an emphasis on

More information

Architecture of an Authoring System to Support the Creation of Interactive Contents

Architecture of an Authoring System to Support the Creation of Interactive Contents Architecture of an Authoring System to Support the Creation of Interactive Contents Kozi Miyazaki 1,2, Yurika Nagai 1, Anne-Gwenn Bosser 1, Ryohei Nakatsu 1,2 1 Kwansei Gakuin University, School of Science

More information

IMGD 1001: Fun and Games

IMGD 1001: Fun and Games IMGD 1001: Fun and Games Robert W. Lindeman Associate Professor Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu Outline What is a Game? Genres What Makes a Good Game? 2 What

More information

INTELLIGENT GUIDANCE IN A VIRTUAL UNIVERSITY

INTELLIGENT GUIDANCE IN A VIRTUAL UNIVERSITY INTELLIGENT GUIDANCE IN A VIRTUAL UNIVERSITY T. Panayiotopoulos,, N. Zacharis, S. Vosinakis Department of Computer Science, University of Piraeus, 80 Karaoli & Dimitriou str. 18534 Piraeus, Greece themisp@unipi.gr,

More information

Virtual Reality Mobile 360 Nanodegree Syllabus (nd106)

Virtual Reality Mobile 360 Nanodegree Syllabus (nd106) Virtual Reality Mobile 360 Nanodegree Syllabus (nd106) Join the Creative Revolution Before You Start Thank you for your interest in the Virtual Reality Nanodegree program! In order to succeed in this program,

More information

Wwise Fundamentals

Wwise Fundamentals Wwise 2012.1 Fundamentals Wwise 2012.1 Wwise 2012.1: Fundamentals Wwise 2012.1 Build 4189 Copyright 2012 Audiokinetic, Inc. All rights reserved. Patents pending Wwise is a product of Audiokinetic, Inc..

More information

General Environment for Human Interaction with a Robot Hand-Arm System and Associate Elements

General Environment for Human Interaction with a Robot Hand-Arm System and Associate Elements General Environment for Human Interaction with a Robot Hand-Arm System and Associate Elements Jose Fortín and Raúl Suárez Abstract Software development in robotics is a complex task due to the existing

More information

Unity Certified Programmer

Unity Certified Programmer Unity Certified Programmer 1 unity3d.com The role Unity programming professionals focus on developing interactive applications using Unity. The Unity Programmer brings to life the vision for the application

More information

IMGD 1001: Fun and Games

IMGD 1001: Fun and Games IMGD 1001: Fun and Games by Mark Claypool (claypool@cs.wpi.edu) Robert W. Lindeman (gogo@wpi.edu) Outline What is a Game? Genres What Makes a Good Game? Claypool and Lindeman, WPI, CS and IMGD 2 1 What

More information

Toon Dimension Formal Game Proposal

Toon Dimension Formal Game Proposal Toon Dimension Formal Game Proposal Peter Bucher Christian Schulz Nicola Ranieri February, 2009 Table of contents 1. Game Description...1 1.1 Idea...1 1.2 Story...1 1.3 Gameplay...2 1.4 Implementation...2

More information

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

Introduction to XNA; Game Loops. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology Introduction to XNA; Game Loops Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology Part 1: Introduction to XNA Dungeon Quest Developed in 4 days at the

More information

SE320: Introduction to Computer Games

SE320: Introduction to Computer Games SE320: Introduction to Computer Games Week 2 Gazihan Alankus 10/4/2011 1 Outline Introduction Project Today s class: video game concepts 10/4/2011 2 1 Outline Introduction Project Today s class: video

More information

Royale Politique. A funny game developed for the RV course - University of Pisa

Royale Politique. A funny game developed for the RV course - University of Pisa Royale Politique A funny game developed for the RV course - University of Pisa First of all Based on an idea matured during the last elections turn:

More information

Virtual Worlds Lessons from the Bleeding Edge of Multiplayer Gaming

Virtual Worlds Lessons from the Bleeding Edge of Multiplayer Gaming Virtual Worlds Lessons from the Bleeding Edge of Multiplayer Gaming Greg Corson Dave McCoy What s This About? Dealing with bleeding-edge technology Multiplayer game design/development lessons learned.

More information

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

New Physically Based Rendering (PBR) and Scene Editor included in latest release of Paradox, C# Game Engine - version 1.1.3β FOR IMMEDIATE RELEASE Media Contact Elle Airey Silicon Studio pr@siliconstudio.co.jp +81 (0)3 5488 7070 New Physically Based Rendering (PBR) and Scene Editor included in latest release of Paradox, C# Game

More information

Gameplay as On-Line Mediation Search

Gameplay as On-Line Mediation Search Gameplay as On-Line Mediation Search Justus Robertson and R. Michael Young Liquid Narrative Group Department of Computer Science North Carolina State University Raleigh, NC 27695 jjrobert@ncsu.edu, young@csc.ncsu.edu

More information

introduction to the course course structure topics

introduction to the course course structure topics topics: introduction to the course brief overview of game programming how to learn a programming language sample environment: scratch to do instructor: cisc1110 introduction to computing using c++ gaming

More information

SGD Simulation & Game Development Course Information

SGD Simulation & Game Development Course Information SGD Simulation & Game Development Course Information SGD-111_2006SP Introduction to SGD SGD-111 CIS Course ID S21240 This course provides students with an introduction to simulation and game development.

More information

Interacting with Music in Video Games Derek Dahmer Advised by Dr. Badler

Interacting with Music in Video Games Derek Dahmer Advised by Dr. Badler Interacting with Music in Video Games Derek Dahmer Advised by Dr. Badler Abstract A musical track has been a part of nearly all commercially sold video games created in the past

More information

Say Goodbye Write-up

Say Goodbye Write-up Say Goodbye Write-up Nicholas Anastas and Nigel Ray Description This project is a visualization of last.fm stored user data. It creates an avatar of a user based on their musical selection from data scraped

More information

Mage Arena will be aimed at casual gamers within the demographic.

Mage Arena will be aimed at casual gamers within the demographic. Contents Introduction... 2 Game Overview... 2 Genre... 2 Audience... 2 USP s... 2 Platform... 2 Core Gameplay... 2 Visual Style... 2 The Game... 3 Game mechanics... 3 Core Gameplay... 3 Characters/NPC

More information

Free Software in Video Games

Free Software in Video Games Free Software in Video Games Daniele Canavese, Christian Pitscheider Dipartimento di Automatica e Informatica Politecnico di Torino Torino, Italy January 7, 2014 2 / 24 Outline 1 Introduction Current Situation

More information

Understanding OpenGL

Understanding OpenGL This document provides an overview of the OpenGL implementation in Boris Red. About OpenGL OpenGL is a cross-platform standard for 3D acceleration. GL stands for graphics library. Open refers to the ongoing,

More information