virtual reality for x on the cheap hi everyone i thought that some people may be interested in my vr software on these groups announcing the release of multiverse multiverse is a multi user non immersive x windows based virtual reality system primarily focused on entertainment research features client server based model using berkeley sockets no limit to the number of users apart from performance generic clients customizable servers hierachical objects allowing attachment of cameras and light sources multiple light sources ambient point and spot objects can have extension code to handle unique functionality easily attached functionality client the client is built around a fast render loop basically it changes things when told to by the server and then renders an image from the user s viewpoint it also provides the server with information about the user s actions which can then be communicated to other clients and therefore to other users the client is designed to be generic in other words you don t need to develop a new client when you want to enter a new world this means that resources can be spent on enhancing the client software rather than adapting it the adaptations as will be explained in a moment occur in the servers this release of the client software supports the following functionality o hierarchical objects with associated addressing o multiple light sources and types ambient point and spot o user interface panels o colour polygonal rendering with phong shading optional wireframe for faster frame rates o mouse and keyboard input some people may be disappointed that this software doesn t support the powerglove as an input device this is not because it can t but because i don t have one this will however be one of the first enhancements server s this is where customization can take place the following basic support is provided in this release for potential world server developers o transparent client management o client message handling this may not sound like much but it takes away the headache of accepting and terminating clients and receiving messages from them the application writer can work with the assumption that things are happening locally things get more interesting in the object extension functionality this is what is provided to allow you to animate your objects o server selectable extension installation what this means is that you can decide which objects have extended functionality in your world basically you call the extension initialisers you want o event handler registration when you develop extensions for an object you basically write callback functions for the events that you want the object to respond to current events supported init move change collide terminate o collision detection registration if you want your object to respond to collision events just provide some basic information to the collision detection management software your callback will be activated when a collision occurs this software is kept separate from the worldserver applications because the application developer wants to build a library of extended objects from which to choose the following is all you need to make a world server application o provide an initworld function this is where you choose what object extensions will be supported plus any initialization you want to do o provide a positionobject function this is where you determine where to place a new client o provide an installworldobjects function this is where you load the world wld file for a new client o provide a getworldtype function this is where you tell a new client what persona they should have o provide an animateworld function this is where you can go wild at a minimum you should let the objects move by calling a move function and let the server sleep for a bit to avoid outrunning the clients that s all there is to it and to prove it here are the line counts for the three world servers i ve provided generic lines dactyl lines more complicated collision detection due to the stairs will probably be improved with future versions dogfight lines location this software is located at the following site ftp u washington edu directory pub virtual worlds file multiverse tar z futures client o texture mapping o more realistic rendering i e z buffering or similar gouraud shading o hmd support o etc etc server o physical modelling gravity friction etc o enhanced object management interaction o etc etc both o improved comms i hope this provides people with a good understanding of the multiverse software unfortunately it comes with practically zero documentation and i m not sure whether that will ever be able to be rectified i hope people enjoy this software and that it is useful in our explorations of the virtual universe i ve certainly found fascinating developing it and i would love to add support for the powerglove and an hmd finally one major disclaimer this is totally amateur code by that i mean there is no support for this code other than what i out the kindness of my heart or you out of pure desperation provide i cannot be held responsible for anything good or bad that may happen through the use of this code use it at your own risk disclaimer over of course if you love it i would like to here from you and anyone with positive contributions criticisms is also encouraged to contact me anyone who hates it dev null and if anyone wants to let me do this for a living you know where to write thanks robert robert acsc com
