This wiki is archived and useful information is being migrated to the main bzflag.org website

Editing BZFlag README

Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: Archived wiki

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
 
<pre>
 
<pre>
    BZFlag 2.4.10
+
    BZFlag 2.0.8
 
http://BZFlag.org/
 
http://BZFlag.org/
Copyright (c) 1993-2017 Tim Riker
+
Copyright (c) 1993 - 2006 Tim Riker
 +
 
 +
Maintainer
 +
==========
 +
 
 +
Tim Riker <Tim@Rikers.org>
 +
http://rikers.org/
 +
 
 +
Original Author
 +
===============
 +
 
 +
Chris Schoeneman
 +
475 Hawthorne Av
 +
Palo Alto, CA 94301
 +
crs23@bigfoot.com
 +
 
 +
See the AUTHORS file for more authorship details.
 +
 
 +
 
 +
Introduction
 +
============
  
 
BZFlag is an Open Source OpenGL multiplayer multiplatform Battle Zone
 
BZFlag is an Open Source OpenGL multiplayer multiplatform Battle Zone
Line 8: Line 28:
 
tank simulation where opposing teams battle for dominance.  The game
 
tank simulation where opposing teams battle for dominance.  The game
 
was originally written for SGI computers running Irix, but now runs
 
was originally written for SGI computers running Irix, but now runs
and is actively maintained on Windows, Linux, Mac OS X, and other
+
and is actively maintained on Windows, Linux, Mac OS X, BSD, Solaris,
platforms.
+
and other platforms. The game is distributed under the LGPL license.
 
+
BZFlag may be redistributed under either the LGPL or MPL licenses.
+
 
+
This is the BZFlag README file.  This file includes introductory build
+
instructions, user community interaction references, information for
+
getting involved in BZFlag development, a manifest of the source code
+
layout, basic usage expectations, contact information, and more.
+
 
+
  
Table of Contents
+
This is the BZFlag README file.  It includes simple build
=================
+
instructions, user community references, other information for BZFlag
    Introduction
+
development, and a manifest of the source code layout.
    Table of Contents
+
    Obtaining BZFlag
+
    Compiling and Installation
+
Short Version
+
Long Version
+
    Communication
+
Internet Relay Chat
+
Forums
+
Wiki
+
    Bug Reports and Support
+
    Providing Contributions
+
    Source Tree Organization
+
    Public Internet Servers and the "list server"
+
    Notes on "CHEAT" servers and network abuse
+
    Project History and Contributions
+
    Contact
+
  
  
Line 44: Line 40:
  
 
Main BZFlag Website:  http://BZFlag.org
 
Main BZFlag Website:  http://BZFlag.org
BZFlag Github Site:  https://github.com/BZFlag-Dev/bzflag
+
BZFlag Project Site:  http://sf.net/projects/bzflag
  
 
The main BZFlag website provides access to most all of the resources
 
The main BZFlag website provides access to most all of the resources
 
available for the game.  The binary and source distributions of BZFlag
 
available for the game.  The binary and source distributions of BZFlag
are, however, provided on the GitHub project site.  Compiled versions
+
are, however, provided on the Sourceforge project site.  Compiled
are distributed as installable packages, disk images, and more, with
+
versions are distributed as installable packages, disk images, and
details varying depending on the platform.  Source code distributions
+
more, with details varying depending on the platform.  Source code
are provided and archived in various formats as well. See the project
+
distributions are provided and archived in various formats as well.
site for the download links.
+
See the project site for the download links.
  
BZFlag is also available directly from GitHub.  To obtain BZFlag from
+
BZFlag is also available directly from CVS.  To obtain BZflag from
git, a bit more familiarity with software development is expected.
+
CVS, a bit more familiarity with software development is expected.
If you're familiar enough, anonymous GIT access is provided from the
+
Sometimes active BZFlag development is on CVS HEAD, sometimes it is on
repository:
+
a branch, sometimes it's in multiple places.  Inquire on the #bzflag
 +
IRC channel on irc.freenode.net or to the bzflag-dev mailing list as
 +
to where the current development activity resides.  If you're familiar
 +
enough, anonymous CVS access is provided:
  
  https://github.com/BZFlag-Dev/bzflag.git
+
    cvs -d:pserver:anonymous@cvs.sf.net:/cvsroot/bzflag login
 +
[ press return for no password ]
 +
    cvs -z3 -d:pserver:anonymous@cvs.sf.net co -P bzflag
  
  
Line 69: Line 70:
 
installed:
 
installed:
  
  ./autogen.sh
+
    ./autogen.sh
  ./configure
+
    ./configure --enable-optimized
  make
+
    make
  ./src/bzflag/bzflag
+
    ./src/bzflag/bzflag
  
 
If configure detected everything it needed to build the BZFlag client,
 
If configure detected everything it needed to build the BZFlag client,
Line 87: Line 88:
 
The Longer Version:
 
The Longer Version:
  
To build sources directly from a git clone you need to create a
+
To build sources checked out directly from CVS you need to create a
configure script. You can skip this step if you grab a distribution of
+
configure script. You can skip this step if you grab an distribution
BZFlag that already has a ./configure script in it, such as from a
+
of BZFlag that already has a ./configure script in it, such as from a
 
source distribution tarball.  To generate the configure script, you
 
source distribution tarball.  To generate the configure script, you
need to run the provided autogen.sh script:
+
run the provided autogen.sh script:
  
   ./autogen.sh
+
   % sh autogen.sh
  
 
The script will report whether sufficient versions of the GNU Build
 
The script will report whether sufficient versions of the GNU Build
Line 99: Line 100:
 
and if successful, a configure script will be generated.  If the
 
and if successful, a configure script will be generated.  If the
 
script fails, submit a report to the developers containing the output
 
script fails, submit a report to the developers containing the output
of "sh autogen.sh -v". This will run autogen.sh in verbose mode.  One
+
of "sh autogen.sh -v". This will run autogen.sh in verbose mode.  One of
of the most common failures is having insufficient versions or
+
the most common failures is having insufficient versions or mismatched
mismatched combinations of the GNU Build System tools, so make sure
+
combinations of the GNU Build System tools, make sure your tools are
your tools are recent.
+
recent.
  
If the previous step was successful you now have a script for
+
Now that you have a configure script and presuming the previous step
configuring BZFlag.  This command:
+
was successful, you can configure BZFlag:
  
   ./configure --help
+
   % ./configure --help
  
will list the variety of configuration options.  The script adapts
+
There are a variety of options possible when configuring BZFlagMost
well to various system configurations, so it may be enough to simply
+
notably, you'll probably want to use the --enable-optimized option for
run it as:
+
performance and the --enable-shared option if you are building server
 +
plugins.
  
   ./configure
+
   % ./configure --enable-optimized --enable-shared
  
 
You may want to create a 'work' directory and configure from there to
 
You may want to create a 'work' directory and configure from there to
Line 127: Line 129:
 
   OpenGL 1.0+
 
   OpenGL 1.0+
 
   libSDL 1.2+
 
   libSDL 1.2+
 +
  libCURL 7+
  
If you're on an operating system that uses a packaging system
+
If you're on an operating sytem that uses a packaging system
 
(e.g. apt, portage, ports, etc), be sure to install the development
 
(e.g. apt, portage, ports, etc), be sure to install the development
 
kit versions of each of those (e.g. xlibmesa-gl-dev package) so that
 
kit versions of each of those (e.g. xlibmesa-gl-dev package) so that
headers are made available.  You may also want to manually install
+
headers are made available.
other dependencies that BZFlag automatically provides if you do not
+
have them pre-installed:
+
 
+
  c-ares
+
  libCURL
+
  libregex (usually provided as part of libc)
+
  zlib
+
 
+
The README.Linux file includes a detailed list of of the packages
+
needed to compile and run BZFlag on some popular Linux distributions.
+
  
 
The final summary at the end of running configure will report whether
 
The final summary at the end of running configure will report whether
Line 148: Line 141:
 
multiprocessor system, you can build in parallel with the -j option:
 
multiprocessor system, you can build in parallel with the -j option:
  
   make -j4
+
   % make -j4
  
 
If compilation was successful, the client will be in src/bzflag and
 
If compilation was successful, the client will be in src/bzflag and
Line 155: Line 148:
 
with or without installing:
 
with or without installing:
  
   src/bzflag/bzflag
+
   % src/bzflag/bzflag
  
BZFlag looks for data files in a path defined during compile, in
+
BZFlag looks for data files in a path defined during compile, in ./data/ ,
./data/ , or in the previously specified data path only.  As part of
+
or in the previously specified data path only.  As part of the tarball/cvs
the tarball/git clone, the base data library is located in
+
checkout, the base data library is located in <installed-locale>/bzflag/data.  
<installed-locale>/bzflag/data. This means that to test in a working
+
This means that to test in a working directory you need to tell bzflag  
directory you need to tell bzflag where to find these files if there
+
where to find these files if there is not a 'data' directory in your current
is not a 'data' directory in your current directory.  This can be done
+
directory.  This can be done with a symlink:
with a symbolic link:
+
  
   ln -s ./path/to/bzflag/data
+
   % ln -s ./path/to/bzflag/data
  
 
After testing you can install BZFlag by running 'make install' with
 
After testing you can install BZFlag by running 'make install' with
Line 172: Line 164:
 
system-wide:
 
system-wide:
  
   sudo make install
+
   % sudo make install
  
 
You should now have BZFlag in the system directory ready to run.
 
You should now have BZFlag in the system directory ready to run.
Line 180: Line 172:
 
append to the configure command the prefix option:
 
append to the configure command the prefix option:
  
   ./configure --prefix=YourHomeDirectoryHere
+
   % ./configure --prefix=YourHomeDirectoryHere
  
 
You will then be able to perform a "make install" without needing to
 
You will then be able to perform a "make install" without needing to
Line 189: Line 181:
  
 
Again, some platforms may be different.  See the README file
 
Again, some platforms may be different.  See the README file
appropriate to your system for more information.
+
appropriate to your system for more information:
 +
 
 +
  Platform README file
 +
  -------- -----------
 +
  UNIX, Linux README.UNIX
 +
  IRIX README.IRIX
 +
  Solaris README.SOLARIS
 +
  Mac OS X README.MacOSX
 +
  Windows 95/98/NT README.WIN32, README.MINGW32, README.DEVC++
 +
 
  
 
You can also build an installable package using:
 
You can also build an installable package using:
  
   make package
+
   % make package
  
 
The package will be placed in ./dist; the exact form of the package
 
The package will be placed in ./dist; the exact form of the package
Line 210: Line 211:
 
packages, directories created during the build, and the platform
 
packages, directories created during the build, and the platform
 
configuration; this should get the source tree back to its state in
 
configuration; this should get the source tree back to its state in
the Git repository.
+
CVS.
  
 
To build BZFlag for an unsupported platform, see PORTING.
 
To build BZFlag for an unsupported platform, see PORTING.
Line 223: Line 224:
 
The BZFlag project has several resources set up for communicating both
 
The BZFlag project has several resources set up for communicating both
 
with other developers and with the community.  There is an IRC
 
with other developers and with the community.  There is an IRC
channel, forums, and a wiki.
+
channel, several mailing lists, bulletin boards, and a wiki.
  
 
Internet Relay Chat
 
Internet Relay Chat
Line 231: Line 232:
 
(irc.freenode.net, port 6667) to get involved.
 
(irc.freenode.net, port 6667) to get involved.
  
See https://webchat.freenode.net for a web based interface for
+
See http://irc.bzflag.org for a web based interface for first-time
first-time users.  Individuals that intend to stay in the channel are
+
users.  Individuals that intend to stay in the channel are expected to
expected to get a non-web-based IRC client.  See http://irchelp.org or
+
get a non-web-based IRC client.  See http://irchelp.org or search the
search the web for IRC clients for your operating system.
+
web for IRC clients for your operating system.
  
Forums
+
Mailing Lists
 +
-------------
 +
There are several BZFlag mailing lists, but the two of particular
 +
interest to most are the user's list and the main developer's list.
 +
The former is for general BZFlag discussion and announcements.  The
 +
latter is for coding and development discussion only.  There are also
 +
lists dedicated to CVS activity, league discussions, and server
 +
administration.
 +
 
 +
To join a mailing list, go to the Sourceforge mailing list page on the
 +
project site: http://sourceforge.net/mail/?group_id=3248 and follow
 +
the links for joining the respective mailing lists that interest you.
 +
 
 +
Bulletin Boards
 
---------------
 
---------------
There are extensive and active forums used by players, server
+
There are extensive and active bulletin boards used by players, server
 
operators, administrators, and others available here:
 
operators, administrators, and others available here:
  
https://forums.bzflag.org
+
http://my.bzflag.org/bb/
  
Registering an account on the forums presently also registers your callsign
+
Registering an account on the bulletin board presently also registers
for use inside of BZFlag.  Some servers require registration in order to
+
your callsign for use inside of BZFlag.  Some servers require
play.  See the board FAQ and wiki getting Started pages for new users.
+
registration in order to play.  See the board FAQ and Getting Started
 +
pages for new users.
 +
 
 +
In addition to the main bulletin boards, there are forums on the
 +
Sourceforge project site available here:
 +
 
 +
http://sourceforge.net/forum/?group_id=3248
 +
 
 +
The main bulletin boards are considerably higher volume for day-to-day
 +
player discussions.  The forums are often used for informally
 +
resolving issues with new users.
  
 
Wiki
 
Wiki
 
----
 
----
 
The main BZFlag website contains a wiki that may be edited by the
 
The main BZFlag website contains a wiki that may be edited by the
community available at: https://wiki.bzflag.org
+
community available at: http://BZFlag.org/wiki
  
 
The wiki does require a simple registration in order to make
 
The wiki does require a simple registration in order to make
Line 256: Line 280:
 
communication forum and ongoing discussion arena for the game's
 
communication forum and ongoing discussion arena for the game's
 
development.
 
development.
 +
 +
 +
Contributions
 +
=============
 +
 +
Patches should be entered into the BZFlag patch tracking system at:
 +
 +
http://sourceforge.net/tracker/?group_id=3248&atid=303248
 +
 +
Patches are preferred in the unified diff format.  From a CVS
 +
checkout, a unified diff patch file may be created as follows:
 +
 +
  % cvs diff -u > patch.diff
 +
 +
If you like, you may also send mail to either the BZFlag development
 +
mailing list or to Tim@Rikers.org (the development mailing list is
 +
preferred) to discuss contributions to the official BZFlag source
 +
code.  Contributions are gladly accepted for modifications that do not
 +
affect the core gameplay.  Interacting with the other developers in
 +
the IRC channel is recommended for any changes which will affect
 +
gameplay.
  
  
Line 264: Line 309:
 
tracking system at:
 
tracking system at:
  
https://github.com/BZFlag-Dev/bzflag/issues
+
http://sourceforge.net/tracker/?group_id=3248&atid=103248
  
If you require assistance with some issue, please visit the BZFlag
+
Alternatively, you can email bug reports to the development mailing
IRC channel at #bzflag at irc.freenode.net
+
list or to Tim@Rikers.org but the web based method is preferred.  See
 +
the BUGS file in the source distribution for other known issues.
  
Alternatively, discussion forums are also available for resolving issues.
+
If you require assistance with some issue, please visit BZFlag support
 +
tracking system at:
  
 +
http://sourceforge.net/tracker/?group_id=3248&atid=203248
  
Providing Contributions
+
Alternatively, the IRC channel, discussion forums, and mailing lists
=======================
+
are also viable avenues for resolving issues.
  
Pull Requests should be entered submitted via the GitHub pull system:
 
  
https://github.com/BZFlag-Dev/bzflag/pulls
+
Contributors
 +
============
  
Contributions are gladly accepted for modifications that do not
+
BZFlag has a long history of development and considerable community
affect the core gameplayInteracting with the other developers in
+
involvement since it became an Open Source projectSee the AUTHORS
the IRC channel is recommended for any changes which will affect
+
file for more details.
gameplay.
+
  
  
Line 288: Line 335:
 
========================
 
========================
  
After unpacking a source distribution, you should have at least the
+
After unpacking a source distribution, you should have the following
following files in the new 'bzflag' directory:
+
files in the new 'bzflag' directory:
  
 
   README - this file
 
   README - this file
 
   README.* - platform specific details
 
   README.* - platform specific details
   AUTHORS - project contributors
+
   BUGS - a list of known bugs
   COPYING - the license for BZFlag
+
   BZFlag.xcode  - Mac OS X XCode project
 
   ChangeLog - source code changes since previous release
 
   ChangeLog - source code changes since previous release
   DEVINFO      - information for developers
+
   COPYING - the license for BZFlag
 
   NEWS - history of visible changes for each release
 
   NEWS - history of visible changes for each release
 +
  DEVINFO      - information for developers
 
   PORTING - a guide for porting BZFlag
 
   PORTING - a guide for porting BZFlag
   autogen.sh - build system preparation script
+
   RELNOTES - placeholder - see NEWS
   configure.ac - build system configuration script template
+
   TODO - incomplete list of things to do
 
   data/ - data files (sounds, images, etc.)
 
   data/ - data files (sounds, images, etc.)
 +
  debian/ - debian apt files
 +
  Dev-C++/ - Dev-C++ project files
 +
  doc/ - partial documentation in doxygen format
 
   include/ - include headers for libraries
 
   include/ - include headers for libraries
 
   man/ - man pages
 
   man/ - man pages
 
   misc/ - miscellaneous goo
 
   misc/ - miscellaneous goo
  MSVC/ - stuff for building on the Windows platform
 
 
   package/ - stuff to build installable packages
 
   package/ - stuff to build installable packages
  plugins/ - bzfs plugins
 
 
   src/ - bzflag, bzfs, etc. source code
 
   src/ - bzflag, bzfs, etc. source code
 
     3D/   - 3D code including texture manager
 
     3D/   - 3D code including texture manager
Line 314: Line 363:
 
     bzfs/   - bzfs app source code (game server)
 
     bzfs/   - bzfs app source code (game server)
 
     common/   - general purpose classes
 
     common/   - general purpose classes
    date/        - unified version and build date stamping for apps
 
 
     game/   - game library used by both the server and client(s)
 
     game/   - game library used by both the server and client(s)
 
     geometry/   - geometry rendering classes
 
     geometry/   - geometry rendering classes
Line 322: Line 370:
 
     ogl/   - OpenGL utility classes
 
     ogl/   - OpenGL utility classes
 
     platform/   - platform dependent code
 
     platform/   - platform dependent code
 +
      MacOSX/      - Mac OS X specific files
 
     scene/   - high level rendering algorithms
 
     scene/   - high level rendering algorithms
 +
    zlib/   - compression library
 
   tools/ - various helper utilities
 
   tools/ - various helper utilities
   Xcode         - Mac OS X Xcode project and associated files
+
   win32/ - stuff for building on the Windows platform
  
 
Note that include/ does not have all the include files.  If a header
 
Note that include/ does not have all the include files.  If a header
Line 336: Line 386:
  
  
Public Internet Servers and the "list server"
+
Miscellaneous
=============================================
+
=============
  
The bzflag project offers a public server listing service that allows
+
UDP added by Frank Siegert, frank@this.net, frank@bzflag.de
players to find servers to play on. This service is run for the
+
benefit of the project. As of Version 2.4, BZFlag servers that wish to
+
be listed on the public list server must provide an authentication key
+
that ties the server to a specific global user. This is done to
+
provide contact information for players and project
+
staff. Authentication keys are automatically generated at
+
https://my.bzflag.org/listkeys/
+
  
 +
BZFlag implements UDP unicast relay networking. This provides much
 +
better timing and stability compared to just TCP.
  
Notes on "CHEAT" servers and network abuse
+
One of the more frequent questions, UDP does not work, why?
==========================================
+
  
While the license for BZFlag certainly allows users to run any server
+
- When I connect to a newer server with this client others report they
modification that they wish or to modify the code in any way, we ask
+
  can see me but I get 'black caps' after a few seconds for all other
