slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
240-492 Games Programming with Java PowerPoint Presentation
Download Presentation
240-492 Games Programming with Java

Loading in 2 Seconds...

play fullscreen
1 / 48

240-492 Games Programming with Java - PowerPoint PPT Presentation


  • 69 Views
  • Uploaded on

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

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

PowerPoint Slideshow about '240-492 Games Programming with Java' - neith


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

240-492Games Programming with Java

Montri Karnjanadecha

Andrew Davison

240-492 Games Programming with Java

::: Introduction :::

chapter 1 introduction to game programming
Chapter 1Introduction to Game Programming

240-492 Games Programming with Java

::: Introduction :::

outline
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
What is a Game?
  • Board games
  • Card games
  • Athletic games
  • Children’s games
  • Computer games

240-492 Games Programming with Java

::: Introduction :::

board games
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
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
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
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
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
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
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
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
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
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
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
Enjoyment Factors
  • Game play
  • Graphics
  • Color
  • Animation
  • Sound

Reality

240-492 Games Programming with Java

::: Introduction :::

a taxonomy of computer games
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
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
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
Sport Games
  • Model popular sport games
  • Examples
    • football
    • basket ball
    • snooker

240-492 Games Programming with Java

::: Introduction :::

paddle games
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
Race Games
  • Examples
    • Downhill
    • Match Racer
    • Night Driver
    • Test Drive
    • Dog Daze

240-492 Games Programming with Java

::: Introduction :::

adventures
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
Game of Chance
  • Easy to Program
  • Example
    • Blackjack

240-492 Games Programming with Java

::: Introduction :::

educational and children s games
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
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
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
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 d1
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
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
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 topic1
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
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
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
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
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
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
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
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
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
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
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
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
Limited Information
  • To limit the amount of information available to the human player

240-492 Games Programming with Java

::: Introduction :::

slide45
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
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
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
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 :::