240-492 Games Programming with Java - PowerPoint PPT Presentation

Slide1 l.jpg
Download
1 / 48

  • 296 Views
  • Updated On :
  • Presentation posted in: Sports / Games

240-492 Games Programming with Java. Montri Karnjanadecha Andrew Davison. Chapter 1 Introduction to Game Programming. Outline. What is a game? Why do people play games? Taxonomy of computer games The computer as a game technology The game design sequence Design techniques and ideas

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

240-492 Games Programming with Java

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Slide1 l.jpg

240-492Games Programming with Java

Montri Karnjanadecha

Andrew Davison

240-492 Games Programming with Java

::: Introduction :::


Chapter 1 introduction to game programming l.jpg

Chapter 1Introduction to Game Programming

240-492 Games Programming with Java

::: Introduction :::


Outline l.jpg

Outline

  • What is a game?

  • Why do people play games?

  • Taxonomy of computer games

  • The computer as a game technology

  • The game design sequence

  • Design techniques and ideas

  • The future of computer games

    Reference: http://www.erasmatazz.com/free/AoCGD.pdf

240-492 Games Programming with Java

::: Introduction :::


What is a game l.jpg

What is a Game?

  • Board games

  • Card games

  • Athletic games

  • Children’s games

  • Computer games

240-492 Games Programming with Java

::: Introduction :::


Board games l.jpg

Board Games

  • Consists of playing surface divided into sectors populated by a set of movable pieces

  • The pieces are directly related to players

  • Playing surface represents an environment

  • Players maneuver their pieces across the playing surface to:

    • capture other player’s pieces

    • reach an objective

    • gain control of territory

    • etc.

240-492 Games Programming with Java

::: Introduction :::


Card games l.jpg

Card Games

  • Utilize a set of 52 symbols generated from 2 factors:

    • Rank (13 values)

    • Suit (4 values)

  • Revolve around combinations built from these two factors

  • Each legal combination is assigned a victory value

  • The player’s primary concern is the analysis of combinations

240-492 Games Programming with Java

::: Introduction :::


Athletic games l.jpg

Athletic Games

  • Emphasize physical more than mental prowess

  • Skillful use of the body is the primary concern

  • Athletic games vs athletic competitions

  • A race is a competition

  • An athletic game is a competition with interaction between players.

240-492 Games Programming with Java

::: Introduction :::


Children s games l.jpg

Children’s Games

  • Group activities emphasizing simple physical play

  • The player’s primary concern is the use of social skills

  • Examples

    • Hide and Seek

    • Red Rover

    • Tag

    • Kick the Can

240-492 Games Programming with Java

::: Introduction :::


Computer games l.jpg

Computer Games

  • Played on 5 types of computers

    • expensive dedicated machines (arcade)

    • inexpensive dedicated machines (handheld)

    • multi program home games (Nintendo, Play Station)

    • persona; computers

    • large mainframe computers

  • Computer acts as opponent and referee

  • Skill & Action (emphasizing hand eye coordination)

240-492 Games Programming with Java

::: Introduction :::


Computer games cont d l.jpg

Computer Games (cont’d)

  • These S&A games are frequently violent in nature

  • Areas of computer games:

    • adventure games

    • fantasy role playing games

    • war games

240-492 Games Programming with Java

::: Introduction :::


Games common elements l.jpg

Games’ Common Elements

  • Representation

    • A game subjectively represents a subset of reality

  • Interaction

    • Games provide interactive elements.

  • Conflict

    • Arises naturally from the interaction in a game

    • Game agent attempts to block the player to reach his goal

  • Safty

    • Games provide save way to experience reality

240-492 Games Programming with Java

::: Introduction :::


Games vs simulations l.jpg

Games vs Simulations

  • Simulation

    • serious attempt to accurately represent a real phenomenon

    • created for evaluative purposes

  • Game

    • artistically simplified representation of a phenomenon

    • created for entertainment purposes

    • small simulation lacking the degree of detail

  • Flight Simulator vs RED BARON

240-492 Games Programming with Java

::: Introduction :::


Games vs puzzles l.jpg

Games vs Puzzles

  • Cube puzzle vs Tic Tac Toe

  • High jumping vs Basket ball

  • Cube puzzle does not respond to the moves

  • High jump pole does not react to the jumper’s effort

  • Basket ball & Tic Tac Toe: opposing player acknowledge and respond to the player’s action

240-492 Games Programming with Java

::: Introduction :::


Games vs toys vs stories l.jpg

Games vs Toys vs Stories

  • Games

    • allow player to manipulate facts but rules remain fixed

    • indirect contact of audience experience

    • to be experienced many times

  • Toys

    • user is free to manipulate the toy

    • no control to user experience

  • Stories

    • audiences don’t have control of facts presented

    • to be experienced once

240-492 Games Programming with Java

::: Introduction :::


Why do people play games l.jpg

