Upload
imogen-reed
View
222
Download
0
Tags:
Embed Size (px)
Citation preview
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 …