20
Ixion Final presentati on sasw at, venkat, vivek, vaibhav, jian, revant

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

Embed Size (px)

Citation preview

Page 1: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

Ixion

Final

presentation

saswat, venkat, v

ivek, vaibhav,

jian, revant

Page 2: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

And it all began with… a wheel

Page 3: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

in a 3D world..

Page 4: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

What we promised

...back in the beginning

It was

ambitious

Page 5: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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

Page 6: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

And it was not easy

Open source graphics engine

Networking

Physics

Race mode

Frame rates

Game Architecture

3D art

But .. We

survived

Page 7: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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

Page 8: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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

Page 9: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

Interpolate between messages Prevent ‘jumping’

t = 0 t = 1

Beyond Network Programming

Page 10: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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▪ …

Page 11: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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

Page 12: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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

Page 13: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

Physics…

Anisotropic friction model for Skid Based on a piecewise cubic Hermite

spline. Varies with speed and tire pressure

Page 14: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

Physics…

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

collision detection]

Visual debugging Keep graphics and physics world in sync

Page 15: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

Frame rate Issues

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

Custom implementation

Page 16: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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

Page 17: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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

Page 18: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

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 !!

Page 19: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

Content Pipeline

Smooth content pipeline

Page 20: Final presentation saswat, venkat, vivek, vaibhav, jian, revant

Without further ado …