Games Development 1 Review / Revision CO2301 Games Development 1 Semester 2.

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

© 2011 Autodesk Freely licensed for use by educational institutions. Reuse and changes require a note indicating that content has been modified from the.
Chapter 7 – Object-Oriented Design
Soul Envoy Final Year Project 22nd April 2006 By Zhu Jinhao.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Robotics Simulator Intelligent Systems Lab. What is it ? Software framework - Simulating Robotics Algorithms.
Mechanical Engineering Dept.
How do games work? Game Workshop July 4, Parts Sprites/pictures Map/background Music/sounds Player character Enemies Objects.
UML – Class Diagrams.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex With code bases exceeding a million lines of code, a.
Chapter 3.4 Programming Fundamentals. 2 Data Structures Arrays – Elements are adjacent in memory (great cache consistency) – They never grow or get reallocated.
Games Development Practices Semester 2 Overview CO2301 Games Development 1 Week 14.
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
CHAPTER 17 Creating an Interactive 3D Environment © 2008 Cengage Learning EMEA.
What is it? The use of computers to present text, sound, graphics, animation and video in an integrated way.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter Languages, Programming and Architecture.
Games Development 2 Entity / Architecture Review CO3301 Week
Dakota Humphries (Project Lead) Thomas Impellitteri (Tech Lead) Daryl McGhee II (Design Lead) Keith Rosier (Asset Lead)
CSE 381 – Advanced Game Programming 3D Game Architecture.
Antigone Engine Kevin Kassing – Period
DYNAMICS Part I Physics Engine By Willis (The Magnificent) Louie Fei (The Coyote) Liao.
Final Project Presentation& Demo Zhi Dong Real Time FEM of Elasto-Plastic Simulation.
Games Development Practices 3D Model Import/Export CO2301 Games Development 1 Week 17.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Rethinking Game Architecture with Immutability Jacob Dufault Faculty Advisor: Dr. Phil Bernhard, Dept of Computer Science, Florida Institute of Technology.
Game Engine Programming. Game Engine Game Engine Rendering Engine (OGRE) Rendering Engine (OGRE) Physics Engine (Bullet) Physics Engine (Bullet) Input/Output.
Unit III : Introduction To Data Structures and Analysis Of Algorithm 10/8/ Objective : 1.To understand primitive storage structures and types 2.To.
10/9/20151 Unreal Basics CIS 488/588 Bruce R. Maxim UM-Dearborn.
Microsoft Robotics Studio Simulation Kyle Johns Software Development Engineer Microsoft Corporation.
Games Games GAMES. About Me:  Ariel Nehmad.  I’m 31 years old.  Live in Buenos Aires, Argentina.  CTO and father of Flare3D, FLSL and Flare3D Phys…
Games Development Practices Sound Effects & OpenAL CO2301 Games Development 1 Week 15.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Games Development 2 Review & Revision Strategy CO3301 End of Semester 1.
Reference: The Game Loop Animation / Game loop 1. Update variables 2. [Get input from the user] (GameLoop only) 3. Draw (using variables)
Games Development 2 Overview & Entity IDs and Communication CO3301 Week 1.
Games Development Game Architecture: Entities CO2301 Games Development 1 Week 22.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex (can easily exceed 1M LOC) The larger your program,
Games Development 2 Entity Update & Rendering CO3301 Week 2, Part 1.
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
Computer Graphics Matrix Hierarchies / Animation
Advanced Games Development Game Physics CO2301 Games Development 1 Week 19.
Graphics for Games Particle Systems CO2301 Games Development 1 Week 23.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
CS777 Project 1 Developing Maya Plug-ins for motion related projects Kyungsuk David Lee.
Advanced Games Development Physics Engines 2 CO2301 Games Development 1 Week 21.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Object Animation CMT3317. Do you need to do animation? We consider ways of animating composite objects – that have a number of different parts e.g. a.
Microsoft Foundation Classes MFC
Games Development Practices 3D Modelling
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
Java Beans Sagun Dhakhwa.
Games Development 2 semester 1 Review & Revision
CSE 381 – Advanced Game Programming Terrain
3D Game Development Time and game loop Jernej Vičič.
Games Development Practices 3D Model Import/Export
Games Development Practices Sound Effects
Games Development Practices Semester 2 Overview
Advanced Games Development Game Physics
Games Development Game Architecture: Entities
Games Development 2 Tools Programming
Games Development 1 Review / Revision
Computer Graphics Matrix Hierarchies / Animation
Games Development 2 Entity / Architecture Review
Presentation transcript:

Games Development 1 Review / Revision CO2301 Games Development 1 Semester 2

Lecture Contents 1.3D Model & Data Import 2.Timing and the Game Loop 3.Sound Effects 4.Physics Engines 5.Game Architecture 6.Entities

