Wolfpack Empire - mirror of https://git.pond.sub.org/empserver
http://wolfpackempire.com/
Member nws_uid is unused since the commit before previous. Remove it. Member nws_seqno is of marginal value, because we write news only through ncache[], and thus aren't prone to the errors sequence numbers can catch. Remove it. Make timestamp selector virtual, computing nws_when + nws_duration, and remove member nws_timestamp. Impact: * In ncache(), the removed timestamp equals nws_when + nws_duration, both for new news and updated news. No change. * delete_old_news() becomes invisible. Before, its move of unexpired news to the beginning of the news file touched all the timestamps. That was unwanted, because the move does not change news, only their storage. Improvement. * empdump no longer flags the imported news changed via the timestamp. This is somewhat unfortunate. Document as bug. With these members removed, struct nwsstr no longer matches struct emptypedstr, so clear news table flag EFF_TYPED and remove union empobj_storage member news. This loses the automatic maintenance of member ef_type via struct emptypedstr. Remove ef_type as well. This shrinks struct nwsstr from 20 to 12 bytes on common 32 bit machines, and from 32 to 16 bytes on common 64 bit machines. Since the server doesn't map the whole news file (EFF_MAP is off), this reduces I/O, while the table's memory use remains the same. Historical note: struct nwsstr is now pretty much what it was back in BSD Empire 1.1. Members ef_type and nws_uid go back to Empire 3 (for C_SYNC?). v4.3.12 added member nws_timestamp, which doubled the size on common 64 bit machines. v4.3.15 added nws_seqno. |
||
---|---|---|
doc | ||
include | ||
info | ||
m4 | ||
man | ||
scripts | ||
src | ||
.gitignore | ||
bootstrap | ||
compile | ||
config.guess | ||
config.sub | ||
configure.ac | ||
COPYING | ||
CREDITS | ||
depcomp | ||
GNUmakefile.in | ||
INSTALL | ||
install-sh | ||
Make.mk | ||
README |
Welcome to Empire 4, code-named Wolfpack. Empire is a multi-player, client/server Internet based war game. Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak, Ken Stevens, Steve McClure This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License (in file `COPYING'), or (at your option) any later version. See file `CREDITS' for a list of contributors. Directory `doc' has additional information. File `doc/README' describes the files there and what they talk about. To build the server and set up a game, follow the steps below. (1) Unpacking the source tree If you downloaded a tarball, unpack it. If you cloned a git repository, run bootstrap. This requires recent versions of Autoconf and Automake to be installed. (2) Building a server Prerequisites: IEEE Std 1003.1-2001 (POSIX.1-2001), GNU make, a curses library, Perl, and either nroff or GNU troff (`groff'). See file `INSTALL' for detailed compilation and installation instructions. Quick guide for the impatient: run configure; make; make install. The last step is optional; everything runs fine right from the build tree. If make fails without doing anything, you're probably not using GNU make. Some systems have it installed as `gmake'. Solaris supports POSIX.1-2001, but you need to set up your environment for that. Try passing SHELL=/usr/xpg4/bin/sh PATH=/usr/xpg6/bin:/usr/xpg4/bin:$PATH to make. See standards(5) for details. (3) Creating a game * Create a configuration for your game. make install installs one in $prefix/etc/empire/econfig ($prefix is /usr/local unless you chose something else with configure). You can use pconfig to create another one. * Edit your configuration file. See doc/econfig for more information. Unless you put your configuration file in the default location (where make install installs it), you have to use -e with all programs to make them use your configuration. * Run files to set up your data directory. * Run fairland to create a world. For a sample world, try `fairland 10 30'. This creates file ./newcap_script, which will be used below. You can edit it to change country names and passwords. Check out fairland's manual page for more information. * Start the server. For development, you want to run it with -d in a debugger, see doc/debugging. Do not use -d for a real game! * Log in as deity POGO with password peter. This guide assumes you use the included client `empire', but other clients should work as well. For help, try `info'. To change the deity password, use `change re <password>'. * Create countries with `exec newcap_script'. Your game is now up! Naturally, there's more to running a real game than that, but that's beyond the scope of this file. Please report bugs to <wolfpack@wolfpackempire.com> or via SourceForge http://sourceforge.net/projects/empserver (registration required). For more information or help, try rec.games.empire on Usenet, or send e-mail to <wolfpack@wolfpackempire.com> and we'll try to answer if we can. Also check out our web site at "http://www.wolfpackempire.com". Have fun! Wolfpack!