games/eduke32: Updated for version 20090313

This commit is contained in:
B. Watson 2010-05-12 17:39:12 +02:00 committed by David Somero
parent 2a35a1671f
commit 54553cabeb
8 changed files with 395 additions and 76 deletions

View file

@ -2,13 +2,25 @@ EDuke32 is a fork of the JFDuke3D port of Duke Nukem 3D (aka Duke3D),
merging it with EDuke to provide many new features for mod authors.
Also included is a map editor (mapster32).
To play the game, you will need the DUKE32.GRP file from either the
Duke Nukem 3D CD-ROM, or from the shareware version of Duke Nukem 3D.
To play the game, you must provide the data files.
For convenience, the shareware GRP file has been packaged as
eduke32_shareware_data, also available from slackbuilds.org.
To play the game, you will need the DUKE32.GRP file from either
the Duke Nukem 3D CD-ROM, or from the shareware version of Duke
Nukem 3D. For convenience, the shareware GRP file has been packaged
as eduke32_shareware_data, also available from slackbuilds.org.
See README_game_data.txt
If you want to play the HRP (High Resolution Pack), get the
eduke32_hires_pack package from slackbuilds.org
To hear the in-game music, either use the Music Pack (see
eduke32_hires_pack), or else install a set of MIDI patches (either
freepats or eawpats) from slackbuilds.org. The game looks for
/etc/timidity/timidity.cfg, but timidity doesn't actually have to be
installed.
By default, the Build utilities (kextract kgroup transpal wad2art wad2map)
are built by this script and installed in /usr/games. If you don't want
these, you can set BUILD_UTILS=no in the environment before running the
SlackBuild script.
Note for 64-bit users: Despite the "32" in the name, this software
builds and runs just fine as 64-bit native binaries :)

304
games/eduke32/eduke32.6 Normal file
View file

