Final presentation saswat, venkat, vivek, vaibhav, jian, revant.

Post on 05-Jan-2016

222 views 0 download

Tags:

transcript

Ixion

Final

presentation

saswat, venkat, v

ivek, vaibhav,

jian, revant

And it all began with… a wheel

in a 3D world..

What we promised

...back in the beginning

It was

ambitious

Today we deliver that and more!!

3D racing/combat game

Mono wheel vehicle

Offensive/defensive weapons▪ Missiles▪ Turrets▪ Spikes

3 game modes▪ death match▪ races▪ style

Networkin

gMotion blur

Dynamic lightin

g

And it was not easy

Open source graphics engine

Networking

Physics

Race mode

Frame rates

Game Architecture

3D art

But .. We

survived

Open source graphics engine

Irrlicht Hacked code to get features we wanted Recompiled source Profiled and optimized packages Were at mercy of open source forums Poor documentation

EMT_LIGHTMAP_LIGHTING EMT_LIGHTMAP_LIGHTING_M2 EMT_LIGHTMAP_LIGHTING_M4

Networking

Lost / out of order packets

Synchronize state of game objects

LAN server discover

Efficient serialization ▪ Use cheap bit masks▪ Update only when necessary▪ Works over wifi

Non linear development Did not decide on networking initially

Interpolate between messages Prevent ‘jumping’

t = 0 t = 1

Beyond Network Programming

Networking ….

Networking meant more work in other areas▪ Who died and who killed?▪ Did the missile hit?▪ Game states▪ Lobby UI▪ Networked sound▪ In-game chat▪ …

Physics

Why the wheel was hard▪ PhysX’s uses a vertical RayCast wheel model▪ Collision only at the vertical y contact point▪ No wheel-wheel collision

re-invented

The wheel

Physics…

Our wheel implementation Additional shapes for collision response

▪ 2 cylinders and 1 box

Carful grouping of all game objects

.. And a lot of debugging▪ To a point where we almost gave up the idea

Physics…

Anisotropic friction model for Skid Based on a piecewise cubic Hermite

spline. Varies with speed and tire pressure

Physics…

‘Tunneling’ Go through walls at high speeds Implemented custom CCD [continuous

collision detection]

Visual debugging Keep graphics and physics world in sync

Frame rate Issues

20 fps▪ Octree for each mesh ▪ Careful level design ▪ Prioritizable update loop

Custom implementation

Our Architecture

C++ Pointers, types, network packets, sound, physics, aghhh

Our solution:▪ A reusable game engine ▪ abstracts networking, physics and graphics ▪ Fairly extendible▪ Game play programmers only worry about

game level details▪ Planning to release as open source

Race Mode Challenges

Is player A ahead of player B?▪ Update rankings in real time▪ Cool wave points system▪ Adaptive interpolation algorithm

Race AI [may be scraped]▪ Non deterministic, yet intelligent▪ Follow vehicle physics

3D art

Nobody had done 3D art before Our external artist got busy Did the wheel mesh, UI

We Learnt 3D design tools Textured each triangle

Realistic Light mapped environment Dynamic lighting !!

Content Pipeline

Smooth content pipeline

Without further ado …