80 likes | 205 Views
Networked Physics. Ogre, Bullet, OgreBullet , and RakNet. Introduction. Problems with networking a video game. Key parts of each library needed to create a networked game. How the parts of each library work together to help us achieve our goals. Implementation Details.
E N D
Networked Physics Ogre, Bullet, OgreBullet, and RakNet
Introduction • Problems with networking a video game. • Key parts of each library needed to create a networked game. • How the parts of each library work together to help us achieve our goals. • Implementation Details.
Problems with Net Working video game • Knowing when a scene node has been moved. • Knowing when a node has been added into the scene. • Knowing when a node is removed from the scene. • Knowing everything about each changing element within the scene. • There is still more to keep track of but this is only the thing which relate the scene.
Problem Summary • Keep track of scene. • Make updates to the scene. • Compute physics of elements within the scene.
Key parts of each library needed to create a networked game • Libraries • Ogre – Rendering and Scene Graph • Bullet – Physics. • OgreBullet – ties and Bullet and Ogre together. • RakNet – Network communication.
So which parts of our libraries can help solve our goals? • From Ogre • Ogre::SceneNode can be used for keeping track of the items in the scene via name. • Each Scene Node has a name, which must be unique throughout the whole scene. • From Bullet • btMotionState is the class which can be used to receives updates for bullet.
So which parts of our libraries can help solve our goals? • RakNet • We need message identifiers and the ability to send names, positions and rotations easily. • So that means the DefaultMessageIDTypes and the RakNet::BitStream.
So which parts of our libraries can help solve our goals? • From OgreBullet • Because of the nature of OgreBullet we need multiple things from it, being those classes within the library which bring Ogre and Bullet together. • OgreBulletCollision::ObjectState is the type which derives from btMotionState. • OgreBullet doesn’t do anything directly with Ogre::SceneNode creation. Which means we can set the name ourselves.