This program package comes with ABSOLUTELY NO warranty whatsoever. Use it at your own risk! The author can not be held responsible for any damage caused by this program package.
This program package is distributed under the terms of the GNU General Public License. See the file COPYING in the root directory of the program package for more details.
Before reporting a bug, see the list of known bugs.
SpaceDuel3D is a small multiplayer game for Solaris and Linux workstations written by Gustav Taxén (nv91-gta@nada.kth.se). The aim of the game is simple: blow other spacecraft into smithereens while avoiding colliding with asteroids. SpaceDuel3D should not be considered a "real" game - it should rather be seen as a side effect of trying out ideas for a more advanced game. In due course (and if time permits) the experience I've gained from implementing SpaceDuel3D will be part of a larger project. But as it is, SpaceDuel3D shows that it is possible to use OpenGL for other things than scientific visualization and that it is possible to create simple OpenGL-based games that runs reasonably fast on a slow Pentium box without hardware graphics acceleration.
Not required, but highly recommended:
Follow these steps:
1. Obtain a Linux or Solaris box.
Make sure everything works and that the X window system is up and running. Also make sure that networking is enabled if you want to do multiplayer.
2. Get and install Mesa.
If you haven't got a copy of Mesa 2.3 or later installed on your system, you can get it from the Mesa homepage (http://ssec.ssec.wisc.edu/~brianp/Mesa.html). Note the location of the Mesa libraries and header files.
3. Get and install GLUT.
If you haven't got a copy of GLUT 3.5 or later installed on your system, you can get it from GLUT homepage (http://reality.sgi.com/mjk/glut3/glut3.html). Note the location of the GLUT libraries and header files.
4. Get and install gcc.
If you're running a reasonably new distribution of Linux and have succeeded in compiling Mesa and GLUT, you should already have a working installation of gcc. If not, you can get information on how to obtain a copy from the GNU homepage (http://www.gnu.org/).
5. Edit the Makefile to match your system.
There are two Makefiles in the src directory of the SpaceDuel3D
distribution, one for Linux and one for Solaris. Copy the one approrpriate
for your system to the file Makefile
by entering
cp Makefile.linux Makefile
or
cp Makefile.solaris Makefile
Then edit the Makefile to match your system.
6. Compile.
Compile SpaceDuel3D by entering
make
You shouldn't receive any warnings or errors whatsoever. If you do, something is probably wrong. If, after checking the list of system requirements and the Makefile paths again, you still can't get the code to compile, contact me by email using the address above.
7. Install the executables.
After the compilation is finished, you should have two executables in the
src directory, server
and client
.
These, together with all .ppm
files are those needed to run
SpaceDuel3D. If you wish, you can copy them to another directory.
8. Set the run-time linker paths.
Make sure that the LD_LIBRARY_PATH
environment
variable includes the path to the OpenGL and GLUT libraries. See
your shell manual for information on how to set environment variables.
SpaceDuel3D is divided into two executables, a server and a client. The server program does all simulation while the client draws the graphics and receives user input. To play the game, a server must be running. Clients can then connect to the server over the network (or locally, if they are running on the same machine as the server). To start the server, enter
server
port
where port is a socket port (usually 1024 or above). To connect a client to the server, enter
client
host port [options]
where host is the Internet name of the machine the server is
running on (use localhost
if it is running locally) and
port is the socket port the server is listening on.
-notextures
-dithering
-2
-starfield
-ambient
aEach client is represented by a vessel in the game. The vessel is controlled from the client by using the keyboard and the mouse. When the mouse cursor is in the client window, click the left mouse button to enable mouse steering. The space bar fires a blast. The 'a' and 'z' keys control the vessel speed. The keys 'f' and 'v' controls roll.
The two radar screens at the bottom of the viewport shows asteroids (grey), blasts (yellow) and other vessels (red). The left radar screen shows what's in front of your vessel and the right radar screen shows what's behind. The radar range is limited, so if you can't see your opponent, look around!
If you try to leave the asteroid field, the viewport will flash red to indicate that you have five seconds to return. Cheating is not allowed!
...please check the SpaceDuel3D homepage (http://www.student.nada.kth.se/~nv91-gta/sd3d/) buglist. It is possible that someone else already have discovered the bug you found.
Also keep in mind that SpaceDuel3D is in no way a commercial-quality game and never was intended as such. The basic rules and features of the game will (most probably) not change. Some things that won't be added even if reported as limitations are
I will try to fix bugs that causes the game to crash, though. Suggestions that are easily implemented may also be part of later releases.
To submit a bug report or a suggestion, send an email to me, Gustav Taxén, at nv91-gta@nada.kth.se. Please put the word 'SpaceDuel3D' or 'sd3d' in the subject field - it makes it easier for me to maintain my mail.