3D Model & Data Import 1 Computer games use 3D modelling tools to generate their content –E.g. Alias Maya, 3ds Max A modelling tool can also be used for content creation: –Laying out scene related data: camera paths, AI networks etc. –Authoring stats/attributes for visual elements –Although may be better done in a Level Editor

3D Model & Data Import 2 Modelling tool’s native file formats are usually unsuitable for games use Instead we can export in simpler formats (e.g..X) –Need 3 rd party exporters, or… Or write custom export scripts and file formats –Allows the export of other game content too Games have very particular technical requirements of their 3D models –Artists not technically minded – communication critical Wide range of game-specific & common sense requirements –Equally wide range of possible artwork problems –Agree ground rules with artists early on

Game Loops & Timing A basic game loop performs in this manner: –A static image of the scene is rendered –The objects are moved slightly (where necessary) –This process repeats as long as the game is running If there is no timing in the loop then we render and update the scene as fast as possible –Frequency of loop is dependent on the computer speed –Will run at different speeds on different computers. We need to time the game loop –To determine how much to move/rotate models in the current scene update

Variable Timing Time the game loop: –Get an accurate measure of the time on each iteration of the game loop –Subtract previous frame time from the current –Gives us the time step since the last frame Multiply movements in scene update by this time step (called the frame time or the update time) –N.B. The frame rate (fps) = 1 / frame time For example, for X movement at M units / second: –Use MoveX( M * frame time )

Fixed Timing Pick a fixed time period, e.g. 0.02s (= 50 FPS) –Call this the tick Measure everything in units / tick Write scene update as normal using these values –E.g. MoveX( 2 ) for a speed of 2 units per tick Calculate FrameTime / tick –Take whole part and call scene update this many times –Carry the remainder over to the next frame E.g. FrameTime / tick = 2.5 –Then perform 2 scene updates –And save 0.5 to add to the result for the next frame

Sound Effects 1 A computer stores a sound by sampling its waveform Samples taken at a fixed sample frequency (rate) Each sample is a value representing the amplitude (pressure) of the waveform at that point The bit-depth of the samples is the number of bits used for each sample and determines the accuracy of each sample

Sound Effects 2 Stereo sound consists of 2 waveforms, one for each ear –Modelling differences in the perceived sound –Pre-recorded so statically positioned 3D sound is the dynamic modelling of the different sounds received by our ears: –Consider the 3D position of the mono sound source –Then calculate how the sound emitted will be perceived at each ear of the observer The Doppler effect is the compression / stretching of a sound due its velocity relative to the listener

Physics Engines 1 Physics engines simulate Newtonian physics for models in a scene –Providing real-time simulation of movement / interaction The game provides initial physical info for models The physics engine performs the simulation and feeds back results to the game Physics engines can simulate rigid or soft bodies –Rigid body simulation is more common Rigid bodies in a physics engine are represented by their collision volume –Usually a simplification of the visual model

Physics Engines 2 A joint represents a constraint on a body There are several kinds of joint typified by their degrees of freedom (d.o.f.) and the limits imposed on these d.o.f. E.g. Hinge: –One d.o.f. - rotation round an axis –Specified by a point on the axis and the axis vector Ball & Socket joint: –Three d.o.f. round three fixed axes –Specified by rotational origin & three axis vectors

Game Architecture 1 Game technologies should be written to be independent of platform, API and game –Where possible without sacrificing efficiency To generate such portable code: –Create interfaces and abstract classes that idealise the function of a technology component Interfaces have function prototypes only – no implementation Abstract classes contain some implementation, but not all of it –Use inherited implementation classes for each platform –Use factory functions to instantiate objects for a particular platform –Where possible put common (platform independent) code into abstract classes to encourage code reuse

Game Architecture 2 Avoid bloated “core” interfaces that perform too many diverse functions Manager or system classes should be used to handle distinct roles in the overall system –E.g. A mesh manager creates, deletes, loads and saves meshes in the game. –The core interface simply creates and provides access to the mesh manager UML diagrams help to build a class architecture Aim to create Directed Acyclic Graphs (DAG) of class dependencies –Strongly promotes loose coupling

Game Architecture 3 (DAG)

Game Entities 1 Entities form a class hierarchy A single entity might contain: –Mesh and positioning, game attributes and stats, scripts etc. Each entity has an update function Most entities have a render function Game specific components are designed around the architecture of the game entities –Single, self-contained, interactive game elements

Game Entities 2 Different components of the same game may different needs when referencing entities Entities may be organised into several different data structures simultaneously –E.g. Store a list in a entity manager, then have both a quadtree and a grid structure referring to entities in it Entities may be updated each frame –A priority queue can make this more efficient Entities have unique identifiers (handles) They can communicate with each other –Simple messaging system