Why do People Play Games?

  • To learn (need not be conscious)

  • Fantasy/Exploration (example of Disney Land)

  • Nose-Thumbing (violent, socially unacceptable)

  • Proving oneself (high score)

  • Social lubrication (card games, board games)

  • exercise (mental and/or physical)

  • need for acknowledgement

240-492 Games Programming with Java

::: Introduction :::


Enjoyment factors l.jpg

Enjoyment Factors

  • Game play

  • Graphics

  • Color

  • Animation

  • Sound

Reality

240-492 Games Programming with Java

::: Introduction :::


A taxonomy of computer games l.jpg

Skill&Action Games

(emphasize motor skills)

Combat games

Maze games

Sport games

Paddle games

Race games

Miscellaneous games

Strategy Games

(emphasize cognition skills)

Adventures

D&D games

War games

Games of chance

Educational games

Children’s games

Interpersonal games

A Taxonomy of Computer Games

240-492 Games Programming with Java

::: Introduction :::


Combat games l.jpg

Combat Games

  • Present a direct and violent confrontation

  • The player must destroy the bad guys

  • The player must avoid being hit

  • Examples

    • Start Raiders

    • Spacewar

    • Asteroids

    • Missile Command

    • Space Invaders

    • Battlezone

240-492 Games Programming with Java

::: Introduction :::


Maze games l.jpg

Maze Games

  • Maze of paths through which the player must move

  • Avoiding or destroying the bad guys

  • The player may make his way to an exit

  • Example

    • Pac-Man

240-492 Games Programming with Java

::: Introduction :::


Sport games l.jpg

Sport Games

  • Model popular sport games

  • Examples

    • football

    • basket ball

    • snooker

240-492 Games Programming with Java

::: Introduction :::


Paddle games l.jpg

Paddle Games

  • Intercepting a projectile with a paddle-controlled piece

  • Easy to develop

  • Examples

    • Pong

    • Breakout

    • Warlords

    • Chicken

240-492 Games Programming with Java

::: Introduction :::


Race games l.jpg

Race Games

  • Examples

    • Downhill

    • Match Racer

    • Night Driver

    • Test Drive

    • Dog Daze

240-492 Games Programming with Java

::: Introduction :::


Adventures l.jpg

Adventures

  • Closer to puzzles than games

  • moving through a complex world

  • collecting tools

  • finding treasure or goal

  • Examples

    • Adventure

    • The Wizard and the Princes

    • Time Zone

    • Deadline

240-492 Games Programming with Java

::: Introduction :::


Game of chance l.jpg

Game of Chance

  • Easy to Program

  • Example

    • Blackjack

240-492 Games Programming with Java

::: Introduction :::


Educational and children s games l.jpg

Educational and Children’s Games

  • Designed with explicit educational goals

  • Examples

    • Hang Man

    • Mammurabi

    • Lunar Lander

    • Rockey’s Boots

240-492 Games Programming with Java

::: Introduction :::


The computer as game technology l.jpg

The Computer as Game Technology

  • responding to the human player

  • acting as game referee

  • providing Real-time play

  • providing intelligent opponent

  • limiting information to the player

  • utilizing data transfer over communication line

  • Limited I/O capability and single-user orientation are major weaknesses

240-492 Games Programming with Java

::: Introduction :::


Design concepts l.jpg

Design Concepts

  • Go with the grain

    • Don’t force the machine to do perform tasks for which it is not well-suited

    • Recgrids vs Hexgrids

  • Don’t transplant

    • A game that succeeds in one technology may not succeed in other technologies

  • Design around the I/O

    • carefully consider what can and cannot be display and what can and cannot be inputted

240-492 Games Programming with Java

::: Introduction :::


Design concepts cont d l.jpg

Design Concepts (cont’d)

  • Keep it clean

    • Sticking close to the theme and eschewing distracting detail

  • Store less and process more

    • Main role of a computer is to process information not store information

    • Fill your program with active bytes not lazy bytes

    • Games with information-rich and process-poor are close to stories

240-492 Games Programming with Java

::: Introduction :::


Design concepts cont d29 l.jpg

Design Concepts (cont’d)

  • Maintain unity of design effort

    • Game must be designed, but computer must be programmed

    • Conflicts between artists and programmer

240-492 Games Programming with Java

::: Introduction :::


Game design sequence l.jpg

Game Design Sequence

  • Choose a goal and a topic

  • Research and preparation

  • Design phase

    • I/O structure

    • Game structure

    • Program structure

    • Evaluation of the design

  • Pre-programming phase

  • Programming phase

  • Playtesting phase

240-492 Games Programming with Java

::: Introduction :::


Choose a goal and a topic l.jpg

Choose a Goal and a Topic

  • A game must have a clearly defined goal expressed in terms of the effect on the player

  • Choose a goal in which you believe

  • The goal of STAR RAIDERS concerns the violent resolution of anger through skillful planning and dexterity. The topic is combat is space

240-492 Games Programming with Java

::: Introduction :::


Choose a goal and a topic32 l.jpg

