It is NOT a VRML2 world system (there are fundamental computer graphics reasons why VRML worlds will always be slow), though there are plans to include VRML2 as a world data format.
Features include: Multiplayer Client-Server architecture, Editable worlds and textures, and projectile weapons.
Obsidian is now a parked project, and no further work will be done on it. Feel free to use this code and study the thinking behind it, but we do NOT advise using it as the basis for any virtual world projects you may have in mind.
Obsidian is an extensible virtual world system with a fullblown multiplayer client-server architecture. It is NOT a VRML2 world system (there are fundamental computer graphics reasons why VRML worlds will always be slow), though there are plans to include VRML2 as a world data format.
Multiplayer Client-Server architecture
Generic TCP/IP hence works natively across the Internet
Full 3D headsup with texture mapping
Runs acceptably on a 486, screams on a Pentium
Editable worlds and textures
Supports some forms of IMPOSSIBLE ARCHITECTURE (eg. rooms that are bigger inside than out, corridors that curve back on themselves)
Projectile weapons (rudimentary, anybody is welcome to add more spectacular violence if they can)
We have decided to make the source code available for those who are interested in compiling it up and having a play with it. Feel free to send in any improvements, patches, or bugfixes you may make.
Remember that for all Obsidian's sophistication, this is Alpha code. It is not yet an RPM or other standard install, though we are trying to make it as nice at this stage as possible.
You'll need a linux machine with svgalib (see below for other platforms) and the "dialog" utility to get it up and running, and many linux distributions have these (or else they are quick to obtain). We used RedHat 4.1 (Vanderbilt) Linux on our development machines.
- Andrew Donkin reports the following: I tried building Obsidian on my Slackware 3.something box, and found a clash with the GTK/Gimp glib.h.
It first appeared while compiling glib/graphics.c
The easiest solution was
mv /usr/local/include/glib.h /usr/local/include/glib.h.old
...before trying to build Obsidian. A cleaner solution, I guess, would be to swap the order of "-I/usr/local/include -I../include".
Other than that, it built fine.
- Obsidian is governed by the Obsidian Artistic License.
- This is alpha code, it may crash. We take NO responsibility for it. Just like any other software producer. We have tried to make it run as nicely as possible, but it is using svgalib calls so if it does lock you could lose the console.
- The "obsidian" script that starts the client in an easy to use manner requires the "dialog" program to be installed, which comes with the standard RedHat distribution. If you can't find "dialog", inspect the contents of the "obsidian" script to see how to run the client from the command line (its easy!).
- We have included the source code to the TYPHOON database engine, by Thomas B. Pedersen, which is required to compile Obsidian.
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: