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.

Slides:



Advertisements
Similar presentations
2000 Prentice Hall, Inc. All rights reserved. 1 Outline 3.1Introduction 3.2Game Loop Components 3.3How to Implement in C# 3.4Adding Image to XNA Project.
Advertisements

DATA PROCESSING SYSTEMS
Basic Computer for Small Business
Cosc 5/4730 Game Design. A short game design primer. A game or animation is built on an animation loop. – Instance variables of “objects” are updated.
Windows XP Basics OVERVIEW Next.
Artificial Intelligence in Game Design Hierarchical Finite State Machines.
1 CS 106, Winter 2009 Class 4, Section 4 Slides by: Dr. Cynthia A. Brown, Instructor section 4: Dr. Herbert G. Mayer,
Cosc 5/4730 Game Design. A short game design primer. A game or animation is built on an animation loop. – Instance variables of “objects” are updated.
1 Game Design Documents. 2 Design Documentation Stages Design treatment or concept paper Design treatment or concept paper Game feasibility Game feasibility.
Game Design Documents.
3D Game Programming All in One By Kenneth C. Finney.
Pencilvania: Architecture Review Presenters: Christopher Buska (Art Director) Michael Gourlay (Developer) Alfred Sterphone, III (Project Manager) Special.
Dr. Brian Durney Computing and Networking Sciences at UVU C S
CHAPTER 17 Creating an Interactive 3D Environment © 2008 Cengage Learning EMEA.
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
SE320: Introduction to Computer Games Week 8: Game Programming Gazihan Alankus.
Systems Software Operating Systems.
INTRODUCTION TO SCRATCH. About Me Resources Scratch Website Learn Scratch Washington-Lee Computer.
CORE MECHANICS. WHAT ARE CORE MECHANICS? Core mechanics are the heart of a game; they generate the gameplay and implement the rules. Formal definition:
Internal/External Computer Components Kim Roselli Emily Mross.
GameMaker.  A lot of Different Definitions  Easier to Say What is NOT a Game  Movie is Not a Game  No Active Participation  Final Outcome is Fixed.
Computer for Health Sciences
Lesson 4 Computer Software
Platforms for Learning in Computer Science July 28, 2005.
Super Pong Andrew Dunsmore CSC436. Overview Purpose Design Specification Software Engineering.
Games 1.Have a reason to design a game. 2.Brainstorm 3.Sift, strain, and find the “good” ideas 4.Prototype 5.Playtest 6.Experience Doc.
XP Tutorial 5 Buttons, Behaviors, and Sounds. XP New Perspectives on Macromedia Flash MX Buttons Interactive means that the user has some level.
FUNDAMENTALS OF PROGRAMMING SM1204 SEMESTER A 2012.
INTRODUCTION TO COMPUTING
Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of Computer Science and Engineering The Ohio State University.
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to.
Fundamentals of Game Design
Computer Components Checklist There are many parts that work together to make a computer work.
Lecture 5: Using Computers: Important Ideas Tonga Institute of Higher Education IT 141: Information Systems.
Fundamentals of Game Design, 2 nd Edition by Ernest Adams Chapter 3: Game Concepts.
1Computer Graphics Input and Interaction Lecture 8 John Shearer Culture Lab – space 2
Multimedia Web Design Professor Frank. Multimedia Combine text, graphics, sounds, and moving images in meaningful ways Use stable technology.
Windows Tutorial Common Objects ACOS: 1, 4. Using the Taskbar 1. Using the taskbar, you can switch between open programs and between open documents within.
CHAPTER 10: CORE MECHANICS Definitions and Mechanisms.
Introduction to Flash Animation CS 318. Topics Introduction to Flash and animation The Flash development environment Creating Flash animations  Layers.
Programming Video Games
2.1. T HE G AME L OOP Central game update and render processes.
“The perfect project plan is possible if one first documents a list of all the unknowns.” Bill Langley.
Foundation year Lec.3: Computer SoftwareLec.3: Computer Software Lecturer: Dalia Mirghani Year: 2014/2015.
Guide to Programming with Python Chapter Twelve Sound, Animation, and Program Development: The Astrocrash Game.
Technology Vocabulary By: Rakeysha Patterson. Search Engine  A computer program that searches documents, especially on the World Wide Web, for a specified.
11 General Game Programming Approach. The program is event-driven The program is event-driven –Messages = events –So as all windows system (for example.
Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context.
 A plan of attack for your games content  Or (more specifically)  A detailed description of all games mechanics, objects, characters, stats, ect… that.
Video Games & Object Oriented Programming. Games.
Super Pong Andrew S. Dunsmore CSC436 August 2004.
University of New Mexico
Super EastGate Jon Caron, Ryan Fleming, Antonio Guarino, and Mike LoVerme Merrimack College Introduction Super EastGate is a 2D side scroller game that.
Introduction to Game Programming Pertemuan 11 Matakuliah: T0944-Game Design and Programming Tahun: 2010.
Computer and Programming. Computer Basics: Outline Hardware and Memory Programs Programming Languages and Compilers.
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 –
THE PARTS OF A COMPUTER WHAT ARE THE PARTS OF A COMPUTER THAT MAKE A COMPUTER A COMPUTER?
Motivates, interests and engages. Teaches problem solving skills. Allows for creativity and imagination. Demonstrates project design. Encourages teamwork.
What’s in a Game? Your Game! Based On: “Tutorial: What is a good game? By Mark Overmars Your Game! Based On: “Tutorial: What is a good game? By Mark Overmars.
Animations in GIMP GIMP Lesson 4 Animations: Chapter 3 pp Beginning GIMP From Novice to Professional.
02 |Introduction to Game Engine Eriq Muhammad Adams J |
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
GAME TESTING REQUIREMENTS AND METHODS GAME DESIGN.
An Introduction to Computers and Visual Basic
Connecting hardware and Booting the computer
Computer Terms Good to Know.
Game Loop Update & Draw.
Tonga Institute of Higher Education IT 141: Information Systems
An Introduction to Computers and Visual Basic
Tonga Institute of Higher Education IT 141: Information Systems
Presentation transcript:

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

Designing Games 3D mathematics for games may be hard but designing games is even harder Having a fun game is a challenging issue If the game is not well-design, the fancy 3D graphics will not do any help Coming up with a game idea is usually not difficult:  The level of Details, final implementation, and the look make the difference between professional and novice games

Types of games The first step for designing a game is to the genre of your game:  Action and Adventure  Fighting games  Sport games  Strategy/war games  Pure puzzle and board games  Mechanical simulations Flying, boating, racing, etc.  Ecosystem simulations Artificial system of some kind such as ant colony, city, etc.

Action & Adventure Strategy/War Sports Puzzles

Simulation: Racing Fighting Ecosystem simulation

Brainstorming Once the type of the game is specified, you must come up with a fun game Brainstorm and through ideas. Existing games, reading science fiction books, and watching 3D movies can trigger your creativity. Keep it simple: don’t bite off more than what you can chew!

Design document and Storyboard Once the ideas are set in your mind, you need to get them on paper A design document outlines the details of the game:  Who are the main characters?  What is the main idea of the game?  How to win the game?  What are the levels of the game?  What are the cool features in the game? Making a storyboard is often the best to start and understand the game

Is it Fun? Reality check:  Will the game be fun?  Will people enjoy it?  Are the “cool features” cool enough to attract people? Be objective and see the game from others’ eyes Remember that the cool features and the attention to details make the game fun

The big picture!

The components of a game A game is a real-time application that includes:  Interactivity: mouse, keyboard, joystick  Visual: the frames drawn into the display  Audio: any sound or music playing during playing A video game is:  A continuous loop that performs logic and draws an image on the screen, usually at a rate of 30 frames per second (fps) or more.  This is similar to how a movie is displayed, except that you are creating the movie as you play.

Components of a game (2) The main game loop! while (!gameover) { get input process input simulate physics and AI redraw } Simple!

The components of a game (3) Initialization  perform the usual operations Memory allocation Graphics device creation and initialization Resource acquisition Loading data from disk. Game Loop  This is the main loop of the game.  It is where the actions of the game begin and continue until the user exists the main game loop.

The components of a game (4) Interactivity  retrieves player inputs  Process the inputs or buffer them for later use in Artificial Intelligence (AI) and game logic AI and Game Logic  The majority of the game code is in here  The artificial intelligence, the physics, and the logic of the game are executed  the results are used to draw the next frame on the screen

The components of a game (4) Rendering  the results of the player’s input and the execution of game AI and logic are used to generate the next frame of animation for the game.  This frame is usually drawn on an off-screen (back) buffer area  A swapping of the front and the back buffer is performed to display the frame.

The components of a game (5) Display synchronization  To avoid a variable frame rate, you must set the frame rate to a fixed value  Use timing/waiting functions to hold the frame rate to a fixed value Cleaning up  When the user exits the game, we have to make sure to release the resources and clean up the system: Delete any pointers Close any files, databases, or connections Return to the window mode if full-screen mode is used

How to control the main loop? The game main loop is usually a finite state machine (FSM) that contains a number of states and the transitions between these states

Show us the code! // implementation of main game loop while (gameState!=GAME_EXIT) { // what state is game loop in switch (gameState) { case GAME_INIT: // the game is initializing // allocate all memory and load the resources initialize(); // move to menu state gameState = GAME_MENU; break; case GAME_MENU: // the game is in the menu mode // call the main menu function and let it switch states gameState = getMenuChoice(); // You can force a RUN state here if you want. break; case GAME_STARTING: // the game is about to run // this state is optional, but usually used to set things up right // before the game is run you might do a little more house keeping here setupForRun(); // switch to run state gameState = GAME_RUN; break;

Show us the code! (2) case GAME_RUN: // the game is now running // this section contains the entire game logic loop // clear the display clearDisplay(); // get the inputs and interact with the user getInput(); // perform logic and AI doLogicAI(); // display the next frame of animation renderFrame(); // synchronize the display wait(); // the only way that state can be changed is through user interaction in the input // section or by maybe losing the game. break; case GAME_RESTART: // the game is restarting // this section is a cleanup state used to put things in order before running again fixUp(); // switch states back to the menu gameState = GAME_MENU; break;

Show us the code! (3) case GAME_EXIT: // the game is exiting // if the game is in this state, then cleanup everything releaseCleanUp(); // set the error word to whatever error = 0; break; default: break; } // end switch } // end while // return error code to operating system return(error);

What is a game engine? Provides the core functionality of the game Allows for reusable software platform and rapid development of games Think of the engine of a car! A game engine usually includes:  A 2D/3D rendering engine  A physics/Collision detection engine  AI  Sound  Processing inputs  Networking Example, Crystal space is an open source game engine

Summary Do you know this? Of course!

For Later Algorithms, data structures, and programming tricks for games Physics and mathematics for games Artificial intelligence:  Determinism  Randomness