Introduction

Installation

Configuring Objects

Spacecalls

Events

Coordinates

Tips & Tricks

Portable Space EngineBuilder's Guide

Please send comments to Mark Cooke <mpc@star.sr.bham.ac.uk> or vspace@geocities.com

>Installation Overview

The Portable Space Engine has been ported to work with the TinyMUX, TinyMUSH and PennMUSH servers. If you use these servers, much of the hard work of adding the space engine to your game has already been done. If you use a different engine, then you will have to write the interface between the space engine and the server yourself.

Assuming that you use one of the supported servers, the first thing to do is to download the latest version of the space engine from either the primary distribution site at Realm 9091, or the mirror site in the United Kingdom. As of this writing, the latest version is 0.9.7, and the rest of this document will use examples based on the 0.9.x code base. Generally, later releases of the code will be similar to install.

The second step is the most important. Take a complete backup of your current server and game files, so you have something to fallback to if it all goes horribly wrong. Double check to make sure that your backup works!

Next, uncompress and untar the distribution, and then read the README, INSTALL and CHANGES files in the space engine directory for late breaking information and news.

Apply the appropriate patch to your server to add the code needed to interface to the Portable Space Engine to your server.

Add the symbolic link from your MU* server source directory to the space source directory (recommended), or just move the space source tree into your MU* server source tree (not recommended due to later difficulties applying patches).

Edit the spaceconf.h file in the space source directory to select the Portable Space Engine options you want, and then build the space engine by running a standard 'make' for the server. This should link the Portable Space Engine code into the server.

Restart your server. The version information returned in the game should now show a line similar to: Portable Space Engine: Alpha v0.9.7 [22-May-1998].

At this point, the hardcode is installed, and the next step is to start configuring the softcode.

>Detailed Instructions

This section is a basic run through of the setup of the Portable Space Engine 0.9.7 release with TinyMUX 1.5p3. All the commands used to add the space engine to the MUX are shown.

I will make the assumption that you have an installation of unix up and running, a working C compiler, and a working version of gzip and tar. The commands I used are shown in a bold typeface after the 'bash>' prompts.

  • Create a subdirectory, and put the TinyMUX archive into that directory.
    • bash> mkdir mux
    • bash> mv tinymux-1.5p3.tar.gz mux
    • bash> cd mux
  • Uncompress, and untar the TinyMUX or TinyMUSH source code. This will create a number of files, and allow you to apply the appropriate patch. The gzip command recompresses the archive as we will not need it again.
    • bash> gunzip tinymux-1.5p3.tar.gz
    • bash> tar xvf tinymux-1.5p3.tar
    • bash> gzip -9 tinymux-1.5p3.tar
  • Change to the parent directory, and then uncompress, and untar the Portable Space Engine source code. This will create a subdirectory called 'space-0.9.7' with the Portable Space Engine code in it. Again, we recompress the archive once we're done with it.
    • bash> cd ..
    • bash> gunzip space-0.9.7.tar.gz
    • bash> tar xvf space-0.9.7.tar
    • bash> gzip -9 space-0.9.7.tar
  • Create a symbolic link called 'space' from the TinyMUX source directory to the Portable Space Engine source directory. This allows the MUX build process to find the space engine code.
    • bash> cd mux/src
    • bash> ln -s ../../space-0.9.7/src space
  • Apply the patch to the TinyMUX source code to integrate the Portable Space Engine code into the TinyMUX server. The patches for a number of TinyMUX and TinyMUSH server versions are in the space-0.8.6/patches directory. The patches are designed to be applied from the TinyMUX top level directory.
    • bash> cd ..
    • bash> patch < ../space-0.9.7/patches/patch-tinymux-1.5p3
  • Check that the patch applied correctly by searching for rejected patch hunks. The command below should not match any files.
    • bash> ls -laR | grep rej
  • Run the TinyMUX configuration scripts for gdbm and the main TinyMUX source.
    • bash> cd src/gdbm-1.7.3
    • bash> ./configure
    • bash> make
    • bash> cd ..
    • bash> ./configure
  • Next, we change any of the TinyMUX configuration parameters that we do not want as the defaults.
  • Okay, now that the configuration options are to your liking, we build the Portable Space Engine code and the TinyMUX server code. One thing to note is that the TinyMUX 'make depend' command requires that the current directory is in the path, and so I explicitly put it there just prior to the make depend below.
    • bash> cd mux/src
    • bash> PATH=$PATH:.
    • bash> make depend
    • bash> make
  • The next step is to attempt to start the newly compiled server. Change to the TinyMUX game directory, and start the code. You can usually check the server is running using 'ps'.
    • bash> cd ../game
    • bash> ./Startmux
    • bash> ps | grep netmux
  • Attempt to connect to the server, and login as Wizard, and change the password.

Congratulations, at this point you have successfully integrated the Portable Space Engine code and the TinyMUX server.

>PSE Added Features

Installing the Portable Space Engine patch adds a number of new features to your server. Two new attributes are added along with a new function call, and a new flag. Additions are also made to the timing code of the server to call the Portable Space Engine main execution loop. A new configuration option is also available to route space messages to a player which is very useful when setting up.

  • Attribute: UserDBREF
  • Attribute: DataDBREF
  • Function: SC()
  • Flag: SPACE
  • Config Option: space_debug_char

Last modified: 15th March 1998