SpaceDuel3D 1.0 User's Manual


IMPORTANT

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.

Introduction

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.

Requirements

Not required, but highly recommended:

Installation

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.

Starting the game

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.

Client options

-notextures
Disable asteroid texturing.
-dithering
Enable dithering.
-2
Make the SpaceDuel3D window twice as large as normal. Enabling this option makes the game window 640x480 pixels. Normal size is 320x200.
-starfield
Enable the textured starfield.
-ambient a
Set global ambient light factor to a (must be in the range [0, 1]). This option have effect on asteroids and vessels.

Controls

Each 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!

Known bugs and limitations

Before submitting a bug or limitation report...

...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.

Where to get more information


Gustav Taxén