This wiki is archived and useful information is being migrated to the main bzflag.org website
Editing BZFlag README
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. | + | BZFlag 2.0.8 |
http://BZFlag.org/ | http://BZFlag.org/ | ||
− | Copyright (c) 1993- | + | 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. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | This is the BZFlag README file. It includes simple build | |
− | + | instructions, user community references, other information for BZFlag | |
− | + | development, and a manifest of the source code layout. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Line 44: | Line 40: | ||
Main BZFlag Website: http://BZFlag.org | Main BZFlag Website: http://BZFlag.org | ||
− | 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 | + | 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 | + | 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 | + | BZFlag is also available directly from CVS. To obtain BZflag from |
− | + | CVS, a bit more familiarity with software development is expected. | |
− | If you're familiar enough, anonymous | + | Sometimes active BZFlag development is on CVS HEAD, sometimes it is on |
− | + | 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: | ||
− | + | 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 | |
− | + | ./configure --enable-optimized | |
− | + | make | |
− | + | ./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 | + | To build sources checked out directly from CVS you need to create a |
− | configure script. You can skip this step if you grab | + | 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 | ||
− | + | run the provided autogen.sh script: | |
− | + | % 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, | + | combinations of the GNU Build System tools, make sure your tools are |
− | your tools are recent. | + | recent. |
− | + | Now that you have a configure script and presuming the previous step | |
− | + | was successful, you can configure BZFlag: | |
− | ./configure --help | + | % ./configure --help |
− | + | There are a variety of options possible when configuring BZFlag. Most | |
− | + | notably, you'll probably want to use the --enable-optimized option for | |
− | + | 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 | + | 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 | + | headers are made available. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
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/ | + | checkout, the base data library is located in <installed-locale>/bzflag/data. |
− | <installed-locale>/bzflag/data. | + | 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 | + | |
− | 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 | ||
− | + | 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, | + | 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 | + | 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. |
− | + | 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 | + | There are extensive and active bulletin boards used by players, server |
operators, administrators, and others available here: | operators, administrators, and others available here: | ||
− | + | http://my.bzflag.org/bb/ | |
− | Registering an account on the | + | 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 | + | 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: | + | 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: | ||
− | + | http://sourceforge.net/tracker/?group_id=3248&atid=103248 | |
− | + | Alternatively, you can email bug reports to the development mailing | |
− | + | 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. | ||
− | + | If you require assistance with some issue, please visit BZFlag support | |
+ | tracking system at: | ||
+ | http://sourceforge.net/tracker/?group_id=3248&atid=203248 | ||
− | + | Alternatively, the IRC channel, discussion forums, and mailing lists | |
− | + | are also viable avenues for resolving issues. | |
− | |||
− | + | Contributors | |
+ | ============ | ||
− | + | BZFlag has a long history of development and considerable community | |
− | + | involvement since it became an Open Source project. See the AUTHORS | |
− | + | file for more details. | |
− | + | ||
Line 288: | Line 335: | ||
======================== | ======================== | ||
− | After unpacking a source distribution, you should have | + | 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 | ||
− | + | BUGS - a list of known bugs | |
− | + | BZFlag.xcode - Mac OS X XCode project | |
ChangeLog - source code changes since previous release | ChangeLog - source code changes since previous release | ||
− | + | 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 | ||
− | + | RELNOTES - placeholder - see NEWS | |
− | + | 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 | ||
− | |||
package/ - stuff to build installable packages | package/ - stuff to build installable packages | ||
− | |||
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 | ||
− | |||
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 | ||
− | + | 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: | ||
− | + | Miscellaneous | |
− | + | ============= | |
− | + | UDP added by Frank Siegert, frank@this.net, frank@bzflag.de | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | BZFlag implements UDP unicast relay networking. This provides much | ||
+ | better timing and stability compared to just TCP. | ||
− | + | One of the more frequent questions, UDP does not work, why? | |
− | + | ||
− | + | - When I connect to a newer server with this client others report they | |
− | + | can see me but I get 'black caps' after a few seconds for all other | |
− | + | players? | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Two possibilities: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | a) you are behind a NAT router that is not forwarding UDP traffic to | |
− | + | your system. Try reconfiguring the router to do NAT on UDP packets. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | b) you are behind a firewall or a desktop firewall (e.g. ZoneAlarm) | |
− | + | that is blocking incoming UDP traffic. Please reconfigure or disable | |
− | + | your firewall(extreme solution) for the game, for more intelligent | |
− | + | desktop firewalls set them up to let UDP port 17200 to 17220 through. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | + | Notes on "CHEAT" servers | |
− | + | ============= | |
− | + | 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 | |
− | + | publish or host "cheat" type clients or servers that ruin the game for people. | |
− | + | We understand the desire to expand and modify the game and it's sources, so we | |
− | + | ask that anyone wishing to run a game that uses modified code or logic on | |
− | game | + | 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 | |
− | + | games. The bzflag project administrators reserve the right to remove public listing | |
− | + | of any game servers that do not follow this rule. We also reserve the right to | |
− | + | remove any global accounts or access to public services at any time. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> |