@ -0,0 +1,304 @@
.TH EDUKE32 "6" "May 2009" "EDuke32 1.5.0devel 20090313" "User Commands"
.SH NAME
EDuke32 \- Enhanced Duke Nukem 3D Build engine
.SH SYNOPSIS
.B eduke32
\fI[options]\fR \fI[files]\fR
.SH DESCRIPTION
EDuke32 is a fork of the JFDuke3D port of Duke Nukem 3D (aka Duke3D),
merging it with EDuke to provide many new features for mod authors.
.PP
For normal single\-player gameplay, \fBeduke32\fR will usually be run with no
command\-line options. This will display a graphical interface
allowing the user to choose the game and options.
.SH OPTIONS
\fBeduke32\fR is sensitive to spaces between command\-line options
and their arguments. Use the spacing shown here, e.g. \fI\-l2\fR,
not \fI\-l 2\fR. Generally speaking, single\-character options may
not have a space, while multiple character options (e.g. \-cfg)
require a space.
.PP
Options may not be bundled (\fI\-rc1\fR is invalid, use \fI\-r \-c1\fR).
Options are case\-insensitive (\fI\-d\fR and
\fI\-D\fR do the same thing, e.g.)
.PP
Options marked with \fI[*]\fR are disabled when playing the shareware
version of Duke Nukem 3D.
.TP
\fB\-?\fR, \fB\-help\fR
Show the list of command line options.
.TP
\fB\-cfg\fR \fI[file.cfg]\fR
Use an alternate configuration file
.TP
\fB\-c\fR\fI#\fR
Use multiplayer mode #, where 1 = Dukematch, 2 = Coop, 3 = Dukematch (no spawn)
.TP
\fB\-d\fR\fI[file.dmo]\fR
Play a demo. By default, \fBeduke32\fR looks for \fIdemo1.dmo\fR,
\fIdemo2.dmo\fR, etc. in the \fB~/.eduke32\fR directory, and plays
them in order if they're found.
.TP
\fB\-g\fR\fI[file.grp]\fR
Use an extra group file
.TP
\fB\-h\fR\fI[file.def]\fR
Use an alternate def
.TP
\fB\-j\fR\fI[dir]\fR
Adds a directory to EDuke32's search list
.TP
\fB\-l\fR\fI#\fR
Warp to level #, see \-v
.TP
\fB\-map\fR \fI[file.map]\fR
\fI[*]\fR Loads a map
.TP
\fB\-m\fR
Disable monsters
.TP
\fB\-nam\fR
Run in NAM\-compatible mode
.TP
\fB\-ww2gi\fR
Run in WW2GI\-compatible mode
.TP
\fB\-net\fR, \fB\-n\fR, \fB\-p\fR
Networked multiplayer options (see \fBNETWORK PLAY\fR, below)
.TP
\fB\-r\fR
Record demo. The output file will be \fB~/.eduke32/demo1.dmo\fR
(or demo2.dmo if demo1.dmo already exists, or demo3.dmo if 1 and
2 both exist). Unfortunately, there's no way to specify the filename
to record to, and no way to find out from eduke32's log file or
standard output/error messages. Try "ls -t ~/.eduke32/*.dmo | head -1".
.TP
\fB\-s\fR\fI#\fR
Set skill level (1\-4)
.TP
\fB\-setup\fR, \fB\-nosetup\fR
Enables/disables startup window
.TP
\fB\-t\fR\fI#\fR
Set respawn mode: 1 = Monsters, 2 = Items, 3 = Inventory, x = All
.TP
\fB\-usecwd\fR
Read game data and configuration file from working directory
.TP
\fB\-u\fR\fI#########\fR
User's favorite weapon order (default: 3425689071)
.TP
\fB\-v\fR\fI#\fR
\fI[*]\fR Warp to volume #, see \-l
.TP
\fB\-x\fR\fI[game.con]\fR
Load custom CON script
.TP
\fB\-\fR\fI#\fR
Load and run a game from slot # (0\-9)
.SS Debug Options
The following options are considered debugging options, but may be
useful for general play.
.TP
\fB\-a\fR
Use fake player AI (fake multiplayer only; \fB\-q\fR required)
[yes, this means eduke32 has bots]
.TP
\fB\-cachesize\fR \fI#\fR
Sets cache size, in Kb (default: 32768)
.TP
\fB\-f\fR\fI#\fR
Send fewer packets in multiplayer (1, 2, 4) (deprecated)
.TP
\fB\-game_dir\fR \fI[dir]\fR
Duke3d_w32 compatibility option, see -j
.TP
\fB\-gamegrp\fR
Selects which file to use as main grp
.TP
\fB\-i\fI#\fR
Use networking mode (1/0) [appears to be the same as \fB\-n\fR?]
.TP
\fB\-name\fR \fI[name]\fR
Player name in multiplay
.TP
\fB\-nD\fR
Dump default gamevars to gamevars.txt
.TP
\fB\-noautoload\fR
Disable loading content from autoload dir [e.g. to disable
the High Resolution Pack]
.TP
\fB\-nologo\fR
Skip the logo animation
.TP
\fB\-ns\fR
Disable sound
.TP
\fB\-nm\fR
Disable music
.TP
\fB\-q\fR\fI#\fR
Fake multiplayer with # (2-8) players (with \fB\-a\fR, the other
players are "bots"; without it, they stand there like punching bags).
.TP
\fB\-rmnet\fR
Use network config file (OBSOLETE, see -net)
.TP
\fB\-stun\fR
Use UDP hole punching for multiplayer connections
.TP
\fB\-unstable\fR
Force EDuke32 to execute unsafe CON commands (and crash)
.TP
\fB\-w\fR
Show coordinates
.TP
\fB\-z\fR\fI#\fR
Enable line-by-line CON compile debugging at level #
.TP
\fB\-condebug\fR \fI#\fR
Equivalent to \fB\-z1\fR
.SH NETWORK PLAY
Multiplayer games are started via command-line parameters passed to
\fBeduke32\fR This is a short guide to getting a multiplayer game running
between these three hypothetical computers:
.PP
.nf
Host name IP address
faye 192.168.1.2
asuka 192.168.1.5
kaoru 192.168.1.6
.fi
.PP
Keep in mind that the networking features are still being refined and
there are certain issues and caveats to be aware of when using it. The
basic syntax of the network command line is like so:
.PP
\fBeduke32\fR \fI(normal game parameters)\fR \fB\-net\fR \fI(network parameters)\fR
.SS Network parameters
.TP
\fB\-n\fR\fIx\fR:\fIy\fR
Game comm type. x = 0 for master/slave or 1 for peer-to-peer.
If unspecified, y defaults to 2. For more than two players in a
master-slave game, you have to indicate the number on the master. eg:
\-n0 or \-n0:4
.TP
\fB\-p\fR\fIx\fR
Overrides the default port (23513) with x being the new port value.
.TP
\fBaddress:port\fR
An address of a machine. See the items below for more information.
.SS Master/Slave mode
This mode is the easiest mode for use with Internet play since it requires
only the address of the master of the game (the person hosting the game)
be specified by each slave who joins. Here are example command lines each
machine must run to join the game hosted by the machine named 'asuka':
.PP
\fIuser@asuka$\fR eduke32 \-net \-n0:3
.br
\fIuser@faye$\fR eduke32 \-net \-n0 192.168.1.5
.br
\fIuser@kaoru$\fR eduke32 \-net \-n0 192.168.1.5
.SS Peer-to-peer mode
This mode is often useful for playing on a LAN where it is easier to
coordinate and organise the order of peers in the game. This mode will
become simpler to set up in the future but for now this is how to do
it. Peer-to-peer mode requires each machine specify the addresses of
each other machine in the game in the same order, but indicating its
own position in the sequence with the \-n1 option.
.PP
\fIuser@asuka$\fR eduke32 \-net \-n1 192.168.1.2 192.168.1.6
.br
\fIuser@faye$\fR eduke32 \-net 192.168.1.5 \-n1 192.168.1.6
.br
\fIuser@kaoru$\fR eduke32 \-net 192.168.1.5 192.168.1.2 \-n1
.SS Addresses and ports
The networking code is capable of resolving
DNS names to their corresponding addresses, so if your network
is configured with such services, instead of having to specify raw IP
addresses, you can give the computer's DNS host name. (Actually,
the standard system resolver is used, so things like \fB/etc/hosts\fR
or NIS should work fine, as well).
.PP
The default port the game communicates on is 23513. Some users may find it
necessary to set up a forward through their Internet firewall in order to
get games working when playing across the Internet. You can override the
default port via the \-p??? switch where ??? is the new port number. If
a master is running a game on a port other than the default, the slaves
will have to specify the alternative port with address:port notation,
eg. 192.168.1.5:20000
.SH FILES
.TP
\fBduke3d.grp\fR
The primary game data file, containing all the game graphics, art, sound,
music, levels, etc. \fI*.grp\fR files will be searched for in both
\fB/usr/libexec/eduke32/eduke32\fR and \fB~/.eduke32\fR. The startup menu
offers the user a choice of games under the "Game" tab, if multiple .grp
files are found. .grp files are checksummed; if yours doesn't appear
in the menu, it's probably not recognized due to an invalid checksum
(either the file is damaged, or it came from a pirated/hacked/modified
copy of the game).
.TP
\fB/usr/games/eduke32\fR
Shell script wrapper, to make the eduke32 binary appear to work more
like a standard Linux program.
.TP
\fB/usr/libexec/eduke32/eduke32\fR
The actual game binary. Called by the shell script wrapper.
.TP
\fB/usr/share/games/eduke32\fR
System\-wide game data. The High Resolution Pack is normally installed
in \fB/usr/share/games/eduke32/autoload/duke3d.grp/\fR. The last
directory name must match the .grp filename.
.TP
\fB~/.eduke32\fR
Per\-user game data, config files, savegames, and logs.
.SS ~/.eduke32 Contents
.TP
\fBeduke32.cfg\fR
Main config file. Normally not edited directly; use the in\-game
menus instead.
.TP
\fBeduke32_binds.cfg\fR
Key bindings; created by the in\-game setup menu.
.TP
\fBtextures\fR, \fBtextures.cache\fR
The texture cache.
.TP
\fBegam\fR\fI#\fR\fB.sav\fR
Saved games. \fI#\fR is a number between 0 and 9.
.SH LIMITATIONS
Because of its DOS/Windows heritage, the \fBeduke32\fR binary expects to
find its config files, savegames, etc. in the current directory from
which it was run (in fact, it expects to be able to write to the
current directory). To make it behave in a more UNIX\-like way, the actual
binary is called by a wrapper script, which creates and chdirs to a \fB~/.eduke32/\fR
directory, and runs the real binary.
This means that any options that take filenames (such as \fB\-map\fR
or \fB\-cfg\fR) treat them as relative paths from the \fB~/.eduke32/\fR
directory, \fBnot\fR the directory from which the wrapper script was
called.
.PP
In addition, most of the options that take filenames don't seem to
accept anything but a simple filename with no absolute or relative path
components. This means that e.g. demo files to be played back with
the \fB\-d\fR option \fImust\fR reside in the \fB~/.eduke32/\fR
directory.
.PP
It's also worth mentioning here that the game will not abort in case of
errors in command\-line syntax (e.g. nonexistent option, or extra
space between options and argument) or semantics (e.g. trying to warp
to non\-existent level with \-l). If you're trying to use
any of the options described here and they don't seem to work, check
your typing: many typos won't even cause a warning to be printed in
the game's debugging output.
.SH AUTHORS
The Build engine was originally written by Ken Silverman
.PP
EDuke32 includes code by many authors, including Richard Gobeille
and Jonathan Fowler.
.PP
Duke Nukem 3D is copyrighted by 3DRealms, Inc.
.PP
This man page was written by B. Watson, for the SlackBuilds.org project.

