3d game programming 2d game

Post on 01-Jan-2016

110 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

3D Game Programming 2D game. Ming- Te Chi Department of Computer Science,  National Chengchi University. Outline. 2D game history Simple 2D game example. 2D Video Game History. The first video game. - PowerPoint PPT Presentation

TRANSCRIPT

3D Game Programming2D game

Ming-Te ChiDepartment of Computer Science, 

National Chengchi University

Outline

2D game history

Simple 2D game example

2D VIDEO GAME HISTORY

The first video game

Tennis for Two was a game developed in 1958 on an analog computer, which simulates a game of tennis or ping pong on an oscilloscope.

2D GAME

PONG 1972. – earliest video game

Snake (1970s)

Control a snake to move, and avoid hitting to wall or its growing tail.

Galaxian (1979 by Namco)

Pac Man 1980 by Namco

Game & Watch 1980

•Game & Watch is a line of handheld electronic games produced by Nintendo from 1980 to 1991.

Ball: the first game & watch game

Family Computer(FAMICOM)

Mario series. By Nintendo

Super Mario Bros.1985

Mario Bros.1983

Donkey Kong1981

TetrisDesign by 阿列克謝 · 帕基特諾夫 ( Алексей Леонидович Пажитнов ) in 1984Puzzle game

Super Mario World. 1990

Rich color, Parallax scrolling, zoom and rotate sprite.

Doom 1993

• A landmark 1993 first-person shooter (FPS)video game by id Software.

3D graphics

Social game

Happy Farm

Mobile phone

Angry Birds by Rovioflight control by Firemint

Snake in modern age

2D GAME

What is a Game?

Games are an exercise of voluntary control systems, in which there is a contest between powers, confined by rules in order to produce a disequilibrial outcome.

– Elliot Avedon and Brian Sutton-Smith

Game architecture

Game Loop

init()

update(delta)

paint(delta)

I/O System

Keyboard, mouse

audio

storage

Asset Management

loading

saving

caching

Glut and game loopGame Loop

init()

update(delta)

display(delta)

I/O System

Keyboard, mouse

audio

storage

main() { initglut() init(); RegisterCallback() update(0);

glutMainLoop()}

keyboard(key) { switch(key) { case ’j’: jump() break; }}

update(int i){ //update state glutTimerFunc(delta, update, ++i); glutPostRedisplay();}

display() { //draw something}

Asset Management

Loading & saving

A simple example

A character has three states: stand, walk, and jumpUse “left” and “right”key to move

the characterWhen press “j”, the character will

jump, and the score will increase by 1.

State

Position, direction, Gamesocre

Stand Walk

Jump

Press“left” or “right”

Press “j” to trigger jump()

Press “j” to trigger jump()

class RGBApixmap

RGBApixmap pic; pic.readBMPFile(“stand.bmp”);pic.setChromaKey(232, 248, 248);

// drawpic.blendtex(picX, picY, 1.0, 1.0);

State and Image

Stand Walk

Jump

Stateint whichpPic;

Change Statevoid SpecialKeys(int key, int x, int y){ switch(key) { case GLUT_KEY_LEFT:

picX -= 5;if (whichPic==0)

whichPic=1;else

whichPic=0;DirectState=1; //leftbreak;

case GLUT_KEY_RIGHT:picX += 5;if (whichPic==0)

whichPic=1;else

whichPic=0;DirectState=0; //rightbreak;

}}

void display() { …   if (DirectState==0) {  //向右     pic[whichPic].blendTex(picX, picY, 1, 1);   } else {       //向左     int offset = pic[whichPic].nCols;  //圖的寬度     pic[whichPic].blendTex(picX+offset, picY, -1, 1);     //調整 x位置,並以 x=0為軸翻轉影像   } …}

Font rendering

//Fontchar mss[30];sprintf(mss, "Score %d", Gamescore);

glColor3f(1.0, 0.0, 0.0); //set font color glRasterPos2i(10, 550); //set font start position

void * font = GLUT_BITMAP_9_BY_15;for(int i=0; i<strlen(mss); i++) {

glutBitmapCharacter(font, mss[i]);}

Press J to Trigger jump()void myKeys(unsigned char key, int x, int y){

switch(key){

case ‘J': case ‘j':if(jumpState==0) {

jumpState=1;Gamescore++;jump(0);

}break;

}glutPostRedisplay();

}

Jump motion

void jump(int i){ whichPic=2; //switch state

if(i<=10) {if (i<5) picY+=4;

else picY-=4;

i++;glutTimerFunc( 100, jump, i);

}else {whichPic=0;jumpState=0;

}

glutPostRedisplay();}

i

picY

0 5

Basic elements

Elements Tetrads– Jesse Schell

Mechanics Story

Aesthetics

Technology

Mechanics– the procedures and rules

Story– the sequence of events that unfolds in

your game

Aesthetics– how your game looks, sounds, tastes,

and feels.

Technology– any materials and interactions that

make your game possible

Art challenges technology; technology inspires the art.

- John Lasseter

top related