Thesis: 3D Tennis game for pocketPC

Preview:

Citation preview

3D Tennis game for Pocket PC

Nils De Moor29/06/07

1

AIMproductions

Overview

I n t r o d u c t i o n

S p e c i f i c a t i o n s

D e s i g n

I m p l e m e n t a t i o n

IntroductionPocket PC

OpenGL ES

Non programmable hardwareVincent3D implementation

Platform limitations

Memory bandwidthFixed point numbersDivision

Overview

I n t r o d u c t i o n

S p e c i f i c a t i o n s

D e s i g n

I m p l e m e n t a t i o n

Specifications (1/2)Graphics

court, crowd, players, ball

Gameplay

Movement with DPad / Joystick

Hit with action button

Service with power bar

Specifications (2/2)Artificial Intelligence

trade-off between realism and perfomance

calculate first bounce-spot

hit-chance randomly

Overview

I n t r o d u c t i o n

S p e c i f i c a t i o n s

D e s i g n

I m p l e m e n t a t i o n

Design

Overview

I n t r o d u c t i o n

S p e c i f i c a t i o n s

D e s i g n

I m p l e m e n t a t i o n

ImplementationBall

BillboardingPhysicsHit algorithm

Player

3D MeshAnimation

Artificial Intelligence

Game loop

Billboarding (1/2)“Adjust an objects’ orientation according to another object (e.g. the camera)”

Look at vector

Billboarding (2/2)Phase 1: Cylindrical billboarding

Phase 2: Extend to Spherical billboarding

Physics (1/2)Calculate forces in each frame based on values of previous frames 2 possible numerical integration techniques

Euler methodposition (x), velocity (v), acceleration (a), timestep (∆tn)xn+1 = xn + vn . ∆tnvn+1 = vn + an . ∆tn

Verlet integration

position (x), constant acceleration (a), constant timestep (∆t), NO velocityxn+1 = xn + (xn - xn-1) + a . ∆t2

Physics (2/2)Comparison:

Hit algorithmInitial parameters

Algorithm

Collision DetectionCheck if point is in planeCheck if ball is in range of the player

Reflection

3D Mesh LoadingTexture format

BMP

TGA

Mesh format

OBJ

3DS

Animation3 reviewed techniques

Skeletal animation

Motion tweening

Frame sequence animation

Artificial IntelligenceSeveral plausible techniques reviewed

Combination of 2 techniques:

Random logic

Let the player hit the ball with a certain randomness

Deterministic algorithm

Calculate where ball will bounce

Move player to that spot

Game LoopStandaard game loop:

Keep update rate constant independent of display rate

needed for physicsinput needs to get registered at all timecorrect AI

while ( game_running ) {update_game();display_game();

}

Screenshots

Conclusion

Many possible techniques for videogames...

... few are usable on Pocket PC’s

Future workMenu + GUI

Complete gamerules

AI enhancements

Extensive playtests

Recommended