View file

@ -3,103 +3,100 @@
# Slackware build script for eduke32
# Written by B. Watson (yalhcru@gmail.com)
# Comment next line to skip building the Build utilities:
BUILD_UTILS=${BUILD_UTILS:-"yes"}
# Modified by the SlackBuilds.org project.
PRGNAM=eduke32
VERSION=${VERSION:-20080709}
SRCDIR=${PRGNAM}_src_${VERSION}
VERSION=${VERSION:-20090313}
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo} # For consistency's sake, use this
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp} # Drop the package in /tmp
OUTPUT=${OUTPUT:-/tmp}
SRCVER=${SRCVER:-20090131}
# TODO: fix the Makefiles so they'll honor external CFLAGS.
# The default flags include -O2 already, which is good enough for now.
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
EXTRAMAKEFLAGS=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
else
echo "Sorry, $PRGNAM can't be compiled on $ARCH with this script (yet)"
exit 1
LIBDIRSUFFIX=""
EXTRAMAKEFLAGS=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
EXTRAMAKEFLAGS="NOASM=1"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG/usr/libexec/$PRGNAM $PKG/usr/bin \
$PKG/usr/share/games/$PRGNAM $OUTPUT
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCDIR
unzip $CWD/$SRCDIR.zip
cd $SRCDIR
rm -rf ${PRGNAM}_src_${SRCVER}
unzip $CWD/${PRGNAM}_src_${SRCVER}.zip
cd ${PRGNAM}_src_${SRCVER}
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
chmod -R a-s,u+w,go+r-w .
cd eduke32
make
# There is no "make install"; binary is already stripped
# Latest src is only available as a diff against the previous
# release, it came from here:
# http://wiki.eduke32.com/stuff/source_code/eduke32_src_20090313.diff
zcat $CWD/${PRGNAM}_src_${VERSION}.diff.gz | patch -p1
for i in eduke32 mapster32; do
cat $i > $PKG/usr/libexec/$PRGNAM/$i
chown root:root $PKG/usr/libexec/$PRGNAM/$i
chmod 0755 $PKG/usr/libexec/$PRGNAM/$i
done
make CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" $EXTRAMAKEFLAGS
# Build the utilities, if requested.
if [ "${BUILD_UTILS:-yes}" = "yes" ]; then
cd build
make utils
for i in kextract kgroup transpal wad2art wad2map; do
install -s -D -m0755 $i $PKG/usr/games/$i
done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp doc/* $PKG/usr/doc/$PRGNAM-$VERSION
cd -
fi
install -D -m0755 $PRGNAM $PKG/usr/libexec/$PRGNAM/$PRGNAM
install -D -m0755 mapster32 $PKG/usr/libexec/$PRGNAM/mapster32
mkdir -p $PKG/usr/man/man6
gzip -9c $CWD/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
# Wrapper script to make things behave nicer
cat $CWD/eduke32.wrapper > $PKG/usr/bin/eduke32
chown root:root $PKG/usr/bin/eduke32
chmod 755 $PKG/usr/bin/eduke32
( cd $PKG/usr/bin ; ln -s eduke32 mapster32 )
install -D -m0755 $CWD/$PRGNAM.wrapper $PKG/usr/games/$PRGNAM
( cd $PKG/usr/games ; ln -s $PRGNAM mapster32 )
# Mapster help files
cp *.hlp *.HLP names.h tiles.cfg $PKG/usr/share/games/eduke32
mkdir -p $PKG/usr/share/games/$PRGNAM
cp *.hlp *.HLP names.h tiles.cfg $PKG/usr/share/games/$PRGNAM
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a ChangeLog* *.txt *.TXT *.sample *.cfg \
$PKG/usr/doc/$PRGNAM-$VERSION
cp ChangeLog* *.txt *.TXT *.sample *.cfg $CWD/README_game_data.txt \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cp $CWD/README_game_data.txt $PKG/usr/doc/$PRGNAM-$VERSION
( cd $PKG/usr/share/games/$PRGNAM
ln -s ../../../doc/$PRGNAM-$VERSION/README_game_data.txt . )
# Icon and desktop link
mkdir -p $PKG/usr/share/applications
cp $CWD/mapster32.desktop $CWD/eduke32.desktop $PKG/usr/share/applications
cp $CWD/mapster32.desktop $CWD/$PRGNAM.desktop $PKG/usr/share/applications
mkdir -p $PKG/usr/share/pixmaps
cp $CWD/eduke32.png $PKG/usr/share/pixmaps
cp $CWD/$PRGNAM.png $PKG/usr/share/pixmaps
# slack-desc
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
# Build the utilities, if requested.
if [ "$BUILD_UTILS" = "yes" ]; then
cd $TMP/$SRCDIR/build
make utils
for i in kextract kgroup transpal wad2art wad2map; do
strip $i
cat $i > $PKG/usr/bin/$i
chown root:root $PKG/usr/bin/$i
chmod 0755 $PKG/usr/bin/$i
done
cp doc/* $PKG/usr/doc/$PRGNAM-$VERSION
echo "$PRGNAM: This package includes the Build engine utiliies (kextract et al)" >> $PKG/install/slack-desc
fi
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz

View file

@ -1,10 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=EDuke32
GenericName=Duke Nukem 3D Engine
Comment=EDuke32 Duke Nukem 3D Engine
Icon=/usr/share/pixmaps/eduke32.png
Icon=eduke32
Exec=eduke32
Terminal=false
Type=Application
Categories=Application;Game;
Categories=Game;ActionGame;

View file

@ -1,8 +1,8 @@
PRGNAM="eduke32"
VERSION="20080709"
VERSION="20090313"
HOMEPAGE="http://www.eduke32.com/"
DOWNLOAD="http://wiki.eduke32.com/stuff/eduke32_src_20080709.zip"
MD5SUM="25dea16254a227b0ad3dffe01ca604bf"
DOWNLOAD="http://wiki.eduke32.com/stuff/source_code/eduke32_src_20090131.zip"
MD5SUM="cf5eb51de024f28e8b24aae2702d459e"
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"
APPROVED="David Somero"
APPROVED="dsomero"

Binary file not shown.

View file

@ -1,10 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=Mapster32
GenericName=Duke Nukem 3D Editor
Comment=Mapster32 Duke Nukem 3D Editor
Icon=/usr/share/pixmaps/eduke32.png
Icon=eduke32
Exec=mapster32
Terminal=false
Type=Application
Categories=Application;Game;Editor
Categories=Game;Editor

View file

@ -1,4 +1,12 @@
eduke32: EDuke32 (fork of the JFDuke3D port of Duke Nukem 3D)
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
eduke32: EDuke32 (enhanced "Duke Nukem 3D" engine)
eduke32:
eduke32: EDuke32 is a fork of the JFDuke3D port of Duke Nukem 3D (aka Duke3D),
eduke32: merging it with EDuke to provide many new features for mod authors.
@ -7,5 +15,5 @@ eduke32:
eduke32: To play the game, you will need the DUKE3D.GRP file from either the
eduke32: Duke Nukem 3D CD-ROM, or from the shareware version of Duke Nukem 3D.
eduke32:
eduke32: For convenience, the shareware GRP file has been packaged as
eduke32: eduke32_shareware_data, also available from slackbuilds.org.
eduke32:
eduke32: