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

Size: px
Start display at page:

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

Transcription

1 Introduction to Game Programming Autumn Game architecture [S. Madhav, 2014], Ch. 1. Game programming overview [J. Gregory, 2015], Ch Runtime object model architectures Juha Vihavainen University of Helsinki Outline Some fundamental concepts and terms Basic terms: "game", "game loop", "game engine, the management of time in games, and handling of updates of game objects Case: Gears of War (2006): illustrative statistics Game object model: inheritance hierarchies vs. composition Implementing the game loop On multithreading of rendering and updates of game world 2 The game loop ("tick") Fundamental concepts the basic loop that drives discrete-time simulation in games may also use multiple(nested) or multithreaded loops Representing time in games the difference between "real time" and "game time" how to make logic (updates) a function of delta time (the real time that has elapsed after the last update point) why/how to control display rate? (implement frame limiting and/or frame dropping) Game objects (also known as entities, actors) how to define different kinds/types of game objects need to integrate game objects into the game loop (to find them) The (classic) game loop Overall flow control for the entire game program: keeps looping around until the user quits out of the game Each iteration of the loop produces one frame (snapshot image) e.g., 60 FPS (frames per second): the loop completes 60 iterations in one second most common frequences are 30 (the delay being 33 ms) and 60 (the delay is 17 ms) Basic logical scheme while game is running do process inputs; (1) update game world; (2) generate outputs; (3) 3 4

2 (1) Process inputs Any input devices, including keyboard, mouse, joystick Other forms of input (stored or generated) include instant replay playback data: to watch a recorded sequence of game play (say, the last served ball in a game of tennis) for online games, need to receive and process data from network and propagate onward... on a mobile device, can include data from GPS (Global Positioning System), accelerometer, gyroscope, or real camera (for modified view of reality in augmented reality games) 5 (2) Updating the game world Iterate through (currently active) game objects in the world and update them (or letting them update () themselves) could include hundreds or thousands of objects (or more) we will cover this in more detail later (3) Generating outputs Most common and expensive is usually graphics (2D/3D) Also audio, including sound effects, music, and dialogue Controller rumble (force feedback) For multi-player online games, need to send data to network 6 (1-3) Hypothetical game loop example while player.lives > 0 do // a Pac-Man-style game JoystickData d:= grab raw data from joystick; // process inputs update player.position based on d; // update game world for each Ghost g in world if player collides with g then Note. No game engine, here. Logic/control is kind centralized. kill either player or g; else update AI for g based on player.position; // Pac-Man eats power pellets and..... // generate outputs draw graphics & update audio; Note. Procedural approach. The behavior is hard-coded; this kind of tailored solution does not necessarily scale up. "Multiple interactions within the program" Case: Gears of War (2006) When usingo-o game engines, thehiddengame loop uses some form of callbacks(virtual functions, methods, messages..) 7 8

3 Case: gameplay simulation in Gears of War Models the state of the game world as interacting objects that evolve over time About 1000 distinct gameplay classes have dynamic state and behavior (member functions) About 10,000 currently active gameplay objects each time a gameplay object is updated, it typically touches (affects) 5-10 other objects Gears of War a futuristic third-person shooter Epic Games, 2006 (dated but relevant) Unreal Engine made by Epic Games updates (frames) per second, attempting more or less "photorealistic" quality (3D scene, details, lighting, shadows) Written in C++ or a custom scripting language (textual/visual) high-level, object-oriented code imperative programming style UnrealScript (late) Kismet => Blueprints lots of dynamic objects to manage (created/updated/destroyed) 9 10 Game development: Gears of War (Epic Games) Initially for Xbox 360 (2006); a Windows version (2007) sold over three million copies in ten weeks online multiplayer features.. Resources Game is a repository for itsobjects; in Unity, a level / scene containsand owns its game objects. A general view of game architecture: about 10 programmers about 20 artists (!) about 24 month development cycle (not incl. the ready engine) about $ 10 million budget Software dependencies Note. A game object may be composed of many subcomponents to handle drawing, physics, scripting.. 3D model (plus more) one "middleware" game engine (its own Unreal Engine 3) about 20other support libraries graphics APIs, sound, input, etc. ~dpw/popl/06/tim-popl.ppt Additionally, objects strongly interact with each other (physically, or via game logic). Static assets (no state) are shared for efficiency These numbers given by Tim Sweeney (Epic Games)

4 A hypothetical architecture for a 3rd-person shooter potentially anything Notes on the sample game architecture All player characters and game objects are contained in a game level (possibly using non-owning aggregation) Game objects have position, rotation, and velocity: can be moved around and touch/collide with each other Both players and enemies are "game characters" can identify generalizations and specializations => class hierarchy Transform: pos, rotate, scale The scene includes parts such as crates, barrels, etc. that have geometry (i.e., shape), are animated, and simulated by physics: generalize them as a class "game dynamic objects" ("rigid bodies", in game physics) Game triggers have (only) volumes and locations in a level, and often provide health power-ups, coins, ammo, generate events, etc. A game camera may have its own logic, e.g., how to follow the player character or have "scripted" actions; so need a specific class Also, e.g. heads-up display (HUD) shows current status (health, ammo); often not part of the 3D level (but can) but a separate display layer Using different types of game objects (Madhav) (1) Drawn and updated any character, creature, or otherwise movable object that's also visible in the world in Super Mario Bros.: Mario, any enemies, all dynamic entities (2) Only-drawn static objects, such as buildings, mountains, sky in the background of a level/scene (3) Only-updated cameras (presuming no mirrors reflect the camera object) trigger volumes(for doors, hidden secret passageways, etc.) the whole game/level (depending on the game logic) Basic GameObject implementation (Madhav) Create a root GameObject class Create two interfaces: Drawable Updateable See(Madhav, pp ). The three types (1) - (3) of game objects each implement the right combination of the interfaces class UpdateableGO : GameObject, Updateable... class DrawableGO : GameObject, Drawable... Create separate lists of drawableand updateableobjects, and add to these lists as appropriate 15 16

5 ClassicO-O approach: In an Unrealgame, virtually all classes in the game inherit from a single, common base class (Actor) A sample of class hierarchy from UT 2004 Using (1) plain inheritance vs. (2) aggregation (1) (1) A hypothetical game-object class hierarchy (object-centric approach); possible overuse of inheritance. [Gregory, pp ] Implementation, e.g.: As usual, all common functionality exists at the root of the hierarchy, while subclasses add increasingly specific functionality Such monolithic class hierarchies may prove difficult to manage.. (2) The hierarchy, here refactored to favor composition over inheritance (property-centric); a GO actsasa container for properties (2) ~ Unity Real-time simulation: the main game loop The game loop (again, very simplified) A game is a kind of discrete-time simulation system thestateof thesystem is updatedand then a snapshotis displayed on thescreen, at some distinct successive points in time nothing happens between, only the simulation clock advances so, changesaredoneas onebatch, all at one simulated game-time point(compare with "atomic transactions : use the same global time) A main game loop runs repeatedly during each iteration of the loop, game systems calculate and update their state for this discrete-time step game logic, physics simulation, animations, game AI, etc. the results are displayed as a snapshot of the game world render graphics, emit sound, and possibly produce other outputs (such as force feedback on the joypad) 19 while true do process input; calculate game logic depending on state and input; render; Potential problems for this approach: may need to add a delay here to provide a steady frame rate note the dependence on CPU and rendering speeds runs at themaximum speed (may begood - ornot) game speed is determined by load and respective speeds of CPU/GPU => the game is updated at variable rate if the frame rate (fps) varies, it may cause problems if we don't take elapsed time into account when updating state 20

6 (1) Real time Real time vs. game time amount of time elapsed in the real world (for the player) note that frame rate(fps) is always expressed in this real time (2) Game time amount of time elapsed in the game world simulation if the game is paused, no game time passes (but still frames are displayed so the game loop needs to keep running) game time may be slower or faster than real time (for example, bullet time being slower; collision of galaxies being faster) games may even have game time go in reverse (~ time travel?) Animationsoften need to usetheir own separatetiming systems, can advance in various speeds(a runner must animate faster, too) 21 Game logic as a function of delta time Consider a classical 2D game where screen pixels are used as units The following code will run differently on different systems enemy.position.x += 5 // update per each frame (loop cycle) At 30 FPS, the enemy would move 150 pixels/sec (original) At 60 FPS, the enemy would move 300 pixels/sec (twice that) Instead, need to make the speed a function of delta time(the amount of elapsed real time since last frame/update) Say, need speed 150 pixels per second Multiply 150 by the elapsed portion of second enemy.position.x += 150 * deltatime; // e.g. 1/60 sec. (17 ms) // e.g., check 60 fps => per sec ~ 60 * 150 * 1/60 22 Game loop with delta time whilegame is running do realdeltatime := elapsed time since last frame/update; gamedeltatime := realdeltatime * gametimefactor; // process inputs... update game world with gamedeltatime; // render outputs... use to easily stretch (slow down) or quicken time Note. Game time is always calculated from real time. 23 Problems with "unsteady" frame rate Basic physics may have wildly different behavior based on frame rate physics requires high and steady rate of updates game characters may move inaccurately at lower frame rates online games may not work with variable local frame rates Solution (for the classic game loop) use frame limitingto lock down the frame rate to a specific value: pause to wait until the required delta time has elapsed (but this may unnecessarily steal time from potential calculations) Another potential problem when updates start lagging behind(updates take longer than given by the target delay time per frame) solution: framedropping: skip allgraphicsprocessingand frames' output part and proceed with only game logic calculations Advanced solution: use another loop to do physics at a faster, steady rate 24

7 On multi-threaded game loops Modern CPUs have multiple cores: can run multiple lines of execution (threads) at once, in a true parallel way games should take advantage of all available cores Most current AAA games and game engines actually use customized multithreaded systems of their own Note. GPUs are ultra parallel by hardware design for vector & matrix calculations, and typically do thesame calculationsfor allthedata values (vertices) of a 3D model One strategy: multithreaded "split" loop Graphics (rendering) runs on one thread Everything else runs on a second thread (logic, physics) If graphics takes 30 ms/frame and everything else takes 20 ms/frame: traditional loop takes 50 ms/frame ( 20 fps) "split" loop is as slow as the lowest of the two threads, so 30 ms/frame ( > 30 fps); see the picture, on the next slide "Split" loop: advantages & disadvantages The jump is delayed (at least one frame) due to input lag. One problem: input lag Amount of time it takes for a (player) action to have a visible effect on screen Rendering thread is at least one calculation step (frame) "behind" the gameplay thread The higher the input lag, the more sluggish (slow to react to controls) the game feels For some genres (such as highly-tuned combat games), a high input lag may be unacceptable Bad luck here: the processing of the press is postponed until the next frame. A similar problem may occur when delivering buffered messages/events between game subsystems and components 28

8 Finally : a (simplified) single-thread game loop A GE architecture(antti Hietasaari, 2016) simplified from GEA book while game is running var time := Game.Time; // the current real time var realdeltatime:= time - lasttime; lasttime:= time; var gamedeltatime := realdeltatime* Game.TimeFactor; // (1) process inputs... poll input and receive/deliver any messages/events... // (2) update game world for var obj: Updateable in Game.UpdateableObjects obj.update (gamedeltatime); // (3) generate output for var obj: Drawable in Game.DrawableObjects obj.draw(); if realdeltatime < Game.TargetDelay then // frame limiting Game.Sleep (Game.TargetDelay-realDeltaTime); (Utility subsystems) (Game-specific subsystems) (Game-engine subsystems) (Game-engine core systems) (Resource files: loading/unloading) (memorymgt, testing, math, strings, platform independence, 3rd-party llibraries) 29 30

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

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

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

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 Game Engine Architecture Spring 2017 0. Introduction and overview Juha Vihavainen University of Helsinki [Gregory, Chapter 1. Introduction, pp. 3-62 ] [McShaffry, Chapter 2. What's in a Game ] On classroom

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

Game Programming Paradigms. Michael Chung

Game Programming Paradigms. Michael Chung Game Programming Paradigms Michael Chung CS248, 10 years ago... Goals Goals 1. High level tips for your project s game architecture Goals 1. High level tips for your project s game architecture 2.

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

G54GAM - Games. So.ware architecture of a game

G54GAM - Games. So.ware architecture of a game G54GAM - Games So.ware architecture of a game Coursework Coursework 2 and 3 due 18 th May Design and implement prototype game Write a game design document Make a working prototype of a game Make use of

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

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

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

LOOKING AHEAD: UE4 VR Roadmap. Nick Whiting Technical Director VR / AR LOOKING AHEAD: UE4 VR Roadmap Nick Whiting Technical Director VR / AR HEADLINE AND IMAGE LAYOUT RECENT DEVELOPMENTS RECENT DEVELOPMENTS At Epic, we drive our engine development by creating content. We

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

the gamedesigninitiative at cornell university Lecture 10 Game Architecture

the gamedesigninitiative at cornell university Lecture 10 Game Architecture Lecture 10 2110-Level Apps are Event Driven Generates event e and n calls method(e) on listener Registers itself as a listener @105dc method(event) Listener JFrame Listener Application 2 Limitations of

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

Transforming Industries with Enlighten

Transforming Industries with Enlighten Transforming Industries with Enlighten Alex Shang Senior Business Development Manager ARM Tech Forum 2016 Korea June 28, 2016 2 ARM: The Architecture for the Digital World ARM is about transforming markets

More information

Easy Input Helper Documentation

Easy Input Helper Documentation Easy Input Helper Documentation Introduction Easy Input Helper makes supporting input for the new Apple TV a breeze. Whether you want support for the siri remote or mfi controllers, everything that is

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

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

Experiment 02 Interaction Objects

Experiment 02 Interaction Objects Experiment 02 Interaction Objects Table of Contents Introduction...1 Prerequisites...1 Setup...1 Player Stats...2 Enemy Entities...4 Enemy Generators...9 Object Tags...14 Projectile Collision...16 Enemy

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology Introduction to Game AI Fall 2018 What does the A stand for? 2 What is AI? AI is the control of every non-human entity in a game The other cars in a car game The opponents

More information

Game Design Document. Plataforms: Platformer / Puzzle

Game Design Document. Plataforms: Platformer / Puzzle Plataforms: Genre: Platformer / Puzzle Target Audience: Young / Adult 1 CONTENTS 2 VISUAL APPEAL... 3 2.1 Character Appeal... 3 2.2 Lighting and effects animation... 3 3 INOVATION... 4 3.1 Technical...

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

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

Creating Dynamic Soundscapes Using an Artificial Sound Designer

Creating Dynamic Soundscapes Using an Artificial Sound Designer 46 Creating Dynamic Soundscapes Using an Artificial Sound Designer Simon Franco 46.1 Introduction 46.2 The Artificial Sound Designer 46.3 Generating Events 46.4 Creating and Maintaining the Database 46.5

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

PAC XON CSEE 4840 Embedded System Design

PAC XON CSEE 4840 Embedded System Design PAC XON CSEE 4840 Embedded System Design Dongwei Ge (dg2563) Bo Liang (bl2369) Jie Cai (jc3480) Project Introduction PAC-XON Game Design Our project is to design a video game that consists of a combination

More information

Procedural Level Generation for a 2D Platformer

Procedural Level Generation for a 2D Platformer Procedural Level Generation for a 2D Platformer Brian Egana California Polytechnic State University, San Luis Obispo Computer Science Department June 2018 2018 Brian Egana 2 Introduction Procedural Content

More information

Transitioning From Linear to Open World Design with Sunset Overdrive. Liz England Designer at Insomniac Games

Transitioning From Linear to Open World Design with Sunset Overdrive. Liz England Designer at Insomniac Games Transitioning From Linear to Open World Design with Sunset Overdrive Liz England Designer at Insomniac Games 20 th year anniversary LINEAR GAMEPLAY Overview Overview What do we mean by linear and open

More information

MRT: Mixed-Reality Tabletop

MRT: Mixed-Reality Tabletop MRT: Mixed-Reality Tabletop Students: Dan Bekins, Jonathan Deutsch, Matthew Garrett, Scott Yost PIs: Daniel Aliaga, Dongyan Xu August 2004 Goals Create a common locus for virtual interaction without having

More information

G54GAM Lab Session 1

G54GAM Lab Session 1 G54GAM Lab Session 1 The aim of this session is to introduce the basic functionality of Game Maker and to create a very simple platform game (think Mario / Donkey Kong etc). This document will walk you

More information

Overview. The Game Idea

Overview. The Game Idea Page 1 of 19 Overview Even though GameMaker:Studio is easy to use, getting the hang of it can be a bit difficult at first, especially if you have had no prior experience of programming. This tutorial is

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

Group Project Shaft 37-X25

Group Project Shaft 37-X25 Group Project Shaft 37-X25 This is a game developed aimed at apple devices, especially iphone. It works best for iphone 4 and above. The game uses Unreal Development Engine and the SDK provided by Unreal,

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

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

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

ADVANCED TOOLS AND TECHNIQUES: PAC-MAN GAME

ADVANCED TOOLS AND TECHNIQUES: PAC-MAN GAME ADVANCED TOOLS AND TECHNIQUES: PAC-MAN GAME For your next assignment you are going to create Pac-Man, the classic arcade game. The game play should be similar to the original game whereby the player controls

More information

VR Best Practices: Putting the Fun in VR Funhouse. Amanda Bott - March 3, 2017

VR Best Practices: Putting the Fun in VR Funhouse. Amanda Bott - March 3, 2017 VR Best Practices: Putting the Fun in VR Funhouse Amanda Bott - March 3, 2017 2 Overview Getting Started Design Haptics High-end Rendering Simulated Effects Audio Performance Tools Modding 3 In the Beginning

More information

Chapter 1:Object Interaction with Blueprints. Creating a project and the first level

Chapter 1:Object Interaction with Blueprints. Creating a project and the first level Chapter 1:Object Interaction with Blueprints Creating a project and the first level Setting a template for a new project Making sense of the project settings Creating the project 2 Adding objects to our

More information

Game Designers. Understanding Design Computing and Cognition (DECO1006)

Game Designers. Understanding Design Computing and Cognition (DECO1006) Game Designers Understanding Design Computing and Cognition (DECO1006) Rob Saunders web: http://www.arch.usyd.edu.au/~rob e-mail: rob@arch.usyd.edu.au office: Room 274, Wilkinson Building Who are these

More information

Instructions for using Object Collection and Trigger mechanics in Unity

Instructions for using Object Collection and Trigger mechanics in Unity Instructions for using Object Collection and Trigger mechanics in Unity Note for Unity 5 Jason Fritts jfritts@slu.edu In Unity 5, the developers dramatically changed the Character Controller scripts. Among

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

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

Space Invadersesque 2D shooter

Space Invadersesque 2D shooter Space Invadersesque 2D shooter So, we re going to create another classic game here, one of space invaders, this assumes some basic 2D knowledge and is one in a beginning 2D game series of shorts. All in

More information

CRYPTOSHOOTER MULTI AGENT BASED SECRET COMMUNICATION IN AUGMENTED VIRTUALITY

CRYPTOSHOOTER MULTI AGENT BASED SECRET COMMUNICATION IN AUGMENTED VIRTUALITY CRYPTOSHOOTER MULTI AGENT BASED SECRET COMMUNICATION IN AUGMENTED VIRTUALITY Submitted By: Sahil Narang, Sarah J Andrabi PROJECT IDEA The main idea for the project is to create a pursuit and evade crowd

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

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

Game demo First project with UE Tom Guillermin

Game demo First project with UE Tom Guillermin Game demo Information page, videos and download links: https://www.tomsdev.com/ue zombinvasion/ Presentation Goal: kill as many zombies as you can. Gather boards in order to place defenses and triggers

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

Surfing on a Sine Wave

Surfing on a Sine Wave Surfing on a Sine Wave 6.111 Final Project Proposal Sam Jacobs and Valerie Sarge 1. Overview This project aims to produce a single player game, titled Surfing on a Sine Wave, in which the player uses a

More information

Virtual Reality in Unreal Engine 4. Nathan Adara Program of Computer Graphics

Virtual Reality in Unreal Engine 4. Nathan Adara Program of Computer Graphics Virtual Reality in Unreal Engine 4 Nathan Adara Program of Computer Graphics Let s Kick This Off People s impressions of VR are important. See? People s first impressions of VR are important. Your Blank

More information

Foreword Thank you for purchasing the Motion Controller!

Foreword Thank you for purchasing the Motion Controller! Foreword Thank you for purchasing the Motion Controller! I m an independent developer and your feedback and support really means a lot to me. Please don t ever hesitate to contact me if you have a question,

More information

Naturey Snake. Cal Poly Computer Science Department. By Oliver Wei Hao Xia Fall 2015 SENIOR PROJECT REPORT

Naturey Snake. Cal Poly Computer Science Department. By Oliver Wei Hao Xia Fall 2015 SENIOR PROJECT REPORT Naturey Snake Cal Poly Computer Science Department By Oliver Wei Hao Xia Fall 2015!1 Intro My senior project is a game called Naturey Snake. It is developed for the ios platform and optimized for the iphone

More information

2D Platform. Table of Contents

2D Platform. Table of Contents 2D Platform Table of Contents 1. Making the Main Character 2. Making the Main Character Move 3. Making a Platform 4. Making a Room 5. Making the Main Character Jump 6. Making a Chaser 7. Setting Lives

More information

In the end, the code and tips in this document could be used to create any type of camera.

In the end, the code and tips in this document could be used to create any type of camera. Overview The Adventure Camera & Rig is a multi-behavior camera built specifically for quality 3 rd Person Action/Adventure games. Use it as a basis for your custom camera system or out-of-the-box to kick

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

Easy Input For Gear VR Documentation. Table of Contents

Easy Input For Gear VR Documentation. Table of Contents Easy Input For Gear VR Documentation Table of Contents Setup Prerequisites Fresh Scene from Scratch In Editor Keyboard/Mouse Mappings Using Model from Oculus SDK Components Easy Input Helper Pointers Standard

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

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

Game Engines: Why and What? Dan White Technical Director Pipeworks Message Game Engines: Why and What? Dan White Technical Director Pipeworks danw@pipeworks.com Message As you learn techniques, consider how they can be integrated into a production pipeline. 1 Sense of scale Video

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

Annex IV - Stencyl Tutorial

Annex IV - Stencyl Tutorial Annex IV - Stencyl Tutorial This short, hands-on tutorial will walk you through the steps needed to create a simple platformer using premade content, so that you can become familiar with the main parts

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 24, 2008 Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0 Upcoming Assignments Today:

More information

Step 1 - Setting Up the Scene

Step 1 - Setting Up the Scene Step 1 - Setting Up the Scene Step 2 - Adding Action to the Ball Step 3 - Set up the Pool Table Walls Step 4 - Making all the NumBalls Step 5 - Create Cue Bal l Step 1 - Setting Up the Scene 1. Create

More information

Control Systems in Unity

Control Systems in Unity Unity has an interesting way of implementing controls that may work differently to how you expect but helps foster Unity s cross platform nature. It hides the implementation of these through buttons and

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

AI in Computer Games. AI in Computer Games. Goals. Game A(I?) History Game categories

AI in Computer Games. AI in Computer Games. Goals. Game A(I?) History Game categories AI in Computer Games why, where and how AI in Computer Games Goals Game categories History Common issues and methods Issues in various game categories Goals Games are entertainment! Important that things

More information

In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds.

In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds. Brain Game Introduction In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds. Step 1: Creating questions Let s start

More information

VACUUM MARAUDERS V1.0

VACUUM MARAUDERS V1.0 VACUUM MARAUDERS V1.0 2008 PAUL KNICKERBOCKER FOR LANE COMMUNITY COLLEGE In this game we will learn the basics of the Game Maker Interface and implement a very basic action game similar to Space Invaders.

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

PLANETOID PIONEERS: Creating a Level!

PLANETOID PIONEERS: Creating a Level! PLANETOID PIONEERS: Creating a Level! THEORY: DESIGNING A LEVEL Super Mario Bros. Source: Flickr Originally coders were the ones who created levels in video games, nowadays level designing is its own profession

More information

Creating a Mobile Game

Creating a Mobile Game The University of Akron IdeaExchange@UAkron Honors Research Projects The Dr. Gary B. and Pamela S. Williams Honors College Spring 2015 Creating a Mobile Game Timothy Jasany The University Of Akron, trj21@zips.uakron.edu

More information

Design Document for: Name of Game. One Liner, i.e. The Ultimate Racing Game. Something funny here! All work Copyright 1999 by Your Company Name

Design Document for: Name of Game. One Liner, i.e. The Ultimate Racing Game. Something funny here! All work Copyright 1999 by Your Company Name Design Document for: Name of Game One Liner, i.e. The Ultimate Racing Game Something funny here! All work Copyright 1999 by Your Company Name Written by Chris Taylor Version # 1.00 Thursday, September

More information

Learn Unity by Creating a 3D Multi-Level Platformer Game

Learn Unity by Creating a 3D Multi-Level Platformer Game Learn Unity by Creating a 3D Multi-Level Platformer Game By Pablo Farias Navarro Certified Unity Developer and Founder of Zenva Table of Contents Introduction Tutorial requirements and project files Scene

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

Tic Feedback. Don t fall behind! the rest of the course. tic. you. us too

Tic Feedback. Don t fall behind! the rest of the course. tic. you. us too LECTURE 1 Announcements Tic is over! Tic Feedback Don t fall behind! the rest of the course tic you us too Global Reqs They exist! Cover broad standards for every project runs 20+ FPS, engine and game

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

Gaming Development Fundamentals

Gaming Development Fundamentals Gaming Development Fundamentals EXAM INFORMATION Items 27 Points 43 Prerequisites RECOMMENDED COMPUTER PROGRAMMING I DIGITAL MEDIA I Grade Level 9-12 Course Length DESCRIPTION This course is designed to

More information

CompuScholar, Inc. Alignment to Utah Game Development Fundamentals Standards

CompuScholar, Inc. Alignment to Utah Game Development Fundamentals Standards CompuScholar, Inc. Alignment to Utah Game Development Fundamentals Standards Utah Course Details: Course Title: Primary Career Cluster: Course Code(s): Standards Link: Game Development Fundamentals CTE

More information

AR 2 kanoid: Augmented Reality ARkanoid

AR 2 kanoid: Augmented Reality ARkanoid AR 2 kanoid: Augmented Reality ARkanoid B. Smith and R. Gosine C-CORE and Memorial University of Newfoundland Abstract AR 2 kanoid, Augmented Reality ARkanoid, is an augmented reality version of the popular

More information

Tutorial: Creating maze games

Tutorial: Creating maze games Tutorial: Creating maze games Copyright 2003, Mark Overmars Last changed: March 22, 2003 (finished) Uses: version 5.0, advanced mode Level: Beginner Even though Game Maker is really simple to use and creating

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

Music as a Game Obstacle

Music as a Game Obstacle Carleton University Honours Project Music as a Game Obstacle By Sukhveer Matharu Supervised by Dr. Michel Barbeau School of Computer Science Submitted on Date: April 21, 2008 Page 1 of 21 Abstract: Over

More information

Game Design Project 2, Part 3 Group #3 By: POLYHEDONISTS Brent Allard, Taylor Carter, Andrew Greco, Alex Nemeroff, Jessica Nguy

Game Design Project 2, Part 3 Group #3 By: POLYHEDONISTS Brent Allard, Taylor Carter, Andrew Greco, Alex Nemeroff, Jessica Nguy Game Design Project 2, Part 3 Group #3 By: POLYHEDONISTS Brent Allard, Taylor Carter, Andrew Greco, Alex Nemeroff, Jessica Nguy Concept Side scrolling beat-em-up Isometric perspective that implements 2D

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

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

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

Game Architecture. 4/8/16: Multiprocessor Game Loops

Game Architecture. 4/8/16: Multiprocessor Game Loops Game Architecture 4/8/16: Multiprocessor Game Loops Monolithic Dead simple to set up, but it can get messy Flow-of-control can be complex Top-level may have too much knowledge of underlying systems (gross

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

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

Crowd-steering behaviors Using the Fame Crowd Simulation API to manage crowds Exploring ANT-Op to create more goal-directed crowds

Crowd-steering behaviors Using the Fame Crowd Simulation API to manage crowds Exploring ANT-Op to create more goal-directed crowds In this chapter, you will learn how to build large crowds into your game. Instead of having the crowd members wander freely, like we did in the previous chapter, we will control the crowds better by giving

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

COMPASS NAVIGATOR PRO QUICK START GUIDE

COMPASS NAVIGATOR PRO QUICK START GUIDE COMPASS NAVIGATOR PRO QUICK START GUIDE Contents Introduction... 3 Quick Start... 3 Inspector Settings... 4 Compass Bar Settings... 5 POIs Settings... 6 Title and Text Settings... 6 Mini-Map Settings...

More information

Whiskey2D A 2D Game Creator

Whiskey2D A 2D Game Creator Worcester Polytechnic Institute Whiskey2D A 2D Game Creator A Major Qualifying Project Christopher Hanna, Daniel True March 27 th, 2015 Advisor: Professor Charles Rich Table of Contents CHAPTER 1 INTRODUCTION...

More information

SandBox Wars. Game Draft

SandBox Wars. Game Draft SandBox Wars Game Draft Table of Contents Table of Contents Development Tasks Brainstorming Ideas Handling Player Constructions Unlocking Blueprints Ideas Item behaviors Lag compensation 1 Development

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

gfm-app.com User Manual

gfm-app.com User Manual gfm-app.com User Manual 03.07.16 CONTENTS 1. MAIN CONTROLS Main interface 3 Control panel 3 Gesture controls 3-6 2. CAMERA FUNCTIONS Exposure 7 Focus 8 White balance 9 Zoom 10 Memory 11 3. AUTOMATED SEQUENCES

More information

Individual Test Item Specifications

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

More information

Kismet Interface Overview

Kismet Interface Overview The following tutorial will cover an in depth overview of the benefits, features, and functionality within Unreal s node based scripting editor, Kismet. This document will cover an interface overview;

More information

3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist

3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist 3D Top Down Shooter By Jonay Rosales González AKA Don Barks Gheist This new version of the top down shooter gamekit let you help to make very adictive top down shooters in 3D that have made popular with

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

Magic Leap Soundfield Audio Plugin user guide for Unity

Magic Leap Soundfield Audio Plugin user guide for Unity Magic Leap Soundfield Audio Plugin user guide for Unity Plugin Version: MSA_1.0.0-21 Contents Get started using MSA in Unity. This guide contains the following sections: Magic Leap Soundfield Audio Plugin

More information