Skip to content

Dark Places Master Server (ID Tech engines )

Notifications You must be signed in to change notification settings

lschulz/dpmaster-scion

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This fork adds support for the SCION protocol to dpmaster.

Listening on SCION Addresses
----------------------------
The "--listen" option accepts SCION addresses in the form ISD-AS,IP:Port. If no
listen addresses are specified, dpmaster will listen on all interfaces. Since
SCION does not support wildcard addresses, SCION picks a default local address
(usually 127.0.0.1).

Protocol Extensions
-------------------
The "getserversExt" message accepts the new filter option "scion" that will
cause dpmaster to return SCION addresses even if the request was made using
plain IP. By default only a request sent over SCION is answered with SCION
addresses as to maintain compatibility with non-SCION clients.

The `getserversExtResponse` message returns SCION addresses as 2 bytes ISD and
6 bytes ASN followed by the IPv4 or IPv6 address. SCION addresses with an IPv4
host component are preceded by the characters "$\". Addresses with an IPv6 host
component are preceded by "$/".

SCION Tests
-----------
The script "test-scion.py" runs a basic test of the SCION support. In order to
run the tests, first set up the "tiny" or "tiny4" topology from the SCION
repository. Run dpmaster as

$ export SCION_DAEMON_ADDRESS=127.0.0.12:30255
$ dpmaster -v4 --allow-loopback

Then run the tests:

$ export SCION_DAEMON_ADDRESS=127.0.0.19:30255
$ testsuite/test-scion.py

Known Issues
------------
Daemonizing dpmaster with the "--daemon" option corrupts the state of the
program, therefore the daemon option is disabled. If you want do run dpmaster as
a daemon, use the "daemonize" command instead.
See golang/go#31860 for an explanation.


--------------------------------------------------------------------------------
                                Original Readme
--------------------------------------------------------------------------------

                         Dpmaster, an open master server
                         -------------------------------

                               General information
                               -------------------


1) INTRODUCTION
2) COMMAND LINE SYNTAX
3) BASIC USAGE
4) CONTACTS & LINKS


1) INTRODUCTION:

Dpmaster is a lightweight master server written from scratch for DarkPlaces,
LordHavoc's game engine. It is an open master server because of its free source
code and documentation, and because its Quake III Arena-like protocol allows it
to fully support new games without having to restart or reconfigure it. In
addition to its own protocol, dpmaster also supports the master protocols of
"Quake III Arena" (Q3A), "Return to Castle Wolfenstein" (RtCW), and
"Wolfenstein: Enemy Territory" (WoET).

Several game engines currently support the DP master server protocol: DarkPlaces
and all its derived games (such as Nexuiz and Transfusion), QFusion and most of
its derived games (such as Warsow), and FTE QuakeWorld. Also, IOQuake3 uses it
for its IPv6-enabled servers and clients since its version 1.36. Last but not
least, dpmaster's source code has been used by a few projects as a base for
creating their own master servers (this is the case of Tremulous, for instance).

If you want to use the DP master protocol in one of your software, take a look
at the section "USING DPMASTER WITH YOUR GAME" in "doc/techinfo.txt" for further
explanations. It is pretty easy to implement, and if you ask politely, chances
are you will be able to find someone that will let you use his running dpmaster
if you can't have your own.

Although dpmaster is being primarily developed on a Linux PC, it is regularly
compiled and tested on Windows XP and OpenBSD, including on non-PC hardware when
possible. It has also been run successfully on Mac OS X, FreeBSD, NetBSD and
Windows 2000 in the past, but having no regular access to any of those systems,
I cannot guarantee that it is still the case. In particular, building dpmaster
on Windows 2000 may require some minor source code changes due to the addition
of IPv6 support in dpmaster, Windows 2000 having a limited support for this
protocol.

Take a look at the "COMPILING DPMASTER" section in "doc/techinfo.txt" for more
practical information on how to build it.

The source code of dpmaster is available under the GNU General Public License,
version 2. The complete text of this license is in the file "doc/license.txt".


2) COMMAND LINE SYNTAX:

The syntax of the command line is the classic: "dpmaster [options]". Running
"dpmaster -h" will print the available options for your version. Be aware that
some options are only available on UNIXes, including all security-related
options - see the "SECURITY" section in "doc/manual.txt".

All options have a long name (a string), and most of them also have a short name
(one character). In the command line, long option names are preceded by 2
hyphens and short names by 1 hyphen. For instance, you can run dpmaster as a
daemon on UNIX systems by calling either "dpmaster -D" or "dpmaster --daemon".

A lot of options have one or more associated parameters, separated from the
option name and from each other by a blank space. Optionally, you are allowed
to simply append the first parameter to an option name if it is in its short
form, or to separate it from the option name using an equal sign if it is in its
long form. For example, these 4 ways of running dpmaster with a maximum number
of servers of 16 are equivalent:

   * dpmaster -n 16
   * dpmaster -n16
   * dpmaster --max-servers 16
   * dpmaster --max-servers=16


3) BASIC USAGE:

For most users, simply running dpmaster, without any particular parameter,
should work perfectly. Being an open master server, it does not require any
game-related configuration. The vast majority of dpmaster's options deal with
how you want to run it: which network interfaces to use, how many servers it
will accept, where to put the log file, etc. And all those options have default
values that should suit almost everyone.

That being said, here are a few options you may find handy.

The most commonly used one is probably "-D" (or "--daemon"), a UNIX-specific
option to make the program run in the background, as a daemon process.

You can also use the verbose option "-v" to make dpmaster print extra
information (see "OUTPUT AND VERBOSITY LEVELS" in "doc/manual.txt").

Finally, if you intent to run dpmaster for a long period of time, you may want
to take a look at the log-related options before starting it (see the LOGGING
section in "doc/manual.txt").

More options and their descriptions can be found in "doc/manual.txt", so feel
free to read this file if you have specific needs.


4) CONTACTS & LINKS:

You can get the latest versions of DarkPlaces and dpmaster on the DarkPlaces
home page <http://icculus.org/twilight/darkplaces/>.

If dpmaster doesn't fit your needs, please drop me an email (my name and email
address are right below those lines): your opinion and ideas may be very
valuable to me for evolving it to a better tool.


--
Mathieu Olivier
molivier, at users.sourceforge.net

About

Dark Places Master Server (ID Tech engines )

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 73.4%
  • Perl 22.0%
  • Python 3.8%
  • Other 0.8%