netPanzer is an online multiplayer tactical warfare game designed for FAST
ACTION combat. Gameplay concentrates on the core -- no resource management is
needed. The game is based on quick tactical action and unit management in
real-time. Battles progress quickly and constantly as destroyed players respawn
with a set of new units. Players can join or leave multiplayer games at any
time.
A bit of history
The original development of netpanzer was done from PyroSoft inc. Though in
1999 they stop development and released the game 2002 in GPL and it was nearly
forgotten, until Ingo announce it at happypenguin.org. Soon after this
announcement a group of coders did the linux port in roughly 2 weeks, with
another 2 weeks polishing for this release. Now we'll go along and improve the
game...
Building and Installation
The game depends on some tools and libraries to be present, before you can start
building it. Here's a list of them:
- normal gnu compiler and additional tools (g++ version 3.2 or later is required at the moment)
- SCons build tool http://www.scons.org/
- SDL 1.2.5 or later http://www.libsdl.org
- SDL_mixer 1.2.4 or later http://www.libsdl.org/projects/SDL_mixer/
- subversion (needed to download the source code) http://subversion.tigris.org/
Thanks to all the authors of these helpful libraries that made our development
easy and straightforward.
To download the code use the subversion client to download from
svn://svn.berlios.de/netpanzer/tags/netpanzer/
An explample for version 0.8.3 would be:
svn export svn://svn.berlios.de/netpanzer/tags/netpanzer/0.8.3 netpanzer
Note that I use "export" instead of "checkout" to avoid having all the ".svn"
folders spread over the source. This is interesting for Linux distributions.
Building without installing on non Windows
To build the game and run as normal user do the following:
scons
When scons finish without errors the game is ready to play, type this:
./netpanzer
Remember that next time you want to play you have to go to the same folder where
you compiled and type './netpanzer'
Building on windows is a little bit more complicated, developers shouldn't have
any big problem.
MinGW should be installed in C:\mingw
Get the development libraries of SDL for mingw32, copy the include directory to
C:\mingw\include\SDL so you have the file "C:\mingw\include\SDL\SDL.h", and the
lib folder to C:\mingw\lib
Get SDL_mixer development libraries for VC8, copy the header file to
C:\mingw\include\SDL and the .lib file to c:\mingw\lib
Python and scons should be installed and working.
To compile netpanzer run scons on the folder where you have the netpanzer source
code:
C:\Some\Folder\With\Netpanzer> scons
After scons finish without errors you have to copy all the .DLL files from SDL
and from SDL_mixer to the netpanzer folder.
To run you can type 'netpanzer' or click on the netpanzer.exe file in explorer.
Building for distribution on non Windows operating systems
If you plan to distribute NetPanzer for installation (on Linux systems, for example)
there are some extra steps to be taken care.
NetPanzer needs to know where the data files will be stored when the game runs. To
set this data you have to add the parameter "datadir=/some/dir/" at compile time
and NetPanzer will look there for its data files. Example:
scons datadir=/usr/local/games/netpanzer
Using the sample line, after NetPanzer is built, it will look in /usr/local/games/netpanzer
for it's data files.
For versioning, there is a file called "RELEASE_VERSION", the first line on that file will
be the version that NetPanzer will show. You can use that file to change the version of
the game shown. You should modify the file before compilation.
Actually there is no install script, you will have to prepare the script by yourself.
The installation is actually easy, and you only have to copy several files. The following
directories should be copied on the "datadir" destination:
- cache/
- fonts/
- maps/
- pics/
- powerups/
- scripts/
- sound/
- units/
- wads/
If you want to copy some documentation, the "doc" folder has it. There is also the BUGS,
COPYING, ChangeLog, README (this file), RELNOTES and TODO.
"netpanzer.desktop" is a sample file for using on desktop systems.
"netpanzer.png" and "netpanzer.xpm" are some sample icons to be use with the game.
And of course, the file "netpanzer" is the main binary that should be on the PATH.
You can start the game in several ways:
If you compiled yourself NetPanzer (and didn't install), first "cd" to the folder where
you compiled it and type:
./netpanzer
If NetPanzer was installed and is in the PATH, type
netpanzer
It is possible that in your distribution NetPanzer was installed and has a menu item,
if that is the case, just click on the item.
On Windows, you can click on the "netpanzer.exe" file.
Dedicated Server and Configuration Files
You can start a dedicated netpanzer server (a pure server, without any video
output). By starting netpanzer with the -d commandline option.
The server reads the configuration from
$HOME/.netpanzer/config/netpanzer-dedicated.ini
The format is basically the same as the normal configuration file of
netpanzer. Here's a short introduction into the option specific to a server in
the server section of the file:
- serverport [number], default 3030
- Specifies the port which the server will be using.(The server is doing both,
TCP and UDP connections on this port)
- bindaddress [string], default ""
- Allows you to bind the server to a specific IP address (usefull if you have
multiple IP addresses on 1 box)
- logging [yes,no], default no
- When enabled the server creates detailed logs about the matches in the
$HOME/logs directory. This can be usefull for creating statistics about the matches.
- public [yes,no], default yes
- Register at the internet masterservers so that the server will appear in the
serverlist of other players.
- maxplayers [number], default 8
- Number of players and bots that are able to play simultaneously on the server.
- mapcycle [name], default "Cramped, Tight Quarters, Two Villages"
- A comma separated list of maps that this server will use.
- maxunits [number], default 500
- Number of maximum available units for all players. (Each
player will be able to have maxplayers/maxunits units at once)
- gametype [0,1,2], default 0
- Type of game: (0=Objectives, 1=FragLimit, 2=TimeLimit)
- timelimit [number], default 50
- timelimit of the map in minutes (used when gametype = 2)
- fraglimit [number], default 500
- fraglimit of the map (used when gametype=1)
- objectivepercentage [number], default 50
- Percentage of outposts that has to be captured to win the game.(used when gametype=0)
- mapcycling [yes,no], default no
- cycle to next map after a map ended.
- powerups [yes,no], default yes
- allowallies [yes,no], default yes
- allow/disallow players to allie
- cloudcoverage [number], default 65
- Number of clouds flying over the map.
- windspeed [number], default 30
- windspeed that affects particles and clouds
- respawntype [0,1], default 1
- Spawn mode: 0=Round Robin, 1=Random
- autokicktime [number], default 10
- Time before the server rejects the inactive players (in minutes)