200 likes | 369 Views
Final presentation saswat , venkat , vivek , vaibhav , jian , revant. Ixion. And i t 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
E N D
Final presentation saswat, venkat, vivek, vaibhav, jian, revant Ixion
What we promised ...back in the beginning It was ambitious
Today we deliver thatandmore!! • 3D racing/combat game • Mono wheel vehicle • Offensive/defensive weapons • Missiles • Turrets • Spikes • Smoke Bombs • 3 game modes • death match • races • style Networking Motion blur Dynamic lighting …
And it was not easy • Open source graphics engine • Networking • Physics • 3D sound • Race mode • Frame rates • Game Architecture • 3D art But .. We survived
Open source graphics engine • Irrlicht • Recompiled source for certain features we wanted • GUI events • .B3d loader • Optimized a few packages • Were at mercy of open source forums • Poor documentation
Networking • Lost / Out of order packets • Synchronize state of game objects • LAN server discovery • Non linear development • Did not decide on networking initially • Efficient serialization • Works over wifi
Beyond Network Programming • Interpolate between messages • Prevent ‘jumping’ t = 0 t = 1
Networking …. • The cascade • Networked sound • In-game chat • Did the missile hit? • Game states • Lobby UI • …
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… • Anisotropic friction model for Skid • Based on a piecewise cubic Hermitespline. • Varies with speed and tire pressure
Physics… • ‘Tunneling’ • Go through walls at high speeds • Implemented custom CCD [continuous collision detection] • Visual debugging over the network • Keep graphics and physics world in sync
Optimizations • 20 fps • Octree for each mesh • Careful level design • Memory management • Reuse/Pre allocate objects • Optimized triangle counts for meshes • Sound Channel Management
Our Architecture • C++ memory management, dangling pointers, network packets, sound, physics, arghhh • Our solution: • Reusable game engine • Abstracts networking, physics and graphics, sound • Fully Extendible • Game play programmers only worry about game level details • Plan to release as open source
Mode Challenges • Race • Update rankings in real time • Cool way points system • Wrong way detection • Synchronize times • Style • Robust detection of ledge rides, skids etc. • Deathmatch • Networked Kills vs Deaths
3D art • No 3D art experience • Had to learn 3D design tools • Challenges with UI design, tracks and general world objects • Realistic Light mapped environment • Dynamic lighting • Motion Blur
Content Pipeline • Smooth content pipeline • Used IrrEdit to create maps • No support for custom user data • Extended the XML parser • Level Manager • FMOD designer • Auditioning tool • 3D Engine sound.. With gear shifts