that people do not publish or host "cheat" clients or servers to the
+
  players?
general public for use.  We also expect that users will abide by basic
+
usage guidelines of reasonable and tolerable behavior that are not
+
detrimental to the game's heritage of a fun gaming environment for
+
all.
+
  
We understand the desire to expand, modify, and improve the game and
+
Two possibilities:
its sources including the ability to test out new features publicly.
+
These modified clients and servers generally provide some advantage
+
over unmodified clients and are generally discouraged for widespread
+
use.  As such, we ask that anyone wishing to host or otherwise
+
participate in a game that involves a modified client or server to
+
register under a different network protocol than the current public
+
release by modifying BZ_PROTO_VERSION in the src/date/buildDate.cxx
+
file.  This will let modified games be played and prevent modified
+
clients from being used on public unmodified servers.
+
  
Any individuals that are found to be contributing to abuse of the
+
a) you are behind a NAT router that is not forwarding UDP traffic to
public services being provided may be subject to bans or other access
+
  your system. Try reconfiguring the router to do NAT on UDP packets.
restrictions. Abuse generally consists of any disruption to one of
+
BZFlag's network services including denial of service attacks,
+
spamming of BZFlag web sites or servers, disruptive gameplay on
+
multiple public servers, intrusion attempts, password sniffing, or any
+
other behavior that is deemed inappropriate.
+
  
The BZFlag project administrators reserve the right to remove public
+
b) you are behind a firewall or a desktop firewall (e.g. ZoneAlarm)
listings of any game servers for any reason whatsoever, including
+
  that is blocking incoming UDP traffic. Please reconfigure or disable
removal of servers or banning of individuals that do not follow this
+
  your firewall(extreme solution) for the game, for more intelligent
request. Similarly, the BZFlag project administrators also reserve
+
  desktop firewalls set them up to let UDP port 17200 to 17220 through.
the right to limit access or otherwise block any players from public
+
service access at any time.  These actions may include the suspension
+
or removal of global accounts and limiting access to the web site
+
services including web site services, list server access, forum access,
+
and any league resources.
+
  
In general, the entire network is provided by the community for the
 
community as an entirely volunteer and contributed effort.  We ask
 
that all players recognize and respect the time, effort, and resources
 
involved and that we're all generally here to have a good time.
 
  
 
+
Notes on "CHEAT" servers
Project History and Contributions
+
=============
=================================
+
While the license for bzflag allows users to run any server modification
 
+
that they wish, or to modify the code in any way. We ask that people do not
BZFlag was primarily originally authored by Chris Schoeneman
+
publish or host "cheat" type clients or servers that ruin the game for people.
<crs23@bigfoot.com> in the early 1990's. After several years of
+
We understand the desire to expand and modify the game and it's sources, so we
development, Chris turned over copyright and maintainership of the
+
ask that anyone wishing to run a game that uses modified code or logic on
game to Tim Riker.
+
a different network protocol then the current public release. This will let
 
+
moded games be played, and prevent moded clients from being used on public un-moded
BZFlag continues today to be maintained and developed by the Open
+
games. The bzflag project administrators reserve the right to remove public listing
Source community by a project administration team with contributions coming
+
of any game servers that do not follow this rule. We also reserve the right to
in from all over the world.  See the AUTHORS file for more details on
+
remove any global accounts or access to public services at any time.
contributions to the project.
+
 
+
 
+
Contact
+
=======
+
 
+
Any of the core developers listed in the AUTHORS file are generally
+
receptive to being contacted for most matters relating to the game.
+
Internet Relay Chat (IRC) or e-mail is generally the expected method
+
of interaction with IRC being generally preferred. The project
+
maintainer Tim Riker <Tim@Rikers.org> is available for most legal matters,
+
but day to day development is handled by the Project Administrators:
+
 
+
Scott Wichser (blast007) <blast007@users.sourceforge.net>
+
Jeff Makey (BulletCatcher) <bullet_catcher@users.sourceforge.net>
+
 
+
Happy Shooting!
+
The BZFlag Development Team
+
 
</pre>
 
</pre>

Please note that all contributions to BZFlagWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BZFlagWiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)