Choose a Goal and a Topic

  • The goal of EASTERN FRONT 1941 concerns the nature of modern war, the different between fire power and effectiveness. The topic is the war between Russian and Germany

240-492 Games Programming with Java

::: Introduction :::


Research and preparation l.jpg

Research and Preparation

  • Read everything you can on the topic

  • Your game must give the authentic feel

  • Concentrate on goal and topic

  • Write NO CODE!

240-492 Games Programming with Java

::: Introduction :::


Design phase l.jpg

Design Phase

  • Primary objective is to create the outlines of three interdependent structures:

    • the I/O structure

    • the game structure

    • the program structure

  • All 3 structures must be created simultaneously

240-492 Games Programming with Java

::: Introduction :::


I o structure l.jpg

I/O Structure

  • Communicating information between computer and player

  • the most constraining structure

  • I/O composed of input (keyboard, joystick, mouse,etc.) and output (display and sound)

  • Devote special care to the input structure

  • How can a player control the game with a joystick?

  • Choice of input devices

240-492 Games Programming with Java

::: Introduction :::


Game structure l.jpg

Game Structure

  • Internal architecture of causal relationships that define the obstacles the player must overcome

  • Main problem is with realizing possibilities

  • How to distill the fantasy of the goal and topic into a workable system

  • The designed must identify some “key” element from the topic (eg. movement)

240-492 Games Programming with Java

::: Introduction :::


Program structure l.jpg

Program Structure

  • Translate I/O structure and game structure into product

  • Organization of mainline code, subroutines, interrupts and data that make up the entire program

  • Important elements

    • Memory map

    • variables and subroutines definitions

    • document

240-492 Games Programming with Java

::: Introduction :::


Evaluation of the design l.jpg

Evaluation of the Design

  • Does this design satisfy my design goal?

  • Does it do what I want it to do?

  • Will the player really experience what I want him to experience?

  • Examine the stability of the game structure

    • Are there any circumstances in which the game could get out of control?

  • Insure that shortcuts to victory are blocked

  • Don’t hesitate to abort the game

240-492 Games Programming with Java

::: Introduction :::


Pre programming phase l.jpg

Pre-programming Phase

  • To prepare complete game document

  • The tone of the document should emphasize the player’s experience rather that technical considerations

  • Compare first set of document to program structure notes

240-492 Games Programming with Java

::: Introduction :::


Programming phase l.jpg

Programming Phase

  • Easiest phase

  • Requires attention to detail

  • Game failed to live up to their potential because the programmer:

    • did not expend enough effort

    • rushed the job

    • didn’t bother to write in assembly language

240-492 Games Programming with Java

::: Introduction :::


Playtesting phase l.jpg

Playtesting Phase

  • To check for some design and programming problems

  • Have courage to trash a fatal-flawed game

  • test the game yourself to find programming bugs, then let other playtesters to check for bugs in game structure

  • polish the game

  • write the game manual

240-492 Games Programming with Java

::: Introduction :::


Design techniques and ideas l.jpg

Design Techniques and Ideas

  • Balancing solitaire games

    • human vs computer

  • Relationships between opponents

  • Smooth learning curve

  • The illusion of winnability

240-492 Games Programming with Java

::: Introduction :::


Balancing solitaire games l.jpg

Balancing Solitaire Games

  • Vast resources

    • widely used

    • the computer is provided with immense resources that it uses stupidly

    • easy to implement

  • Artificial smarts

    • ad-hoc artificial intelligent routines

    • produce reasonable behavior

      • the computer should not drive its tanks over a cliff or crash spaceships into each other

    • unpredictability (human should not be able to guess)

240-492 Games Programming with Java

::: Introduction :::


Limited information l.jpg

Limited Information

  • To limit the amount of information available to the human player

240-492 Games Programming with Java

::: Introduction :::


Slide45 l.jpg

Pace

  • Make the game fast so that the human player does not have much time to think

240-492 Games Programming with Java

::: Introduction :::


Relationships between opponents l.jpg

Relationships between Opponents

  • Symmetric relationships

    • both sides have equals capability

    • easy to program

  • Asymmetric games

    • almost all solitaire games

  • Triangularity

    • rock-scissors-paper game

  • Actors and Indirect Relationships

    • not a very successful approach

240-492 Games Programming with Java

::: Introduction :::


Smooth learning curve l.jpg

Smooth Learning Curve

  • Flat curve => hard to learn

  • Steep curve => easy to learn

  • A sharp jump => has one trick

  • Many sharp jumps => has many tricks

  • Falling curve => something wrong with the game

  • Upward smoothly => goo game

  • Games without smooth curve frustrates players

240-492 Games Programming with Java

::: Introduction :::


The illusion of winnability l.jpg

The Illusion of Winnability

  • PAC-MAN appears winnable to most players, yet is never quite winnable

  • Clean games encourage all players

  • Careful analysis of the sources of player failure:

    • what trips up the player: game flaws or unwinnable or player mistake?

240-492 Games Programming with Java

::: Introduction :::


  • Login