Game Programming (Game Architecture) 2011. Spring.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

DATA PROCESSING SYSTEMS
The Design Document Ahmet Uğur. Overview No standard format Should communicate the nature of the game effectively Companies with agreed format The design.
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
How do games work? Game Workshop July 4, Parts Sprites/pictures Map/background Music/sounds Player character Enemies Objects.
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
Mark Nelson Alessandro Canossa Design documents Spring 2011
WSN Simulation Template for OMNeT++
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Course Instructor: Aisha Azeem
Games Design Nick Sims.  These are broken down into two sections, visual style and game play. We are going to look at Visual Style What do you think.
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.
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
SE320: Introduction to Computer Games Week 8: Game Programming Gazihan Alankus.
CSE 381 – Advanced Game Programming 3D Game Architecture.
Game Development and Game Design academy.zariba.com 1.
GAME DEVELOPMENT DOCUMENTATION
Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0 Key Abstractions in Game Maker Foundations of Interactive Game Design Prof. Jim Whitehead.
CS426 Game Programming II Dan Fleck. Why games?  While the ideas in this course are demonstrated programming games, they are useful in all parts of computer.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
CHAPTER FOUR COMPUTER SOFTWARE.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
Developing the Game User Interface (UI) Lesson 5.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
CHAPTER TEN AUTHORING.
Object Orientated Data Topic 5: Multimedia Technology.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Test Environment Algorithm Program Requirements/ Enhancements Analyze the Problem and Design a Solution Programming Software Translates the Source Code.
Ahmed Saker Indie Game Developer
Project “Smoke” N-core engine experiment Threading for Performance AND Features.
2.1. T HE G AME L OOP Central game update and render processes.
Game Programming Patterns Event Queue From the book by Robert Nystrom
Games Development Game Architecture: Entities CO2301 Games Development 1 Week 22.
Processor Architecture
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Reading Flash. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also choose some.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
Software Engineering Requirements + Specifications.
F.E.A.R. Game AI Evaluation by Robert Rak. What is F.E.A.R. ? FEAR is a First Person Shooter game Player takes on the role of an elite strike force team.
Games Development 1 Review / Revision CO2301 Games Development 1 Semester 2.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Wingers creating space on the flank in formation
T HE G AME L OOP. A simple model How simply could we model a computer game? By separating the game in two parts: – the data inside the computer, and –
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Simulation Robin Burke GAM 224. Outline Design Milestone #4 Simulation Game design activity.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Topics: Introduction to Game Engine Course Overview What is a game engine? Advantages and Disadvantages Torque Game Engine.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
1 Multimedia Development Team. 2 To discuss phases of MM production team members Multimedia I.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Computer Technology Semester 2 Final Exam Review.
The Promotion Strategy 1 Explain the role of the promotion strategy. Explain how to formulate promotion plans. Describe considerations for putting together.
Game Programming (Game Architecture)
Kai Li, Allen D. Malony, Sameer Shende, Robert Bell
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.
Does Spatialized Audio Change Everything?
3D Game Development Time and game loop Jernej Vičič.
Games Development Game Architecture: Entities
Presentation transcript:

Game Programming (Game Architecture) Spring

Real-Time Software ■ Video games  Real-time software applications Data acquisition and response must be performed under time-constrained conditions  The internal of the system A data acquisition module (ex. Physical radar) A display/computation module (ex. Help Ground personnel visualize data) An interaction module (ex. To send signals to planes)

Real-Time Software ■ Games  Time dependent interactive application Virtual world simulator Feeds real-time data (Part I) Presentation module Displays it (Part II) Control mechanisms Allow the player to interact with the world  Game programming is about trying to defy that limit and creating something beyond the platform’s capabilities

Real-Time Loops ■ All real-time interactive application  Three takes running concurrently The state of the world must be constantly recomputed The operator must be allowed to interact with it The resulting state must be presented to the player Using onscreen data, audio, and any other output device available  Two portions An update and a render routine Both run simultaneously In an ideal world  parallel processors Most Computers − Single processor with limited memory and speed

Real-Time Loops ■ Coupled Approach  Implement both routine in a loop  Each update is followed by a render call (equal importance)  Problem Performance variation Frame-per-second(FPS) rate varies due to system performance The render and update sections in sync makes coding complex − Update  fixed frequency − Render  variant frequency Coupled Approach

Real-Time Loops ■ One solution  Update and render would be in a loop  But, the granularity of the update portion would depend on the H/W speed Valid solution, but worthless Decision making is a complex process ■ Twin-threaded approach  One thread executes the rendering portion while the other take care of the world updating Twin-thread Approach

Real-Time Loops Ex) game render  60 fps, AI update  15 fps Only one of every 4 frames will carry out an AI update More frames means nothing − All the frame in an AI cycle look exactly the same Solution AIs are broken down two sections − Real AI code : fixed time step − Simpler routine such as animation interpolation and trajectory update routine : a per–frame basis  The idea is very good but does not implement well on some H/W platform

Real-Time Loops ■ Single thread fully decoupled  Decouple the render from the update routine Render is called as often as possible Update is synchronized with time Storing a time stamp for update call  Better control than thread and simpler programming Poor man’s thread Approach long timelastcall=timeGetTime(); while (!end) { if ((timeGetTime()-timelastcall) > 1000/frequency) { game_logic(); timelastcall=timeGetTime(); } presentation(); }

The Game Architecture ■ Game Framework  The Game Logic Section (Update) Updating the player Updating the world Updating the nonplaying characters (NPCs)  The Presentation Section (Render) Rendering the game world Rendering NPCs Rendering the player

The Game Logic Section ■ Player Update  Player input module Interaction requests by the player must be checked for Control mechanism (Ch. 5) Joysticks, keyboards, mouses, … Use abstract device controller − The game code does not actually interact with the physical controller  Player restriction routine (the hardest of the three) Restrictions to player interaction Ex) collision detection (Ch. 21), logical restrictions  Player update routine Player see the result of their interactions

The Game Logic Section ■ World Update  Game world entities Passive elements Items that belong to the world game but do not have an attached behavior Ex) walls, scenario items Active elements Those that have an embedded behaviors Logic based elements − Ex) doors, elevators, or moving platforms, decorative elements (flying birds) AI based elements − Ex) enemies

The Game Logic Section ■ The processing of updating active elements 1.Sort according to relevance A filter will select those elements that are relevant to the gameplay Ex) LOD (Level of Detail) 2.The state of the active elements must be updated Logical entities Execute control mechanism Update state Intelligent entities Goals and current state must be analyzed Restrictions must be sensed A decision/plan making engine must be implemented that effectively generates behavior rules Update the world state accordingly (flight simulator) (obtaining pos, heading, state of the weapon systems, damage) (avoiding collision) (chase the player, blow it up) (store data  the enemy moved, or eliminate it from the DB if it was shot down)

The Game Logic Section Game logic Player update Sense player input Compute restrictions Update player state World update Passive elements Pre-select active zone for engine use Logic-based elements Sort according to relevance Execute control mechanism Update state AI Based elements Sort according to relevance Sense internal state and goals Sense restrictions Decision engine Update world state End

The Presentation Section ■ World Rendering  Render visually and sonically the game world  Focus on the passive elements(ex. wall, ground) and simple logical-based devices(ex. opening door) of the world  World rendering pipeline Selecting the relevant subset Taking care of the actual rendering

The Presentation Section ■ World Rendering  Graphics pipeline Reduce to the visual part Clipping, culling and computing occlusions Assigned a suitable LOD (option) Ex) 500m tree (10,000 triangles)  occupy single pixel ?? Geometry packing Packed geometry is sent to the Graphics H/W Actual paint it on screen  Audio rendering Filtering Can’t just filter what is visible and what is not. Using some distance versus volume metric Attenuation can be computed Sending the audio files to the sound card

The Presentation Section ■ NPC Rendering Need specific pipeline due to their animation properties  Filtering the character lists (more expensive) Visibility step Use an LOD pass (option)  Animation routine must be computed From key framed to skeletal animations and so on Static geometry data that represents the current snapshot of how the character must look for a given frame  Packed using an efficient representation  Sent to the H/W for display

The Presentation Section ■ The Player  Nothing but a very special case NPC  Rendering pipeline is simpler The player is generally visible No need to check him for visibility No need for LOD processing Use high resolution meshes  Player Rendering Pipeline Animation step (High quality) Packing Render step

The Presentation Section Game presentation World presentation Select visible subset (graphics) Clip Cull Occlude (Select resolution) Pack geometry Render world geometry Select audible sound sources (sound) Pack audio data Send to audio Hardware NPC presentation Select visible subset (Select resolution) Animate Pack Render NPC data Player presentation Animate Pack Render End

Game Framework Complete game framework Game logic Player update Sense player input (chap. 5) Compute restrictions (chap. 22) Update player state World update (chap. 6-9) Passive elements (chap. 4) Pre-select active zone for engine use Logic-based elements Sort according to relevance Execute control mechanism Update state AI Based elements Sort according to relevance Sense internal state and goals Sense restrictions Decision engine Update world state End Game presentation World presentation (chap. 6-14, 17-21) Select visible subset (graphics) Clip Cull Occlude (Select resolution) Pack geometry Render world geometry Select audible sound sources (sound) Pack audio data Send to audio Hardware NPC presentation (chap. 15) Select visible subset (Select resolution) Animate Pack Render NPC data Player presentation (chap. 15) Animate Pack Render End

Networked Game Architecture ■ Networked Game (chap. 10)  From another player’s standpoint, your character is really just an NPC  Some minor changes Player update section every player update is followed by a broadcast message that sends the newly computed position to other gamers AI system A special type of AI module − Receive data from the communications channel − Reflects it to the logical gaming environment

Networked Game Architecture Game logic Player update Sense player input Compute restrictions Update player state Broadcast player state World update Passive elements Pre-select active zone for engine use Logic-based elements Sort according to relevance Execute control mechanism Update state AI Based elements Sort according to relevance Sense internal state and goals Sense restrictions Decision engine Automatic AI module Special-case AI module (Receive data from N/W, Reflect it to the logic) Update world state End

The Programming Process ■ The stages of game project  Preproduction Working prototype of the game Help establish workflows, test the content and technology production pipeline Help build an accurate picture of the road ahead − Budget, milestones, team structure This demo will also used to showcase the potential of the game to customers and publisher  Production (long process: 1-3 years) Divide into milestones (both monthly and trimonthly) Make sure the game development at the desired speed Show the publisher the rate of the process After the testing process(1-3 months), the final version of the game (Gold Master) is created The Gold Master is sent for replication, put in nice boxes and sent to stores (about 2 weeks)  Maintenance Support must be provided Patches, editing tools for the fan community, additional missions Networked games have a long, sometimes indefinite, maintenance time

Preproduction ■ Preproduction: Where Do Ideas Come From?  A central idea of what the gameplay will be like Express in a single sentence that defines the genre and gameplay as well as your role in the story Start with a strong narrative description Start with some unique and impressive technology

Preproduction  Single sentence Your initial sentence must be answer Who is the player? | What are his goals? What’s the genre? | How does the game play? Ex) “The game is a first-person shooter, with some outdoors area and large monsters, where you are a warrior trying to save the princess”  Narrative description Harder to code Ex) “Your are a scientist in a military complex full of soldiers who are trying to conquer the world”  Technology (more dangerous game type) The majority of your audience isn’t interested in technology Technology does not sell game or make them fun Ex) “Let’s build a game with this brand new outdoors renderer” The safest bet is working from a core gameplay idea and may be some narrative elements, and discussing the best technological choice to convey the game world

Preproduction ■ Discussing Feature Sets  Define a list of feature to be implemented into the game  Expansion-contraction process Getting a reasonable feature set laid out on paper Expansion phase Every feature to be added to the game Put all your crazy ideas on a blank sheet of paper Contraction phase Review the list, merging those features that are similar Ex) “poisons” and “power-ups”  “items that affect the life level” Review the result of the session Choose which clusters to implement − Large clusters, small clusters, single features

Preproduction  Minimax matrix A 2D matrix of cost versus benefit Minimize disadvantages and maximize advantages Advantages − User-perceived value − Generality Disadvantage − Coding size − Coding difficulty

Preproduction  Minmax matrix ( 비용 : 이익 ) Minimin Features that are not important for the player but are easy to code They should be coded at the very end of the project Ex) birds flying by in a 3D adventure Maximin Features that offer little or no benefit in terms of the experience but are hard to code They should be dropped immediately Ex) car racing game  see the driver inside the car Minimax Features that add a lot to the player‘s experience and are simple to code They should all be built into the game Ex) RPG game  configure the character’s look Maximax Features that define the gameplay experience and are hard to code Ex) flight simulation game  an outdoor renderer A Twofold analysis must be made − Is there an easier implementation that convert a maximax feature into a minimax feature? − Is your team capable of handling the feature? Select some features and forget about the rest

Production ■ Production: Milestones Are King  With all the core gameplay in place for your game prototype  do’s and don’ts list More is not better “Emergency personnel” to help out − Choose people who have all the information on the project beforehand “On time: is better than “more ambitious” Sold per year sell at Christmas (50-60%) Try not to add new ideas to it in middle of the project Surgical teams and key members are a risk A key member left in the middle of the production?? Order of execution Distinction between the core features and the accessories Useful to display the components to code and their order of execution in a graph

Production Production graph

Maintenance ■ Maintenance  The goal of maintenance must be to maximize the enjoyment of the product by the consumer To make the life cycle as long as possible  Some ideas taken from successful project Release new content for game Extra mission or characters Provide users with contents creation tools Make sure they are suitable for end users − Using editor must be an enjoyable experience Ex) The Sims  tools to allow user-creation contents MMOG Keep a living community with ongoing activities  A great time to organize, archive, and document