<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DTRemenak</id>
	<title>BZFlagWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bzflag.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DTRemenak"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/Special:Contributions/DTRemenak"/>
	<updated>2026-05-19T11:02:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZtank&amp;diff=8835</id>
		<title>BZtank</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZtank&amp;diff=8835"/>
		<updated>2014-09-26T04:49:10Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: Reverted edits by 162.195.208.115 (talk) to last revision by 193.104.113.21&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZtank is a BZFlag server network located in London, United Kingdom.  &lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
BZtank was founded in 2007 by current server owner Benfish to improve the gaming experience for non-North American players, and to create a fun and open online community.  BZtank quickly became very popular amongst international BZFlag players due to its central location, providing good ping times to gamers throughout Europe, Asia, and India.  Many North American players, however, frequent the server as well, creating a unique player dynamic.  The server network hosts several popular maps, and often carries the largest cumulative player load in BZFlag.&lt;br /&gt;
&lt;br /&gt;
==Current Maps==&lt;br /&gt;
BZtank currently hosts eight maps:&lt;br /&gt;
&lt;br /&gt;
*01.bztank.net:5154 - [[The Two Tanks]]&lt;br /&gt;
*02.bztank.net:5155 - [[Castle Warfare]]&lt;br /&gt;
*03.bztank.net:5156 - A*A Bridge Crossing - Can you make it? &lt;br /&gt;
*04.bztank.net:5157 - LaserMania - Classic BZflag!&lt;br /&gt;
*05.bztank.net:5158 - LouMan&#039;s Mystic Valley - Magical!&lt;br /&gt;
*06.bztank.net:5159 - Missile War - The Original Four Team CTF!&lt;br /&gt;
*07.bztank.net:5160 - Roundabout - Don&#039;t get dizzy!&lt;br /&gt;
*08.bztank.net:5161 - INCOMING! - Run for your life!&lt;br /&gt;
&lt;br /&gt;
==Community==&lt;br /&gt;
In addition to playing BZFlag, many members also actively participate in the BZtank community.  The BZtank [http://bztank.net/ forum] is a popular hangout, where players discuss maps, strategy, BZ artwork, and non-game related topics.  BZtank also maintains the [irc://irc.stormcenter.net/#bzflag #bzflag IRC channel] on irc.stormcenter.net which can be accessed directly through the BZtank homepage via [http://irc.bztank.net web interface], or with any standard IRC client.&lt;br /&gt;
&lt;br /&gt;
==Admin Staff==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ &#039;&#039;&#039;Network Owner:&#039;&#039;&#039; Benfish, &#039;&#039;&#039;Head Admin:&#039;&#039;&#039; [[User:DonnyBaker|joevano]], and &#039;&#039;&#039;Senior Admin:&#039;&#039;&#039; Swigg&lt;br /&gt;
! Cops || Admins || Trusted Admins&lt;br /&gt;
|-&lt;br /&gt;
| Abominable || ahs3 || allejo&lt;br /&gt;
|-&lt;br /&gt;
| crackhead || ALEX France || Constitution&lt;br /&gt;
|-&lt;br /&gt;
| Duck Season || Bisque || [[User:Mets|Mets]]&lt;br /&gt;
|-&lt;br /&gt;
| Jon- || Cruel Dog || [[User:Tedius|Tedius]]&lt;br /&gt;
|-&lt;br /&gt;
| knock || daniel jackson || temporal distraction&lt;br /&gt;
|-&lt;br /&gt;
| Murielle || Dexter || think_tank&lt;br /&gt;
|-&lt;br /&gt;
|  || Dodge_This || ukiki&lt;br /&gt;
|-&lt;br /&gt;
|  || drunk driver || Warinthestar&lt;br /&gt;
|-&lt;br /&gt;
|  || ducatiwannabe || &lt;br /&gt;
|-&lt;br /&gt;
|  || Enigma || &lt;br /&gt;
|-&lt;br /&gt;
|  || G5 Serenity 2011 || &lt;br /&gt;
|-&lt;br /&gt;
|  || gnu-sense || &lt;br /&gt;
|-&lt;br /&gt;
|  || Grand Hustla || &lt;br /&gt;
|-&lt;br /&gt;
|  || Green Manalishi || &lt;br /&gt;
|-&lt;br /&gt;
|  || Grumpy Smurf || &lt;br /&gt;
|-&lt;br /&gt;
|  || High Karate Kitty || &lt;br /&gt;
|-&lt;br /&gt;
|  || hj || &lt;br /&gt;
|-&lt;br /&gt;
|  || jadespacy || &lt;br /&gt;
|-&lt;br /&gt;
|  || jbionic || &lt;br /&gt;
|-&lt;br /&gt;
|  || LanDing ||&lt;br /&gt;
|-&lt;br /&gt;
|  || Lt-Kirby2007 ||&lt;br /&gt;
|-&lt;br /&gt;
|  || [[User:Mr_Burns|Mr_Burns]] || &lt;br /&gt;
|-&lt;br /&gt;
|  || Pesky_UK ||&lt;br /&gt;
|-&lt;br /&gt;
|  || PETER ||&lt;br /&gt;
|-&lt;br /&gt;
|  || R3lax || &lt;br /&gt;
|-&lt;br /&gt;
|  || Rio_Dj_narrow || &lt;br /&gt;
|-&lt;br /&gt;
|  || Sky King || &lt;br /&gt;
|-&lt;br /&gt;
|  || sse || &lt;br /&gt;
|-&lt;br /&gt;
|  || stive || &lt;br /&gt;
|-&lt;br /&gt;
|  || Teppic || &lt;br /&gt;
|-&lt;br /&gt;
|  || that exploding tank || &lt;br /&gt;
|-&lt;br /&gt;
|  || TheOneAndOnly || &lt;br /&gt;
|-&lt;br /&gt;
|  || War Pig ||&lt;br /&gt;
|-&lt;br /&gt;
|  || Zaphod ||&lt;br /&gt;
|-&lt;br /&gt;
|  || Zelgadis || &lt;br /&gt;
|-&lt;br /&gt;
|. || Zen_Master ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.bztank.net BZtank homepage]&lt;br /&gt;
[[Category:Server Network]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DevelopmentPlans/2.3&amp;diff=7614</id>
		<title>DevelopmentPlans/2.3</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DevelopmentPlans/2.3&amp;diff=7614"/>
		<updated>2011-05-12T21:16:00Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: mark some things&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
BZFlag 2.3 will be a development version that will be released as 2.4.0.0. This is to get around the problem that [[BZFlag 3.0]] development has stalled and does not look like it will continue. This is a last ditch effort to get development moving again.&lt;br /&gt;
&lt;br /&gt;
==Goal==&lt;br /&gt;
The goal is to release a new version of [[Main Page|BZFlag]] that is incompatible with 2.0.x for a good reason, and has at least one new feature that will make many players &#039;&#039;&#039;want&#039;&#039;&#039; to upgrade.&lt;br /&gt;
&lt;br /&gt;
The hope is that this process will renew developer motivation and attract new developers.&lt;br /&gt;
&lt;br /&gt;
==Schedule==&lt;br /&gt;
* Solicit specific change proposals that can be completed within one month.  Each proposal must be sponsored by an individual developer who will lead its implementation. &#039;&#039;&#039;In Progress&#039;&#039;&#039;&lt;br /&gt;
* When proposals are in and accepted by consensus, start the 1-month countdown clock.&lt;br /&gt;
* Move trunk to a v2_99_branch.&lt;br /&gt;
* Copy v2_0branch to trunk and change protocol number.&lt;br /&gt;
* Implement accepted proposals and test.&lt;br /&gt;
* Change the version docs to make compatibility be the minor version number.&lt;br /&gt;
* Document server upgrade process for the many server owners.&lt;br /&gt;
* After 1 month, revert any changes that have caused unfixed regressions.&lt;br /&gt;
* Do a release candidate before final release?&lt;br /&gt;
* Make trunk into 2.4.0.0 for release.&lt;br /&gt;
* Tag Trunk to 2_4branch and release.&lt;br /&gt;
&lt;br /&gt;
==Projects==&lt;br /&gt;
These are the many ideas, both new and old, for changes to BZFlag.&lt;br /&gt;
&lt;br /&gt;
===Viable Projects===&lt;br /&gt;
The developers believe any (but not all) of the following could be added to 2.3 within the proposed schedule.&lt;br /&gt;
&lt;br /&gt;
====Backports====&lt;br /&gt;
These 2.99 features are suitable for porting to 2.3.&lt;br /&gt;
&lt;br /&gt;
* Connection header change (HTTP-style) &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* New GUI elements &#039;&#039;DTRemenak&#039;&#039;&lt;br /&gt;
* Server-side scoring &#039;&#039;DTRemenak&#039;&#039;&lt;br /&gt;
* Segmented simulation loop (to prevent wallwalking)&#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Server-side flag ID and pickup&lt;br /&gt;
* [[2.3_NewShotGraphics|New shot graphics]] (geolaser/geothief)&#039;&#039;JeffM&#039;&#039; &#039;&#039;&#039;Discuss on IRC&#039;&#039;&#039;&lt;br /&gt;
* HUD markers &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* [[2.3_QualityChanges|Removal of low graphics, promotion of experimental to high]]. &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Server list from GSoC &#039;&#039;DTRemenak&#039;&#039;&lt;br /&gt;
* BZFS API rework &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Remove local authentication (the /identify command)&lt;br /&gt;
* Windows project cleanup &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* New make system&lt;br /&gt;
* New source docs (authors etc...)&lt;br /&gt;
* Server-side handicap&lt;br /&gt;
* Guided Missile shot checks&lt;br /&gt;
* Stealth fixes for rabbit &#039;&#039;mdskpr&#039;&#039;&lt;br /&gt;
* Asynchronous screenshot compression so client won&#039;t freeze up during screenshots &#039;&#039;DTRemenak&#039;&#039;&lt;br /&gt;
* BZFlag update notification &#039;&#039;DTRemenak&#039;&#039;&lt;br /&gt;
* Wings velocity change (additive flap instead of instant upward velocity) &#039;&#039;blast007&#039;&#039;&lt;br /&gt;
* Message protection (ensure network messages are valid)&lt;br /&gt;
* Add message types so that actions (/me) are properly implemented&lt;br /&gt;
* New artwork &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Server option to disable teamkills &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* OpenFFA &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Download URL change (to force just images.bzflag.org, not any .org or .bz)&lt;br /&gt;
* Remove option to turn off fog &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Require OpenGL 1.2 &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Only allow a single end shot credit for holding the shield flag &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* Only players with POLL permission are eligible to take part in a vote &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* Add the /serverdebug command &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* bzfs: Report errors to stderr instead of stdout &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* bzfs: Add -utc switch to output log messages in UTC instead of localtime &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* bzfs: Fix timestamp buffer size so -ts micros output fits &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* Joystick input fixes/enhancements &#039;&#039;DTRemenak&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====New Changes====&lt;br /&gt;
* Round Robin for services&lt;br /&gt;
* Fix the protocol bug that version [[BZFlag 2.0.16|2.0.16]] was a band-aid for&lt;br /&gt;
* Facilitate moving global services (e.g., my.bzflag.org) to new hardware, if any changes will help &#039;&#039;JeffM&#039;&#039; &#039;&#039;Blast007&#039;&#039; &#039;&#039;JoeVano&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===To Evaluate===&lt;br /&gt;
These items need further evaluation to see if they can be or should be backported from 2.99. These may exist as code or patches.&lt;br /&gt;
&lt;br /&gt;
====Backports====&lt;br /&gt;
* Map changes&lt;br /&gt;
* HTTP plugins&lt;br /&gt;
* New API events &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Custom flag system &#039;&#039;DTRemenak&#039;&#039;&lt;br /&gt;
* BZFSCron &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* Server Side Players &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
* Bug fixes not in notes &#039;&#039;Thumper&#039;&#039;&lt;br /&gt;
* New flags&lt;br /&gt;
* Rabbit as proper team&lt;br /&gt;
&lt;br /&gt;
====New Changes====&lt;br /&gt;
* Countdown/reload timer position fix for when showCoordinates is enabled &#039;&#039;mdskpr&#039;&#039;&lt;br /&gt;
* SVN props cleanup&lt;br /&gt;
* Display BZBB rank images in game. &#039;&#039;JeffM&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Exclusions===&lt;br /&gt;
These items should not be done or backported at this time due to stability issues or the large effort required. These are generally the blocking items preventing 3.0&#039;s current release.&lt;br /&gt;
&lt;br /&gt;
* Network buffering&lt;br /&gt;
* Lua&lt;br /&gt;
* Lag compensation (needs a lot more testing)&lt;br /&gt;
* Acceleration changes&lt;br /&gt;
* Font system (still has some bugs/glitches and possible performance issues)&lt;br /&gt;
* New Translations (requires the new font system)&lt;br /&gt;
* Map geometry changes (requires flag zap zone support or breaks existing servers)&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Daniel_Remenak&amp;diff=7565</id>
		<title>Daniel Remenak</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Daniel_Remenak&amp;diff=7565"/>
		<updated>2011-05-11T00:04:35Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: redirect to appropriate user page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:DTRemenak]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=DTRemenak&amp;diff=7564</id>
		<title>DTRemenak</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=DTRemenak&amp;diff=7564"/>
		<updated>2011-05-11T00:03:15Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: I wonder if redirects work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:DTRemenak]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Auto-props&amp;diff=7038</id>
		<title>Auto-props</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Auto-props&amp;diff=7038"/>
		<updated>2010-05-10T07:21:29Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: include mime types in autoprops&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Developers should make sure their Subversion auto-props are set correctly before committing to [[SVN]].  This helps preserve the correct line endings across platforms.  This is the &amp;quot;standard&amp;quot; auto-props section we are using (you may of course set your own if you prefer).  You&#039;ll need to edit your config file(s), which varies depending on platform and Subversion client.&lt;br /&gt;
&lt;br /&gt;
For UNIX-like platforms, edit your &#039;&#039;~/.subversion/config&#039;&#039; file to set the auto-props.  For Windows Vista, the path is &#039;&#039;C:\Users\YOUR_USERNAME\AppData\Roaming\Subversion\config&#039;&#039;  And for Windows XP, the path is &#039;&#039;C:\Documents and Settings\YOUR_USERNAME\Application Data\Subversion\config&#039;&#039;  Also, please be sure that you uncomment the &#039;&#039;&#039;enable-auto-props&#039;&#039;&#039; option and set it to yes.  An example subversion config files is shown in following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
### Section for configuring automatic properties.&lt;br /&gt;
[auto-props]&lt;br /&gt;
### The format of the entries is:&lt;br /&gt;
###   file-name-pattern = propname[=value][;propname[=value]...]&lt;br /&gt;
### The file-name-pattern can contain wildcards (such as &#039;*&#039; and&lt;br /&gt;
### &#039;?&#039;).  All entries which match will be applied to the file.&lt;br /&gt;
### Note that auto-props functionality must be enabled, which&lt;br /&gt;
### is typically done by setting the &#039;enable-auto-props&#039; option.&lt;br /&gt;
*.c = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.cpp = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.cxx = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.def = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.h = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.pl = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.py = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.php = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
&lt;br /&gt;
*.po = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.am = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.ac = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.in = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.m4 = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
&lt;br /&gt;
*.dsp = svn:eol-style=CRLF;svn:mime-type=text/plain&lt;br /&gt;
*.dsw = svn:eol-style=CRLF;svn:mime-type=text/plain&lt;br /&gt;
*.sln = svn:eol-style=CRLF;svn:mime-type=text/xml&lt;br /&gt;
*.vcproj = svn:eol-style=CRLF;svn:mime-type=text/xml&lt;br /&gt;
*.nsi = svn:eol-style=CRLF;svn:mime-type=text/plain&lt;br /&gt;
*.manifest = svn:eol-style=CRLF;svn:mime-type=text/xml&lt;br /&gt;
&lt;br /&gt;
*.sh = svn:eol-style=native;svn:mime-type=text/plain;svn:executable&lt;br /&gt;
*.bat = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
&lt;br /&gt;
*.txt = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
README = svn:eol-style=native;svn:mime-type=text/plain&lt;br /&gt;
*.html = svn:eol-style=native;svn:mime-type=text/html&lt;br /&gt;
*.css = svn:eol-style=native;svn:mime-type=text/css&lt;br /&gt;
*.xml = svn:eol-style=native;svn:mime-type=text/xml&lt;br /&gt;
*.bzw = svn:eol-style=native&lt;br /&gt;
&lt;br /&gt;
*.xpm = svn:eol-style=native;svn:mime-type=image/x-xpm&lt;br /&gt;
*.svg = svn:eol-style=native;svn:mime-type=image/svg+xml&lt;br /&gt;
*.bmp = svn:mime-type=image/bmp&lt;br /&gt;
*.png = svn:mime-type=image/png&lt;br /&gt;
*.jpg = svn:mime-type=image/jpeg&lt;br /&gt;
*.ogg = svn:mime-type=application/ogg&lt;br /&gt;
*.wav = svn:mime-type=audio/x-wav&lt;br /&gt;
*.ttf = svn:mime-type=application/octet-stream&lt;br /&gt;
*.ico = svn:mime-type=application/octet-stream&lt;br /&gt;
*.rgb = svn:mime-type=image/x-rgb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009&amp;diff=5682</id>
		<title>Google Summer of Code: 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009&amp;diff=5682"/>
		<updated>2009-04-06T23:23:45Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Mentors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 2009 Google Summer of Code was announced in February, 2009.  BZFlag is once again participating as a mentoring organization.  Given our enormously successful participation in the program in 2007 and 2008, we are very excited to be participating again.  We are accepting student project proposals from March 23 until April 3.  Hints and tips on [[Google_Summer_of_Code|getting started, preparing a submission, and the application process]] are available.&lt;br /&gt;
&lt;br /&gt;
Note that for 2009, we&#039;re expecting to only accept two or three new students so that we can focus our time and attention on those individuals and our upcoming major release.  That means you&#039;re really encouraged to talk with us early on and make an outstanding project proposal.  The best way to get our attention at this time is to make bug fixes.  We look forward to working with you!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Promotion Flyers =&lt;br /&gt;
&lt;br /&gt;
We&#039;re now soliciting designs for our 2009 GSoC promotional flyer.  If you are interested in providing a design, please contact us! &lt;br /&gt;
&lt;br /&gt;
= Proposal Ideas =&lt;br /&gt;
&lt;br /&gt;
While there are lots of [[Ideas]] floating around of varying utility to the game, the ideas listed below are the specific areas that we are predominantly interested in seeing worked on as part of the GSoC.  Please note that students are also welcome and encouraged to apply with their own ideas.  They should run those ideas by one of the developers beforehand to make sure they are consistent with the scope and focus of the project, though, as there are some ideas which will not be accepted regardless of the quality of the application and applicant.  We&#039;ve additionally provided several project ideas important to BZFlag development that we would very much like to see proposals for, shown in following. &lt;br /&gt;
&lt;br /&gt;
==High-Priority Project Ideas==&lt;br /&gt;
&lt;br /&gt;
This year our focus is on quality.  We need to stabilize our codebase and prepare for a major release.  That being the case, a &#039;&#039;&#039;*very*&#039;&#039;&#039; strong preference will be given to cleanup and refactoring projects over &#039;&#039;new code&#039;&#039; projects.  Please keep that in mind when preparing your application and do contact the developers if there are any questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Suggest your own idea ===&lt;br /&gt;
BZFlag is always open to new development ideas and is under constant improvement.  If you are familiar with BZFlag&#039;s current capabilities and would like to propose some new enhancement, we&#039;d be happy to hear about.  Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: variable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lots o&#039; Bug fixing ===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;It is often very complicated, difficult, and sometimes not very glamorous but this is our top-priority for 2009.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Basically, this project idea is right up in line with helping new developers become familiarized with the BZFlag code and to help us improve our code quality for an upcoming major release.  Propose fixing bugs.  You can propose fixing a lot of them or just a few, but you should be detailed and methodical in your approach.  Refactoring work related to fixing a bug is great.  A progressive/agile/iterative approach to identifying which bugs you intend to look into and fix would also be fantastic.&lt;br /&gt;
&lt;br /&gt;
There is an extensive list of bugs that need to be addressed at https://sourceforge.net/tracker2/?group_id=3248&amp;amp;atid=103248 and http://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/BUGS at your disposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Good problem solving and diagnostic skills&lt;br /&gt;
*(optional) Proficient with a debugger (you will be by the end)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: variable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cheat preventions ===&lt;br /&gt;
This task involves making BZFlag more robust towards preventing various cheats from working in the game.  This task implicitly requires adding protections on the server, moving game logic from the client to the server, and/or adding heuristics and other measures for detecting and dealing with cheat clients.  The student should have a strong grasp of the variety of BZFlag cheats that are available.  Please go into detail about which cheats you&#039;re interested in preventing and how you intend to employ those preventive measures. For information on known cheats, check out the [[Known Cheats]] wiki page.  &#039;&#039;This is a high-priority idea.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Strong familiarity with C/C++&lt;br /&gt;
*Basic familiarity with client/server networking applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularization of game logic ===&lt;br /&gt;
Much of the game logic is presently mixed in with BZFlag&#039;s graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine.  &#039;&#039;This is a high-priority topic.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularization of OpenGL logic===&lt;br /&gt;
BZFlag&#039;s graphics code is (unfortunately) spread throughout the codebase with OpenGL calls being made in thousands of places.  The goal of this project would be to encapsulate *all* of the OpenGL calls into one place as a first step towards encapsulating all of the graphics code so that we can adopt a 3D rendering engine.  This project should not be to integrate with an engine, though, as there&#039;s too much that needs to happen beforehand.  Step one is getting all of the graphics code contained. &#039;&#039;This is a high-priority topic.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Basic familiarity with OpenGL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Network Testing and Simulation Environment ===&lt;br /&gt;
This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss.  This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers.  This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment.  &#039;&#039;This is a high-priority topic.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Strong familiarity with networking applications and implications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
==Additional Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
While code cleanup and refactoring projects are our top-priority, other projects will certainly be considered if the idea is well thought-out and the student is passionate about the idea.  Continuing a previously successful GSoC project is also something very highly desired (even if it does entail new code).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BZWorkBench world editor enhancement ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As a participant in last year&#039;s program, Jude Nelson started work on BZWorkBench.  It is a world file editor with a very solid foundation but much work still remains to be done, including a cross-platform GUI, mesh support, and other editor features.  Ideally, two students would work on this.  For example, one student could focus on improving the GUI&#039;s workflow and ease-of-use, and another could focus on finishing the back-end object manipulation.&lt;br /&gt;
&lt;br /&gt;
The current GUI does not conform to a specific HIG, nor does its usability resemble many other 3D editors; this should change.  The back-end still lacks support for many of the objects added in BZFlag 2.0, such as Meshes, texture matrices, dynamic colors, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Ability to read through other people&#039;s code&lt;br /&gt;
*Basic GUI, interaction, and usability design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: high&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Global authentication daemon ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The goal of this project would be to provide global account management system daemon that the client and servers would communicate with for account, group membership, and profile information.  This effort preferably be written in C++, would need to talk to an LDAP server for persistent storage on the backend, and allow chaining across multiple daemons for data replication and failover service.  The daemon would need to provide a well structured simple communications API that the game client and game servers can securely talk to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with LDAP&lt;br /&gt;
*Familiarity with client/server networking applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enhanced server listing ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The game client includes a simplistic listing of publicly available servers.  This task would involve significantly enhancing the listing section in BZFlag to allow for various sortings (e.g. ping time, country, name, etc), favorites, recently used, specific additional information on specific servers, and all existing information.  The task would involve coming up with a user-friendly design that is fully keyboard-accessible.  It could leverage external gui toolkits, use BZFlag&#039;s existing gui library, and/or extend the existing capabilities.  The focus would be on creating an intuitive and informative listing enhancement within the constraints of the gaming interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*GUI, usability, and interaction design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BZRobots ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZFlag now has a programmable game client that can be used to implement artificially intelligent (AI) computer players.  More work is needeed, though, to clean up the code and deliver bzrobots as a new easy-to-use feature to users.  More work is needed.  BZRobots conforms to the Robocode API with a few minor (yet necessary) deviations, yet there are a few protocol actions that still need to be implemented.  There is also lots of code quality and refactoring issues that need to be addressed.  Presently, the code is a copy of the entire client code with user input removed so when a change or bug fix happens to the client, it has to also be manually changed in the bzrobots copy of the code.  The code needs to be refactored into common logic shared by both game clients.  &lt;br /&gt;
&lt;br /&gt;
See [[BZRobots]] for more information on the current status as well as src/bzrobots in a source checkout.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Ability to read through an existing code base and refactor appropriately&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Finish server-side players ===&lt;br /&gt;
BZFlag includes players that can be run and managed from the server through a server-side plugin.  Unlike the client-side BZRobots project, server-side robots have entirely different issues that they have to account for and information that they have access to.  This project would entail taking the work that has already been started to completion.  As this is a continuation, please do contact the developers before proposing this idea to determine the current status and work required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Ability to pick up a work-in-progress&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
=== Dead Reckoning and other Networking Enhancements ===&lt;br /&gt;
The basic idea is to improve BZFlag&#039;s networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include &amp;quot;[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]&amp;quot; and &amp;quot;[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Strong familiarity with C/C++&lt;br /&gt;
*Strong familiarity with networking applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: high&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Two-player tanks ===&lt;br /&gt;
This always gets some folks excited, but you will have to have already done a lot of research and make a good proposal before this idea will be considered.  That said, the topic of having two-player tanks where only one player drives and the other player only shoots has come up many times over the years.  BZFlag doesn&#039;t allow turret control specifically as a game design feature.  An initial two-player tank arrangement would probably not deviate from that requirement initially.  Lots of testing, interaction, and feedback are required for this feature to make it to release given how much it potentially would affect gameplay.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Strong ability to read through existing code&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: high &lt;br /&gt;
(the implementation itself is not hard at all, the acceptance testing will be) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Multiple display support===&lt;br /&gt;
Add the ability to effectively manage multiple display environments from within the game allowing for the detection, alignment/orientation specification, and resolution parameters for each display via menu options as well as proper full-screen and/or windowed support. An additional feature could involve allowing the user to dedicate a display to the various primary gui elements (the 3D environment, the radar, and the chat console). BZFlag&#039;s current context management is mostly handled by SDL or other platform-specific modules, so this could be taken into consideration. There&#039;s also the possibility of our move to an integrated graphics engine would similarly impact how multidisplay contexts are created and managed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with SDL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cross-server communications system ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This task would be the design and implementation of a server spanning chat system. It would allow players from one server to send chat messages to players on other servers. It should also be able to be used to allow players to know where there friends or &amp;quot;buddies&amp;quot; are playing if they are online. The system should tie into the central user name registration system. Added benefits would be the use of existing protocols or applications, such as Jabber or IRC, if they can be integrated cleanly. Support for using off-line apps for chat and friends list access as well as server management would be a plus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with networking applications&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===In-game profile management===&lt;br /&gt;
BZFlag allows players to specify a callsign and team in addition to other player characteristics and preferences. This enhancement would focus on allowing the user to specify and manage multiple profiles from within the game. Profiles could be linked together and should be presented in an intuitive manner (proposal should highlight how you&#039;d go about achieving that). The profiles would need to associate with global account information as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with GUI, interaction, and usability design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Integrated BZFS web interface (aka BZ&#039;s WebAdmin plugin) ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The BZFlag game server, BZFS, could benefit from having a browser-accessible http/https interface for viewing server statistics, setting various parameters, and otherwise controlling the server daemon while it is running. Similar to how your network router has a web interface for changing configuration parameters, this idea is simply to create this interface in a maintainable and portable manner. There was a previous GSoC project that worked on a server-side plugin that provides this feature, but it needs a lot more work both on the interface and in the logic.  Be sure to discuss this with the developers before suggesting it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with GUI, interaction, and usability design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
= Mentors =&lt;br /&gt;
&lt;br /&gt;
BZFlag operates with a &#039;&#039;group mentoring&#039;&#039; approach meaning that students may (and should) call upon any developer within the community if they have questions.  The mentors for 2009 are:&lt;br /&gt;
&lt;br /&gt;
* Sean Morrison (brlcad/learner)&lt;br /&gt;
* Daniel Remenak (DTRemenak/Erroneous)&lt;br /&gt;
* Jeffrey Myers (JeffM/JeffM2501)&lt;br /&gt;
* Julio Jiménez Borreguero (Manu/jujibo)&lt;br /&gt;
* Scott Wichser (Blast/Blast007)&lt;br /&gt;
* David Wollner (JB diGriz)&lt;br /&gt;
* Joe VanOverberghe (joevano/Donny_Baker)&lt;br /&gt;
* James Lawrence (spldart)&lt;br /&gt;
* Bernt Hansen (Thumper_)&lt;br /&gt;
* Jeff Makey (BulletCatcher)&lt;br /&gt;
* Jørgen Pedersen Tjernø (jorgenpt)&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_Acceptance&amp;diff=5662</id>
		<title>Google Summer of Code: Acceptance</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_Acceptance&amp;diff=5662"/>
		<updated>2009-04-02T05:45:20Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Make a patch */ sure, we&amp;#039;ll take more than one patch if you want, but quality &amp;gt; quantity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to lay out the basic &amp;quot;&#039;&#039;&#039;rules and requirements&#039;&#039;&#039;&amp;quot; that the BZFlag project is going to require of all [[Google Summer of Code]] students whose project proposals are accepted.  Unless otherwise arranged with the BZFlag GSoC administrator (contact brlcad via IRC on irc.freenode.net), it will be expected that all students comply with the requirements outlined below.&lt;br /&gt;
&lt;br /&gt;
== Application requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Make a patch ===&lt;br /&gt;
We want to make sure that you have rudimentary skills in compiling code, reading other people&#039;s code, and can even simply get BZFlag to compile.  Prepare and submit a patch to our [http://sourceforge.net/tracker/?group_id=3248&amp;amp;atid=303248 Sourceforge patches tracker].&lt;br /&gt;
&lt;br /&gt;
Don&#039;t fret.  The patch can be almost anything just so long as it is can be applied to the BZFlag sources with very minimal hassle.  It should be something actually useful.  The patch should &#039;&#039;not&#039;&#039; just be whitespace, indent, or style changes as we automate those periodically.  It &#039;&#039;should&#039;&#039; be a functional patch such as fixing a known bug (see our BUGS file or sf bug tracker) or implementing some very minor uncontroversial feature (see our TODO file).  Bug fixes are generally the preferred scope but even something as trivial as fixing typos can make an acceptable patch.  This is one of several opportunities to impress us, so feel free to be creative.&lt;br /&gt;
&lt;br /&gt;
You are welcome to submit more than one patch if you like.  We will review any you submit, but we only require and expect one; remember that quality is far more important than quantity in our reviews.&lt;br /&gt;
&lt;br /&gt;
Be sure to include either a link to the Sourceforge patch tracker item or your Sourceforge username in your application.&lt;br /&gt;
&lt;br /&gt;
=== Play BZFlag with the mentors ===&lt;br /&gt;
We will schedule several open gaming gatherings during the application process and ask that serious applicants come play a round of BZFlag with us.  You should compile your own client using the latest BZFlag trunk sources (which is incompatible with the latest public release) when you come to the gaming session.  We will work out available times to play with you after you&#039;ve submitted an application.&lt;br /&gt;
&lt;br /&gt;
You should &#039;&#039;play the game&#039;&#039; from a binary you&#039;ve built yourself before beginning any work.  You should do this &#039;&#039;at least once&#039;&#039; before the gathering if not more if you are so inclined.  Being able to compile the sources on your own equipment is a very &#039;&#039;basic task&#039;&#039; that is beyond the scope of GSoC and will be an expected unassisted capacity of all students once the summer coding begins.  Additionally, understanding the existing player community, what they like and dislike, and seeing how they interact is all &#039;&#039;&#039;very important&#039;&#039;&#039; for most developers to have at least a basic familiarity with.  In the end, your changes will (hopefully) be pushed out to the community and you be cognizant of what that will &#039;&#039;mean&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
We&#039;ll be glad to help you the first time if you run into trouble.  Talk to the developers.&lt;br /&gt;
&lt;br /&gt;
=== Come talk to us ===&lt;br /&gt;
You &#039;&#039;&#039;&#039;&#039;really&#039;&#039;&#039;&#039;&#039; should be talking to the BZFlag developers long before submitting your application.  Discuss your ideas with us on the IRC channel.  Communication is a huge part of our evaluation criteria.&lt;br /&gt;
&lt;br /&gt;
== Participation requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Assign copyright and license under the LGPL ===&lt;br /&gt;
Per the GSoC [http://code.google.com/support/bin/answer.py?answer=60328&amp;amp;topic=10728 FAQ], BZFlag requires that any work performed and provided while participating in BZFlag development will be in accordance with BZFlag&#039;s existing [http://bzflag.cvs.sourceforge.net/*checkout*/bzflag/bzflag/COPYING license] (&#039;&#039;&#039;LGPL&#039;&#039;&#039;) and that full nonexclusive copyright will be assigned to Tim Riker, the project copyright holder.&lt;br /&gt;
&lt;br /&gt;
=== Provide weekly progress reports ===&lt;br /&gt;
In addition to any communications you hold with a given mentor, the administrator, or any of the developers, it will be expected of all students that they will &#039;&#039;submit a brief progress report&#039;&#039; on a &#039;&#039;&#039;weekly&#039;&#039;&#039; basis.  These reports won&#039;t need to be more than a few sentences (or at most a couple of paragraphs, whatever is appropriate) but the reports should give an indication of your overall progress, things you discover, tasks completed, difficulties encountered, milestones reached, and other similar details on your activities.  You will be expected to complete a report every week, at least once a week.  More information on the exact method for providing these reports will be provided after the projects commence.&lt;br /&gt;
&lt;br /&gt;
=== List your milestones ===&lt;br /&gt;
All projects will be required to submit a &#039;&#039;&#039;minimum&#039;&#039;&#039; of three and a maximum of ten &#039;&#039;milestones&#039;&#039; for your project.  These are not deliverables but, rather, are overall tasks that should be completed throughout the duration of your work.  These should be necessary implementation steps and not include any research or familiarity phases.  In the end, there is code that must be produced and your milestones should be a (very) rough breakdown for estimating your actual implementation progress.  These milestones should be &#039;&#039;&#039;published in your first progress report,&#039;&#039;&#039; that is, at the beginning of code development (before, on or very soon after May 28).&lt;br /&gt;
&lt;br /&gt;
=== Be available via IRC ===&lt;br /&gt;
All students will be expected to &#039;&#039;&#039;join the #bzflag IRC channel&#039;&#039;&#039; on irc.freenode.net while they are working.  Students are expected to &#039;&#039;&#039;be on&#039;&#039;&#039; the channel so they can be responsive and available to the questions, inquiries, and suggestions of other BZFlag developers.  BZFlag development occurs &#039;&#039;entirely&#039;&#039; over IRC as it is the central gathering forum for core development activities, developer discussions, and more.  See [http://irchelp.org here] if you are new to IRC and need assistance finding a client (or just do a search).  Interaction via IRC is &#039;&#039;&#039;required&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Create a Sourceforge account ===&lt;br /&gt;
BZFlag sources live in a Subversion repository on Sourceforge.  You will need a Sourceforge account and will be expected to abide by the same coding requirements of the other existing developers.  You will similarly be expected to know the basics of how to work with SVN and check in changes, resolve conflicts, and apply patches as needed.  SVN has a nearly identical interface to CVS -- if you&#039;re familiar with CVS, then you should be fine.  If you don&#039;t have a Sourceforge account, be sure to get one and familiarize yourself with BZFlag&#039;s sourceforge [http://sf.net/projects/bzflag/ account].  Whether students work on a branch or on the mainline will vary depending on the student and the project.&lt;br /&gt;
&lt;br /&gt;
=== Evaluate your performance ===&lt;br /&gt;
Particularly for projects that interact with the client or server run-loop or affect networking (but also for others), &#039;&#039;&#039;quantitatively evaluate your performance&#039;&#039;&#039; and the impact your modifications will make.  Don&#039;t prematurely optimize and don&#039;t over-architect, but also don&#039;t make guesses or assumptions either.  Use a performance profiler, test your code, add temporary debug timers, have a peer review your approach, etc.  Modifications to the game client and network code that detrimentally impact performance in non-optional ways will likely be rejected outright.&lt;br /&gt;
 &lt;br /&gt;
=== Write maintainable code ===&lt;br /&gt;
This requirement cannot be stressed enough.  One of the primary evaluation criteria for all students is how maintainable is the end result.  This is not only maintainability from the stand-point of source code longevity as it stands written, but also involves other higher-level maintainability and integration aspects.  Does your implementation use interfaces, languages, tools, or techniques that introduce some new requirement to widespread BZFlag development?  If so, that choice needs to be discussed and &#039;&#039;&#039;justified&#039;&#039;&#039; or otherwise mitigated as a concern.  Any usage of external dependencies needs to be consensus approved by the core developers.  Is your code comprehensive and comprehensible?  Well-documented?  Organized?  You are required to follow BZFlag&#039;s [http://bzflag.cvs.sourceforge.net/*checkout*/bzflag/bzflag/DEVINFO existing] developer guidelines, existing code style, and established conventions.&lt;br /&gt;
&lt;br /&gt;
=== Write portable code ===&lt;br /&gt;
BZFlag has an extensive heritage of being as portable as reasonably possible with effort continually being taken to make sure the entire codebase works on a vareity of compilation and run-time environments.  While each developer&#039;s perception of what is &#039;&#039;reasonable&#039;&#039; certainly fluctuates over the years and from developer to developer, the general intention is that code written for BZFlag should function the &#039;&#039;&#039;same&#039;&#039;&#039; on most moderately popular operating system environments as much as possible including Linux, Mac OS X, and Windows as well as other platforms.   It is each developer&#039;s responsibility to either make sure their code isn&#039;t platform-specific or that equivalent functionality is provided on other maintained platforms.  You are expected to interact with other developers when portability issues are raised to resolve any problems.  Portability of any dependencies being used must similarly be taken into account and relates to the aforementioned maintainability requirement.&lt;br /&gt;
&lt;br /&gt;
=== Write complete code ===&lt;br /&gt;
Perhaps treat each week like it is your last.  You should be able to hand over functional code over just about any time during development (within a day or so) to another developer.  Focus on completing tasks, completing code features, and working on keeping your code functional at &#039;&#039;&#039;all&#039;&#039;&#039; stages of development.  That way, no matter how far you get on your milestones or deliverable(s), other developers will be able to review, test, and readily integrate your code.  Plan your development approach accordingly.  You should generally not &amp;quot;stub&amp;quot; code functionality (though comments are good), but instead focus on coding &amp;quot;deep&amp;quot; instead of &amp;quot;wide&amp;quot;.  It&#039;s generally preferred to have 2 features that work fully, than 5 features that half-work or even 20 features that are all 90% complete.&lt;br /&gt;
&lt;br /&gt;
== Pre-Flight Participation Checklist ==&lt;br /&gt;
&lt;br /&gt;
* Read and agree to the above requirements&lt;br /&gt;
* Join the #bzflag IRC channel and introduce yourself&lt;br /&gt;
* Create a Sourceforge account&lt;br /&gt;
* Be familiar with the basics of Subversion (aka SVN).&lt;br /&gt;
* Compile and run BZFlag from source&lt;br /&gt;
* Prepare a patch&lt;br /&gt;
** [http://my.bzflag.org/w/BZFlag_SVN Checkout sources] from SVN&lt;br /&gt;
** Familiarize yourself with the basic [http://my.bzflag.org/w/BZFlag_Source source layout]&lt;br /&gt;
** Compile&lt;br /&gt;
** Play&lt;br /&gt;
* Familiarize yourself with BZFlag&#039;s on-line websites and services&lt;br /&gt;
** http://bzflag.org&lt;br /&gt;
** http://my.bzflag.org&lt;br /&gt;
** http://my.bzflag.org/bb/&lt;br /&gt;
** http://my.bzflag.org/w/&lt;br /&gt;
** http://sf.net/projects/bzflag&lt;br /&gt;
* Create a list of 3 to 10 milestones&lt;br /&gt;
* Document your milestones&lt;br /&gt;
* Submit your application&lt;br /&gt;
** Include a link to your patch&lt;br /&gt;
** Include your IRC handle&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=5660</id>
		<title>Google Summer of Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=5660"/>
		<updated>2009-03-30T22:24:38Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* 2009 (more details here) */ not just waiting anymore&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For the third year in a row, BZFlag will be participating in the [http://code.google.com/soc Google Summer of Code]!&lt;br /&gt;
 &lt;br /&gt;
===See our [[Google_Summer_of_Code/2009|2009 GSoC page]] for details.===&lt;br /&gt;
&lt;br /&gt;
Please see our [[Google Summer of Code/2009#Proposal Ideas|Proposal Ideas]] for a list of the projects that are of interest.  Student applications will be accepted via the GSoC website between March 23 and April 3.&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
Since 2005, Google has run an open source software development program specifically for students called the [http://code.google.com/soc/ Google Summer of Code] (GSoC).  Under this program, Google funds students to write code for open source projects during the northern hemisphere&#039;s summer timeframe.  The student efforts are focused on projects that they themselves propose to projects such as BZFlag, sometimes catering to ideas that the project suggests or ideas entirely of the student&#039;s own conception.  Student proposals are then reviewed, evaluated, and ranked by the project.  Google allocates a certain number of slots to each participating project/organization which in turn determines how many student developers we get to work with.&lt;br /&gt;
&lt;br /&gt;
Students that participate with the BZFlag project are required to adhere to specified [[Google Summer of Code Acceptance|development requirements]], selected students then work on their projects through the summer.  Students are expected to be fully integrated with the BZFlag development community throughout the program, actively engaged in their work, and intently working &#039;&#039;with&#039;&#039; the other BZFlag developers throughout the design and implementation of their projects.  If the student successfully completes what they propose, they are ultimately paid $4500 for their work and the BZFlag community hopefully gains a new long-term developer.  In all, the program is a pretty darn good deal for many students, great publicity and marketing for both Google and BZFlag, and an excellent opportunity for attracting new long-term BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Attracting and mentoring new long-term developers is our primary goal.&#039;&#039;&#039;&#039;&#039;  If this interests you, please let us know and submit a GSoC application.&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
&lt;br /&gt;
* Read this page&lt;br /&gt;
* Read our [[Google Summer of Code/2009|proposal ideas]] page&lt;br /&gt;
* Read our [[Google_Summer_of_Code/Application_Guidelines|application guidelines]]&lt;br /&gt;
* Read our [[Google Summer of Code Acceptance|requirements]]&lt;br /&gt;
* Read our [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] file&lt;br /&gt;
* Join our [[BZFlag on IRC|#bzflag on Freenode]] IRC channel&lt;br /&gt;
* Formulate a proposal idea, communicate with devs&lt;br /&gt;
* [http://sourceforge.net/tracker/?group_id=3248&amp;amp;atid=303248 Submit a patch]&lt;br /&gt;
* Apply!&lt;br /&gt;
&lt;br /&gt;
= Preparing an application =&lt;br /&gt;
&lt;br /&gt;
There is intentionally no specific format to our applications. &#039;&#039;&#039;BUT&#039;&#039;&#039;... students are &#039;&#039;&#039;strongly&#039;&#039;&#039; encouraged to be detailed, creative, and interactive with the BZFlag developers throughout the application process.  Proposals that are detailed in their approach and contain useful background information about the individual&#039;s abilities and their ideas will generally receive more attention.  Applications should specify what you intend to deliver, a reasonable development timeline, and any implementation details that are relevant such as what language(s) you intend to use.  C/C++ proposals are generally preferred since that is our predominant codebase and developer expertise though others are considered.  See our &#039;&#039;&#039;[[Google_Summer_of_Code/Application_Guidelines|Application Guidelines]]&#039;&#039;&#039; for more details.&lt;br /&gt;
&lt;br /&gt;
Early proposal submissions are encouraged as it gives the mentors more time to review the proposal in detail, comment on it, potentially ask for additional input, and iterate with the student on your ideas.  In the past, submitting closer to the deadline hasn&#039;t been a negative consideration, as all submissions are predominantly judged on merit, but submitting and discussing early do tend to be an advantage if there are others applications that have similar goals.&lt;br /&gt;
&lt;br /&gt;
Students should propose what they actually want to work on, how you intend to work on it, what you intend to DO, what you know about that task, some details about yourself, etc.  Be detailed and articulate.  Brief proposals do not generally do very well.  Your ability to perform the task is outright presumed by the nature of submitting a detailed application.  Students should propose a task that they are comfortable and knowledgeable with performing within the timeframe of the program and considering any extenuating circumstances.&lt;br /&gt;
&lt;br /&gt;
You may submit more than one application (one application for each project you would enjoy working on) if you so desire.  This can help us when we receive more than one strong proposal for a single project, as generally speaking we will accept only one application for each project.  However, please do not submit proposals for work you will not enjoy doing, and please do not sacrifice quality for quantity.  One good application makes a much better impression than two half-baked applications.&lt;br /&gt;
&lt;br /&gt;
If you talk with us on IRC about your SoC proposal, be sure to include your IRC nickname somewhere in your proposal.&lt;br /&gt;
&lt;br /&gt;
You should also [http://sourceforge.net/tracker/?group_id=3248&amp;amp;atid=303248 submit a patch] before you submit your application, and be sure to include a link to the tracker item in your proposal submission.  See the [[Google Summer of Code Acceptance|development requirements]] for details.&lt;br /&gt;
&lt;br /&gt;
Students are expected to interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] rules, and agree to the [[Google Summer of Code Acceptance|development requirements]] before submitting an application.&lt;br /&gt;
&lt;br /&gt;
Thanks for your interest and we look forward to seeing you apply!&lt;br /&gt;
&lt;br /&gt;
= The application review process =&lt;br /&gt;
&lt;br /&gt;
Just about every participating GSoC organization receives considerably more project proposals than can be accepted.  All the applications are reviewed, evaluated, and critiqued individually.  Of those applications, only a few can be selected to work on BZFlag.  We expect to receive many good applications, making the selection process very competitive and difficult (so make sure your application is excellent).  &#039;&#039;This cannot be stressed enough.&#039;&#039;  It is rather hard for most projects to narrow down the submissions but in the end there are only so many slots to work with and the line eventually has to be drawn.  Every application gets read multiple times and reviewed in detail.  We thank &#039;&#039;&#039;everyone&#039;&#039;&#039; that submits a proposal and hope to see many of you become involved in BZFlag software development regardless of acceptance.&lt;br /&gt;
 &lt;br /&gt;
In the end, submissions are selected according to the overall long-term impact that accepting the proposal can make for the game, perception of the submitter&#039;s abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, how well the student communicates with other developers, the perception that the individual is interested in being a long-term BZFlag developer, and our overall interest in having the proposed modifications made to BZFlag.  Particular notice is made of students that are responsive to questions and readily interactive in the IRC channel.  Communication is one of the most important criteria.&lt;br /&gt;
&lt;br /&gt;
= BZFlag participation in GSoc =&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2009|2009 (more details here)]] ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;We&#039;ve been accepted.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We intend to only accept at most three student slots this year.  Our focus this year is on quality and cleanup so we can make a major release.  Cleaning up and refactoring existing code is much more important to us this year than writing new code.&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2008|2008 (more details here)]] ==&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2008_small.gif |thumb|left|128px]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
The Google Summer of Code 2008 was announced on February 25, 2008. Given the substantial successes and opportunities provided by the program, BZFlag continues to participate in the program.  We accepted six students, five of which were successfully passed and integrated into our development community.&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2007|2007 (more details here)]] ==&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2007_small.gif|thumb|left|128px]]&lt;br /&gt;
 |}&lt;br /&gt;
BZFlag first participated during GSoC&#039;s third year in 2007.  A detailed after-the-fact discussion and analysis of BZFlag&#039;s first-year participation is included in the article &#039;&#039;[http://my.bzflag.org/gsoc/bzflag_gsoc2007_post_mortem.pdf “Postmortem” Perspectives of a First-year Participant in the 2007 Google Summer of Code for BZFlag]&#039;&#039;.  This article was given to Google in August 2007 as a final report, per se, of our involvement (you&#039;re only a first-year participant once).&lt;br /&gt;
&lt;br /&gt;
We accepted four students, three of which were successful in their projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[Google Summer of Code/2007#Promotion Flyers|Promotion Flyers]] ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=5659</id>
		<title>Google Summer of Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=5659"/>
		<updated>2009-03-30T21:20:08Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: rm more if-accepted verbage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For the third year in a row, BZFlag will be participating in the [http://code.google.com/soc Google Summer of Code]!&lt;br /&gt;
 &lt;br /&gt;
===See our [[Google_Summer_of_Code/2009|2009 GSoC page]] for details.===&lt;br /&gt;
&lt;br /&gt;
Please see our [[Google Summer of Code/2009#Proposal Ideas|Proposal Ideas]] for a list of the projects that are of interest.  Student applications will be accepted via the GSoC website between March 23 and April 3.&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
&lt;br /&gt;
Since 2005, Google has run an open source software development program specifically for students called the [http://code.google.com/soc/ Google Summer of Code] (GSoC).  Under this program, Google funds students to write code for open source projects during the northern hemisphere&#039;s summer timeframe.  The student efforts are focused on projects that they themselves propose to projects such as BZFlag, sometimes catering to ideas that the project suggests or ideas entirely of the student&#039;s own conception.  Student proposals are then reviewed, evaluated, and ranked by the project.  Google allocates a certain number of slots to each participating project/organization which in turn determines how many student developers we get to work with.&lt;br /&gt;
&lt;br /&gt;
Students that participate with the BZFlag project are required to adhere to specified [[Google Summer of Code Acceptance|development requirements]], selected students then work on their projects through the summer.  Students are expected to be fully integrated with the BZFlag development community throughout the program, actively engaged in their work, and intently working &#039;&#039;with&#039;&#039; the other BZFlag developers throughout the design and implementation of their projects.  If the student successfully completes what they propose, they are ultimately paid $4500 for their work and the BZFlag community hopefully gains a new long-term developer.  In all, the program is a pretty darn good deal for many students, great publicity and marketing for both Google and BZFlag, and an excellent opportunity for attracting new long-term BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Attracting and mentoring new long-term developers is our primary goal.&#039;&#039;&#039;&#039;&#039;  If this interests you, please let us know and submit a GSoC application.&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
&lt;br /&gt;
* Read this page&lt;br /&gt;
* Read our [[Google Summer of Code/2009|proposal ideas]] page&lt;br /&gt;
* Read our [[Google_Summer_of_Code/Application_Guidelines|application guidelines]]&lt;br /&gt;
* Read our [[Google Summer of Code Acceptance|requirements]]&lt;br /&gt;
* Read our [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] file&lt;br /&gt;
* Join our [[BZFlag on IRC|#bzflag on Freenode]] IRC channel&lt;br /&gt;
* Formulate a proposal idea, communicate with devs&lt;br /&gt;
* [http://sourceforge.net/tracker/?group_id=3248&amp;amp;atid=303248 Submit a patch]&lt;br /&gt;
* Apply!&lt;br /&gt;
&lt;br /&gt;
= Preparing an application =&lt;br /&gt;
&lt;br /&gt;
There is intentionally no specific format to our applications. &#039;&#039;&#039;BUT&#039;&#039;&#039;... students are &#039;&#039;&#039;strongly&#039;&#039;&#039; encouraged to be detailed, creative, and interactive with the BZFlag developers throughout the application process.  Proposals that are detailed in their approach and contain useful background information about the individual&#039;s abilities and their ideas will generally receive more attention.  Applications should specify what you intend to deliver, a reasonable development timeline, and any implementation details that are relevant such as what language(s) you intend to use.  C/C++ proposals are generally preferred since that is our predominant codebase and developer expertise though others are considered.  See our &#039;&#039;&#039;[[Google_Summer_of_Code/Application_Guidelines|Application Guidelines]]&#039;&#039;&#039; for more details.&lt;br /&gt;
&lt;br /&gt;
Early proposal submissions are encouraged as it gives the mentors more time to review the proposal in detail, comment on it, potentially ask for additional input, and iterate with the student on your ideas.  In the past, submitting closer to the deadline hasn&#039;t been a negative consideration, as all submissions are predominantly judged on merit, but submitting and discussing early do tend to be an advantage if there are others applications that have similar goals.&lt;br /&gt;
&lt;br /&gt;
Students should propose what they actually want to work on, how you intend to work on it, what you intend to DO, what you know about that task, some details about yourself, etc.  Be detailed and articulate.  Brief proposals do not generally do very well.  Your ability to perform the task is outright presumed by the nature of submitting a detailed application.  Students should propose a task that they are comfortable and knowledgeable with performing within the timeframe of the program and considering any extenuating circumstances.&lt;br /&gt;
&lt;br /&gt;
You may submit more than one application (one application for each project you would enjoy working on) if you so desire.  This can help us when we receive more than one strong proposal for a single project, as generally speaking we will accept only one application for each project.  However, please do not submit proposals for work you will not enjoy doing, and please do not sacrifice quality for quantity.  One good application makes a much better impression than two half-baked applications.&lt;br /&gt;
&lt;br /&gt;
If you talk with us on IRC about your SoC proposal, be sure to include your IRC nickname somewhere in your proposal.&lt;br /&gt;
&lt;br /&gt;
You should also [http://sourceforge.net/tracker/?group_id=3248&amp;amp;atid=303248 submit a patch] before you submit your application, and be sure to include a link to the tracker item in your proposal submission.  See the [[Google Summer of Code Acceptance|development requirements]] for details.&lt;br /&gt;
&lt;br /&gt;
Students are expected to interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] rules, and agree to the [[Google Summer of Code Acceptance|development requirements]] before submitting an application.&lt;br /&gt;
&lt;br /&gt;
Thanks for your interest and we look forward to seeing you apply!&lt;br /&gt;
&lt;br /&gt;
= The application review process =&lt;br /&gt;
&lt;br /&gt;
Just about every participating GSoC organization receives considerably more project proposals than can be accepted.  All the applications are reviewed, evaluated, and critiqued individually.  Of those applications, only a few can be selected to work on BZFlag.  We expect to receive many good applications, making the selection process very competitive and difficult (so make sure your application is excellent).  &#039;&#039;This cannot be stressed enough.&#039;&#039;  It is rather hard for most projects to narrow down the submissions but in the end there are only so many slots to work with and the line eventually has to be drawn.  Every application gets read multiple times and reviewed in detail.  We thank &#039;&#039;&#039;everyone&#039;&#039;&#039; that submits a proposal and hope to see many of you become involved in BZFlag software development regardless of acceptance.&lt;br /&gt;
 &lt;br /&gt;
In the end, submissions are selected according to the overall long-term impact that accepting the proposal can make for the game, perception of the submitter&#039;s abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, how well the student communicates with other developers, the perception that the individual is interested in being a long-term BZFlag developer, and our overall interest in having the proposed modifications made to BZFlag.  Particular notice is made of students that are responsive to questions and readily interactive in the IRC channel.  Communication is one of the most important criteria.&lt;br /&gt;
&lt;br /&gt;
= BZFlag participation in GSoc =&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2009|2009 (more details here)]] ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;We&#039;ve applied!  We&#039;re waiting.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We intend to only accept at most three student slots this year.  Our focus this year is on quality and cleanup so we can make a major release.  Cleaning up and refactoring existing code is much more important to us this year than writing new code. &lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2008|2008 (more details here)]] ==&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2008_small.gif |thumb|left|128px]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
The Google Summer of Code 2008 was announced on February 25, 2008. Given the substantial successes and opportunities provided by the program, BZFlag continues to participate in the program.  We accepted six students, five of which were successfully passed and integrated into our development community.&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2007|2007 (more details here)]] ==&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2007_small.gif|thumb|left|128px]]&lt;br /&gt;
 |}&lt;br /&gt;
BZFlag first participated during GSoC&#039;s third year in 2007.  A detailed after-the-fact discussion and analysis of BZFlag&#039;s first-year participation is included in the article &#039;&#039;[http://my.bzflag.org/gsoc/bzflag_gsoc2007_post_mortem.pdf “Postmortem” Perspectives of a First-year Participant in the 2007 Google Summer of Code for BZFlag]&#039;&#039;.  This article was given to Google in August 2007 as a final report, per se, of our involvement (you&#039;re only a first-year participant once).&lt;br /&gt;
&lt;br /&gt;
We accepted four students, three of which were successful in their projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[Google Summer of Code/2007#Promotion Flyers|Promotion Flyers]] ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009&amp;diff=5658</id>
		<title>Google Summer of Code: 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009&amp;diff=5658"/>
		<updated>2009-03-30T21:17:37Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: remove if-accepted verbage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 2009 Google Summer of Code was announced in February, 2009.  BZFlag is once again participating as a mentoring organization.  Given our enormously successful participation in the program in 2007 and 2008, we are very excited to be participating again.  We are accepting student project proposals from March 23 until April 3.  Hints and tips on [[Google_Summer_of_Code|getting started, preparing a submission, and the application process]] are available.&lt;br /&gt;
&lt;br /&gt;
Note that for 2009, we&#039;re expecting to only accept two or three new students so that we can focus our time and attention on those individuals and our upcoming major release.  That means you&#039;re really encouraged to talk with us early on and make an outstanding project proposal.  The best way to get our attention at this time is to make bug fixes.  We look forward to working with you!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Promotion Flyers =&lt;br /&gt;
&lt;br /&gt;
We&#039;re now soliciting designs for our 2009 GSoC promotional flyer.  If you are interested in providing a design, please contact us! &lt;br /&gt;
&lt;br /&gt;
= Proposal Ideas =&lt;br /&gt;
&lt;br /&gt;
While there are lots of [[Ideas]] floating around of varying utility to the game, the ideas listed below are the specific areas that we are predominantly interested in seeing worked on as part of the GSoC.  Please note that students are also welcome and encouraged to apply with their own ideas.  They should run those ideas by one of the developers beforehand to make sure they are consistent with the scope and focus of the project, though, as there are some ideas which will not be accepted regardless of the quality of the application and applicant.  We&#039;ve additionally provided several project ideas important to BZFlag development that we would very much like to see proposals for, shown in following. &lt;br /&gt;
&lt;br /&gt;
==High-Priority Project Ideas==&lt;br /&gt;
&lt;br /&gt;
This year our focus is on quality.  We need to stabilize our codebase and prepare for a major release.  That being the case, a &#039;&#039;&#039;*very*&#039;&#039;&#039; strong preference will be given to cleanup and refactoring projects over &#039;&#039;new code&#039;&#039; projects.  Please keep that in mind when preparing your application and do contact the developers if there are any questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Suggest your own idea ===&lt;br /&gt;
BZFlag is always open to new development ideas and is under constant improvement.  If you are familiar with BZFlag&#039;s current capabilities and would like to propose some new enhancement, we&#039;d be happy to hear about.  Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: variable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lots o&#039; Bug fixing ===&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;It is often very complicated, difficult, and sometimes not very glamorous but this is our top-priority for 2009.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Basically, this project idea is right up in line with helping new developers become familiarized with the BZFlag code and to help us improve our code quality for an upcoming major release.  Propose fixing bugs.  You can propose fixing a lot of them or just a few, but you should be detailed and methodical in your approach.  Refactoring work related to fixing a bug is great.  A progressive/agile/iterative approach to identifying which bugs you intend to look into and fix would also be fantastic.&lt;br /&gt;
&lt;br /&gt;
There is an extensive list of bugs that need to be addressed at https://sourceforge.net/tracker2/?group_id=3248&amp;amp;atid=103248 and http://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/BUGS at your disposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Good problem solving and diagnostic skills&lt;br /&gt;
*(optional) Proficient with a debugger (you will be by the end)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: variable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cheat preventions ===&lt;br /&gt;
This task involves making BZFlag more robust towards preventing various cheats from working in the game.  This task implicitly requires adding protections on the server, moving game logic from the client to the server, and/or adding heuristics and other measures for detecting and dealing with cheat clients.  The student should have a strong grasp of the variety of BZFlag cheats that are available.  Please go into detail about which cheats you&#039;re interested in preventing and how you intend to employ those preventive measures. For information on known cheats, check out the [[Known Cheats]] wiki page.  &#039;&#039;This is a high-priority idea.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Strong familiarity with C/C++&lt;br /&gt;
*Basic familiarity with client/server networking applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularization of game logic ===&lt;br /&gt;
Much of the game logic is presently mixed in with BZFlag&#039;s graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine.  &#039;&#039;This is a high-priority topic.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modularization of OpenGL logic===&lt;br /&gt;
BZFlag&#039;s graphics code is (unfortunately) spread throughout the codebase with OpenGL calls being made in thousands of places.  The goal of this project would be to encapsulate *all* of the OpenGL calls into one place as a first step towards encapsulating all of the graphics code so that we can adopt a 3D rendering engine.  This project should not be to integrate with an engine, though, as there&#039;s too much that needs to happen beforehand.  Step one is getting all of the graphics code contained. &#039;&#039;This is a high-priority topic.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Basic familiarity with OpenGL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Network Testing and Simulation Environment ===&lt;br /&gt;
This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss.  This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers.  This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment.  &#039;&#039;This is a high-priority topic.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Strong familiarity with networking applications and implications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
==Additional Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
While code cleanup and refactoring projects are our top-priority, other projects will certainly be considered if the idea is well thought-out and the student is passionate about the idea.  Continuing a previously successful GSoC project is also something very highly desired (even if it does entail new code).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BZWorkBench world editor enhancement ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As a participant in last year&#039;s program, Jude Nelson started work on BZWorkBench.  It is a world file editor with a very solid foundation but much work still remains to be done, including a cross-platform GUI, mesh support, and other editor features.  Ideally, two students would work on this.  For example, one student could focus on improving the GUI&#039;s workflow and ease-of-use, and another could focus on finishing the back-end object manipulation.&lt;br /&gt;
&lt;br /&gt;
The current GUI does not conform to a specific HIG, nor does its usability resemble many other 3D editors; this should change.  The back-end still lacks support for many of the objects added in BZFlag 2.0, such as Meshes, texture matrices, dynamic colors, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Ability to read through other people&#039;s code&lt;br /&gt;
*Basic GUI, interaction, and usability design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: high&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Global authentication daemon ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The goal of this project would be to provide global account management system daemon that the client and servers would communicate with for account, group membership, and profile information.  This effort preferably be written in C++, would need to talk to an LDAP server for persistent storage on the backend, and allow chaining across multiple daemons for data replication and failover service.  The daemon would need to provide a well structured simple communications API that the game client and game servers can securely talk to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with LDAP&lt;br /&gt;
*Familiarity with client/server networking applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enhanced server listing ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The game client includes a simplistic listing of publicly available servers.  This task would involve significantly enhancing the listing section in BZFlag to allow for various sortings (e.g. ping time, country, name, etc), favorites, recently used, specific additional information on specific servers, and all existing information.  The task would involve coming up with a user-friendly design that is fully keyboard-accessible.  It could leverage external gui toolkits, use BZFlag&#039;s existing gui library, and/or extend the existing capabilities.  The focus would be on creating an intuitive and informative listing enhancement within the constraints of the gaming interface.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*GUI, usability, and interaction design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BZRobots ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
BZFlag now has a programmable game client that can be used to implement artificially intelligent (AI) computer players.  More work is needeed, though, to clean up the code and deliver bzrobots as a new easy-to-use feature to users.  More work is needed.  BZRobots conforms to the Robocode API with a few minor (yet necessary) deviations, yet there are a few protocol actions that still need to be implemented.  There is also lots of code quality and refactoring issues that need to be addressed.  Presently, the code is a copy of the entire client code with user input removed so when a change or bug fix happens to the client, it has to also be manually changed in the bzrobots copy of the code.  The code needs to be refactored into common logic shared by both game clients.  &lt;br /&gt;
&lt;br /&gt;
See [[BZRobots]] for more information on the current status as well as src/bzrobots in a source checkout.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Ability to read through an existing code base and refactor appropriately&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Finish server-side players ===&lt;br /&gt;
BZFlag includes players that can be run and managed from the server through a server-side plugin.  Unlike the client-side BZRobots project, server-side robots have entirely different issues that they have to account for and information that they have access to.  This project would entail taking the work that has already been started to completion.  As this is a continuation, please do contact the developers before proposing this idea to determine the current status and work required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Ability to pick up a work-in-progress&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: medium&lt;br /&gt;
&lt;br /&gt;
=== Dead Reckoning and other Networking Enhancements ===&lt;br /&gt;
The basic idea is to improve BZFlag&#039;s networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include &amp;quot;[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]&amp;quot; and &amp;quot;[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Strong familiarity with C/C++&lt;br /&gt;
*Strong familiarity with networking applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: high&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Two-player tanks ===&lt;br /&gt;
This always gets some folks excited, but you will have to have already done a lot of research and make a good proposal before this idea will be considered.  That said, the topic of having two-player tanks where only one player drives and the other player only shoots has come up many times over the years.  BZFlag doesn&#039;t allow turret control specifically as a game design feature.  An initial two-player tank arrangement would probably not deviate from that requirement initially.  Lots of testing, interaction, and feedback are required for this feature to make it to release given how much it potentially would affect gameplay.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Strong ability to read through existing code&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: high &lt;br /&gt;
(the implementation itself is not hard at all, the acceptance testing will be) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Multiple display support===&lt;br /&gt;
Add the ability to effectively manage multiple display environments from within the game allowing for the detection, alignment/orientation specification, and resolution parameters for each display via menu options as well as proper full-screen and/or windowed support. An additional feature could involve allowing the user to dedicate a display to the various primary gui elements (the 3D environment, the radar, and the chat console). BZFlag&#039;s current context management is mostly handled by SDL or other platform-specific modules, so this could be taken into consideration. There&#039;s also the possibility of our move to an integrated graphics engine would similarly impact how multidisplay contexts are created and managed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with SDL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cross-server communications system ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This task would be the design and implementation of a server spanning chat system. It would allow players from one server to send chat messages to players on other servers. It should also be able to be used to allow players to know where there friends or &amp;quot;buddies&amp;quot; are playing if they are online. The system should tie into the central user name registration system. Added benefits would be the use of existing protocols or applications, such as Jabber or IRC, if they can be integrated cleanly. Support for using off-line apps for chat and friends list access as well as server management would be a plus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with networking applications&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===In-game profile management===&lt;br /&gt;
BZFlag allows players to specify a callsign and team in addition to other player characteristics and preferences. This enhancement would focus on allowing the user to specify and manage multiple profiles from within the game. Profiles could be linked together and should be presented in an intuitive manner (proposal should highlight how you&#039;d go about achieving that). The profiles would need to associate with global account information as well.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with GUI, interaction, and usability design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Integrated BZFS web interface (aka BZ&#039;s WebAdmin plugin) ===&lt;br /&gt;
&#039;&#039;This project is a continuation of a previous GSoC project.  Please contact the developers before proposing this idea to determine the current status of the work and how you can help continue the effort.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The BZFlag game server, BZFS, could benefit from having a browser-accessible http/https interface for viewing server statistics, setting various parameters, and otherwise controlling the server daemon while it is running. Similar to how your network router has a web interface for changing configuration parameters, this idea is simply to create this interface in a maintainable and portable manner. There was a previous GSoC project that worked on a server-side plugin that provides this feature, but it needs a lot more work both on the interface and in the logic.  Be sure to discuss this with the developers before suggesting it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Requirements&#039;&#039;&#039;:&lt;br /&gt;
*Familiarity with C/C++&lt;br /&gt;
*Familiarity with GUI, interaction, and usability design&lt;br /&gt;
*Acceptance testing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty&#039;&#039;&#039;: low&lt;br /&gt;
&lt;br /&gt;
= Mentors =&lt;br /&gt;
&lt;br /&gt;
BZFlag operates with a &#039;&#039;group mentoring&#039;&#039; approach meaning that students may (and should) call upon any developer within the community if they have questions.  The mentors for 2009 are:&lt;br /&gt;
&lt;br /&gt;
* Sean Morrison (brlcad/learner)&lt;br /&gt;
* Daniel Remenak (DTRemenak/Erroneous)&lt;br /&gt;
* Jeffrey Myers (JeffM/JeffM2501)&lt;br /&gt;
* Julio Jiménez Borreguero (Manu/jujibo)&lt;br /&gt;
* Scott Wichser (Blast/Blast007)&lt;br /&gt;
* David Wollner (JB diGriz)&lt;br /&gt;
* Joe VanOverberghe (joevano/Donny_Baker)&lt;br /&gt;
* James Lawrence (spldart)&lt;br /&gt;
* Bernt Hansen (Thumper_)&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4683</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4683"/>
		<updated>2008-05-31T19:36:09Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: link to bzwgen page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:BZFlag_2010_shiny.png|center]]&lt;br /&gt;
{|style=&amp;quot;width:100%;margin-top:+.7em;background-color:#fcfcfc;border:1px solid #ccc&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:56%;color:#000&amp;quot;|&lt;br /&gt;
{|style=&amp;quot;width:280px;border:solid 0px;background:none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:280px;text-align:center;white-space:nowrap;color:#000&amp;quot; |&lt;br /&gt;
[[Image:Bzflag-48x48.png|left]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;Welcome to the BZFlag Wiki,&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em;font-size: 95%&amp;quot;&amp;gt;The source for community information on most things related to BZFlag!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;The BZFlag Wiki motto: [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold!!&#039;&#039;&#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;width:100%;text-align:center;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles available&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;!-- Portals Follow --&amp;gt;&lt;br /&gt;
|style=&amp;quot;width:15%;font-size:95%&amp;quot;|&lt;br /&gt;
[[Image:Bzflag-48x48.png|right]]&lt;br /&gt;
*[http://my.bzflag.org/bb The Forums]&lt;br /&gt;
*[http://my.bzflag.org BZFlag Stats]&lt;br /&gt;
*[http://sourceforge.net/projects/bzflag/ BZFlag on SourceForge]&lt;br /&gt;
&amp;lt;!--*&#039;&#039;&#039;[[Portal:List of portals|All&amp;amp;nbsp;portals]]&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Welcome to the newly launched BZFlag Wiki. The number of articles is growing, but there is much more to do. Please see the section &#039;&#039;&#039;Things To Do&#039;&#039;&#039; at the bottom of this page if you would like to help.  The intention of this site is to draw together all of the great information about BZFlag and BZFlag related items that is currently scattered in many different places. Bringing all of this information together will make it easier for people to understand and answer all of the questions they have about running a server (options, permissions, set-up, etc.), configuring their client, coding plug-ins, compiling the source code, and anything else they can think of. All are welcome to contribute and may edit most pages. With everyone&#039;s help we can make this site a great resource to the BZFlag community. Please remember the BZFlag Wiki&#039;s new motto, [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold&#039;&#039;&#039;]] (click the link for a full explanation of the motto), when editing articles.&lt;br /&gt;
&lt;br /&gt;
If you are unsure of how to edit or add pages, there is always a link to the [[Help:Contents|&#039;&#039;&#039;Help&#039;&#039;&#039;]] section on the links to the left no matter where you are on the site. Don&#039;t be shy; give editing the site a try and be proud of your contributions! You can edit whether or not you have an account created. The advantage of having an account is that you will be credited with the contribution on the &#039;&#039;History&#039;&#039; link/tab of the page. Please take a look at the [[BZFlagWiki:Content Policy|Content Policy]] page for an overview of adding articles.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2008==&lt;br /&gt;
BZFlag is again participating as a mentor organization in the Google Summer of Code this year. For details, please see the [[Google Summer of Code/2008|2008 Summer of Code wiki page]].  The following applications have been accepted:&lt;br /&gt;
&lt;br /&gt;
* [[Enhanced Server Listing]] - [[User:KingofCamelot|David Sanders]], mentored by [[User:DonnyBaker|Joseph Van Overberghe]]&lt;br /&gt;
* [[BZAuthd]] - [[User:Wyk3d|Istvan Szakats]], mentored by David Wollner&lt;br /&gt;
* Collision code modularization and transfer to server - Joshua Charles Bodine, mentored by [[User:JeffM2501|Jeff Myers]]&lt;br /&gt;
* [[LibBZW|Creating and Implementing a libBZW]] - [[User:Lukstr|Luke Rewega]], mentored by [[User:DTRemenak|Daniel Remenak ]]&lt;br /&gt;
* [[BZWGen revisited]] - Kornel Kisielewicz, mentored by Julio Jiménez Borreguero&lt;br /&gt;
* [[BZFWeb|BZFWeb, a web-based BZFS admin interface]] - [[User:BugQ|Harrison Reiser]], mentored by [[User:Spldart|James R Lawrence]]&lt;br /&gt;
&lt;br /&gt;
==General Information==&lt;br /&gt;
*[[Getting Help]]&lt;br /&gt;
*[[:Category:BZFlagWiki_Policy|BZFlag Wiki Policy]]&lt;br /&gt;
&lt;br /&gt;
==Areas of Interest==&lt;br /&gt;
*[[:Category:Client|Client]]&lt;br /&gt;
*[[:Category:Compiling|Compiling]]&lt;br /&gt;
*[[:Category:Concepts|Concepts]]&lt;br /&gt;
*[[:Category:Development|Development]]&lt;br /&gt;
*[[:Category:Gameplay|Gameplay]]&lt;br /&gt;
*[[:Category:Installing|Installing]]&lt;br /&gt;
*[[:Category:Leagues|Leagues]]&lt;br /&gt;
*[[:Category:Map Making|Map Making]]&lt;br /&gt;
*[[:Category:Maps|Maps]]&lt;br /&gt;
*[[:Category:Plug-Ins|Plug-ins]]&lt;br /&gt;
*[[Releases]]&lt;br /&gt;
*[[:Category:Server|Server]]&lt;br /&gt;
*[[:Category:Support|Support]]&lt;br /&gt;
*[[:Category:Tactics|Tactics]]&lt;br /&gt;
*[[Versions]]&lt;br /&gt;
&lt;br /&gt;
==Things To Do==&lt;br /&gt;
*[[:Category:Stubs|Stubs]] These are short pages.  You can help by expanding the content and adding more detail.&lt;br /&gt;
*[[:Special:Wantedpages|Wanted pages]] These are pages which don&#039;t exist yet but are pointed to from other pages.  You can help by creating them.&lt;br /&gt;
*[[:Category:Items to be merged|Pages to merge]] These are pages which are similar.  It is suggested that similar pages be merged.  You can help by reviewing the pairs of pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;br /&gt;
*[[:Category:Old|Pages with old info]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Inaccurate|Inaccurate pages]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Pending Deletions|Pending deletions]]  These are pages which have been nominated for deletion.  You can help by reviewing these pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4518</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4518"/>
		<updated>2008-04-23T20:30:51Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Google Summer of Code 2008 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:BZFlag_2010_shiny.png|center]]&lt;br /&gt;
{|style=&amp;quot;width:100%;margin-top:+.7em;background-color:#fcfcfc;border:1px solid #ccc&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:56%;color:#000&amp;quot;|&lt;br /&gt;
{|style=&amp;quot;width:280px;border:solid 0px;background:none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:280px;text-align:center;white-space:nowrap;color:#000&amp;quot; |&lt;br /&gt;
[[Image:Bzflag-48x48.png|left]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;Welcome to the BZFlag Wiki,&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em;font-size: 95%&amp;quot;&amp;gt;The source for community information on most things related to BZFlag!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;The BZFlag Wiki motto: [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold!!&#039;&#039;&#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;width:100%;text-align:center;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles available&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;!-- Portals Follow --&amp;gt;&lt;br /&gt;
|style=&amp;quot;width:15%;font-size:95%&amp;quot;|&lt;br /&gt;
[[Image:Bzflag-48x48.png|right]]&lt;br /&gt;
*[http://my.bzflag.org/bb The Forums]&lt;br /&gt;
*[http://my.bzflag.org BZFlag Stats]&lt;br /&gt;
*[http://sourceforge.net/projects/bzflag/ BZFlag on SourceForge]&lt;br /&gt;
&amp;lt;!--*&#039;&#039;&#039;[[Portal:List of portals|All&amp;amp;nbsp;portals]]&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Welcome to the newly launched BZFlag Wiki. The number of articles is growing, but there is much more to do. Please see the section &#039;&#039;&#039;Things To Do&#039;&#039;&#039; at the bottom of this page if you would like to help.  The intention of this site is to draw together all of the great information about BZFlag and BZFlag related items that is currently scattered in many different places. Bringing all of this information together will make it easier for people to understand and answer all of the questions they have about running a server (options, permissions, set-up, etc.), configuring their client, coding plug-ins, compiling the source code, and anything else they can think of. All are welcome to contribute and may edit most pages. With everyone&#039;s help we can make this site a great resource to the BZFlag community. Please remember the BZFlag Wiki&#039;s new motto, [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold&#039;&#039;&#039;]] (click the link for a full explanation of the motto), when editing articles.&lt;br /&gt;
&lt;br /&gt;
If you are unsure of how to edit or add pages, there is always a link to the [[Help:Contents|&#039;&#039;&#039;Help&#039;&#039;&#039;]] section on the links to the left no matter where you are on the site. Don&#039;t be shy; give editing the site a try and be proud of your contributions! You can edit whether or not you have an account created. The advantage of having an account is that you will be credited with the contribution on the &#039;&#039;History&#039;&#039; link/tab of the page. Please take a look at the [[BZFlagWiki:Content Policy|Content Policy]] page for an overview of adding articles.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2008==&lt;br /&gt;
BZFlag is again participating as a mentor organization in the Google Summer of Code this year. For details, please see the [[Google Summer of Code/2008|2008 Summer of Code wiki page]].  The following applications have been accepted:&lt;br /&gt;
&lt;br /&gt;
* [[Enhanced Server Listing]] - [[User:KingofCamelot|David Sanders]], mentored by [[User:DonnyBaker|Joseph Van Overberghe]]&lt;br /&gt;
* [[BZAuthd]] - [[User:Wyk3d|Istvan Szakats]], mentored by David Wollner&lt;br /&gt;
* Collision code modularization and transfer to server - Joshua Charles Bodine, mentored by [[User:JeffM2501|Jeff Myers]]&lt;br /&gt;
* [[LibBZW|Creating and Implementing a libBZW]] - [[User:Lukstr|Luke Rewega]], mentored by [[User:DTRemenak|Daniel Remenak ]]&lt;br /&gt;
* BZWGen revisited - Kornel Kisielewicz, mentored by Julio Jiménez Borreguero&lt;br /&gt;
* [[BZFWeb|BZFWeb, a web-based BZFS admin interface]] - [[User:BugQ|Harrison Reiser]], mentored by [[User:Spldart|James R Lawrence]]&lt;br /&gt;
&lt;br /&gt;
==General Information==&lt;br /&gt;
*[[Getting Help]]&lt;br /&gt;
*[[:Category:BZFlagWiki_Policy|BZFlag Wiki Policy]]&lt;br /&gt;
&lt;br /&gt;
==Areas of Interest==&lt;br /&gt;
*[[:Category:Client|Client]]&lt;br /&gt;
*[[:Category:Compiling|Compiling]]&lt;br /&gt;
*[[:Category:Concepts|Concepts]]&lt;br /&gt;
*[[:Category:Development|Development]]&lt;br /&gt;
*[[:Category:Gameplay|Gameplay]]&lt;br /&gt;
*[[:Category:Installing|Installing]]&lt;br /&gt;
*[[:Category:Leagues|Leagues]]&lt;br /&gt;
*[[:Category:Map Making|Map Making]]&lt;br /&gt;
*[[:Category:Maps|Maps]]&lt;br /&gt;
*[[:Category:Plug-Ins|Plug-ins]]&lt;br /&gt;
*[[Releases]]&lt;br /&gt;
*[[:Category:Server|Server]]&lt;br /&gt;
*[[:Category:Support|Support]]&lt;br /&gt;
*[[:Category:Tactics|Tactics]]&lt;br /&gt;
*[[Versions]]&lt;br /&gt;
&lt;br /&gt;
==Things To Do==&lt;br /&gt;
*[[:Category:Stubs|Stubs]] These are short pages.  You can help by expanding the content and adding more detail.&lt;br /&gt;
*[[:Special:Wantedpages|Wanted pages]] These are pages which don&#039;t exist yet but are pointed to from other pages.  You can help by creating them.&lt;br /&gt;
*[[:Category:Items to be merged|Pages to merge]] These are pages which are similar.  It is suggested that similar pages be merged.  You can help by reviewing the pairs of pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;br /&gt;
*[[:Category:Old|Pages with old info]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Inaccurate|Inaccurate pages]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Pending Deletions|Pending deletions]]  These are pages which have been nominated for deletion.  You can help by reviewing these pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4517</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4517"/>
		<updated>2008-04-23T20:30:20Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Google Summer of Code 2008 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:BZFlag_2010_shiny.png|center]]&lt;br /&gt;
{|style=&amp;quot;width:100%;margin-top:+.7em;background-color:#fcfcfc;border:1px solid #ccc&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:56%;color:#000&amp;quot;|&lt;br /&gt;
{|style=&amp;quot;width:280px;border:solid 0px;background:none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:280px;text-align:center;white-space:nowrap;color:#000&amp;quot; |&lt;br /&gt;
[[Image:Bzflag-48x48.png|left]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;Welcome to the BZFlag Wiki,&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em;font-size: 95%&amp;quot;&amp;gt;The source for community information on most things related to BZFlag!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;The BZFlag Wiki motto: [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold!!&#039;&#039;&#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;width:100%;text-align:center;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles available&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;!-- Portals Follow --&amp;gt;&lt;br /&gt;
|style=&amp;quot;width:15%;font-size:95%&amp;quot;|&lt;br /&gt;
[[Image:Bzflag-48x48.png|right]]&lt;br /&gt;
*[http://my.bzflag.org/bb The Forums]&lt;br /&gt;
*[http://my.bzflag.org BZFlag Stats]&lt;br /&gt;
*[http://sourceforge.net/projects/bzflag/ BZFlag on SourceForge]&lt;br /&gt;
&amp;lt;!--*&#039;&#039;&#039;[[Portal:List of portals|All&amp;amp;nbsp;portals]]&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Welcome to the newly launched BZFlag Wiki. The number of articles is growing, but there is much more to do. Please see the section &#039;&#039;&#039;Things To Do&#039;&#039;&#039; at the bottom of this page if you would like to help.  The intention of this site is to draw together all of the great information about BZFlag and BZFlag related items that is currently scattered in many different places. Bringing all of this information together will make it easier for people to understand and answer all of the questions they have about running a server (options, permissions, set-up, etc.), configuring their client, coding plug-ins, compiling the source code, and anything else they can think of. All are welcome to contribute and may edit most pages. With everyone&#039;s help we can make this site a great resource to the BZFlag community. Please remember the BZFlag Wiki&#039;s new motto, [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold&#039;&#039;&#039;]] (click the link for a full explanation of the motto), when editing articles.&lt;br /&gt;
&lt;br /&gt;
If you are unsure of how to edit or add pages, there is always a link to the [[Help:Contents|&#039;&#039;&#039;Help&#039;&#039;&#039;]] section on the links to the left no matter where you are on the site. Don&#039;t be shy; give editing the site a try and be proud of your contributions! You can edit whether or not you have an account created. The advantage of having an account is that you will be credited with the contribution on the &#039;&#039;History&#039;&#039; link/tab of the page. Please take a look at the [[BZFlagWiki:Content Policy|Content Policy]] page for an overview of adding articles.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2008==&lt;br /&gt;
BZFlag is again participating as a mentor organization in the Google Summer of Code this year. For details, please see the [[Google Summer of Code/2008|2008 Summer of Code wiki page]].  The following applications have been accepted:&lt;br /&gt;
&lt;br /&gt;
* [[Enhanced Server Listing]] - [[User:KingofCamelot|David Sanders]], mentored by [[User:DonnyBaker|Joseph Van Overberghe]]&lt;br /&gt;
* [[BZAuthD]] - [[User:Wyk3d|Istvan Szakats]], mentored by David Wollner&lt;br /&gt;
* Collision code modularization and transfer to server - Joshua Charles Bodine, mentored by [[User:JeffM2501|Jeff Myers]]&lt;br /&gt;
* [[LibBZW|Creating and Implementing a libBZW]] - [[User:Lukstr|Luke Rewega]], mentored by [[User:DTRemenak|Daniel Remenak ]]&lt;br /&gt;
* BZWGen revisited - Kornel Kisielewicz, mentored by Julio Jiménez Borreguero&lt;br /&gt;
* [[BZFWeb|BZFWeb, a web-based BZFS admin interface]] - [[User:BugQ|Harrison Reiser]], mentored by [[User:Spldart|James R Lawrence]]&lt;br /&gt;
&lt;br /&gt;
==General Information==&lt;br /&gt;
*[[Getting Help]]&lt;br /&gt;
*[[:Category:BZFlagWiki_Policy|BZFlag Wiki Policy]]&lt;br /&gt;
&lt;br /&gt;
==Areas of Interest==&lt;br /&gt;
*[[:Category:Client|Client]]&lt;br /&gt;
*[[:Category:Compiling|Compiling]]&lt;br /&gt;
*[[:Category:Concepts|Concepts]]&lt;br /&gt;
*[[:Category:Development|Development]]&lt;br /&gt;
*[[:Category:Gameplay|Gameplay]]&lt;br /&gt;
*[[:Category:Installing|Installing]]&lt;br /&gt;
*[[:Category:Leagues|Leagues]]&lt;br /&gt;
*[[:Category:Map Making|Map Making]]&lt;br /&gt;
*[[:Category:Maps|Maps]]&lt;br /&gt;
*[[:Category:Plug-Ins|Plug-ins]]&lt;br /&gt;
*[[Releases]]&lt;br /&gt;
*[[:Category:Server|Server]]&lt;br /&gt;
*[[:Category:Support|Support]]&lt;br /&gt;
*[[:Category:Tactics|Tactics]]&lt;br /&gt;
*[[Versions]]&lt;br /&gt;
&lt;br /&gt;
==Things To Do==&lt;br /&gt;
*[[:Category:Stubs|Stubs]] These are short pages.  You can help by expanding the content and adding more detail.&lt;br /&gt;
*[[:Special:Wantedpages|Wanted pages]] These are pages which don&#039;t exist yet but are pointed to from other pages.  You can help by creating them.&lt;br /&gt;
*[[:Category:Items to be merged|Pages to merge]] These are pages which are similar.  It is suggested that similar pages be merged.  You can help by reviewing the pairs of pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;br /&gt;
*[[:Category:Old|Pages with old info]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Inaccurate|Inaccurate pages]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Pending Deletions|Pending deletions]]  These are pages which have been nominated for deletion.  You can help by reviewing these pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=4453</id>
		<title>Google Summer of Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=4453"/>
		<updated>2008-04-18T06:44:54Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Preparing an application */ add a note about the appropriateness of multiple applications&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;For the second year in a row, BZFlag has been accepted to participate in the [http://code.google.com/soc/2008 2008 Google Summer of Code]!&lt;br /&gt;
 &lt;br /&gt;
Please see our [[Google Summer of Code/2008#Proposal Ideas|Proposal Ideas]] for a list of the project that are currently of interest to the BZFlag developers.  Student applications for GSoC 2008 will be accepted via the GSoC website between March 24 and March 31 at http://code.google.com/soc/2008&lt;br /&gt;
&lt;br /&gt;
Since 2005, Google has run an open source software development program specifically for students called the [http://code.google.com/soc/ Google Summer of Code] (GSoC).  Under this program, Google funds students to write code for open source projects during the northern hemisphere&#039;s summer timeframe.  The student efforts are focused on projects that they themselves propose to projects such as BZFlag, sometimes catering to ideas that the project suggests or ideas entirely of the student&#039;s own conception.  Student proposals are then reviewed, evaluated, and ranked by the project.  Google allocates a certain number of slots to each participating project/organization which in turn determines how many student developers we get to work with.&lt;br /&gt;
&lt;br /&gt;
Students that participate with the BZFlag project are required to adhere to specified [[Google Summer of Code Acceptance|development requirements]], selected students then work on their projects through the summer.  Students are expected to be fully integrated with the BZFlag development community throughout the program, actively engaged in their work, and intently working &#039;&#039;with&#039;&#039; the other BZFlag developers throughout the design and implementation of their projects.  If the student successfully completes what they propose, they are ultimately paid $4500 for their work and the BZFlag community hopefully gains a new long-term developer.  In all, the program is a pretty darn good deal for many students, great publicity and marketing for both Google and BZFlag, and an excellent opportunity for attracting new long-term BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Attracting and mentoring new long-term developers is our primary goal.&#039;&#039;&#039;&#039;&#039;  If this interests you, please let us know and submit a GSoC application.&lt;br /&gt;
&lt;br /&gt;
= Getting started =&lt;br /&gt;
&lt;br /&gt;
* Read this page&lt;br /&gt;
* Read our [[Google Summer of Code/2008|proposal ideas]] page&lt;br /&gt;
* Read our [[Google_Summer_of_Code/Application_Guidelines|application guidelines]]&lt;br /&gt;
* Read our [[Google Summer of Code Acceptance|development requirements]]&lt;br /&gt;
* Read our [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] file&lt;br /&gt;
* Join our [[BZFlag on IRC|#bzflag on Freenode]] IRC channel&lt;br /&gt;
* Formulate a proposal idea, communicate with devs&lt;br /&gt;
* [http://sourceforge.net/tracker/?group_id=3248&amp;amp;atid=303248 Submit a patch]&lt;br /&gt;
* [http://code.google.com/soc/2008 Apply] between March 24th and &#039;&#039;&#039;April 7th&#039;&#039;&#039; (was March 31st)&lt;br /&gt;
&lt;br /&gt;
= Preparing an application =&lt;br /&gt;
&lt;br /&gt;
There is intentionally no specific format to our applications. &#039;&#039;&#039;BUT&#039;&#039;&#039;... students are &#039;&#039;&#039;strongly&#039;&#039;&#039; encouraged to be detailed, creative, and interactive with the BZFlag developers throughout the application process.  Proposals that are detailed in their approach and contain useful background information about the individual&#039;s abilities and their ideas will generally receive more attention.  Applications should specify what you intend to deliver, a reasonable development timeline, and any implementation details that are relevant such as what language(s) you intend to use.  C/C++ proposals are generally preferred since that is our predominant codebase and developer expertise though others are considered.  See our &#039;&#039;&#039;[[Google_Summer_of_Code/Application_Guidelines|Application Guidelines]]&#039;&#039;&#039; for more details.&lt;br /&gt;
&lt;br /&gt;
Early proposal submissions are encouraged as it gives the mentors more time to review the proposal in detail, comment on it, potentially ask for additional input, and iterate with the student on your ideas.  In the past, submitting closer to the deadline hasn&#039;t been a negative consideration, as all submissions are predominantly judged on merit, but submitting and discussing early do tend to be an advantage if there are others applications that have similar goals.&lt;br /&gt;
&lt;br /&gt;
Students should propose what they actually want to work on, how you intend to work on it, what you intend to DO, what you know about that task, some details about yourself, etc.  Be detailed and articulate.  Brief proposals do not generally do very well.  Your ability to perform the task is outright presumed by the nature of submitting a detailed application.  Students should propose a task that they are comfortable and knowledgeable with performing within the timeframe of the program and considering any extenuating circumstances.&lt;br /&gt;
&lt;br /&gt;
You may submit more than one application (one application for each project you would enjoy working on) if you so desire.  This can help us when we receive more than one strong proposal for a single project, as generally speaking we will accept only one application for each project.  However, please do not submit proposals for work you will not enjoy doing, and please do not sacrifice quality for quantity.  One good application makes a much better impression than two half-baked applications.&lt;br /&gt;
&lt;br /&gt;
If you talk with us on IRC about your SoC proposal, be sure to include your IRC nickname somewhere in your proposal.&lt;br /&gt;
&lt;br /&gt;
You should also [http://sourceforge.net/tracker/?group_id=3248&amp;amp;atid=303248 submit a patch] before you submit your application, and be sure to include a link to the tracker item in your proposal submission.  See the [[Google Summer of Code Acceptance|development requirements]] for details.&lt;br /&gt;
&lt;br /&gt;
Students are expected to interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] rules, and agree to the [[Google Summer of Code Acceptance|development requirements]] before submitting an application.&lt;br /&gt;
&lt;br /&gt;
Thanks for your interest and we look forward to seeing you apply!&lt;br /&gt;
&lt;br /&gt;
= The application review process =&lt;br /&gt;
&lt;br /&gt;
Just about every participating GSoC organization receives considerably more project proposals than can be accepted.  All the applications are reviewed, evaluated, and critiqued individually.  Of those applications, only a few can be selected to work on BZFlag.  We expect to receive many good applications, making the selection process very competitive and difficult (so make sure your application is excellent).  &#039;&#039;This cannot be stressed enough.&#039;&#039;  It is rather hard for most projects to narrow down the submissions but in the end there are only so many slots to work with and the line eventually has to be drawn.  Every application gets read multiple times and reviewed in detail.  We thank &#039;&#039;&#039;everyone&#039;&#039;&#039; that submits a proposal and hope to see many of you become involved in BZFlag software development regardless of acceptance.&lt;br /&gt;
 &lt;br /&gt;
In the end, submissions are selected according to the overall long-term impact that accepting the proposal can make for the game, perception of the submitter&#039;s abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, how well the student communicates with other developers, the perception that the individual is interested in being a long-term BZFlag developer, and our overall interest in having the proposed modifications made to BZFlag.  Particular notice is made of students that are responsive to questions and readily interactive in the IRC channel.  Communication is one of the most important criteria.&lt;br /&gt;
&lt;br /&gt;
Be sure to follow the aforementioned application preparation steps mentioned above.  The final list of selected proposals will be announced on April 14, 2008 at 12:00 noon PDT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BZFlag participation in GSoc =&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2008|2008 (more details here)]] ==&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2008_small.gif |thumb|left|128px]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
The Google Summer of Code 2008 was announced on February 25, 2008. Given the substantial successes and opportunities provided by the program, BZFlag will continue to participate in the program. BZFlag has been accepted as a mentoring organization, and will accept student project proposals from March 24 to March 31. Please click the link above for more information and for project proposal ideas.&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2007|2007 (more details here)]] ==&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2007_small.gif|thumb|left|128px]]&lt;br /&gt;
 |}&lt;br /&gt;
BZFlag first participated during GSoC&#039;s third year in 2007.  A detailed after-the-fact discussion and analysis of BZFlag&#039;s first-year participation is included in the article &#039;&#039;[http://my.bzflag.org/gsoc/bzflag_gsoc2007_post_mortem.pdf “Postmortem” Perspectives of a First-year Participant in the 2007 Google Summer of Code for BZFlag]&#039;&#039;.  This article was given to Google in August 2007 as a final report, per se, of our involvement (you&#039;re only a first-year participant once).&lt;br /&gt;
&lt;br /&gt;
==== [[Google Summer of Code/2007#Promotion Flyers|Promotion Flyers]] ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eGetWorldEvent&amp;diff=4339</id>
		<title>Bz eGetWorldEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eGetWorldEvent&amp;diff=4339"/>
		<updated>2008-03-30T02:01:36Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Map file override */ details on worldFile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eGetWorldEvent&#039;&#039;&#039; is an API event that is called before the [[BZFS]] server defines the world.&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eGetWorldEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_GetWorldEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eGetWorldEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |generated&lt;br /&gt;
  |bool&lt;br /&gt;
  |The value representing the state of the world generation. If another plug-in has generated a world, this value will be set to true. If the plug-in processing this event, adds world geometry using the &#039;&#039;&#039;bz_addWorld&#039;&#039;&#039; methods ([[bz_addWorldBox]], [[bz_addWorldPyramid]] etc. ) then it must set this value to true.&lt;br /&gt;
  |-&lt;br /&gt;
  |ctf&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a Capture the Flag (CTF) type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |rabbit&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a Rabbit Hunt type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |openFFA&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a [[Free For All]] type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |worldBlob&lt;br /&gt;
  |char*&lt;br /&gt;
  |A pointer to a memory location from which to read the world stream.  Overrides worldFile.&lt;br /&gt;
  |-&lt;br /&gt;
  |worldFile&lt;br /&gt;
  |[[bz_ApiString]]&lt;br /&gt;
  |The path to the map file that will be used when this event is completed. If the string is zero length, then either a plug-in defined map or a random map will be used.&lt;br /&gt;
  |-&lt;br /&gt;
  |eventTime&lt;br /&gt;
  |double&lt;br /&gt;
  |Local Server time of the event.&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Uses==&lt;br /&gt;
This event is a modification event. It is the primary hook for plug-ins that wish to modify the world.  The available options are;&lt;br /&gt;
&lt;br /&gt;
===Map file override ===&lt;br /&gt;
If the plug-in wishes to force the server to use a specific map file, it can set the &#039;&#039;&#039;worldFile&#039;&#039;&#039; member.  This member may be set to any valid local path or an http:// or ftp:// URL.&lt;br /&gt;
&lt;br /&gt;
The plug-in may instead use the worldFile member for information only, and write a valid BZW world into a contiguous memory location, passing that pointer back to BZFS via the worldBlob member.  It is the caller&#039;s responsibility to free this memory; this may be done in the [[bz_eWorldFinalized]] event.&lt;br /&gt;
&lt;br /&gt;
===Game Style overide===&lt;br /&gt;
The plug-in may change the game style flags to override the initial game mode.&lt;br /&gt;
&lt;br /&gt;
===Plug-in defined maps===&lt;br /&gt;
If the plug-in sets the &#039;&#039;&#039;worldFile&#039;&#039;&#039; member to a zero length string, it can then make any number of calls to the world definition functions to define a map file programaticly. These functions include;&lt;br /&gt;
&lt;br /&gt;
* [[bz_addWorldBox]]&lt;br /&gt;
* [[bz_addWorldPyramid]]&lt;br /&gt;
* [[bz_addWorldBase]]&lt;br /&gt;
* [[bz_addWorldTeleporter]]&lt;br /&gt;
* [[bz_addWorldWaterLevel]]&lt;br /&gt;
* [[bz_addWorldWeapon]]&lt;br /&gt;
* [[bz_setWorldSize]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eGetWorldEvent&amp;diff=4338</id>
		<title>Bz eGetWorldEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eGetWorldEvent&amp;diff=4338"/>
		<updated>2008-03-30T01:59:47Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Map file overide */ doc worldBlob&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eGetWorldEvent&#039;&#039;&#039; is an API event that is called before the [[BZFS]] server defines the world.&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eGetWorldEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_GetWorldEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eGetWorldEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |generated&lt;br /&gt;
  |bool&lt;br /&gt;
  |The value representing the state of the world generation. If another plug-in has generated a world, this value will be set to true. If the plug-in processing this event, adds world geometry using the &#039;&#039;&#039;bz_addWorld&#039;&#039;&#039; methods ([[bz_addWorldBox]], [[bz_addWorldPyramid]] etc. ) then it must set this value to true.&lt;br /&gt;
  |-&lt;br /&gt;
  |ctf&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a Capture the Flag (CTF) type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |rabbit&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a Rabbit Hunt type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |openFFA&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a [[Free For All]] type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |worldBlob&lt;br /&gt;
  |char*&lt;br /&gt;
  |A pointer to a memory location from which to read the world stream.  Overrides worldFile.&lt;br /&gt;
  |-&lt;br /&gt;
  |worldFile&lt;br /&gt;
  |[[bz_ApiString]]&lt;br /&gt;
  |The path to the map file that will be used when this event is completed. If the string is zero length, then either a plug-in defined map or a random map will be used.&lt;br /&gt;
  |-&lt;br /&gt;
  |eventTime&lt;br /&gt;
  |double&lt;br /&gt;
  |Local Server time of the event.&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Uses==&lt;br /&gt;
This event is a modification event. It is the primary hook for plug-ins that wish to modify the world.  The available options are;&lt;br /&gt;
&lt;br /&gt;
===Map file override ===&lt;br /&gt;
If the plug-in wishes to force the server to use a specific map file, it can set the &#039;&#039;&#039;worldFile&#039;&#039;&#039; member.&lt;br /&gt;
&lt;br /&gt;
The plug-in may instead use the worldFile member for information only, and write a valid BZW world into a contiguous memory location, passing that pointer back to BZFS via the worldBlob member.  It is the caller&#039;s responsibility to free this memory; this may be done in the [[bz_eWorldFinalized]] event.&lt;br /&gt;
&lt;br /&gt;
===Game Style overide===&lt;br /&gt;
The plug-in may change the game style flags to override the initial game mode.&lt;br /&gt;
&lt;br /&gt;
===Plug-in defined maps===&lt;br /&gt;
If the plug-in sets the &#039;&#039;&#039;worldFile&#039;&#039;&#039; member to a zero length string, it can then make any number of calls to the world definition functions to define a map file programaticly. These functions include;&lt;br /&gt;
&lt;br /&gt;
* [[bz_addWorldBox]]&lt;br /&gt;
* [[bz_addWorldPyramid]]&lt;br /&gt;
* [[bz_addWorldBase]]&lt;br /&gt;
* [[bz_addWorldTeleporter]]&lt;br /&gt;
* [[bz_addWorldWaterLevel]]&lt;br /&gt;
* [[bz_addWorldWeapon]]&lt;br /&gt;
* [[bz_setWorldSize]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_eGetWorldEvent&amp;diff=4337</id>
		<title>Bz eGetWorldEvent</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_eGetWorldEvent&amp;diff=4337"/>
		<updated>2008-03-30T01:57:30Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Data */ doc worldBlob&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Events}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The &#039;&#039;&#039;bz_eGetWorldEvent&#039;&#039;&#039; is an API event that is called before the [[BZFS]] server defines the world.&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&#039;&#039;&#039;bz_eGetWorldEvent&#039;&#039;&#039; returns the &#039;&#039;&#039;bz_GetWorldEventData_V1&#039;&#039;&#039; data class.&lt;br /&gt;
&lt;br /&gt;
  {| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |eventType    &lt;br /&gt;
  |[[Event(API)|bz_eEventType]]&lt;br /&gt;
  |bz_eGetWorldEvent&lt;br /&gt;
  |-&lt;br /&gt;
  |generated&lt;br /&gt;
  |bool&lt;br /&gt;
  |The value representing the state of the world generation. If another plug-in has generated a world, this value will be set to true. If the plug-in processing this event, adds world geometry using the &#039;&#039;&#039;bz_addWorld&#039;&#039;&#039; methods ([[bz_addWorldBox]], [[bz_addWorldPyramid]] etc. ) then it must set this value to true.&lt;br /&gt;
  |-&lt;br /&gt;
  |ctf&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a Capture the Flag (CTF) type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |rabbit&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a Rabbit Hunt type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |openFFA&lt;br /&gt;
  |bool&lt;br /&gt;
  |This value represents the game state being a [[Free For All]] type game. Mutually exclusive with other game type setings.&lt;br /&gt;
  |-&lt;br /&gt;
  |worldBlob&lt;br /&gt;
  |char*&lt;br /&gt;
  |A pointer to a memory location from which to read the world stream.  Overrides worldFile.&lt;br /&gt;
  |-&lt;br /&gt;
  |worldFile&lt;br /&gt;
  |[[bz_ApiString]]&lt;br /&gt;
  |The path to the map file that will be used when this event is completed. If the string is zero length, then either a plug-in defined map or a random map will be used.&lt;br /&gt;
  |-&lt;br /&gt;
  |eventTime&lt;br /&gt;
  |double&lt;br /&gt;
  |Local Server time of the event.&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Uses==&lt;br /&gt;
This event is a modification event. It is the primary hook for plug-ins that wish to modify the world.  The available options are;&lt;br /&gt;
&lt;br /&gt;
===Map file overide ===&lt;br /&gt;
If the plug-in wishes to force the server to use a specific map file, it can set the &#039;&#039;&#039;worldFile&#039;&#039;&#039; member. &lt;br /&gt;
&lt;br /&gt;
===Game Style overide===&lt;br /&gt;
The plug-in may change the game style flags to override the initial game mode.&lt;br /&gt;
&lt;br /&gt;
===Plug-in defined maps===&lt;br /&gt;
If the plug-in sets the &#039;&#039;&#039;worldFile&#039;&#039;&#039; member to a zero length string, it can then make any number of calls to the world definition functions to define a map file programaticly. These functions include;&lt;br /&gt;
&lt;br /&gt;
* [[bz_addWorldBox]]&lt;br /&gt;
* [[bz_addWorldPyramid]]&lt;br /&gt;
* [[bz_addWorldBase]]&lt;br /&gt;
* [[bz_addWorldTeleporter]]&lt;br /&gt;
* [[bz_addWorldWaterLevel]]&lt;br /&gt;
* [[bz_addWorldWeapon]]&lt;br /&gt;
* [[bz_setWorldSize]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4310</id>
		<title>Google Summer of Code: 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4310"/>
		<updated>2008-03-25T20:35:26Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Mentors */ I&amp;#039;m a bit erroneous too&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 2008 Google Summer of Code was announced on February 25, 2008.  BZFlag has been accepted again this year as a mentoring organization.  Given our enormously successful participation in the program in 2007, we&#039;re very excited to be participating again and look forward to seeing the student submissions. BZFlag will accept student project proposals from March 24 to March 31 ending at 5:00 PDT (0:00 April 1 GMT). Further information on our proposal ideas are below.  &#039;&#039;&#039;&#039;&#039;Candidate students should be sure to read our suggestions for [[Google_Summer_of_Code|getting started, preparing a submission, and the application process]].&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Promotion Flyers =&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2008_small.gif|thumb|left|512px]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Provided below is a promotional flyer to help spread the word about our involvement with the Google Summer of Code.  Flyers are available in various languages that we have mentors for so that students from all over the globe can be informed about the program.  While many developers can converse fluently in other languages, English is still expected for most developer discussions.  Feel free to distribute the flyer around your local colleges and universities.&lt;br /&gt;
&lt;br /&gt;
* English ([http://my.bzflag.org/gsoc/BZGSoC2008.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008.png PNG])&lt;br /&gt;
* Deutsch | German  ([http://my.bzflag.org/gsoc/BZGSoC2008_de.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_de.png PNG])&lt;br /&gt;
* Español | Spanish ([http://my.bzflag.org/gsoc/BZGSoC2008_es.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_es.png PNG])&lt;br /&gt;
&lt;br /&gt;
High praise and special thanks to Harry Keller (aka Saturos) for designing our 2008 GSoC flyer.&lt;br /&gt;
&lt;br /&gt;
= Proposal Ideas =&lt;br /&gt;
&lt;br /&gt;
While there are lots of [[Ideas]] floating around of varying utility to the game, the ideas listed below are the specific areas that we are predominantly interested in seeing worked on as part of the GSoC.  Please note that students are also welcome and encouraged to apply with their own ideas.  They should run those ideas by one of the developers beforehand to make sure they are consistent with the scope and focus of the project, though, as there are some ideas which will not be accepted regardless of the quality of the application and applicant.  We&#039;ve additionally provided several project ideas important to BZFlag development that we would very much like to see proposals for, shown in following. &lt;br /&gt;
&lt;br /&gt;
Ideas marked with an &amp;quot;*&amp;quot; asterisk indicate entries where we have received at least two or more applicant submissions for that idea.&lt;br /&gt;
&lt;br /&gt;
== Suggest your own idea ==&lt;br /&gt;
BZFlag is always open to new development ideas and is under constant improvement.  If you are familiar with BZFlag&#039;s current capabilities and would like to propose some new enhancement, we&#039;d be happy to hear about.  Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game.&lt;br /&gt;
&lt;br /&gt;
== Cheat preventions ==&lt;br /&gt;
This task involves making BZFlag more robust towards preventing various cheats from working in the game.  This task implicitly requires adding protections on the server, moving game logic from the client to the server, and/or adding heuristics and other measures for detecting and dealing with cheat clients.  The student should have a strong grasp of the variety of BZFlag cheats that are available.  Please go into detail about which cheats you&#039;re interested in preventing and how you intend to employ those preventive measures. For information on known cheats, check out the [[Known Cheats]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Global authentication daemon ==&lt;br /&gt;
The goal of this project would be to provide global account management system daemon that the client and servers would communicate with for account, group membership, and profile information.  This effort preferably be written in C++, would need to talk to an LDAP server for persistent storage on the backend, and allow chaining across multiple daemons for data replication and failover service.  The daemon would need to provide a well structured simple communications API that the game client and game servers can securely talk to.&lt;br /&gt;
&lt;br /&gt;
== BZWorkBench world editor enhancement ==&lt;br /&gt;
As a participant in last year&#039;s program, Jude Nelson started work on BZWorkBench.  It is a world file editor with a very solid foundation but much work still remains to be done, including a cross-platform GUI, mesh support, and other editor features.  Ideally, two students would work on this.  For example, one student could focus on improving the GUI&#039;s workflow and ease-of-use, and another could focus on finishing the back-end object manipulation.&lt;br /&gt;
The current GUI does not conform to a specific HIG, nor does its usability resemble many other 3D editors; this should change.  The back-end still lacks support for many of the objects added in BZFlag 2.0, such as Meshes, texture matrices, dynamic colors, etc.&lt;br /&gt;
&lt;br /&gt;
== Enhanced server listing ==&lt;br /&gt;
The game client includes a simplistic listing of publicly available servers.  This task would involve significantly enhancing the listing section in BZFlag to allow for various sortings (e.g. ping time, country, name, etc), favorites, recently used, specific additional information on specific servers, and all existing information.  The task would involve coming up with a user-friendly design that is fully keyboard-accessible.  It could leverage external gui toolkits, use BZFlag&#039;s existing gui library, and/or extend the existing capabilities.  The focus would be on creating an intuitive and informative listing enhancement within the constraints of the gaming interface.&lt;br /&gt;
&lt;br /&gt;
== Modularization of game logic ==&lt;br /&gt;
Much of the game logic is presently mixed in with BZFlag&#039;s graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine.&lt;br /&gt;
&lt;br /&gt;
== Dead Reckoning and other Networking Enhancements ==&lt;br /&gt;
The basic idea is to improve BZFlag&#039;s networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include &amp;quot;[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]&amp;quot; and &amp;quot;[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Enhanced cross-platform multiple display support ==&lt;br /&gt;
Add the ability to effectively manage multiple display environments from within the game allowing for the detection, alignment/orientation specification, and resolution parameters for each display via menu options as well as proper full-screen and/or windowed support.  An additional feature could involve allowing the user to dedicate a display to the various primary gui elements (the 3D environment, the radar, and the chat console).  BZFlag&#039;s current context management is mostly handled by SDL or other platform-specific modules, so this could be taken into consideration.  There&#039;s also the possibility of our move to an integrated graphics engine would similarly impact how multidisplay contexts are created and managed.&lt;br /&gt;
&lt;br /&gt;
== Enhanced Statistics system ==&lt;br /&gt;
The goal of this idea would be to extend the existing web based statistics system to be more robust.&lt;br /&gt;
&lt;br /&gt;
Features could include:&lt;br /&gt;
&lt;br /&gt;
*Better integration with the list server.&lt;br /&gt;
*Use of a plug-in or server based stat &amp;quot;push&amp;quot; system instead of the current &amp;quot;pull&amp;quot; system.&lt;br /&gt;
*Better publishing of stats&lt;br /&gt;
*Publishing of recorded stat data to other sites.&lt;br /&gt;
*Better tracking of registered and unregistered players&lt;br /&gt;
*Tracking of leagues and individual match games.&lt;br /&gt;
*Generalizing the stats system to be used in other games/projects.&lt;br /&gt;
&lt;br /&gt;
== Integrated BZFS web interface ==&lt;br /&gt;
The BZFlag game server, BZFS, could benefit from having a browser-accessible http/https interface for viewing server statistics, setting various parameters, and otherwise controlling the server daemon while it is running.  Similar to how your network router has a web interface for changing configuration parameters, this idea is simply to create this interface in a maintainable and portable manner.  Please go into detail on how exactly you&#039;d go about doing this.&lt;br /&gt;
&lt;br /&gt;
== Network Testing and Simulation Environment ==&lt;br /&gt;
This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss.  This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers.  This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment.&lt;br /&gt;
&lt;br /&gt;
== Cross server communications system ==&lt;br /&gt;
This task would be the design and implementation of a server spanning chat system. It would allow players from one server to send chat messages to players on other servers. It should also be able to be used to allow players to know where there friends or &amp;quot;buddies&amp;quot; are playing if they are online. The system should tie into the central user name registration system. Added benefits would be the use of existing protocols or applications, such as Jabber or IRC, if they can be integrated cleanly. Support for using off-line apps for chat and friends list access as well as server management would be a plus.&lt;br /&gt;
&lt;br /&gt;
== In-game profile management ==&lt;br /&gt;
BZFlag allows players to specify a callsign and team in addition to other player characteristics and preferences.  This enhancement would focus on allowing the user to specify and manage multiple profiles from within the game.  Profiles could be linked together and should be presented in an intuitive manner (proposal should highlight how you&#039;d go about achieving that).  The profiles would need to associate with global account information as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mentors =&lt;br /&gt;
The mentors for 2008 are;&lt;br /&gt;
* Sean Morrison (brlcad/learner)&lt;br /&gt;
* Daniel Remenak (DTRemenak/Erroneous)&lt;br /&gt;
* Jeffrey Myers (JeffM/JeffM2501)&lt;br /&gt;
* Julio Jiménez Borreguero (Manu/jujibo)&lt;br /&gt;
* Scott Wichser (Blast/Blast007)&lt;br /&gt;
* David Wollner (JB diGriz)&lt;br /&gt;
* Joe VanOverberghe (Donny_Baker)&lt;br /&gt;
* James Lawrence (spldart)&lt;br /&gt;
&lt;br /&gt;
= Thanks &amp;amp; Appreciation =&lt;br /&gt;
&lt;br /&gt;
Thank you to the following individuals in the BZFlag community that helped prepare GSoC-related marketing materials:&lt;br /&gt;
&lt;br /&gt;
* Harry Keller (aka Saturos)&lt;br /&gt;
* Julio Jiménez Borreguero (aka jujibo aka Manu)&lt;br /&gt;
* Dexter Mason (aka whodaman)&lt;br /&gt;
* Sean Morrison (aka learner aka brlcad)&lt;br /&gt;
* Jeffrey Myers (aka JeffM)&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Ideas&amp;diff=4263</id>
		<title>Ideas</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Ideas&amp;diff=4263"/>
		<updated>2008-03-20T19:47:41Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: randomly drop in some non-vetted ideas that got put on the SoC ideas page where they didn&amp;#039;t belong.  needs cleanup.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Old}}&lt;br /&gt;
NOTE: These are just possibilities. We won&#039;t be implementing everything here.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commentary may include personal comments by developers.&lt;br /&gt;
&lt;br /&gt;
= Editing this page =&lt;br /&gt;
&lt;br /&gt;
Feel free to make changes and updates to this page whenever possible. If you have any questions, feel free to [[Getting Help|ask for help]]. If you wish to make major changes to this page (i.e. remove large amounts of old ideas), please warn us ahead of time.&lt;br /&gt;
&lt;br /&gt;
== Adding ideas ==&lt;br /&gt;
* Please remember to make sure your idea isn&#039;t already here or on the [[Rejected Ideas]] page.&lt;br /&gt;
* Flag ideas should be placed on [[Flag Ideas]], not here.&lt;br /&gt;
* Add a row to the appropriate category (at the bottom, please) and fill it in with your idea. &lt;br /&gt;
* Sign your idea in the third column with three tildes: &amp;lt;nowiki&amp;gt;~~~&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Put the submission date in the fourth column&lt;br /&gt;
* Describe in full and make sense!&lt;br /&gt;
* Leave the status column white and fill it with (Unknown). &lt;br /&gt;
&lt;br /&gt;
== Adding commentary ==&lt;br /&gt;
* Precede your comment with an asterisk: &amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Sign your comment with four tildes: &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Be nice, polite, and constructive. &lt;br /&gt;
* Contribute something when you comment. Saying whether or not you like an idea is pointless if you don&#039;t explain yourself.&lt;br /&gt;
&lt;br /&gt;
== Cleaning up ==&lt;br /&gt;
To help keep this page current, old ideas should be removed when they&#039;re implemented (after each stable release, hence the &amp;quot;SVN&amp;quot; status). If you spot any ideas that were implemented prior to the latest stable release of BZFlag, please remove it.&lt;br /&gt;
&lt;br /&gt;
== My few ideas ==&lt;br /&gt;
So hi  I am Vytautas (vytautas1987@yahoo.com)&lt;br /&gt;
Some stupid some maybe good I just write them all.&lt;br /&gt;
&lt;br /&gt;
=== Allow custom tank skins ===&lt;br /&gt;
It would be fun if players would be able to use custom, original images and colors of their tank. Or maybe clans then would be able to have something like military markings on tanks. As disadvantage it wold create more network loads in online games before game start because everyone will have to download all custom skins. &amp;lt;br&amp;gt;Main thing I want to say that now one color tanks are not very beautiful. And this my suggestion was just idea how to improve this.&lt;br /&gt;
&lt;br /&gt;
=== Tank simulation mode ===&lt;br /&gt;
Maybe this is quite different way then now and almost idea for new game. But I suggest to create game modification (MOD) which allows simulation mode not arcade like now. So I talk about: &lt;br /&gt;
*realistic tank models maybe from WW2 or maybe from nowadays or even both.&lt;br /&gt;
**tank skins, models&lt;br /&gt;
**real technical parameters&lt;br /&gt;
*realistic gun/damage system&lt;br /&gt;
**different caliber guns with different damage.&lt;br /&gt;
**armor is not same in from of tank and on sides.&lt;br /&gt;
**after engine damage tank can not move and etc.&lt;br /&gt;
*much more realistic physics engine.&lt;br /&gt;
**Tank can destroy buildings, trees...&lt;br /&gt;
**Acceleration&lt;br /&gt;
*controls like from real tank (only this kind of realistic control implemented still would give a lot of fun)&lt;br /&gt;
**not arrows (two separate accelerators for left and right side of wheals)&lt;br /&gt;
**separate turret control&lt;br /&gt;
&lt;br /&gt;
=== More game modes ===&lt;br /&gt;
*&amp;quot;Battlefiled 1942&amp;quot;-like mode where teem have to capture all checkpoints on the map&lt;br /&gt;
*Destroy/Defend target mode&lt;br /&gt;
**Escort/Destroy truck convoy&lt;br /&gt;
&lt;br /&gt;
== IDEA 1 ==&lt;br /&gt;
I am of this view point that games can also teach something apart from entertaining us all and being an Environment conscious student,i plan to implement some changes which can teach us all some lessons !.As in its a WAR based game,i.e TANKS... so what i propose is to find the pollutants in the game ..say a Tank which is continuously bombarding must trade off with loosing some points,because it is pouring harmful gases in environment,this is in no way decreasing excitement in game,perhaps will ask gamers to be more strategic,in compromise to that bullets/bombs provided will be increased .. loss of vegetation,polluting water etc must be punished...Global Warming issues can be implemented too .. this is just a rough idea ,if asked proper description will be provided by me.&lt;br /&gt;
I am ready to work on existing ideas also,its just the one i proposed..looking forward for a mentor..thanking you..&lt;br /&gt;
Rajan Vaish&lt;br /&gt;
IRC : vaish&lt;br /&gt;
GTALK : vaish.rajan@gmail.com&lt;br /&gt;
&lt;br /&gt;
= The list =&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+align=&amp;quot;bottom&amp;quot;|&#039;&#039;Legend&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#FF00FF;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Implemented as a server-side plug-in&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#0080FF;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|SVN (Implemented and will be in next release)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#00FFFF;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|In progress (Implementing)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Good Idea&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Idea&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#FFFF00;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Vague, not understood, or in need of work&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#FF8000&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Rejected, but can be implemented as a server plug-in&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#FF0000;&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Rejected&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;background-color:#FFFFFF&amp;quot;|&#039;&#039; &#039;&#039;&lt;br /&gt;
|Unknown (new)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General/Gameplay ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|- &lt;br /&gt;
|Add support for 5 (or more) button mice&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00;&amp;quot;|Great Idea&lt;br /&gt;
|&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Better physics&lt;br /&gt;
|style=&amp;quot;background-color:#00FFFF;&amp;quot;|In progress&lt;br /&gt;
|&lt;br /&gt;
*Planning, some changes in CVS. &lt;br /&gt;
|Unknown&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|SELF-DESTRUCT BLAST RADIUS: Self Destruct (delete key) should have a blast radius similar to Shock Wave, perhaps larger.  If you get shot during the self-destruct count down, that should also trigger the same blast.  If I gotta go, I want to take someone with me.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
| &lt;br /&gt;
*Do it with shockwaveDeath --[[User:Jftsang|Jftsang]] 18:26, 14 March 2008 (EDT)&lt;br /&gt;
|BearRiver&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|3-second (or however long) &#039;invulnerability&#039; for incoming tanks - but they can&#039;t shoot&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*I could see this backfiring... your spawn attracts opponents to come, wait, and blast you when you lose invincibility. -L4m3r&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Ability to turn off ricochet for laser flag but allow ricochet for bullets... or let them bounce only n times.. OR implement mirror buildings/walls. Should go for some interesting self-kills when combined with the no-radar/bullet bounce &lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
| &lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Smart LockOn for GM - won&#039;t lock on to your teammates (configurable in server)&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*I don&#039;t like this idea, there should be at least *some* risks to using this weapon. Personally, I think there should be more (not fewer) risks to holding this weapon; I&#039;d like to see the thing overheat and explode (killing the holder) if it&#039;s fired too often in a short period of time. -M. Jetleb&lt;br /&gt;
&lt;br /&gt;
*2.99 has an option to disable friendly fire altogether. Close enough. Lock-on could still be looked into, however. [[User:L4m3r|L4m3r]] 01:38, 5 January 2008 (EST)&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Small jumps&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
| &lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Server option for genocide flag - if you&#039;re killed while you have it, your team dies :^)&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Feasible with a plug-in, too. -L4m3r&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|for broadband or LAN connections - voice chat for teams&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*I really think that you can do this with another service; I&#039;m not sure if being part of BZFlag would be a good idea due to size and bandwidth issues.&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Tank avatars (uploadable tank images) - have to think about shapes, though - someone could make a 1x1x1 pixel tank - that would suck - or a tank that looks like a building or pyramid. Clients don&#039;t have to accept downloading of avators (just view other tanks in default mode). Or just s-e-l-e-c-t from a certain number of predefined avatars that could come with the bzflag distribution. Or client provides a URL to download their avatar (saves server bandwidth).&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|*Might not be implemented. Requires discussion; we may want to consider making the computer force a minimum size or something similar.&lt;br /&gt;
*How about uploadable flag graphics?&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;Kamikaze&#039; option for players - can take someone out by suicide&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Server option if implemented. &lt;br /&gt;
*Implemented with a plugin by Theme97&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Server option: everyone is radar-stealthed by default unless you get a &#039;radar&#039; flag. You can still see all buildings, pyramids, teleports, and arena walls, though.&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00;&amp;quot;|Good idea&lt;br /&gt;
|&lt;br /&gt;
*Make them use their window. ;)&lt;br /&gt;
*Given the fairly narrow field of view out the window and the time it takes to turn a tank all the way around for a look-see, I think this could be frustrating. How about everyone starts out with minimum range radar instead and gets longer ranges with an appropriate flag? -M. Jetleb&lt;br /&gt;
*Ideally this could be implemented in the same manner as jumping and ricochet- radar could be enabled by default, or available as a flag. [[User:L4m3r|L4m3r]] 01:38, 5 January 2008 (EST)&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Option for above: if you pick up GM or Laser, you&#039;re visible on radar to everyone whether they&#039;ve got a radar flag or not&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00;&amp;quot;|Good idea&lt;br /&gt;
|&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Selectable &#039;ricochet&#039; fire - hold down shift key or something and your bullets won&#039;t ricochet&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Server option - tanks only have a certain number of times they can jump (gets reset when you get killed)&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Could be made possible with a plug-in in 2.99. [[User:L4m3r|L4m3r]] 01:38, 5 January 2008 (EST)&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Multiple-shields (server option for shield flags, or can be random - can get hit x number of times)&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|*This is pretty much moot now. It&#039;s been shot down by the devs at least once, and a similar effect can be achieved by setting  _shieldFlight to a very small number. This effectively provides as many hits as _maxFlagGrabs. [[User:L4m3r|L4m3r]]&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Configurable &#039;radarless&#039; and/or &#039;blind&#039; zones in the arena - can&#039;t see what&#039;s in there on radar or via visuals&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Tank collisions - why can tanks drive through each other? Weird.&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00;&amp;quot;|Good Idea&lt;br /&gt;
|*Lag could be a big problem here. If implemented, it must be impossible for two tanks to get stuck to each other. [[User:L4m3r|L4m3r]]&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|When tanks collide - great opportunity to implement tank damage concept, especially if one of them is moving especially fast, or has momentum flag, etc. Can push a tank off a building if your pushing them from their side.&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Tank damage won&#039;t happen, but the kinetics could be neat, especially for mid-air collisions. It would certainly make &amp;quot;jump dancing&amp;quot; more interesting. [[User:L4m3r|L4m3r]]&lt;br /&gt;
|Morph&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|If a tank explodes right next to another tank, the other tank can be destroyed or get damaged&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Somewhat implemented with the [[ShockwaveDeath]] plug-in. It would probably not be too hard to implement something similar (with a plugin) without shockwaves. [[User:L4m3r|L4m3r]]&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Skins or views- In-tank mode, bumper mode, out-of-cab mode, chase mode.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Weapon extension packs.&lt;br /&gt;
|style=&amp;quot;background-color:#FFFF00;&amp;quot;|(Unknown)&lt;br /&gt;
|*Huh? Explain, please. [[User:L4m3r|L4m3r]]&lt;br /&gt;
|iPod&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|The ability to choose tanks, but they all die at one shot.  maybe the jump height, speed, turn speed, acceleration, size can be preset. &lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*Could be done with a plug-in in 2.99, maybe. [[User:L4m3r|L4m3r]] 01:38, 5 January 2008 (EST)&lt;br /&gt;
|iPod&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Option to choose different kinds of tanks.  Different tanks could be weighted with different strengths and weaknesses.  (almost like having a default flag).  Would also need some form of health/damage status measurement, not just single hits.  For example, there could be a larger, heavily armored tank that has powerful weapons, but moves slowly, versus a small, light, fast tank which is difficult to hit, but very low armor to protect from hits.  &lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Cue&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|What about a radar that only covers visible areas (don&#039;t passing through buildings/pyramids) ? This would leads to more placement tactics).&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|K&amp;lt;nowiki&amp;gt;&#039;&amp;lt;/nowiki&amp;gt;limero&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Always random respawn. Currently in CTF games first respawn is at own base. This can be abused by leaving and rejoining to get near base. This leave/rejoing trick is considered to be a mild form of cheating by many. Always random respawn would make it useless.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
* I believe there is a plug-in for this. [[User:L4m3r|L4m3r]] 22:38, 30 April 2007 (EDT)&lt;br /&gt;
|abli&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|multiple (3?) jump stengths mini, normal, max...just the thing to confuse the opponents that expect one and you&#039;re off doing the other. &lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|kitchen&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Anti camping. The ability to add &amp;quot;no camping zones&amp;quot; to areas of a map or to the entire map. Campers would be messaged that they&#039;re in a no camping zone, better start moving and have a prescribe number of seconds to move away or die. If a player returns to the same NCZ (no camping zone) and receives x warnings then he&#039;s disconnected. NCZs could be marked by a different color shade from a &amp;quot;normal&amp;quot; spot and could be exempt to a single team (like at their flag base). It&#039;s just a rough idea.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*Definitely more suited to a plug-in (and probably doable, too).&lt;br /&gt;
|pherris&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Shield Flag Changes: Give Shield flag a radius, and draw it like a moving less opaque blue shockwave. Any tanks inside the shield radius would be protected, until the shield got hit a certain number of times.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|YHARG&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|At our company, we instituted a voluntary policy of dropping flags after 1 kill.  Prevents slaughters and keeps things rolling more.  It&#039;d be great to be able to have the game do this for us, plus I&#039;d love to see it turned on at external sites.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|TomMatelich&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Server option: default powers -- flag(s) that everyone in the game automatically has (this wouldn&#039;t count as holding a flag).  For example, the current Jumping option would == including Jumping as a default power.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|NebNamwen&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Shot Aiming. Basically the center shot aim box could be moved left and right as far as the edge of the view window. (This would be enabled by default.) If the map is a vertical one a server option could be enabled so that vertical aiming could be enabled (using the same concept as horizontal aiming.) The aiming would be automatically centered by a button or key. These options could be mapped to a second joystick access, mouse scroll wheel or keyboard buttons.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|Lateral shooting would basically be the same as a rotating turret, and this idea has been shot down many times. Vertical shooting has been poo-pooed also. [[User:L4m3r|L4m3r]] 01:45, 3 July 2007 (EDT)&lt;br /&gt;
|NN&lt;br /&gt;
|6/20/07&lt;br /&gt;
|-&lt;br /&gt;
|Make a tele porter along the game sides that would tele port into other games running on their own servers. This would enable larger more collaborative game board linked together that would distribute loads across multiple servers speeding up game play and making for interesting possibilities.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Waban*&lt;br /&gt;
|7/31/07&lt;br /&gt;
|-&lt;br /&gt;
|Make a &#039;fog of war&#039; where the a player&#039;s radar only shows a certain distance of the area around them and their teammates&#039;. &lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*This could be done if radar and position data were separated, allowing the server to &amp;quot;filter&amp;quot; radar data for each player. &lt;br /&gt;
|Forrest&lt;br /&gt;
|8/19/07&lt;br /&gt;
|-&lt;br /&gt;
|Speed of light becomes a server variable. Tanks travelling near the speed of light have an increased mass and appear distorted from a stationary observer. Lasers travel at speed of light, not at infinite speed. If a tank is travelling near the speed of light, the colour of the tank is redshifted or blueshifted.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|jftsang&lt;br /&gt;
|14/03/08&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|-&lt;br /&gt;
|Make option to show previous players list&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
| &lt;br /&gt;
|(Unknown)&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Make ALL server options available from the menus&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*There are a LOT of server options, and this could add quite a bit of clutter. If you need more than a basic game, you should probably learn to start BZFS from the command line anyway. -L4m3r&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Separate windows for player messages &amp;amp; server messages&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00;&amp;quot;|Good idea.&lt;br /&gt;
| &lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Message log&lt;br /&gt;
|style=&amp;quot;background-color:#00FF00;&amp;quot;|Good idea.&lt;br /&gt;
| &lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Send message to everyone &#039;but&#039; specified player (crosses team boundaries, or not)&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea &lt;br /&gt;
|&lt;br /&gt;
*Hmm. Everybody BUT a specified player? [M. Jetleb -&amp;gt; as in: &amp;quot;Let&#039;s all get the GM guy&amp;quot; without the GM guy knowing he&#039;s facing a co-ordinated attack - I like this idea)&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|The ability to see what the world is like before connecting to the server.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|iPod&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Multi-monitor support (i.e., radar on one screen, window on another, chat/event log on a third)&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|bhtooefr&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Make a part in bzflag to put up a real server. 1st screen has the flags you want, next page is to find the MAP file that you created on your hard drive, next page pick if you want jumping etc.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Colin&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Add a rear view mirror &lt;br /&gt;
|(Unknown)&lt;br /&gt;
| &lt;br /&gt;
|Sparky1&lt;br /&gt;
|1/1/2008&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|-&lt;br /&gt;
|Better network handling&lt;br /&gt;
|style=&amp;quot;background-color:#00FFFF;&amp;quot;|In progress&lt;br /&gt;
|&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Better robot AI&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Don&#039;t know if players would like it or not in multiplayer game. Pluggable or scriptable robot AI , maybe? - Code must be restructured first &lt;br /&gt;
*Server side bots are coming! [[User:TD-Linux|TD-Linux]] 17:41, 12 March 2007 (EDT)&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Better positioning of tanks&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*BZFlag already does this, but the algorithm is bad. Needs work.&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Serious multithreaded design - shouldn&#039;t lock up interface while looking for servers, or doing anything else. This program is way-unstable on Windows&lt;br /&gt;
|style=&amp;quot;background-color:#00FFFF;&amp;quot;|In Progress&lt;br /&gt;
|&lt;br /&gt;
*We&#039;re working on these problems; many complaints are due to people still using old servers/clients.&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Some type of BZFlag GUID* to ban players who cheat - won&#039;t accept players who disable their GUID, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Global Unique Identifier, sort of like an IP addrss, but permanent.  Usually a number.  Problem occurs when you lose your GUID (have to reformat your HD, etc.  How do you keep someone from hacking their GUID, or setting up a modified BZFlag server for identity theft, etc.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*I doubt this is even possible, let alone practical. What about people who play from more than one location? And, because this is an open-source game, it would probably be cracked in minutes. Any verification can be spoofed, or at least altered. there is no foolproof way to permanently ban someone. -L4m3r&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|To prevent cheating - the server determines what flags &amp;amp; abilities each tank has (possible?)&lt;br /&gt;
|style=&amp;quot;background-color:#00FFFF;&amp;quot;|In Progress&lt;br /&gt;
|&lt;br /&gt;
*Seriously being considered. This would also have the advantage of allowing different versions of clients and servers to work together. Yes, it&#039;s possible, but this type of change will mean a change in the network protocols. &lt;br /&gt;
*Being worked on for 3.0&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|BZFlag for mac in separate data and application files.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|iPod&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|J2ME client (allows one to play on a cell phone), would use radar&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|bhtooefr&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Special &#039;open source&#039; BZFlag version (server and client) which is guaranteed to be compatible with all other BZFlag versions.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*BZFlag is already open-source, and making a universally-compatible client is not even remotely practical. Incompatibility is part of why the game breaks off new versions in the first place. [[User:L4m3r|L4m3r]]&lt;br /&gt;
|Orca&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Game Modes, Team Play, and Scoring ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|-&lt;br /&gt;
|Tounament mode&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea &lt;br /&gt;
|&lt;br /&gt;
*Great Idea?&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|When you shoot someone on your own team, instead of both of you blowing up, neither is destroyed, and their score goes up one, while your&#039;s goes down one. This would make teamkilling impossible and greatly discourage traitors as well.&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*But then couldn&#039;t cheaters spawn two clients and ramp up their scores by teamkilling their other login? --YHARG&lt;br /&gt;
|Trigger Happy Nerd&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|A new gameplay mode- Takes two to tank. One to control the (rotating) turret, the other drives. KIA switches positions. &amp;quot;Teamplay&amp;quot; but all in one tank.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*I see serious lag issues with this... How does Halo do it? ;) -L4m3r&lt;br /&gt;
*The main problem with this idea is coordination. If one person were to leave, the tank would be crippled. You COULD solve this by having the person switch to normal mode, but this could cause considerable jerking between modes on a busy server. [[User:F687s|F687s]] 22:13, 20 June 2007 (EDT)&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Turret mode, If enabled by the server (Can be manditory with automatic grouping). One user drives and the other shoots, Turret mode tanks get double points (But onyl take one from the target). lost double points if killed. Have double ammo, And controllable speed (Max = _tankSpeed * 2 Min = _tankSpeed). Plus it takes 2 shots to kill a turret mode tank. Points gained and lost by turret tanks are divided evenly between the users, Unless the server is all turret mode, in h which case two users are displayed as one.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Dogbert&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Ability for a team to vote to &#039;banish&#039; someone from their team&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Possibly unfair to newer players. [[User:L4m3r|L4m3r]]&lt;br /&gt;
*Useful for getting rid of TKers and selfcappers. However you would need a way (e.g. a voting system) and you would need to be able to say to which team he or she should go if rogues are unavailable. Possible, if rogues are allowed, but not otherwise not really a good idea. --[[User:88.108.209.168|88.108.209.168]] 13:13, 24 December 2007 (EST)&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|There should be a game of cops and robbers.  The teams can change after about 10 mins or so.&lt;br /&gt;
|style=&amp;quot;background-color:#FFFF00;&amp;quot;|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|iPod&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|A special FFA Game mode &amp;quot;Team by Flags&amp;quot;. This means, same Flag = same Team, so if there is a Tank with Rapid fire, and you pick up Rapid fire, you are automatically handled as Team member (this means, killing the other Tank with Rapid fire will be handled the same way as when killing a team member). YHARG: Funky idea: what about a game mode where teams shared flag abilities? Like, each player on a team&#039;s flag applies to the whole team. This could make for some interesting combos...&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Agonizer&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Make life trickier for the Rogue Team; with a mix of Rogues and Colored Teams, the Rogues have more targets. This should also change the effect of the Masquerade flag - perhaps your tank is invisible to Rogues (like Cloaking)?&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|NickGrim&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|A server option to make deaths not affect your score unless they were self-inflicted/team (the method used by many online games). This would encourage more aggressive play, because it&#039;s worth going out and blasting. As it is, you&#039;ve got a very good chance by just phantoming/OOing out of the way and keeping you score at zero to stay in the top three places! It would also help fix the rather unfair situation of spawning just below a building on which someone is GM-camping...there&#039;s pretty much no way to escape, so you lose a point.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|LionsPhil&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Don&#039;t show individual score in CTF games. This might help teamplay as it reduces the incentive to run around as if it would be FFA.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|abli&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Give points to the player how captures flag in CTF. (Say, around 4 or so) After all, it is often a bigger job than killing someone.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*Maybe the score could be based the number of tanks in the other team, similar to shooting someone w/ geno.  This can also discourage people from capturing thier own flag by scoreing the negative number of teamates.  I&#039;m not sure if the individual scores of the players of the captured team (other than the one who captures the flag) should be affected however. [[User:Sparky1|Sparky1]] 09:44, 21 May 2007 (EDT)&lt;br /&gt;
*Scores can be customized with plug-ins in 3.0. Unfortunately, there&#039;s a bug in 2.0.x that prevents the server from setting scores properly. [[User:L4m3r|L4m3r]] 01:46, 5 January 2008 (EST)&lt;br /&gt;
|abli&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Ducati/Freestyle &amp;quot;Roles&amp;quot; mode: Make a game mode where players are presented with a list of flag choices (limitable to a few roles, if wanted) at respawn or connect time, and are forced to use this flag for the remainder of their connection/tank life. This would be really useful in the case of stealth vs. seer, where you could choose to be stealth or seer, but couldn&#039;t switch between them. Another idea would be high speed vs. quick turn. Or steamroller vs. machine gun... Team play would have the interesting effect of people banding together and people with each role on the team. Especially in stealth vs. seer, where a seer team member could warn the team about enemies! There would be no team flags/bases.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*Too specialized, use a plug-in (yes, it&#039;s possible). [[User:L4m3r|L4m3r]] 01:46, 5 January 2008 (EST)&lt;br /&gt;
|YHARG&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|New game called tag were someone is it and they shoot someone else and there it and ect.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Supermatthew&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Also a new game called &amp;quot;Hide and seek&amp;quot; were everyone is clocked(think thats it, were you don&#039;t see them on radar) except one who is it. he needs to find someone and shoot them then hese cloked and who was shot is not. Also when someone is shot there sent back to Ground zero( 0X, 0Y, 0Z ) so they can&#039;t shoot who ever just shot them.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Supermatthew&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;Cat&amp;quot; game: when a player dies, he/she respawns automaticaly, after 3 secs or so. When they have respawned 9 times, they can no longer spawn, and are observers. The one who lasts the longest wins. Games are timed.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*Why should the games be timed?  I would think that the game should end when there is no more than 1 tank left.--[[User:Sparky1|Sparky1]] 21:55, 17 February 2008 (EST)&lt;br /&gt;
*I smell cheating; if players keep rejoining, they have infinite lives --[[User:Jftsang|Jftsang]] 14:22, 15 March 2008 (EDT)&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|4/20/2007&lt;br /&gt;
|-&lt;br /&gt;
|A switch-teams function that allows you to swap teams during a game without losing score.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|jftsang&lt;br /&gt;
|10/11/2007&lt;br /&gt;
|-&lt;br /&gt;
|Rogue team - A mode in which rogues may TK and capture flag.&lt;br /&gt;
|(unknown)&lt;br /&gt;
|&lt;br /&gt;
*Why? [[User:L4m3r|L4m3r]] 01:46, 5 January 2008 (EST)&lt;br /&gt;
|jftsang&lt;br /&gt;
|10/11/2007&lt;br /&gt;
|-&lt;br /&gt;
|A Sport Mode:  I noticed that there is a lot of recently created cool sport maps.  In those maps a team flag is used as a &amp;quot;ball&amp;quot;, and bases are used as &amp;quot;goals&amp;quot;.  I think that there is even more potential for great maps if there would be a game mode where a bullet behaves like a &amp;quot;ball&amp;quot;.In that mode when a game starts, or right after a score, a bullet hovers over a specified location (like the center of the map) and no one can shoot.  The first tank that touches the bullet &amp;quot;has the ball&amp;quot;, in other words only that tank can shoot.  If a tank that &amp;quot;has the ball&amp;quot; shoots it, shooting for that tank is disabled, likewise, if a tank is shot by a bullet that tank does not die, but instead it &amp;quot;has the ball&amp;quot;, this allows for passing and interception. A tank that &amp;quot;has the ball&amp;quot; should be indcated somehow, perhaps by a unique flag.  The &amp;quot;ball&amp;quot; has the color of the last tank that shot it.  A new object would have to be created (perhaps called a goal zone?) that resembles a teleporter that results in a ctf if a bullet encounters it.  Or instead of a specific object an area/volume on the map could be designated as a &amp;quot;goal zone&amp;quot; which would give more freedom in designing objects that behave like goals.  The score would go to the team that has the same color as the bullet that encountered the &amp;quot;goal zone&amp;quot;.  All tanks would have the Steam Roller power.  a tank that touches another tank would not be killed only if that tank is higher at the touch.  If a tank that &amp;quot;has the ball&amp;quot; is killed before he can shoot the &amp;quot;ball&amp;quot; then the bullet appears at the tanks position of death and travel at the speed and in the direction the tank had at that point.  Maybe a provision could be made where the number of &amp;quot;balls&amp;quot; could be set at a number greater than one to allow for more complex games.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|[[User:Sparky1|Sparky1]]&lt;br /&gt;
|1/21/2008&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Maps, Mapping, and BZW ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|-&lt;br /&gt;
|Materials that don&#039;t allow OO and PZ to go through&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Would be nice for multilevel worlds made with the new ability to have objects above the ground. &lt;br /&gt;
*Sounds awesome! TD-Linux 17:41, 12 March 2007 (EDT)&lt;br /&gt;
*As a special case, there could be Zoned objects (objects that only respond to PZ and maybe OO; normal tanks behave like PZ through these objects).  [[User:Sparky1|Sparky1]] 18:05, 21 May 2007 (EDT)&lt;br /&gt;
*Would also be nice if there were non-ricochet materials, or only ricochet some shot type materials. --[[User:88.108.209.168|88.108.209.168]] 13:09, 24 December 2007 (EST)&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Differently-shaped teleporters (circles, triangles, etc.)&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*probably low priority&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|360 degree teleports - hit a spot on the ground or in the air from any direction and you teleport&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Configurable random teleporters - teleports to a different location every time&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
|&lt;br /&gt;
*Idea is a bit vague... randomized teles are implemented if you use multiple links. Is this what is meant by this suggestion? -L4m3r&lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Triggers in levels&lt;br /&gt;
|style=&amp;quot;background-color:#FFFF00;&amp;quot;|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
*Triggers for what? unless you&#039;re talking about AI, this could most likely be handled with a server plug-in. [[User:L4m3r|L4m3r]]&lt;br /&gt;
|Dragonstar&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|wraparound world - radar remains centered on your current position. Internally, objects leaving the north border reappear to the south, but from the user&#039;s radar / visible perspective, you just see to the horizon. I believe this is how the original Battlezone worked. There are some implications: laser would need a range limit.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|nsayer&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|As a generalization to the wraparound world concept, how about the option of making a map based on geometry that’s non-Euclidean, for example spherical or hyperbolic.  Jumping/flying, the shape of the tanks/objects, and bullet trajectories would also be affected by this global geometry.  It would be like a world that has a high gravitational field, or a world situated near a wormhole.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|[[User:Sparky1|Sparky1]]&lt;br /&gt;
|5/21/2007&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Get rid of the PZ flag and replace it w/ special telporters that do the same thing (they could be called &amp;quot;zoners&amp;quot;, and should probably look different from regular teleporters).  This way superflags, badflags, and team flags can all be zoned (without needing an exception to the restricition against using more than one flag at a time).  The above idea of other zoned objects would play a major role here.  Zoned flags can only be picked up by zoned tanks.  Flags can spawn zoned, or become zoned by being carried by an unzoned tank that becomes zoned by going through a zoner.  Likewise, a zonedflag becomes unzoned when a zoned tank carries it through a zoner.  Unzoned tanks respond to shots from zoned flags the same way zoned tanks respond to shots from unzoned flags.  For example: when zoned, L, WG, geno, and GM do not kill unzoned tanks (zoned GM will still lock onto any tank, and zoned geno would still kill every tank on the same team as the zoned tank that was shot).  Although, flags like SW and SB would still kill any tank regardless of thier zoning status.  As an extension to this idea one team in a CTF game could start out zoned, i.e. thier base is zoned and they initially spawn zoned.  In order for the unzoned team to capture the zoned team&#039;s flag, the flag must become unzoned, and vice versa for the zoned team.  This way new possibilities exist, like two bases could be superimposed  as long as one base is zoned and the other is not.  Another possible extension is different kinds of zones (w/ corespondingly different kinds of zoners) for CTF involving more than two teams.  The relationship between differently zoned tanks would be the same as the relationship between zoned and unzoned tanks.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|[[User:Sparky1|Sparky1]]&lt;br /&gt;
|5/21/2007&lt;br /&gt;
|-&lt;br /&gt;
|Change the workings of zones such that a zone may have its own server variables (I wanted to make a Death Castle against a Holy Castle).&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|jftsang&lt;br /&gt;
|1/12/2007&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Server Options, Administration, Plug-ins, and the Plug-in API ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|-&lt;br /&gt;
|Ability to configure server to turn somethings off or on depending on number of players - for instance, turn off ricochet after a certain number of players are connected, turn off GM &amp;amp; laser if a certain number of players aren&#039;t playing (GM &amp;amp; Laser with 2 players is kinda ridiculous)&lt;br /&gt;
|style=&amp;quot;background-color:#808080;&amp;quot;|Idea&lt;br /&gt;
| &lt;br /&gt;
|MORPH&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Allow custom-made weapons with a Object-Oriented scripting language (sorta like Liero AI uses: http://helios.et.put.poznan.pl/~sskowron/liero/index.html )&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Dragonstar&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Preset world weapons that can be fired manually by admins from within BzFlag.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
* Could be done by a plugin [[User:Tanner|Tanner]] 13:42, 12 August 2007 (EDT)&lt;br /&gt;
|Dogbert&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Graphics &amp;amp; Sound ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|-&lt;br /&gt;
|Sounds of tanks moving.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|iPod&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Have different tank death scenes for the dying tank point of view. I realize there is some time needed for one to die and respawn, but the jumping effect one sees when killed irritates me to no end! I&#039;d be happier if all faded to black or white or orange and had text across the screen saying &amp;quot;&amp;quot;respawning... please wait&amp;quot;&amp;quot; :) Also, when killed and your tank was moving toward a building, it just falls right thru it until it hits the ground.. wrong physics there! Splatter or tumble or shatter or something :)&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|Robi&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Custom color schemes for rogue players. The turret and body components can be chosen to be one of a predefined set of colors (e.g. red, yellow, black, white, blue, green, purple...). The game prohibits choosing a color scheme that matches a team scheme (e.g. red turret with red body) and the limited set stops someone choosing a shade which is nearly a team color (e.g. 0xFE0000 instead of 0xFF0000) (and also save texture memory, I think).&lt;br /&gt;
|(Unknown)&lt;br /&gt;
| * Clients are able to define their own colors, and removing the ability to would cause accessibility issues (Colorblind users). --[[User:AAA|AAA]] 13:30, 7 August 2007 (EDT)&lt;br /&gt;
|LionsPhil&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Allow a small decal on the back of the top of the tank. (think Half-Life&#039;s customizable spraypaint). Possibly also apply it to any held flag?&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|LionsPhil&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|I&#039;d like to see something more interesting done with the sky... maybe there could be a little ufo (easter egg) that would fly around occasionally? Tux on a ufo! ;)&lt;br /&gt;
|(Unknown)&lt;br /&gt;
| This is up to servers. --[[User:AAA|AAA]] 13:30, 7 August 2007 (EDT)&lt;br /&gt;
|YHARG&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Flag decals: Each flag would have a little icon/decal showing it&#039;s type ONLY when held by a player. It&#039;s kind of nice to be able to surprise people with an undercover shockwave, but doesn&#039;t make sense to have to right click (identify) or check the user list to see what flag someone has.&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|&lt;br /&gt;
|YHARG&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|Background music! : (This can be done with an external media player so it shouldn&#039;t be the heighest priority, It would be nice to be able to control your music from within BzFlag)&lt;br /&gt;
|(Unknown)&lt;br /&gt;
|More usefully, you could just map key combinations to commands, rather than wasting time supporting all the various music players on every OS BZFlag supports. I don&#039;t know whether that would work so well on Windows, though. --[[User:77.97.207.100|77.97.207.100]] 10:14, 30 May 2007 (EDT)&lt;br /&gt;
|YHARG&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List Server and Other Global Services ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#ffff88;&amp;quot;&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Idea&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Status&lt;br /&gt;
!width=&amp;quot;40%&amp;quot;|Commentary&lt;br /&gt;
!width=&amp;quot;7%&amp;quot;|Submitter&lt;br /&gt;
!width=&amp;quot;6%&amp;quot;|Date&lt;br /&gt;
|-&lt;br /&gt;
|Multiple list servers, in case bzflag.org goes down (as it happened around feb. 15. 2004)&lt;br /&gt;
|style=&amp;quot;background-color:#00FFFF;&amp;quot;|In progress&lt;br /&gt;
| * Of course someone would need to pay for it. --[[User:BinarySpike|BinarySpike]] 18:10, 10 May 2007 (EDT)&lt;br /&gt;
* We now have two servers, and some form of redundancy for the list should follow eventually. [[User:L4m3r|L4m3r]] 15:40, 31 January 2008 (EST)&lt;br /&gt;
|abli&lt;br /&gt;
|(Old)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4262</id>
		<title>Google Summer of Code: 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4262"/>
		<updated>2008-03-20T19:46:16Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: non-vetted ideas go to the ideas page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Google Summer of Code 2008 was announced on February 25, 2008. BZFlag has been accepted again this year as a mentoring organization. Given our enormously successful participation in the program in 2007, BZFlag will again participate in the program in 2008. BZFlag will accept student project proposals from March 24 to March 31 ending at 5:00 PDT (0:00 April 1 GMT). Further information on the application process and some proposal ideas are below.&lt;br /&gt;
&lt;br /&gt;
= Promotion Flyers =&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2008_small.gif|thumb|left|512px]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Provided below is a promotional flyer to help spread the word about our involvement with the Google Summer of Code.  Flyers are available in various languages that we have mentors for so that students from all over the globe can be informed about the program.  While many developers can converse fluently in other languages, English is still expected for most developer discussions.  Feel free to distribute the flyer around your local colleges and universities.&lt;br /&gt;
&lt;br /&gt;
* English ([http://my.bzflag.org/gsoc/BZGSoC2008.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008.png PNG])&lt;br /&gt;
* Deutsch | German  ([http://my.bzflag.org/gsoc/BZGSoC2008_de.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_de.png PNG])&lt;br /&gt;
* Español | Spanish ([http://my.bzflag.org/gsoc/BZGSoC2008_es.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_es.png PNG])&lt;br /&gt;
&lt;br /&gt;
High praise and special thanks to Harry Keller (aka Saturos) for designing our 2008 GSoC flyer.&lt;br /&gt;
&lt;br /&gt;
= Preparing an Application =&lt;br /&gt;
&lt;br /&gt;
There is specific format to applications, but students should be detailed in their approach and background information about themselves.  They should state specifically what they intend to deliver and any implementation details they feel relevant such as what language they intend to use.  C/C++ proposals are preferred though others will be considered.  Students that just submit the summaries contained below will not do very well.  If you talk with us on IRC about your SoC proposal, you should include your IRC nickname somewhere in your proposal.&lt;br /&gt;
&lt;br /&gt;
Early proposal submission are encouraged as it gives us more time to review your proposals in detail, comment on them, and potentially ask for additional input.  Submitting closer to the deadline will not be a negative consideration as all submissions will be predominantly judged on their merit, but submitting and discussing early is an advantage for submissions that are similar to other submissions.  &lt;br /&gt;
&lt;br /&gt;
Students are asked to propose what they actually want to work on, how they intend to work on it, what they intend to DO, what they know about that task, some details about themselves, etc.  Their ability to perform the task is outright presumed, so they are supposed to propose a task that they are comfortable and knowledgeable with performing.&lt;br /&gt;
&lt;br /&gt;
= Program Evaluation =&lt;br /&gt;
&lt;br /&gt;
All the applications we receive will be reviewed, evaluated, and critiqued.  Of those applications, only a few can be selected to work on BZFlag.  We expect to receive many good applications, making the selection process very competitive and difficult.  &#039;&#039;This cannot be stressed enough.&#039;&#039;  It will be really hard to narrow down the submissions but in the end we will have only so many slots to work with and the line will eventually need to be drawn.  Every application will be read multiple times and reviewed in detail.  We thank &#039;&#039;&#039;everyone&#039;&#039;&#039; that submits a proposal and hope to still see some of you become involved in our software development.&lt;br /&gt;
&lt;br /&gt;
In the end, submissions will be selected according to the overall long-term impact that accepting the proposal could make for the game, perception of the submitter&#039;s abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to BZFlag.  Particular notice will be made of students that are responsive to questions and readily interactive in the IRC channel.  Communication is a good thing.&lt;br /&gt;
&lt;br /&gt;
While there&#039;s never any guarantee that work on any code will be integrated, this is very much the desire and &#039;&#039;&#039;intention&#039;&#039;&#039; of our participation in the Summer of Code.  Students are expected to interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] rules, agree to the [[Google Summer of Code Acceptance|development requirements]], and focus on providing a clean maintainable implementation.&lt;br /&gt;
&lt;br /&gt;
Biding BZFlag&#039;s acceptance into the program, the final list of selected proposals will be announced on April 14, 2008 at 12:00 noon PDT.&lt;br /&gt;
&lt;br /&gt;
= Proposal Ideas =&lt;br /&gt;
&lt;br /&gt;
While there are lots of [[Ideas]] floating around of varying utility to the game, the ideas listed below are the specific areas that we are predominantly interested in seeing worked on as part of the GSoC.  Please note that students are also welcome and encouraged to apply with their own ideas.  They should run those ideas by one of the developers beforehand to make sure they are consistent with the scope and focus of the project, though, as there are some ideas which will not be accepted regardless of the quality of the application and applicant.  We&#039;ve additionally provided several project ideas important to BZFlag development that we would very much like to see proposals for, shown in following. &lt;br /&gt;
&lt;br /&gt;
Ideas marked with an &amp;quot;*&amp;quot; asterisk indicate entries where we have received at least two or more applicant submissions for that idea.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;INSERT YOUR IDEA HERE&amp;gt; ==&lt;br /&gt;
BZFlag is always open to new development ideas and is under constant improvement.  If you are familiar with BZFlag&#039;s current capabilities and would like to propose some new enhancement, we&#039;d be happy to hear about.  Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game.&lt;br /&gt;
&lt;br /&gt;
== Cheat preventions ==&lt;br /&gt;
This task involves making BZFlag more robust towards preventing various cheats from working in the game.  This task implicitly requires adding protections on the server, moving game logic from the client to the server, and/or adding heuristics and other measures for detecting and dealing with cheat clients.  The student should have a strong grasp of the variety of BZFlag cheats that are available.  Please go into detail about which cheats you&#039;re interested in preventing and how you intend to employ those preventive measures. For information on known cheats, check out the [[Known Cheats]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Global authentication daemon ==&lt;br /&gt;
The goal of this project would be to provide global account management system daemon that the client and servers would communicate with for account, group membership, and profile information.  This effort preferably be written in C++, would need to talk to an LDAP server for persistent storage on the backend, and allow chaining across multiple daemons for data replication and failover service.  The daemon would need to provide a well structured simple communications API that the game client and game servers can securely talk to.&lt;br /&gt;
&lt;br /&gt;
== BZWorkBench world editor enhancement ==&lt;br /&gt;
As a participant in last year&#039;s program, Jude Nelson started work on BZWorkBench.  It is a world file editor with a very solid foundation but much work still remains to be done, including a cross-platform GUI, mesh support, and other editor features.  Ideally, two students would work on this.  For example, one student could focus on improving the GUI&#039;s workflow and ease-of-use, and another could focus on finishing the back-end object manipulation.&lt;br /&gt;
The current GUI does not conform to a specific HIG, nor does its usability resemble many other 3D editors; this should change.  The back-end still lacks support for many of the objects added in BZFlag 2.0, such as Meshes, texture matrices, dynamic colors, etc.&lt;br /&gt;
&lt;br /&gt;
== Enhanced server listing ==&lt;br /&gt;
The game client includes a simplistic listing of publicly available servers.  This task would involve significantly enhancing the listing section in BZFlag to allow for various sortings (e.g. ping time, country, name, etc), favorites, recently used, specific additional information on specific servers, and all existing information.  The task would involve coming up with a user-friendly design that is fully keyboard-accessible.  It could leverage external gui toolkits, use BZFlag&#039;s existing gui library, and/or extend the existing capabilities.  The focus would be on creating an intuitive and informative listing enhancement within the constraints of the gaming interface.&lt;br /&gt;
&lt;br /&gt;
== Modularization of game logic ==&lt;br /&gt;
Much of the game logic is presently mixed in with BZFlag&#039;s graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine.&lt;br /&gt;
&lt;br /&gt;
== Dead Reckoning and other Networking Enhancements ==&lt;br /&gt;
The basic idea is to improve BZFlag&#039;s networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include &amp;quot;[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]&amp;quot; and &amp;quot;[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Enhanced cross-platform multiple display support ==&lt;br /&gt;
Add the ability to effectively manage multiple display environments from within the game allowing for the detection, alignment/orientation specification, and resolution parameters for each display via menu options as well as proper full-screen and/or windowed support.  An additional feature could involve allowing the user to dedicate a display to the various primary gui elements (the 3D environment, the radar, and the chat console).  BZFlag&#039;s current context management is mostly handled by SDL or other platform-specific modules, so this could be taken into consideration.  There&#039;s also the possibility of our move to an integrated graphics engine would similarly impact how multidisplay contexts are created and managed.&lt;br /&gt;
&lt;br /&gt;
== Enhanced Statistics system ==&lt;br /&gt;
The goal of this idea would be to extend the existing web based statistics system to be more robust.&lt;br /&gt;
&lt;br /&gt;
Features could include:&lt;br /&gt;
&lt;br /&gt;
*Better integration with the list server.&lt;br /&gt;
*Use of a plug-in or server based stat &amp;quot;push&amp;quot; system instead of the current &amp;quot;pull&amp;quot; system.&lt;br /&gt;
*Better publishing of stats&lt;br /&gt;
*Publishing of recorded stat data to other sites.&lt;br /&gt;
*Better tracking of registered and unregistered players&lt;br /&gt;
*Tracking of leagues and individual match games.&lt;br /&gt;
*Generalizing the stats system to be used in other games/projects.&lt;br /&gt;
&lt;br /&gt;
== Integrated BZFS web interface ==&lt;br /&gt;
The BZFlag game server, BZFS, could benefit from having a browser-accessible http/https interface for viewing server statistics, setting various parameters, and otherwise controlling the server daemon while it is running.  Similar to how your network router has a web interface for changing configuration parameters, this idea is simply to create this interface in a maintainable and portable manner.  Please go into detail on how exactly you&#039;d go about doing this.&lt;br /&gt;
&lt;br /&gt;
== Network Testing and Simulation Environment ==&lt;br /&gt;
This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss.  This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers.  This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment.&lt;br /&gt;
&lt;br /&gt;
== Cross server communications system ==&lt;br /&gt;
This task would be the design and implementation of a server spanning chat system. It would allow players from one server to send chat messages to players on other servers. It should also be able to be used to allow players to know where there friends or &amp;quot;buddies&amp;quot; are playing if they are online. The system should tie into the central user name registration system. Added benefits would be the use of existing protocols or applications, such as Jabber or IRC, if they can be integrated cleanly. Support for using off-line apps for chat and friends list access as well as server management would be a plus.&lt;br /&gt;
&lt;br /&gt;
== In-game profile management ==&lt;br /&gt;
BZFlag allows players to specify a callsign and team in addition to other player characteristics and preferences.  This enhancement would focus on allowing the user to specify and manage multiple profiles from within the game.  Profiles could be linked together and should be presented in an intuitive manner (proposal should highlight how you&#039;d go about achieving that).  The profiles would need to associate with global account information as well.&lt;br /&gt;
&lt;br /&gt;
= Thanks &amp;amp; Appreciation =&lt;br /&gt;
&lt;br /&gt;
Thank you to the following individuals in the BZFlag community that helped prepare GSoC-related marketing materials:&lt;br /&gt;
&lt;br /&gt;
* Harry Keller (aka Saturos)&lt;br /&gt;
* Julio Jiménez Borreguero (aka jujibo aka Manu)&lt;br /&gt;
* Dexter Mason (aka whodaman)&lt;br /&gt;
* Sean Morrison (aka learner aka brlcad)&lt;br /&gt;
* Jeffrey Myers (aka JeffM)&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4244</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Main_Page&amp;diff=4244"/>
		<updated>2008-03-18T07:19:02Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: SoC 2008 announcement as per 2007&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
[[Image:BZFlag_2010_shiny.png|center]]&lt;br /&gt;
{|style=&amp;quot;width:100%;margin-top:+.7em;background-color:#fcfcfc;border:1px solid #ccc&amp;quot;&lt;br /&gt;
|style=&amp;quot;width:56%;color:#000&amp;quot;|&lt;br /&gt;
{|style=&amp;quot;width:280px;border:solid 0px;background:none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;width:280px;text-align:center;white-space:nowrap;color:#000&amp;quot; |&lt;br /&gt;
[[Image:Bzflag-48x48.png|left]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;Welcome to the BZFlag Wiki,&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;top:+0.2em;font-size: 95%&amp;quot;&amp;gt;The source for community information on most things related to BZFlag!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:162%;border:none;margin: 0;padding:.1em;color:#000&amp;quot;&amp;gt;The BZFlag Wiki motto: [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold!!&#039;&#039;&#039;]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;articlecount&amp;quot; style=&amp;quot;width:100%;text-align:center;font-size:85%;&amp;quot;&amp;gt;[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles available&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;!-- Portals Follow --&amp;gt;&lt;br /&gt;
|style=&amp;quot;width:15%;font-size:95%&amp;quot;|&lt;br /&gt;
[[Image:Bzflag-48x48.png|right]]&lt;br /&gt;
*[http://my.bzflag.org/bb The Forums]&lt;br /&gt;
*[http://my.bzflag.org BZFlag Stats]&lt;br /&gt;
*[http://sourceforge.net/projects/bzflag/ BZFlag on SourceForge]&lt;br /&gt;
&amp;lt;!--*&#039;&#039;&#039;[[Portal:List of portals|All&amp;amp;nbsp;portals]]&#039;&#039;&#039;--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Welcome to the newly launched BZFlag Wiki. The number of articles is growing, but there is much more to do. Please see the section &#039;&#039;&#039;Things To Do&#039;&#039;&#039; at the bottom of this page if you would like to help.  The intention of this site is to draw together all of the great information about BZFlag and BZFlag related items that is currently scattered in many different places. Bringing all of this information together will make it easier for people to understand and answer all of the questions they have about running a server (options, permissions, set-up, etc.), configuring their client, coding plug-ins, compiling the source code, and anything else they can think of. All are welcome to contribute and may edit most pages. With everyone&#039;s help we can make this site a great resource to the BZFlag community. Please remember the BZFlag Wiki&#039;s new motto, [[BZFlagWiki:Be_bold|&#039;&#039;&#039;Be Bold&#039;&#039;&#039;]] (click the link for a full explanation of the motto), when editing articles.&lt;br /&gt;
&lt;br /&gt;
If you are unsure of how to edit or add pages, there is always a link to the [[Help:Contents|&#039;&#039;&#039;Help&#039;&#039;&#039;]] section on the links to the left no matter where you are on the site. Don&#039;t be shy; give editing the site a try and be proud of your contributions! You can edit whether or not you have an account created. The advantage of having an account is that you will be credited with the contribution on the &#039;&#039;History&#039;&#039; link/tab of the page. Please take a look at the [[BZFlagWiki:Content Policy|Content Policy]] page for an overview of adding articles.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2008==&lt;br /&gt;
BZFlag is again participating as a mentor organization in the Google Summer of Code this year. If you are a full-time student and 18+ years old, and your application is accepted, Google will pay you to write code for BZFlag. Prospective students are encouraged to submit project proposals that are in line with our [[Google_Summer_of_Code/2008|&#039;&#039;&#039;goals&#039;&#039;&#039;]] for this summer, though proposals for other [[Ideas]] will be considered.&lt;br /&gt;
 &lt;br /&gt;
==General Information==&lt;br /&gt;
*[[Getting Help]]&lt;br /&gt;
*[[:Category:BZFlagWiki_Policy|BZFlag Wiki Policy]]&lt;br /&gt;
&lt;br /&gt;
==Areas of Interest==&lt;br /&gt;
*[[:Category:Client|Client]]&lt;br /&gt;
*[[:Category:Compiling|Compiling]]&lt;br /&gt;
*[[:Category:Concepts|Concepts]]&lt;br /&gt;
*[[:Category:Development|Development]]&lt;br /&gt;
*[[:Category:Gameplay|Gameplay]]&lt;br /&gt;
*[[:Category:Installing|Installing]]&lt;br /&gt;
*[[:Category:Leagues|Leagues]]&lt;br /&gt;
*[[:Category:Map Making|Map Making]]&lt;br /&gt;
*[[:Category:Maps|Maps]]&lt;br /&gt;
*[[:Category:Plug-Ins|Plug-ins]]&lt;br /&gt;
*[[Releases]]&lt;br /&gt;
*[[:Category:Server|Server]]&lt;br /&gt;
*[[:Category:Support|Support]]&lt;br /&gt;
*[[:Category:Tactics|Tactics]]&lt;br /&gt;
*[[Versions]]&lt;br /&gt;
&lt;br /&gt;
==Things To Do==&lt;br /&gt;
*[[:Category:Stubs|Stubs]] These are short pages.  You can help by expanding the content and adding more detail.&lt;br /&gt;
*[[:Special:Wantedpages|Wanted pages]] These are pages which don&#039;t exist yet but are pointed to from other pages.  You can help by creating them.&lt;br /&gt;
*[[:Category:Items to be merged|Pages to merge]] These are pages which are similar.  It is suggested that similar pages be merged.  You can help by reviewing the pairs of pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;br /&gt;
*[[:Category:Old|Pages with old info]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Inaccurate|Inaccurate pages]]  You can help by updating these pages.&lt;br /&gt;
*[[:Category:Pending Deletions|Pending deletions]]  These are pages which have been nominated for deletion.  You can help by reviewing these pages and commenting on any proposals by using the &amp;quot;Discussion&amp;quot; tab at the top of each page.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4243</id>
		<title>Google Summer of Code: 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4243"/>
		<updated>2008-03-18T07:15:50Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: accepted for gsoc2008&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Google Summer of Code 2008 was announced on February 25, 2008. BZFlag has been accepted again this year as a mentoring organization. Given our enormously successful participation in the program in 2007, BZFlag will again participate in the program in 2008. BZFlag will accept student project proposals from March 24 to March 31 ending at 5:00 PDT (0:00 April 1 GMT). Further information on the application process and some proposal ideas are below.&lt;br /&gt;
&lt;br /&gt;
= Promotion Flyers =&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2008_small.gif|thumb|left|512px]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Provided below is a promotional flyer to help spread the word about our involvement with the Google Summer of Code.  Flyers are available in various languages that we have mentors for so that students from all over the globe can be informed about the program.  While many developers can converse fluently in other languages, English is still expected for most developer discussions.  Feel free to distribute the flyer around your local colleges and universities.&lt;br /&gt;
&lt;br /&gt;
* English ([http://my.bzflag.org/gsoc/BZGSoC2008.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008.png PNG])&lt;br /&gt;
* Deutsch | German  ([http://my.bzflag.org/gsoc/BZGSoC2008_de.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_de.png PNG])&lt;br /&gt;
* Español | Spanish ([http://my.bzflag.org/gsoc/BZGSoC2008_es.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_es.png PNG])&lt;br /&gt;
&lt;br /&gt;
High praise and special thanks to Harry Keller (aka Saturos) for designing our 2008 GSoC flyer.&lt;br /&gt;
&lt;br /&gt;
= Preparing an Application =&lt;br /&gt;
&lt;br /&gt;
There is specific format to applications, but students should be detailed in their approach and background information about themselves.  They should state specifically what they intend to deliver and any implementation details they feel relevant such as what language they intend to use.  C/C++ proposals are preferred though others will be considered.  Students that just submit the summaries contained below will not do very well.  If you talk with us on IRC about your SoC proposal, you should include your IRC nickname somewhere in your proposal.&lt;br /&gt;
&lt;br /&gt;
Early proposal submission are encouraged as it gives us more time to review your proposals in detail, comment on them, and potentially ask for additional input.  Submitting closer to the deadline will not be a negative consideration as all submissions will be predominantly judged on their merit, but submitting and discussing early is an advantage for submissions that are similar to other submissions.  &lt;br /&gt;
&lt;br /&gt;
Students are asked to propose what they actually want to work on, how they intend to work on it, what they intend to DO, what they know about that task, some details about themselves, etc.  Their ability to perform the task is outright presumed, so they are supposed to propose a task that they are comfortable and knowledgeable with performing.&lt;br /&gt;
&lt;br /&gt;
= Program Evaluation =&lt;br /&gt;
&lt;br /&gt;
All the applications we receive will be reviewed, evaluated, and critiqued.  Of those applications, only a few can be selected to work on BZFlag.  We expect to receive many good applications, making the selection process very competitive and difficult.  &#039;&#039;This cannot be stressed enough.&#039;&#039;  It will be really hard to narrow down the submissions but in the end we will have only so many slots to work with and the line will eventually need to be drawn.  Every application will be read multiple times and reviewed in detail.  We thank &#039;&#039;&#039;everyone&#039;&#039;&#039; that submits a proposal and hope to still see some of you become involved in our software development.&lt;br /&gt;
&lt;br /&gt;
In the end, submissions will be selected according to the overall long-term impact that accepting the proposal could make for the game, perception of the submitter&#039;s abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to BZFlag.  Particular notice will be made of students that are responsive to questions and readily interactive in the IRC channel.  Communication is a good thing.&lt;br /&gt;
&lt;br /&gt;
While there&#039;s never any guarantee that work on any code will be integrated, this is very much the desire and &#039;&#039;&#039;intention&#039;&#039;&#039; of our participation in the Summer of Code.  Students are expected to interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] rules, agree to the [[Google Summer of Code Acceptance|development requirements]], and focus on providing a clean maintainable implementation.&lt;br /&gt;
&lt;br /&gt;
Biding BZFlag&#039;s acceptance into the program, the final list of selected proposals will be announced on April 14, 2008 at 12:00 noon PDT.&lt;br /&gt;
&lt;br /&gt;
= Proposal Ideas =&lt;br /&gt;
&lt;br /&gt;
While there are lots of [[Ideas]] floating around of varying utility to the game, the ideas listed below are the specific areas that we are predominantly interested in seeing worked on as part of the GSoC.  Please note that students are also welcome and encouraged to apply with their own ideas.  They should run those ideas by one of the developers beforehand to make sure they are consistent with the scope and focus of the project, though, as there are some ideas which will not be accepted regardless of the quality of the application and applicant.  We&#039;ve additionally provided several project ideas important to BZFlag development that we would very much like to see proposals for, shown in following. &lt;br /&gt;
&lt;br /&gt;
Ideas marked with an &amp;quot;*&amp;quot; asterisk indicate entries where we have received at least two or more applicant submissions for that idea.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;INSERT YOUR IDEA HERE&amp;gt; ==&lt;br /&gt;
BZFlag is always open to new development ideas and is under constant improvement.  If you are familiar with BZFlag&#039;s current capabilities and would like to propose some new enhancement, we&#039;d be happy to hear about.  Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game.&lt;br /&gt;
&lt;br /&gt;
== Cheat preventions ==&lt;br /&gt;
This task involves making BZFlag more robust towards preventing various cheats from working in the game.  This task implicitly requires adding protections on the server, moving game logic from the client to the server, and/or adding heuristics and other measures for detecting and dealing with cheat clients.  The student should have a strong grasp of the variety of BZFlag cheats that are available.  Please go into detail about which cheats you&#039;re interested in preventing and how you intend to employ those preventive measures. For information on known cheats, check out the [[Known Cheats]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Global authentication daemon ==&lt;br /&gt;
The goal of this project would be to provide global account management system daemon that the client and servers would communicate with for account, group membership, and profile information.  This effort preferably be written in C++, would need to talk to an LDAP server for persistent storage on the backend, and allow chaining across multiple daemons for data replication and failover service.  The daemon would need to provide a well structured simple communications API that the game client and game servers can securely talk to.&lt;br /&gt;
&lt;br /&gt;
== BZWorkBench world editor enhancement ==&lt;br /&gt;
As a participant in last year&#039;s program, Jude Nelson started work on BZWorkBench.  It is a world file editor with a very solid foundation but much work still remains to be done, including a cross-platform GUI, mesh support, and other editor features.  Ideally, two students would work on this.  For example, one student could focus on improving the GUI&#039;s workflow and ease-of-use, and another could focus on finishing the back-end object manipulation.&lt;br /&gt;
The current GUI does not conform to a specific HIG, nor does its usability resemble many other 3D editors; this should change.  The back-end still lacks support for many of the objects added in BZFlag 2.0, such as Meshes, texture matrices, dynamic colors, etc.&lt;br /&gt;
&lt;br /&gt;
== Enhanced server listing ==&lt;br /&gt;
The game client includes a simplistic listing of publicly available servers.  This task would involve significantly enhancing the listing section in BZFlag to allow for various sortings (e.g. ping time, country, name, etc), favorites, recently used, specific additional information on specific servers, and all existing information.  The task would involve coming up with a user-friendly design that is fully keyboard-accessible.  It could leverage external gui toolkits, use BZFlag&#039;s existing gui library, and/or extend the existing capabilities.  The focus would be on creating an intuitive and informative listing enhancement within the constraints of the gaming interface.&lt;br /&gt;
&lt;br /&gt;
== Modularization of game logic ==&lt;br /&gt;
Much of the game logic is presently mixed in with BZFlag&#039;s graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine.&lt;br /&gt;
&lt;br /&gt;
== Dead Reckoning and other Networking Enhancements ==&lt;br /&gt;
The basic idea is to improve BZFlag&#039;s networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include &amp;quot;[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]&amp;quot; and &amp;quot;[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Enhanced cross-platform multiple display support ==&lt;br /&gt;
Add the ability to effectively manage multiple display environments from within the game allowing for the detection, alignment/orientation specification, and resolution parameters for each display via menu options as well as proper full-screen and/or windowed support.  An additional feature could involve allowing the user to dedicate a display to the various primary gui elements (the 3D environment, the radar, and the chat console).  BZFlag&#039;s current context management is mostly handled by SDL or other platform-specific modules, so this could be taken into consideration.  There&#039;s also the possibility of our move to an integrated graphics engine would similarly impact how multidisplay contexts are created and managed.&lt;br /&gt;
&lt;br /&gt;
== Enhanced Statistics system ==&lt;br /&gt;
The goal of this idea would be to extend the existing web based statistics system to be more robust.&lt;br /&gt;
&lt;br /&gt;
Features could include:&lt;br /&gt;
&lt;br /&gt;
*Better integration with the list server.&lt;br /&gt;
*Use of a plug-in or server based stat &amp;quot;push&amp;quot; system instead of the current &amp;quot;pull&amp;quot; system.&lt;br /&gt;
*Better publishing of stats&lt;br /&gt;
*Publishing of recorded stat data to other sites.&lt;br /&gt;
*Better tracking of registered and unregistered players&lt;br /&gt;
*Tracking of leagues and individual match games.&lt;br /&gt;
*Generalizing the stats system to be used in other games/projects.&lt;br /&gt;
&lt;br /&gt;
== Integrated BZFS web interface ==&lt;br /&gt;
The BZFlag game server, BZFS, could benefit from having a browser-accessible http/https interface for viewing server statistics, setting various parameters, and otherwise controlling the server daemon while it is running.  Similar to how your network router has a web interface for changing configuration parameters, this idea is simply to create this interface in a maintainable and portable manner.  Please go into detail on how exactly you&#039;d go about doing this.&lt;br /&gt;
&lt;br /&gt;
== Network Testing and Simulation Environment ==&lt;br /&gt;
This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss.  This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers.  This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment.&lt;br /&gt;
&lt;br /&gt;
== Cross server communications system ==&lt;br /&gt;
This task would be the design and implementation of a server spanning chat system. It would allow players from one server to send chat messages to players on other servers. It should also be able to be used to allow players to know where there friends or &amp;quot;buddies&amp;quot; are playing if they are online. The system should tie into the central user name registration system. Added benefits would be the use of existing protocols or applications, such as Jabber or IRC, if they can be integrated cleanly. Support for using off-line apps for chat and friends list access as well as server management would be a plus.&lt;br /&gt;
&lt;br /&gt;
== In-game profile management ==&lt;br /&gt;
BZFlag allows players to specify a callsign and team in addition to other player characteristics and preferences.  This enhancement would focus on allowing the user to specify and manage multiple profiles from within the game.  Profiles could be linked together and should be presented in an intuitive manner (proposal should highlight how you&#039;d go about achieving that).  The profiles would need to associate with global account information as well.&lt;br /&gt;
&lt;br /&gt;
= Thanks &amp;amp; Appreciation =&lt;br /&gt;
&lt;br /&gt;
Thank you to the following individuals in the BZFlag community that helped prepare GSoC-related marketing materials:&lt;br /&gt;
&lt;br /&gt;
* Harry Keller (aka Saturos)&lt;br /&gt;
* Julio Jiménez Borreguero (aka jujibo aka Manu)&lt;br /&gt;
* Dexter Mason (aka whodaman)&lt;br /&gt;
* Sean Morrison (aka learner aka brlcad)&lt;br /&gt;
* Jeffrey Myers (aka JeffM)&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=4242</id>
		<title>Google Summer of Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code&amp;diff=4242"/>
		<updated>2008-03-18T07:13:47Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: accepted for gsoc2008&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since 2005, Google has run an open source software development program specifically for students called the [http://code.google.com/soc/ Google Summer of Code] (GSoC).  Under this program, Google funds students to write code for open source projects during the northern hemisphere&#039;s summer timeframe.  The student efforts are focused on projects that they themselves propose to projects such as BZFlag, sometimes catering to ideas that the project suggests or ideas entirely of the student&#039;s own conception.  Student proposals are then reviewed, evaluated, and ranked by the project.  Google allocates a certain number of slots to each participating project/organization which in turn determines how many student developers we get to work with.&lt;br /&gt;
&lt;br /&gt;
= BZFlag participation =&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2008|2008 (more details here)]] ==&lt;br /&gt;
&lt;br /&gt;
The Google Summer of Code 2008 was announced on February 25, 2008. Given the substantial successes and opportunities provided by the program, BZFlag will continue to participate in the program. BZFlag has been accepted as a mentoring organization, and will accept student project proposals from March 24 to March 31. Please click the link above for more information and for project proposal ideas.&lt;br /&gt;
&lt;br /&gt;
== [[Google Summer of Code/2007|2007 (more details here)]] ==&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:Gsoc_postmortem_preview.png|thumb|left|128px|http://my.bzflag.org/gsoc/bzflag_gsoc2007_post_mortem.pdf]]&lt;br /&gt;
 |}&lt;br /&gt;
BZFlag first participated during GSoC&#039;s third year in 2007.  A detailed after-the-fact discussion and analysis of BZFlag&#039;s first-year participation is included in the article &#039;&#039;[http://my.bzflag.org/gsoc/bzflag_gsoc2007_post_mortem.pdf “Postmortem” Perspectives of a First-year Participant in the 2007 Google Summer of Code for BZFlag]&#039;&#039;.  This article was given to Google in August 2007 as a final report, per se, of our involvement (you&#039;re only a first-year participant once).&lt;br /&gt;
&lt;br /&gt;
==== [[Google Summer of Code/2007#Promotion Flyers|Promotion Flyers]] ====&lt;br /&gt;
&lt;br /&gt;
= [[Google_Summer_of_Code/Application_Guidelines|Preparing an application]] =&lt;br /&gt;
&lt;br /&gt;
There is intentionally no specific format to our applications. &#039;&#039;&#039;BUT&#039;&#039;&#039;... students are &#039;&#039;&#039;strongly&#039;&#039;&#039; encouraged to be detailed, creative, and interactive with the BZFlag developers throughout the application process.  Proposals that are detailed in their approach and contain useful background information about the individual&#039;s abilities and their ideas will generally receive more attention.  Applications should specify what they intend to deliver, a reasonable development timeline, and any implementation details that are relevant such as what language(s) are intended to be used.  C/C++ proposals are generally preferred since that is our predominant codebase and developer expertise though others are considered.  See our &#039;&#039;&#039;[[Google_Summer_of_Code/Application_Guidelines|Application Guidelines]]&#039;&#039;&#039; for more details.&lt;br /&gt;
&lt;br /&gt;
Early proposal submission are encouraged as it gives us more time to review the proposal in detail, comment on it, potentially ask for additional input, and iterate with the student on their ideas.  In the past, submitting closer to the deadline hasn&#039;t been a negative consideration as all submissions are predominantly judged on merit, but submitting and discussing early is an advantage for submissions that have similar goals.&lt;br /&gt;
&lt;br /&gt;
Students should propose what they actually want to work on, how they intend to work on it, what they intend to DO, what they know about that task, some details about themselves, etc.  Their ability to perform the task is outright presumed by the nature of submitting a detailed application.  Students should propose a task that they are comfortable and knowledgeable with performing within the timeframe of the program and considering any extenuating circumstances.&lt;br /&gt;
&lt;br /&gt;
= The application process =&lt;br /&gt;
&lt;br /&gt;
Just about every GSoC project receives considerably more project proposals than can be accepted.  Each proposal is reviewed, evaluated, and critiqued.  Of those applications, only a small subset are selected so keep in mind that the selection process is rather competitive and difficult.  &#039;&#039;This cannot be stressed enough..&#039;&#039;  It remains rather hard for most projects to narrow down the submissions but in the end we all  only have so many slots to work with and the line eventually has to be drawn.  Every application gets read multiple times and reviewed in detail.  We thank &#039;&#039;&#039;everyone&#039;&#039;&#039; that submits a proposal to work on BZFlag.&lt;br /&gt;
&lt;br /&gt;
In the end, submissions are selected according to the overall long-term impact that accepting the proposal can make for the game, perception of the submitter&#039;s abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to BZFlag.  Particular notice is made of students that are responsive to questions and readily interactive in the IRC channel.  Communication is a good thing.&lt;br /&gt;
&lt;br /&gt;
While there&#039;s never any guarantee that work on any code will be integrated, this is very much the desire and one of the core &#039;&#039;&#039;intentions&#039;&#039;&#039; of participation in the Summer of Code.  Students are expected to interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] rules, agree to the [[Google Summer of Code Acceptance|development requirements]], and focus on providing a clean maintainable implementation.&lt;br /&gt;
&lt;br /&gt;
= Integrated development =&lt;br /&gt;
&lt;br /&gt;
Students that participate with the BZFlag project are required to adhere to specified [[Google Summer of Code Acceptance|development requirements]], selected students then work on their projects through the summer.  Students are expected to be fully integrated with the BZFlag development community throughout the program, actively engaged in their work, and intently working &#039;&#039;with&#039;&#039; the other BZFlag developers throughout the design and implementation of their projects.  If the student successfully completes what they propose, they are ultimately paid $4500 for their work and the BZFlag community hopefully gains a new long-term developer.  In all, the program is a pretty darn good deal for many students, great publicity and marketing for both Google and BZFlag, and a great opportunity for BZFlag development initiatives.&lt;br /&gt;
&lt;br /&gt;
Thanks for your interest and we look forward to seeing students apply!&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_Application_Guidelines&amp;diff=4208</id>
		<title>Google Summer of Code: Application Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_Application_Guidelines&amp;diff=4208"/>
		<updated>2008-03-10T17:31:21Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is intentionally no specific format that students need to use to apply to BZFlag.  There are, however, several things that you should and should not do when applying.&lt;br /&gt;
&lt;br /&gt;
= Do&#039;s =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be Detailed and Articulate.&#039;&#039;&#039;  Go into detail about what you intend to do and how you intend to do it.  Don&#039;t have typos and be clear in your writing.  Cite academic references if they&#039;re relevant to your work.  Create diagrams, show prototypes, create mock-up visuals, and provide more information via external links.  You don&#039;t have to solve everything, but we need to see that you&#039;ve thought things through.  Impress us.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Get Involved Early.&#039;&#039;&#039;  You need to join our IRC channel, play the game, and get involved in our community.  Talk to the other developers, find a mentor that likes your proposal idea.  Don&#039;t forget to mention your IRC nick in your application.  We interact with a lot of people so give us a personality that we can recognize when it comes to reviewing the applications.  Communicate early, communicate often.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be Bold.&#039;&#039;&#039;  We love new innovative ideas.  You should make sure your idea fits into the scope of our project and is something we&#039;re interested in mentoring, but new projects are welcome.  If your proposal is for one of our ideas, be innovative and ambitious in your solution. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be Realistic.&#039;&#039;&#039;  Make sure the scope of your work is feasible and that you will have the necessary skills to implement your project on time.  Don&#039;t be so bold that you are unrealistic, keep your abilities and time constraints in mind.  If you&#039;ve got another part-time or full-time job, you probably won&#039;t be able to put in the effort or time necessary.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be Passionate.&#039;&#039;&#039;  Show enthusiasm for your idea.  Be excited to work with us.  Excitement and passion are never a substitute for competence, but they vastly help your chances all other factors being equal.  Express your passion and any background information about yourself that reinforces your interests.&lt;br /&gt;
&lt;br /&gt;
= Don&#039;ts =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t copy/paste our ideas.&#039;&#039;&#039;  If all you have to say about the idea is what we&#039;ve said, it will be rejected.  They are just meant to be starting points.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t be brief.&#039;&#039;&#039;  Anticipate questions, include details.  If your application isn&#039;t any more than a few hundred words or less, then you&#039;re probably not including useful/necessary detail about the project, your plans, or yourself.  Brief proposals very quickly get cut, especially when compared to proposals in similar areas that do include detail.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t forget to tell us about yourself.&#039;&#039;&#039;  Most of what we know about you and your abilities is going to come from your application.  Include details about your background, experience, and anything else relevant to your work.  If you have obligations that will impact your proposal, be upfront.  You should be interacting with our community on IRC long before you submit your proposal so we have an idea how you interact.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t be intimidated.&#039;&#039;&#039;  Your ideas will be questioned and critiqued.  We don&#039;t all agree, even amongst ourselves often.  You will need to be able to openly and publicly talk about your ideas without being defensive.  Be open to the ideas and suggestions of others and be willing to amicably engage in discussions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Don&#039;t be discouraged.&#039;&#039;&#039;  During the application process, we receive a lot of applications.  Be patient.  If we don&#039;t respond to your application for more information, it usually means that it&#039;s either really bad or really good.  Understand that we have a lot to sort through and discuss.  It&#039;s a very competitive process given we can only accept a limited number of students.  If you have specific questions, engage the mentors over IRC.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Google_Summer_of_Code:_2008&amp;diff=4169</id>
		<title>Talk:Google Summer of Code: 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Google_Summer_of_Code:_2008&amp;diff=4169"/>
		<updated>2008-03-07T00:41:01Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is informational only.  There are no wrong answers.  This is more just to get a visual on what we&#039;re all thinking.  Rank what you feel the top five projects ideas from most important to least with a 1, 2, 3, 4, and 5 respectively.  Your ranking criteria for determining importance are:&lt;br /&gt;
&lt;br /&gt;
 1) projects that are &#039;&#039;needed&#039;&#039; for BZFlag&#039;s long-term development&lt;br /&gt;
 2) projects that are &#039;&#039;wanted&#039;&#039; due to features or capabilities they provide&lt;br /&gt;
 3) projects that will make the most &#039;&#039;impact&#039;&#039; on our users&lt;br /&gt;
 4) those that are likely to be &#039;&#039;successfully&#039;&#039; worked on over three months by a student remembering that the scope can be defined/reduced as needed&lt;br /&gt;
 5) ideas that are of specific interest to you as a dev that warrant involving others in your evil aspirations&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Only mark your top five&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|- border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PROJECT&lt;br /&gt;
! dtr&lt;br /&gt;
! jeff&lt;br /&gt;
! jb&lt;br /&gt;
! spldart&lt;br /&gt;
! blast&lt;br /&gt;
! sean&lt;br /&gt;
|-&lt;br /&gt;
! DR and networking&lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! game logic modularization&lt;br /&gt;
| &lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
! bzauthd&lt;br /&gt;
| 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! bzwb continuation&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
! server menu&lt;br /&gt;
| &lt;br /&gt;
| 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! multiple display support&lt;br /&gt;
| 4&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! profiles&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! bzfs web interface&lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! network testing framework&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
! global chat&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 5&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! cheat preventions&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4143</id>
		<title>Google Summer of Code: 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2008&amp;diff=4143"/>
		<updated>2008-03-04T02:23:31Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Google Summer of Code 2008 was announced on February 25, 2008. Given our enormously successful participation in the program in 2007, BZFlag plans to reapply to participate in the program in 2008. If accepted, BZFlag will accept student project proposals from March 24 to March 31 ending at 5:00 PDT (0:00 April 1 GMT). Further information on the application proccess and some proposal ideas are below.&lt;br /&gt;
&lt;br /&gt;
= Promotion Flyers =&lt;br /&gt;
&lt;br /&gt;
{|align=&amp;quot;right&amp;quot;&lt;br /&gt;
 |[[Image:BZGSoC2008_small.gif|thumb|left|512px]]&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Provided below is a promotional flyer to help spread the word about our involvement with the Google Summer of Code.  Flyers are available in various languages that we have mentors for so that students from all over the globe can be informed about the program.  While many developers can converse fluently in other languages, English is still expected for most developer discussions.  Feel free to distribute the flyer around your local colleges and universities.&lt;br /&gt;
&lt;br /&gt;
* English ([http://my.bzflag.org/gsoc/BZGSoC2008.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008.png PNG])&lt;br /&gt;
* Deutsch | German  ([http://my.bzflag.org/gsoc/BZGSoC2008_de.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_de.png PNG])&lt;br /&gt;
* Español | Spanish ([http://my.bzflag.org/gsoc/BZGSoC2008_es.pdf PDF]) ([http://my.bzflag.org/gsoc/BZGSoC2008_es.png PNG])&lt;br /&gt;
&lt;br /&gt;
High praise and special thanks to Harry Keller (aka Saturos) for designing our 2008 GSoC flyer.&lt;br /&gt;
&lt;br /&gt;
= Preparing an Application =&lt;br /&gt;
&lt;br /&gt;
There is specific format to applications, but students should be detailed in their approach and background information about themselves.  They should state specifically what they intend to deliver and any implementation details they feel relevant such as what language they intend to use.  C/C++ proposals are preferred though others will be considered.  Students that just submit the summaries contained below will not do very well.  If you talk with us on IRC about your SoC proposal, you should include your IRC nickname somewhere in your proposal.&lt;br /&gt;
&lt;br /&gt;
Early proposal submission are encouraged as it gives us more time to review your proposals in detail, comment on them, and potentially ask for additional input.  Submitting closer to the deadline will not be a negative consideration as all submissions will be predominantly judged on their merit, but submitting and discussing early is an advantage for submissions that are similar to other submissions.  &lt;br /&gt;
&lt;br /&gt;
Students are asked to propose what they actually want to work on, how they intend to work on it, what they intend to DO, what they know about that task, some details about themselves, etc.  Their ability to perform the task is outright presumed, so they are supposed to propose a task that they are comfortable and knowledgeable with performing.&lt;br /&gt;
&lt;br /&gt;
= Program Evaluation =&lt;br /&gt;
&lt;br /&gt;
All the applications we receive will be reviewed, evaluated, and critiqued.  Of those applications, only a few can be selected to work on BZFlag.  We expect to receive many good applications, making the selection process very competitive and difficult.  &#039;&#039;This cannot be stressed enough.&#039;&#039;  It will be really hard to narrow down the submissions but in the end we will have only so many slots to work with and the line will eventually need to be drawn.  Every application will be read multiple times and reviewed in detail.  We thank &#039;&#039;&#039;everyone&#039;&#039;&#039; that submits a proposal and hope to still see some of you become involved in our software development.&lt;br /&gt;
&lt;br /&gt;
In the end, submissions will be selected according to the overall long-term impact that accepting the proposal could make for the game, perception of the submitter&#039;s abilities to complete the task within the program timeframe, general consensus on the technical approach being proposed, and overall interest in having such modifications made to BZFlag.  Particular notice will be made of students that are responsive to questions and readily interactive in the IRC channel.  Communication is a good thing.&lt;br /&gt;
&lt;br /&gt;
While there&#039;s never any guarantee that work on any code will be integrated, this is very much the desire and &#039;&#039;&#039;intention&#039;&#039;&#039; of our participation in the Summer of Code.  Students are expected to interact on the [http://my.bzflag.org/irc/ #bzflag IRC channel] on the Freenode network, abide by the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/DEVINFO DEVINFO] rules, agree to the [[Google Summer of Code Acceptance|development requirements]], and focus on providing a clean maintainable implementation.&lt;br /&gt;
&lt;br /&gt;
Biding BZFlag&#039;s acceptance into the program, the final list of selected proposals will be announced on April 14, 2008 at 12:00 noon PDT.&lt;br /&gt;
&lt;br /&gt;
= Proposal Ideas =&lt;br /&gt;
&lt;br /&gt;
While there are lots of [[Ideas]] floating around of varying utility to the game, the ideas listed below are the specific areas that we are predominantly interested in seeing worked on as part of the GSoC.  Please note that students are also welcome to apply with their own original ideas.  They should run those ideas by one of the developers beforehand, as there are some ideas which will not be accepted regardless of the quality of the application and applicant, due to desire to preserve the scope and focus of the project.&lt;br /&gt;
&lt;br /&gt;
Ideas marked with an &amp;quot;*&amp;quot; indicate entries where we have received at least two or more submissions for that idea.&lt;br /&gt;
&lt;br /&gt;
== Dead Reckoning and other Networking Enhancements ==&lt;br /&gt;
The basic idea is to improve BZFlag&#039;s networking by performing dead reckoning on the server along with context-sensitive packet delivery culling.  Much work has gone into the game towards moving more and more of the game state to the server, but there is additional migration and protocol changes required.  Similarly, network utilization can be optimized by not relaying certain packets (like miniscule position updates to distant players) based on the current game state.  Some useful background reading for this task include &amp;quot;[http://www.research.ibm.com/netgames2005/papers/aggarwal.pdf Fairness in Dead-Reckoning based Distributed Multi-Player Games (pdf)]&amp;quot; and &amp;quot;[http://www.sigcomm.org/sigcomm2004/workshop_papers/net610-aggarwal.pdf Accuracy in Dead-Reckoning Based Distributed Multi-Player Games (pdf)]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Modularization of game logic ==&lt;br /&gt;
Much of the game logic is presently mixed in with BZFlag&#039;s graphics code. This lack of organization make it difficult to find code when necessary, and does not allow bzfs, bzrobots, or other tools to utilize the game logic. The game code should be modularized into [[DevelopmentGoals#libGame|libgame]] so that all that is left in the client code is the graphics subsystem. This will also ease the possible future integration of a 3D graphics engine.&lt;br /&gt;
&lt;br /&gt;
== Graphics Engine Integration ==&lt;br /&gt;
One of the long-standing desires for BZFlag is to improve the graphics capabilities in the game by integrating with an existing rendering engine.  This task would be to integrate BZFlag with a graphics engine like [http://ogre3d.org/ OGRE], [http://www.crystalspace3d.org/ Crystal Space], [http://www.openscenegraph.com/ OpenSceneGraph], or [http://irrlicht.sourceforge.net/ Irrlicht].&lt;br /&gt;
&lt;br /&gt;
== Global authentication daemon ==&lt;br /&gt;
The goal of this project would be to provide global account management system daemon that the client and servers would communicate with for account, group membership, and profile information.  This effort preferably be written in C++, would need to talk to an LDAP server for persistent storage on the backend, and allow chaining across multiple daemons for data replication and failover service.  The daemon would need to provide a well structured simple communications API that the game client and game servers can securely talk to.&lt;br /&gt;
&lt;br /&gt;
== Enhanced server listing ==&lt;br /&gt;
The game client includes a simplistic listing of publicly available servers.  This task would involve significantly enhancing the listing section in BZFlag to allow for various sortings (e.g. ping time, country, name, etc), favorites, recently used, specific additional information on specific servers, and all existing information.  The task would involve coming up with a user-friendly design that is fully keyboard-accessible.  It could leverage external gui toolkits, use BZFlag&#039;s existing gui library, and/or extend the existing capabilities.  The focus would be on creating an intuitive and informative listing enhancement within the constraints of the gaming interface.&lt;br /&gt;
&lt;br /&gt;
== BZWorkBench enhancement ==&lt;br /&gt;
As a participant in last year&#039;s program Jude Nelson started work on BZWorkBench, a world file editor with a very solid foundation. Much work remains to be done on the editor, including a cross-platform GUI and mesh support.&lt;br /&gt;
&lt;br /&gt;
== Two-player tanks ==&lt;br /&gt;
Make modifications to the game such that it is optionally possible (e.g. via a server configuration) to allow multiplayer tanks where one player can only drive and the other can control the turret.  The implementation would have to be some simple/intuitive interface to join and depart tanks as well as implemented in a fashion that preserves the &amp;quot;spirit&amp;quot; of BZFlag&#039;s operational simplicity.&lt;br /&gt;
&lt;br /&gt;
== Enhanced cross-platform multiple display support ==&lt;br /&gt;
Add the ability to effectively manage multiple display environments from within the game allowing for the detection, alignment/orientation specification, and resolution parameters for each display via menu options as well as proper full-screen and/or windowed support.  An additional feature could involve allowing the user to dedicate a display to the various primary gui elements (the 3D environment, the radar, and the chat console).  BZFlag&#039;s current context management is mostly handled by SDL or other platform-specific modules, so this could be taken into consideration.  There&#039;s also the possibility of our move to an integrated graphics engine would similarly impact how multidisplay contexts are created and managed.&lt;br /&gt;
&lt;br /&gt;
== In-game profile management ==&lt;br /&gt;
BZFlag allows players to specify a callsign and team in addition to other player characteristics and preferences.  This enhancement would focus on allowing the user to specify and manage multiple profiles from within the game.  Profiles could be linked together and should be presented in an intuitive manner (proposal should highlight how you&#039;d go about achieving that).  The profiles would need to associate with global account information as well.&lt;br /&gt;
&lt;br /&gt;
== Integrated BZFS web interface ==&lt;br /&gt;
The BZFlag game server, BZFS, could benefit from having a browser-accessible http/https interface for viewing server statistics, setting various parameters, and otherwise controlling the server daemon while it is running.  Similar to how your network router has a web interface for changing configuration parameters, this idea is simply to create this interface in a maintainable and portable manner.  Please go into detail on how exactly you&#039;d go about doing this.&lt;br /&gt;
&lt;br /&gt;
== Network Testing and Simulation Environment ==&lt;br /&gt;
This task should provide a controlled testing environment for simulating network behavioral characteristics, including the ability to change virtual network parameters to induce different network conditions of lag and packet loss.  This environment should provide a viewer capability to observe interactions of BZFlag clients being tested from the perspective of the player, the server, and third-party observers.  This simulation framework should work with the client and server directly so that testing of actual changes may be performed in a stand-alone environment.&lt;br /&gt;
&lt;br /&gt;
== Cross server communications system ==&lt;br /&gt;
This task would be the design and implementation of a server spanning chat system. It would allow players from one server to send chat messages to players on other servers. It should also be able to be used to allow players to know where there friends or &amp;quot;buddies&amp;quot; are playing if they are online. The system should tie into the central user name registration system. Added benefits would be the use of existing protocols or applications, such as Jabber or IRC, if they can be integrated cleanly. Support for using off-line apps for chat and friends list access as well as server management would be a plus.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;INSERT YOUR IDEA HERE&amp;gt; ==&lt;br /&gt;
BZFlag is always open to new development ideas and is under constant improvement.  If you are familiar with BZFlag&#039;s current capabilities and would like to propose some new enhancement, we&#039;d be happy to hear about.  Please discuss any new ideas with the existing core developers (on our IRC channel), if only to make sure the ideas are in-line with the spirit and constraints of the game.&lt;br /&gt;
&lt;br /&gt;
= Thanks &amp;amp; Appreciation =&lt;br /&gt;
&lt;br /&gt;
Thank you to the following individuals in the BZFlag community that helped prepare GSoC-related marketing materials:&lt;br /&gt;
&lt;br /&gt;
* Harry Keller (aka Saturos)&lt;br /&gt;
* Julio Jiménez Borreguero (aka jujibo aka Manu)&lt;br /&gt;
* Dexter Mason (aka whodaman)&lt;br /&gt;
* Sean Morrison (aka learner aka brlcad)&lt;br /&gt;
* Jeffrey Myers (aka JeffM)&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:BZFlag_Forums&amp;diff=3375</id>
		<title>Talk:BZFlag Forums</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:BZFlag_Forums&amp;diff=3375"/>
		<updated>2007-09-26T19:28:09Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: Reverted edits by 195.55.130.44 (Talk); changed back to last version by Brad&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;what is the point of this? did you not notice the link to the forums in the menu on the left?&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=3326</id>
		<title>Functions (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=3326"/>
		<updated>2007-09-25T22:50:01Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Player Information */ fix links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Fill in articles for all API Functions}}&lt;br /&gt;
&lt;br /&gt;
{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The BZFS API provides a number of functions to plug-ins for use in querying the current game state. Functions are used both to get information about the game, and to trigger in game actions, such as activating a world weapon.&lt;br /&gt;
&lt;br /&gt;
==Function Groups==&lt;br /&gt;
Functions are broken into a series of groups based on the type of action or information they deal with.&lt;br /&gt;
&lt;br /&gt;
===Event Registration===&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
===Non-Player Connections===&lt;br /&gt;
 BZF_API bool [[bz_registerNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_removeNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_sendNonPlayerData]] ( int connectionID, const void *data, unsigned int size );&lt;br /&gt;
 BZF_API bool [[bz_disconectNonPlayerConnection]] ( int connectionID );&lt;br /&gt;
&lt;br /&gt;
===Player Information===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_getPlayerIndexList]] ( [[bz_APIIntList]] *playerList );&lt;br /&gt;
 BZF_API [[bz_APIIntList]] *[[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord]] *[[bz_getPlayerByIndex]] ( int index );&lt;br /&gt;
 BZF_API bool [[bz_updatePlayerData]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API bool [[bz_hasPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_grantPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_revokePerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_getAdmin]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_freePlayerRecord]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API const char* [[bz_getPlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerCurrentState]] ( int playerID, [[bz_PlayerUpdateState]] &amp;amp;state );&lt;br /&gt;
 BZF_API bool [[bz_isPlayerPaused]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerOperator]] ( int playerId );&lt;br /&gt;
 BZF_API [[bz_APIIntList]]* [[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_canPlayerSpawn]]( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerSpawnable]]( int playerID, bool spawn );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLimboText]]( int playerID, const char* text );&lt;br /&gt;
 BZF_API int [[bz_getPlayerCount]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_anyPlayers]] ( void );&lt;br /&gt;
&lt;br /&gt;
=== Team Management===&lt;br /&gt;
 BZF_API unsigned int [[bz_getTeamPlayerLimit]] ( bz_eTeamType team )&lt;br /&gt;
 BZF_API int [[bz_getTeamCount]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamWins]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamLosses]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_setTeamWins]] ([[bz_eTeamType]] team, int wins );&lt;br /&gt;
 BZF_API void [[bz_setTeamLosses]] ([[bz_eTeamType]] team, int losses );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScores]] ( void );&lt;br /&gt;
 BZF_API void [[bz_changeTeam]]( int player, [[bz_eTeamType]] team );&lt;br /&gt;
&lt;br /&gt;
=== Score Management ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerWins]] (int playerId, int wins);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLosses]] (int playerId, int losses);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerTKs]] (int playerId, int tks);&lt;br /&gt;
 BZF_API bool [[bz_resetPlayerScore]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerWins]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerLosses]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerTKs]] (int playerId);&lt;br /&gt;
&lt;br /&gt;
=== Latency Information ===&lt;br /&gt;
 BZF_API int [[bz_getPlayerLag]] ( int playerId );&lt;br /&gt;
 BZF_API int [[bz_getPlayerJitter]] ( int playerId );&lt;br /&gt;
 BZF_API float [[bz_getPlayerPacketloss]] ( int playerId );&lt;br /&gt;
&lt;br /&gt;
=== Permission Group Management ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupList]] ( void );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupPerms]] ( const char* group );&lt;br /&gt;
 BZF_API bool [[bz_groupAllowPerm]]( const char* group, const char* perm );&lt;br /&gt;
&lt;br /&gt;
=== Chat Messages ===&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, int to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, [[bz_eTeamType]] to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, int to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, [[bz_eTeamType]] to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sentFetchResMessage]] ( int playerID,  const char* URL );&lt;br /&gt;
&lt;br /&gt;
=== Server Management ===&lt;br /&gt;
 BZF_API bool [[bz_restart]] ( void );&lt;br /&gt;
 BZF_API void [[bz_shutdown]] ();&lt;br /&gt;
 BZF_API void [[bz_superkill]] ();&lt;br /&gt;
 BZF_API void [[bz_gameOver]] (int playerID, bz_eTeamType = eNoTeam);&lt;br /&gt;
 BZF_API void [[bz_reloadLocalBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadMasterBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadGroups]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadUsers]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadHelp]] ();&lt;br /&gt;
&lt;br /&gt;
=== Rabbit Hunt===&lt;br /&gt;
 BZF_API void [[bz_newRabbit]]( int player, bool swap );&lt;br /&gt;
 BZF_API void [[bz_removeRabbit]]( int player );&lt;br /&gt;
&lt;br /&gt;
=== Map Management ===&lt;br /&gt;
 BZF_API void [[bz_setClientWorldDownloadURL]]( const char* URL );&lt;br /&gt;
 BZF_API const bzApiString [[bz_getClientWorldDownloadURL]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_saveWorldCacheFile]]( const char* file );&lt;br /&gt;
&lt;br /&gt;
=== Flag Management ===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_givePlayerFlag]] ( int playerID, const char* flagType, bool force );&lt;br /&gt;
 BZF_API bool [[bz_removePlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API void [[bz_resetFlags]] ( bool onlyUnused );&lt;br /&gt;
 BZF_API unsigned int [[bz_getNumFlags]] ( void );&lt;br /&gt;
 BZF_API const [[bz_ApiString]] [[bz_getFlagName]]( int flag );&lt;br /&gt;
 BZF_API bool [[bz_resetFlag]] ( int flag );&lt;br /&gt;
 BZF_API int [[bz_flagPlayer]] ( int flag );&lt;br /&gt;
 BZF_API bool [[bz_getFlagPosition]] ( int flag, float* pos );&lt;br /&gt;
 BZF_API bool [[bz_moveFlag]] ( int flag, float pos[3], bool reset = true );&lt;br /&gt;
 BZF_API bool [[bz_RegisterCustomFlag]] ( const char* abbr, const char* name, const char* helpString, bz_eShotType shotType, bz_eFlagQuality quality );&lt;br /&gt;
&lt;br /&gt;
=== Shot Type Control ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerShotType]]( int playerId, [[bz_eShotType]] shotType );&lt;br /&gt;
&lt;br /&gt;
=== World Weapon Management ===&lt;br /&gt;
 BZF_API bool [[bz_fireWorldWep]] ( const char* flagType, float lifetime, float *pos, float tilt, float direction, int shotID , float dt );&lt;br /&gt;
 BZF_API int [[bz_fireWorldGM]] ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt);&lt;br /&gt;
&lt;br /&gt;
=== Server Time ===&lt;br /&gt;
 BZF_API double [[bz_getCurrentTime]] ( void );&lt;br /&gt;
 BZF_API float [[bz_getMaxWaitTime]] ( void );&lt;br /&gt;
 BZF_API void [[bz_setMaxWaitTime]] ( float maxTime );&lt;br /&gt;
 BZF_API void [[bz_getLocaltime]] ( [[bz_localTime]] *ts );&lt;br /&gt;
&lt;br /&gt;
=== Global Database Management (BZDB) ===&lt;br /&gt;
 BZF_API double [[bz_getBZDBDouble]] ( const char* variable );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getBZDBString]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBBool]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBInt]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBItemPerms]] ( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBItemPesistent]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_BZDBItemExists]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBDouble]] ( const char* variable, double val, int perms = 0, bool persistent = false );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBString]]( const char* variable, const char *val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBBool]]( const char* variable, bool val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBInt]]( const char* variable, int val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API int [[bz_getBZDBVarList]]( bz_APIStringList	*varList );&lt;br /&gt;
 BZF_API void [[bz_resetBZDBVar]]( const char* variable );&lt;br /&gt;
 BZF_API void [[bz_resetALLBZDBVars]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
 BZF_API void [[bz_debugMessage]] ( int level, const char* message );&lt;br /&gt;
 BZF_API void [[bz_debugMessagef]]( int level, const char* fmt, ... )&lt;br /&gt;
 BZF_API int [[bz_getDebugLevel]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
 BZF_API bool [[bz_kickUser]] ( int playerIndex, const char* reason, bool notify );&lt;br /&gt;
 BZF_API bool [[bz_IPBanUser]] ( int playerIndex, const char* ip, int durration, const char* reason );&lt;br /&gt;
 BZF_API bool [[bz_IPUnbanUser]] ( const char* ip );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* bz_getReports( void );&lt;br /&gt;
 BZF_API int [[bz_getLagWarn]]( void );&lt;br /&gt;
 BZF_API bool [[bz_setLagWarn]]( int lagwarn );&lt;br /&gt;
 BZF_API bool [[bz_pollActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_pollVeto]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Timed Game Management===&lt;br /&gt;
 BZF_API bool [[bz_setTimeLimit]]( float timeLimit );&lt;br /&gt;
 BZF_API float [[bz_getTimeLimit]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isTimeManualStart]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownInProgress]]( void );&lt;br /&gt;
 BZF_API void [[bz_pauseCountdown]] ( const char *pausedBy );&lt;br /&gt;
 BZF_API void [[bz_resumeCountdown]] ( const char *resumedBy );&lt;br /&gt;
 BZF_API void [[bz_startCountdown]] ( int delay, float limit, const char *byWho );&lt;br /&gt;
&lt;br /&gt;
=== Custom Text Commands===&lt;br /&gt;
 BZF_API bool [[bz_registerCustomSlashCommand]] ( const char* command, [[bz_CustomSlashCommandHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomSlashCommand]] ( const char* command );&lt;br /&gt;
&lt;br /&gt;
===Plug-in Management===&lt;br /&gt;
 BZF_API int [[bz_getLoadedPlugins]]( bz_APIStringList * list );&lt;br /&gt;
 BZF_API bool [[bz_loadPlugin]]( const char* path, const char* params );&lt;br /&gt;
 BZF_API bool [[bz_unloadPlugin]]( const char* path );&lt;br /&gt;
 BZF_API bool [[bz_registerCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
&lt;br /&gt;
=== Public Server Information===&lt;br /&gt;
 BZF_API bool [[bz_getPublic]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicAddr]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicDescription]]( void );&lt;br /&gt;
 BZF_API void [[bz_updateListServer]] ( void );&lt;br /&gt;
&lt;br /&gt;
===HTTP Transfer===&lt;br /&gt;
 BZF_API bool [[bz_addURLJob]] ( const char* URL, [[bz_BaseURLHandler]]* handler = NULL, const char* postData = NULL );&lt;br /&gt;
 BZF_API bool [[bz_removeURLJob]] ( const char* URL );&lt;br /&gt;
 BZF_API bool [[bz_stopAllURLJobs]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Inter-Plug-in Communications===&lt;br /&gt;
 BZF_API bool [[bz_clipFieldExists]] ( const char *name );&lt;br /&gt;
 BZF_API const char* [[bz_getclipFieldString]] ( const char *name );&lt;br /&gt;
 BZF_API float [[bz_getclipFieldFloat]] ( const char *name );&lt;br /&gt;
 BZF_API int [[bz_getclipFieldInt]] ( const char *name );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldString]] ( const char *name, const char* data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldFloat]] ( const char *name, float data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldInt]] ( const char *name, int data );&lt;br /&gt;
 BZF_API bool [[bz_addClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
 BZF_API [[_removeClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
&lt;br /&gt;
===Game Recording===&lt;br /&gt;
 BZF_API bool [[bz_saveRecBuf]]( const char * _filename, int seconds);&lt;br /&gt;
 BZF_API bool [[bz_startRecBuf]]( void );&lt;br /&gt;
 BZF_API bool [[bz_stopRecBuf]]( void );&lt;br /&gt;
&lt;br /&gt;
===Map Management===&lt;br /&gt;
====Map Information====&lt;br /&gt;
 BZF_API void [[bz_getWorldSize]]( float *size, float *wallHeight );&lt;br /&gt;
 BZF_API int [[bz_getWorldObjectCount]]( void );&lt;br /&gt;
 BZF_API [[bz_APIWorldObjectList]]* [[bz_getWorldObjectList]]( void );&lt;br /&gt;
 BZF_API void [[bz_releaseWorldObjectList]]( [[bz_APIWorldObjectList]]* list );&lt;br /&gt;
&lt;br /&gt;
====Map Collisions====&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_cylinderInMapObject]] ( float pos[3], float height, float radius, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_boxInMapObject]] ( float pos[3], float size[3], float angle, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
&lt;br /&gt;
====Custom Map Objects====&lt;br /&gt;
 BZF_API bool [[bz_registerCustomMapObject]] ( const char* object, [[bz_CustomMapObjectHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomMapObject]] ( const char* object );&lt;br /&gt;
&lt;br /&gt;
====Map Definition====&lt;br /&gt;
 BZF_API bool [[bz_addWorldBox]] ( float *pos, float rot, float* scale, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldPyramid]] ( float *pos, float rot, float* scale, bool fliped, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldBase]]( float *pos, float rot, float* scale, bz_eTeamType team, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldTeleporter]] ( float *pos, float rot, float* scale, float border, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldWaterLevel]]( float level, [[bz_MaterialInfo]] *material );&lt;br /&gt;
 BZF_API bool [[bz_addWorldWeapon]]( const char* flagType, float *pos, float rot, float tilt, float initDelay, [[bz_APIFloatList]] &amp;amp;delays );&lt;br /&gt;
 BZF_API bool [[bz_setWorldSize]]( float size, float wallHeight = -1.0 );&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
 BZF_API bool [[bz_getStandardSpawn]] ( int playerID, float pos[3], float *rot );&lt;br /&gt;
 BZF_API bool [[bz_killPlayer]] ( int playerID, bool spawnOnBase, int killerID = -1, const char* flagID = NULL );&lt;br /&gt;
 BZF_API bool [[bz_sendPlayCustomLocalSound]] ( int playerID, const char* soundName );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_filterPath]] ( const char* path );&lt;br /&gt;
 BZF_API const char *[[bz_format]](const char* fmt, ...)_ATTRIBUTE12;&lt;br /&gt;
 BZF_API const char *[[bz_toupper]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_tolower]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_urlEncode]](const char* val );&lt;br /&gt;
 BZF_API [[bz_eGameType]] [[bz_getGameType]]( void );&lt;br /&gt;
 BZF_API [[bz_eTeamType]] [[bz_checkBaseAtPoint]] ( float pos[3] );&lt;br /&gt;
&lt;br /&gt;
===Server Side Players (Development)===&lt;br /&gt;
 BZF_API int [[bz_addServerSidePlayer]] ( [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeServerSidePlayer]] ( int playerID, [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[BZFS API]]&lt;br /&gt;
&lt;br /&gt;
[[plug-ins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BZFS_API_Functions]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_RegisterCustomFlag&amp;diff=3325</id>
		<title>Bz RegisterCustomFlag</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_RegisterCustomFlag&amp;diff=3325"/>
		<updated>2007-09-25T22:46:05Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: doc registercustomflag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Funcs}}&lt;br /&gt;
==Prototype==&lt;br /&gt;
BZF_API bool bz_RegisterCustomFlag ( const char* abbr, const char* name, const char* helpString, bz_eShotType shotType, bz_eFlagQuality quality );&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value description&lt;br /&gt;
  |-&lt;br /&gt;
  |abbr&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The desired flag abbreviation.  Must be unique.  Must be 1 or 2 characters.&lt;br /&gt;
  |-&lt;br /&gt;
  |name&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The desired flag name.  Max length 32 characters.&lt;br /&gt;
  |-&lt;br /&gt;
  |helpString&lt;br /&gt;
  |const char*&lt;br /&gt;
  |The desired help string.  Max length 128 characters.&lt;br /&gt;
  |-&lt;br /&gt;
  |shotType&lt;br /&gt;
  |bz_eShotType &lt;br /&gt;
  |The default shot type for the flag.&lt;br /&gt;
  |-&lt;br /&gt;
  |quality&lt;br /&gt;
  |bz_eFlagQuality&lt;br /&gt;
  |The flag&#039;s quality (good/bad).&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function registers a custom flag.  The registered abbreviation must be unique (that is, may not conflict with existing built-in or API flags).&lt;br /&gt;
&lt;br /&gt;
The registered flag will have no functionality by default (i.e. it will behave like Useless), but it can be used by your plugin by examining player records to see if they hold the flag, and taking appropriate action.&lt;br /&gt;
&lt;br /&gt;
The flag&#039;s &amp;quot;stickiness&amp;quot; will be determined by quality; this is roughly consistent with BZFlag&#039;s builtin flags.  Good flags will be Unstable (that is, when dropped they will disappear and be respawned); bad flags will be Sticky (that is, undroppable).&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
If you wish to use a custom flag with +/-f or -sl server parameters (including +f good and -f bad), or in flag zones on the map, you must register the flag during init via -loadplugin (or before a call to [[bz_restart]], if using it in a map).&lt;br /&gt;
&lt;br /&gt;
If a plugin registers a flag while there are clients connected, they will automatically recieve the update.  However, be aware that there is &#039;&#039;no&#039;&#039; corresponding bz_UnregisterCustomFlag function, so there is a limit to the dynamic capability of this functionality.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
Requires BZFS 2.1.16 or newer.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDownloadURL&amp;diff=3324</id>
		<title>Bz setClientWorldDownloadURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDownloadURL&amp;diff=3324"/>
		<updated>2007-09-25T20:14:10Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: correct func name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Funcs}}&lt;br /&gt;
==Prototype==&lt;br /&gt;
BZF_API void bz_setClientWorldDownloadURL( const char* URL );&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value desription&lt;br /&gt;
  |-&lt;br /&gt;
  |URL &lt;br /&gt;
  |const char*&lt;br /&gt;
  |a pointer to a string to the URL to be sent to connecting clients for the cached map&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function sets the current URL used to download a cached world file. It will be sent to clients that connect giving them the option of using that file. This is helpful if the plug-ins have changed the map file during a a call to [[bz_restart]].&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDownloadURL&amp;diff=3323</id>
		<title>Bz setClientWorldDownloadURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDownloadURL&amp;diff=3323"/>
		<updated>2007-09-25T20:13:31Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Funcs}}&lt;br /&gt;
==Prototype==&lt;br /&gt;
BZF_API void bz_setClientWorldDownloadURL( const char* URL );&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value desription&lt;br /&gt;
  |-&lt;br /&gt;
  |URL &lt;br /&gt;
  |const char*&lt;br /&gt;
  |a pointer to a string to the URL to be sent to connecting clients for the cached map&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function sets the current URL used to download a cached world file. It will be sent to clients that connect giving them the option of using that file. This is helpful if the plug-ins have changed the map file during a a call to [[bz_reload]].&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDowloadURL&amp;diff=3322</id>
		<title>Bz setClientWorldDowloadURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDowloadURL&amp;diff=3322"/>
		<updated>2007-09-25T20:12:29Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: Bz setClientWorldDowloadURL moved to Bz setClientWorldDownloadURL: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Bz setClientWorldDownloadURL]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDownloadURL&amp;diff=3321</id>
		<title>Bz setClientWorldDownloadURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_setClientWorldDownloadURL&amp;diff=3321"/>
		<updated>2007-09-25T20:12:28Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: Bz setClientWorldDowloadURL moved to Bz setClientWorldDownloadURL: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Funcs}}&lt;br /&gt;
==Prototype==&lt;br /&gt;
BZF_API void bz_setClientWorldDowloadURL( const char* URL );&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;20&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
  !name&lt;br /&gt;
  !type&lt;br /&gt;
  !value desription&lt;br /&gt;
  |-&lt;br /&gt;
  |URL &lt;br /&gt;
  |const char*&lt;br /&gt;
  |a pointer to a string to the URL to be sent to connecting clients for the cached map&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
This function sets the current URL used to download a cached world file. It will be sent to clients that connect giving them the option of using that file. This is helpful if the plug-ins have changed the map file during a a call to [[bz_reload]].&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=3320</id>
		<title>Functions (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=3320"/>
		<updated>2007-09-25T20:11:58Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Map Management */ spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Fill in articles for all API Functions}}&lt;br /&gt;
&lt;br /&gt;
{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The BZFS API provides a number of functions to plug-ins for use in querying the current game state. Functions are used both to get information about the game, and to trigger in game actions, such as activating a world weapon.&lt;br /&gt;
&lt;br /&gt;
==Function Groups==&lt;br /&gt;
Functions are broken into a series of groups based on the type of action or information they deal with.&lt;br /&gt;
&lt;br /&gt;
===Event Registration===&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
===Non-Player Connections===&lt;br /&gt;
 BZF_API bool [[bz_registerNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_removeNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_sendNonPlayerData]] ( int connectionID, const void *data, unsigned int size );&lt;br /&gt;
 BZF_API bool [[bz_disconectNonPlayerConnection]] ( int connectionID );&lt;br /&gt;
&lt;br /&gt;
===Player Information===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_getPlayerIndexList ( [[bz_APIIntList]] *playerList );&lt;br /&gt;
 BZF_API [[bz_APIIntList *[[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord *[[bz_getPlayerByIndex]] ( int index );&lt;br /&gt;
 BZF_API bool [[bz_updatePlayerData]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API bool [[bz_hasPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_grantPerm ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_revokePerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_getAdmin]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_freePlayerRecord]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API const char* bz_getPlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerCurrentState]] ( int playerID, [[bz_PlayerUpdateState]] &amp;amp;state );&lt;br /&gt;
 BZF_API bool [[bz_isPlayerPaused]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerOperator]] ( int playerId );&lt;br /&gt;
 BZF_API [[bz_APIIntList]]* [[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_canPlayerSpawn]]( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerSpawnable]]( int playerID, bool spawn );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLimboText]]( int playerID, const char* text );&lt;br /&gt;
 BZF_API int [[bz_getPlayerCount]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_anyPlayers]] ( void );&lt;br /&gt;
&lt;br /&gt;
=== Team Management===&lt;br /&gt;
 BZF_API unsigned int [[bz_getTeamPlayerLimit]] ( bz_eTeamType team )&lt;br /&gt;
 BZF_API int [[bz_getTeamCount]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamWins]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamLosses]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_setTeamWins]] ([[bz_eTeamType]] team, int wins );&lt;br /&gt;
 BZF_API void [[bz_setTeamLosses]] ([[bz_eTeamType]] team, int losses );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScores]] ( void );&lt;br /&gt;
 BZF_API void [[bz_changeTeam]]( int player, [[bz_eTeamType]] team );&lt;br /&gt;
&lt;br /&gt;
=== Score Management ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerWins]] (int playerId, int wins);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLosses]] (int playerId, int losses);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerTKs]] (int playerId, int tks);&lt;br /&gt;
 BZF_API bool [[bz_resetPlayerScore]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerWins]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerLosses]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerTKs]] (int playerId);&lt;br /&gt;
&lt;br /&gt;
=== Latency Information ===&lt;br /&gt;
 BZF_API int [[bz_getPlayerLag]] ( int playerId );&lt;br /&gt;
 BZF_API int [[bz_getPlayerJitter]] ( int playerId );&lt;br /&gt;
 BZF_API float [[bz_getPlayerPacketloss]] ( int playerId );&lt;br /&gt;
&lt;br /&gt;
=== Permission Group Management ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupList]] ( void );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupPerms]] ( const char* group );&lt;br /&gt;
 BZF_API bool [[bz_groupAllowPerm]]( const char* group, const char* perm );&lt;br /&gt;
&lt;br /&gt;
=== Chat Messages ===&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, int to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, [[bz_eTeamType]] to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, int to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, [[bz_eTeamType]] to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sentFetchResMessage]] ( int playerID,  const char* URL );&lt;br /&gt;
&lt;br /&gt;
=== Server Management ===&lt;br /&gt;
 BZF_API bool [[bz_restart]] ( void );&lt;br /&gt;
 BZF_API void [[bz_shutdown]] ();&lt;br /&gt;
 BZF_API void [[bz_superkill]] ();&lt;br /&gt;
 BZF_API void [[bz_gameOver]] (int playerID, bz_eTeamType = eNoTeam);&lt;br /&gt;
 BZF_API void [[bz_reloadLocalBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadMasterBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadGroups]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadUsers]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadHelp]] ();&lt;br /&gt;
&lt;br /&gt;
=== Rabbit Hunt===&lt;br /&gt;
 BZF_API void [[bz_newRabbit]]( int player, bool swap );&lt;br /&gt;
 BZF_API void [[bz_removeRabbit]]( int player );&lt;br /&gt;
&lt;br /&gt;
=== Map Management ===&lt;br /&gt;
 BZF_API void [[bz_setClientWorldDownloadURL]]( const char* URL );&lt;br /&gt;
 BZF_API const bzApiString [[bz_getClientWorldDownloadURL]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_saveWorldCacheFile]]( const char* file );&lt;br /&gt;
&lt;br /&gt;
=== Flag Management ===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_givePlayerFlag]] ( int playerID, const char* flagType, bool force );&lt;br /&gt;
 BZF_API bool [[bz_removePlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API void [[bz_resetFlags]] ( bool onlyUnused );&lt;br /&gt;
 BZF_API unsigned int [[bz_getNumFlags]] ( void );&lt;br /&gt;
 BZF_API const [[bz_ApiString]] [[bz_getFlagName]]( int flag );&lt;br /&gt;
 BZF_API bool [[bz_resetFlag]] ( int flag );&lt;br /&gt;
 BZF_API int [[bz_flagPlayer]] ( int flag );&lt;br /&gt;
 BZF_API bool [[bz_getFlagPosition]] ( int flag, float* pos );&lt;br /&gt;
 BZF_API bool [[bz_moveFlag]] ( int flag, float pos[3], bool reset = true );&lt;br /&gt;
 BZF_API bool [[bz_RegisterCustomFlag]] ( const char* abbr, const char* name, const char* helpString, bz_eShotType shotType, bz_eFlagQuality quality );&lt;br /&gt;
&lt;br /&gt;
=== Shot Type Control ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerShotType]]( int playerId, [[bz_eShotType]] shotType );&lt;br /&gt;
&lt;br /&gt;
=== World Weapon Management ===&lt;br /&gt;
 BZF_API bool [[bz_fireWorldWep]] ( const char* flagType, float lifetime, float *pos, float tilt, float direction, int shotID , float dt );&lt;br /&gt;
 BZF_API int [[bz_fireWorldGM]] ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt);&lt;br /&gt;
&lt;br /&gt;
=== Server Time ===&lt;br /&gt;
 BZF_API double [[bz_getCurrentTime]] ( void );&lt;br /&gt;
 BZF_API float [[bz_getMaxWaitTime]] ( void );&lt;br /&gt;
 BZF_API void [[bz_setMaxWaitTime]] ( float maxTime );&lt;br /&gt;
 BZF_API void [[bz_getLocaltime]] ( [[bz_localTime]] *ts );&lt;br /&gt;
&lt;br /&gt;
=== Global Database Management (BZDB) ===&lt;br /&gt;
 BZF_API double [[bz_getBZDBDouble]] ( const char* variable );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getBZDBString]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBBool]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBInt]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBItemPerms]] ( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBItemPesistent]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_BZDBItemExists]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBDouble]] ( const char* variable, double val, int perms = 0, bool persistent = false );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBString]]( const char* variable, const char *val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBBool]]( const char* variable, bool val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBInt]]( const char* variable, int val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API int [[bz_getBZDBVarList]]( bz_APIStringList	*varList );&lt;br /&gt;
 BZF_API void [[bz_resetBZDBVar]]( const char* variable );&lt;br /&gt;
 BZF_API void [[bz_resetALLBZDBVars]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
 BZF_API void [[bz_debugMessage]] ( int level, const char* message );&lt;br /&gt;
 BZF_API void [[bz_debugMessagef]]( int level, const char* fmt, ... )&lt;br /&gt;
 BZF_API int [[bz_getDebugLevel]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
 BZF_API bool [[bz_kickUser]] ( int playerIndex, const char* reason, bool notify );&lt;br /&gt;
 BZF_API bool [[bz_IPBanUser]] ( int playerIndex, const char* ip, int durration, const char* reason );&lt;br /&gt;
 BZF_API bool [[bz_IPUnbanUser]] ( const char* ip );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* bz_getReports( void );&lt;br /&gt;
 BZF_API int [[bz_getLagWarn]]( void );&lt;br /&gt;
 BZF_API bool [[bz_setLagWarn]]( int lagwarn );&lt;br /&gt;
 BZF_API bool [[bz_pollActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_pollVeto]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Timed Game Management===&lt;br /&gt;
 BZF_API bool [[bz_setTimeLimit]]( float timeLimit );&lt;br /&gt;
 BZF_API float [[bz_getTimeLimit]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isTimeManualStart]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownInProgress]]( void );&lt;br /&gt;
 BZF_API void [[bz_pauseCountdown]] ( const char *pausedBy );&lt;br /&gt;
 BZF_API void [[bz_resumeCountdown]] ( const char *resumedBy );&lt;br /&gt;
 BZF_API void [[bz_startCountdown]] ( int delay, float limit, const char *byWho );&lt;br /&gt;
&lt;br /&gt;
=== Custom Text Commands===&lt;br /&gt;
 BZF_API bool [[bz_registerCustomSlashCommand]] ( const char* command, [[bz_CustomSlashCommandHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomSlashCommand]] ( const char* command );&lt;br /&gt;
&lt;br /&gt;
===Plug-in Management===&lt;br /&gt;
 BZF_API int [[bz_getLoadedPlugins]]( bz_APIStringList * list );&lt;br /&gt;
 BZF_API bool [[bz_loadPlugin]]( const char* path, const char* params );&lt;br /&gt;
 BZF_API bool [[bz_unloadPlugin]]( const char* path );&lt;br /&gt;
 BZF_API bool [[bz_registerCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
&lt;br /&gt;
=== Public Server Information===&lt;br /&gt;
 BZF_API bool [[bz_getPublic]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicAddr]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicDescription]]( void );&lt;br /&gt;
 BZF_API void [[bz_updateListServer]] ( void );&lt;br /&gt;
&lt;br /&gt;
===HTTP Transfer===&lt;br /&gt;
 BZF_API bool [[bz_addURLJob]] ( const char* URL, [[bz_BaseURLHandler]]* handler = NULL, const char* postData = NULL );&lt;br /&gt;
 BZF_API bool [[bz_removeURLJob]] ( const char* URL );&lt;br /&gt;
 BZF_API bool [[bz_stopAllURLJobs]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Inter-Plug-in Communications===&lt;br /&gt;
 BZF_API bool [[bz_clipFieldExists]] ( const char *name );&lt;br /&gt;
 BZF_API const char* [[bz_getclipFieldString]] ( const char *name );&lt;br /&gt;
 BZF_API float [[bz_getclipFieldFloat]] ( const char *name );&lt;br /&gt;
 BZF_API int [[bz_getclipFieldInt]] ( const char *name );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldString]] ( const char *name, const char* data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldFloat]] ( const char *name, float data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldInt]] ( const char *name, int data );&lt;br /&gt;
 BZF_API bool [[bz_addClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
 BZF_API [[_removeClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
&lt;br /&gt;
===Game Recording===&lt;br /&gt;
 BZF_API bool [[bz_saveRecBuf]]( const char * _filename, int seconds);&lt;br /&gt;
 BZF_API bool [[bz_startRecBuf]]( void );&lt;br /&gt;
 BZF_API bool [[bz_stopRecBuf]]( void );&lt;br /&gt;
&lt;br /&gt;
===Map Management===&lt;br /&gt;
====Map Information====&lt;br /&gt;
 BZF_API void [[bz_getWorldSize]]( float *size, float *wallHeight );&lt;br /&gt;
 BZF_API int [[bz_getWorldObjectCount]]( void );&lt;br /&gt;
 BZF_API [[bz_APIWorldObjectList]]* [[bz_getWorldObjectList]]( void );&lt;br /&gt;
 BZF_API void [[bz_releaseWorldObjectList]]( [[bz_APIWorldObjectList]]* list );&lt;br /&gt;
&lt;br /&gt;
====Map Collisions====&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_cylinderInMapObject]] ( float pos[3], float height, float radius, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_boxInMapObject]] ( float pos[3], float size[3], float angle, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
&lt;br /&gt;
====Custom Map Objects====&lt;br /&gt;
 BZF_API bool [[bz_registerCustomMapObject]] ( const char* object, [[bz_CustomMapObjectHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomMapObject]] ( const char* object );&lt;br /&gt;
&lt;br /&gt;
====Map Definition====&lt;br /&gt;
 BZF_API bool [[bz_addWorldBox]] ( float *pos, float rot, float* scale, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldPyramid]] ( float *pos, float rot, float* scale, bool fliped, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldBase]]( float *pos, float rot, float* scale, bz_eTeamType team, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldTeleporter]] ( float *pos, float rot, float* scale, float border, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldWaterLevel]]( float level, [[bz_MaterialInfo]] *material );&lt;br /&gt;
 BZF_API bool [[bz_addWorldWeapon]]( const char* flagType, float *pos, float rot, float tilt, float initDelay, [[bz_APIFloatList]] &amp;amp;delays );&lt;br /&gt;
 BZF_API bool [[bz_setWorldSize]]( float size, float wallHeight = -1.0 );&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
 BZF_API bool [[bz_getStandardSpawn]] ( int playerID, float pos[3], float *rot );&lt;br /&gt;
 BZF_API bool [[bz_killPlayer]] ( int playerID, bool spawnOnBase, int killerID = -1, const char* flagID = NULL );&lt;br /&gt;
 BZF_API bool [[bz_sendPlayCustomLocalSound]] ( int playerID, const char* soundName );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_filterPath]] ( const char* path );&lt;br /&gt;
 BZF_API const char *[[bz_format]](const char* fmt, ...)_ATTRIBUTE12;&lt;br /&gt;
 BZF_API const char *[[bz_toupper]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_tolower]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_urlEncode]](const char* val );&lt;br /&gt;
 BZF_API [[bz_eGameType]] [[bz_getGameType]]( void );&lt;br /&gt;
 BZF_API [[bz_eTeamType]] [[bz_checkBaseAtPoint]] ( float pos[3] );&lt;br /&gt;
&lt;br /&gt;
===Server Side Players (Development)===&lt;br /&gt;
 BZF_API int [[bz_addServerSidePlayer]] ( [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeServerSidePlayer]] ( int playerID, [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[BZFS API]]&lt;br /&gt;
&lt;br /&gt;
[[plug-ins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BZFS_API_Functions]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getClientWorldDownloadURL&amp;diff=3319</id>
		<title>Bz getClientWorldDownloadURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getClientWorldDownloadURL&amp;diff=3319"/>
		<updated>2007-09-25T20:11:21Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Funcs}}&lt;br /&gt;
==Prototype==&lt;br /&gt;
BZF_API const [[bzApiString]] bz_getClientWorldDownloadURL ( void );&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
none.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Returns the current string used for the URL of the cached world. This is the URL that will be sent to all clients as an optional download location for the map file.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getClientWorldDowloadURL&amp;diff=3318</id>
		<title>Bz getClientWorldDowloadURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getClientWorldDowloadURL&amp;diff=3318"/>
		<updated>2007-09-25T20:10:57Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: Bz getClientWorldDowloadURL moved to Bz getClientWorldDownloadURL: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Bz getClientWorldDownloadURL]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Bz_getClientWorldDownloadURL&amp;diff=3317</id>
		<title>Bz getClientWorldDownloadURL</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Bz_getClientWorldDownloadURL&amp;diff=3317"/>
		<updated>2007-09-25T20:10:57Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: Bz getClientWorldDowloadURL moved to Bz getClientWorldDownloadURL: spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{BZFS_API_Doc}}&lt;br /&gt;
{{BZFS_API_Funcs}}&lt;br /&gt;
==Prototype==&lt;br /&gt;
BZF_API const [[bzApiString]] bz_getClientWorldDowloadURL ( void );&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
none.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Returns the current string used for the URL of the cached world. This is the URL that will be sent to all clients as an optional download location for the map file.&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Talk:Physics&amp;diff=3316</id>
		<title>Talk:Physics</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Talk:Physics&amp;diff=3316"/>
		<updated>2007-09-25T19:58:15Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page has confusing and almost contradictory statements as to which objects can use physics drivers and which can&#039;t!  Can someone &amp;quot;in the know&amp;quot; tidy it up?  [[User:Mr Burns|Mr Burns]]&lt;br /&gt;
:Done, but my wording probably needs some help.  Also, can we decide on a standardized way to do the code on these objects? such as: linear 0 0 5 #&amp;lt;x y z&amp;gt;        angular 0 0 #&amp;lt;x y&amp;gt;[[User:Tedius|Tedius]]&lt;br /&gt;
::2.0.9/2.0.10 servers will automatically convert [[box]] and [[pyramid]] objects to [[meshbox]] and [[meshpyr]] when you attempt to use physics drivers (or material references) on them, so you CAN use them.  I believe this is covered on the [[box]] and [[pyramid]] pages, though not in any sort of consistent way. -[[User:DTRemenak|DTRemenak]] 15:58, 25 September 2007 (EDT)&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=3295</id>
		<title>Functions (API)</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Functions_(API)&amp;diff=3295"/>
		<updated>2007-09-24T15:33:08Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DoDoc|Fill in articles for all API Functions}}&lt;br /&gt;
&lt;br /&gt;
{{BZFS_API_Doc}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The BZFS API provides a number of functions to plug-ins for use in querying the current game state. Functions are used both to get information about the game, and to trigger in game actions, such as activating a world weapon.&lt;br /&gt;
&lt;br /&gt;
==Function Groups==&lt;br /&gt;
Functions are broken into a series of groups based on the type of action or information they deal with.&lt;br /&gt;
&lt;br /&gt;
===Event Registration===&lt;br /&gt;
 BZF_API bool [[bz_registerEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
 BZF_API bool [[bz_removeEvent]] ( [[Events(API)|bz_eEventType]] eventType, [[Events(API)|bz_EventHandler]]* eventHandler );&lt;br /&gt;
&lt;br /&gt;
===Non-Player Connections===&lt;br /&gt;
 BZF_API bool [[bz_registerNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_removeNonPlayerConnectionHandler]] ( int connectionID, [[bz_NonPlayerConnectionHandler]]* handler );&lt;br /&gt;
 BZF_API bool [[bz_sendNonPlayerData]] ( int connectionID, const void *data, unsigned int size );&lt;br /&gt;
 BZF_API bool [[bz_disconectNonPlayerConnection]] ( int connectionID );&lt;br /&gt;
&lt;br /&gt;
===Player Information===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_getPlayerIndexList ( [[bz_APIIntList]] *playerList );&lt;br /&gt;
 BZF_API [[bz_APIIntList *[[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API [[bz_BasePlayerRecord *[[bz_getPlayerByIndex]] ( int index );&lt;br /&gt;
 BZF_API bool [[bz_updatePlayerData]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API bool [[bz_hasPerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_grantPerm ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_revokePerm]] ( int playerID, const char* perm );&lt;br /&gt;
 BZF_API bool [[bz_getAdmin]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_freePlayerRecord]] ( [[bz_BasePlayerRecord]] *playerRecord );&lt;br /&gt;
 BZF_API const char* bz_getPlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_getPlayerCurrentState]] ( int playerID, [[bz_PlayerUpdateState]] &amp;amp;state );&lt;br /&gt;
 BZF_API bool [[bz_isPlayerPaused]] ( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerOperator]] ( int playerId );&lt;br /&gt;
 BZF_API [[bz_APIIntList]]* [[bz_getPlayerIndexList]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_canPlayerSpawn]]( int playerID );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerSpawnable]]( int playerID, bool spawn );&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLimboText]]( int playerID, const char* text );&lt;br /&gt;
 BZF_API int [[bz_getPlayerCount]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_anyPlayers]] ( void );&lt;br /&gt;
&lt;br /&gt;
=== Team Management===&lt;br /&gt;
 BZF_API unsigned int [[bz_getTeamPlayerLimit]] ( bz_eTeamType team )&lt;br /&gt;
 BZF_API int [[bz_getTeamCount]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamWins]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API int [[bz_getTeamLosses]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_setTeamWins]] ([[bz_eTeamType]] team, int wins );&lt;br /&gt;
 BZF_API void [[bz_setTeamLosses]] ([[bz_eTeamType]] team, int losses );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScore]] ([[bz_eTeamType]] team );&lt;br /&gt;
 BZF_API void [[bz_resetTeamScores]] ( void );&lt;br /&gt;
 BZF_API void [[bz_changeTeam]]( int player, [[bz_eTeamType]] team );&lt;br /&gt;
&lt;br /&gt;
=== Score Management ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerWins]] (int playerId, int wins);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerLosses]] (int playerId, int losses);&lt;br /&gt;
 BZF_API bool [[bz_setPlayerTKs]] (int playerId, int tks);&lt;br /&gt;
 BZF_API bool [[bz_resetPlayerScore]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerWins]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerLosses]] (int playerId);&lt;br /&gt;
 BZF_API int [[bz_getPlayerTKs]] (int playerId);&lt;br /&gt;
&lt;br /&gt;
=== Latency Information ===&lt;br /&gt;
 BZF_API int [[bz_getPlayerLag]] ( int playerId );&lt;br /&gt;
 BZF_API int [[bz_getPlayerJitter]] ( int playerId );&lt;br /&gt;
 BZF_API float [[bz_getPlayerPacketloss]] ( int playerId );&lt;br /&gt;
&lt;br /&gt;
=== Permission Group Management ===&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupList]] ( void );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* [[bz_getGroupPerms]] ( const char* group );&lt;br /&gt;
 BZF_API bool [[bz_groupAllowPerm]]( const char* group, const char* perm );&lt;br /&gt;
&lt;br /&gt;
=== Chat Messages ===&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, int to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessage]] (int from, [[bz_eTeamType]] to, const char* message);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, int to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sendTextMessagef]] (int from, [[bz_eTeamType]] to, const char* fmt, ...);&lt;br /&gt;
 BZF_API bool [[bz_sentFetchResMessage]] ( int playerID,  const char* URL );&lt;br /&gt;
&lt;br /&gt;
=== Server Management ===&lt;br /&gt;
 BZF_API bool [[bz_restart]] ( void );&lt;br /&gt;
 BZF_API void [[bz_shutdown]] ();&lt;br /&gt;
 BZF_API void [[bz_superkill]] ();&lt;br /&gt;
 BZF_API void [[bz_gameOver]] (int playerID, bz_eTeamType = eNoTeam);&lt;br /&gt;
 BZF_API void [[bz_reloadLocalBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadMasterBans]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadGroups]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadUsers]] ();&lt;br /&gt;
 BZF_API void [[bz_reloadHelp]] ();&lt;br /&gt;
&lt;br /&gt;
=== Rabbit Hunt===&lt;br /&gt;
 BZF_API void [[bz_newRabbit]]( int player, bool swap );&lt;br /&gt;
 BZF_API void [[bz_removeRabbit]]( int player );&lt;br /&gt;
&lt;br /&gt;
=== Map Management ===&lt;br /&gt;
 BZF_API void [[bz_setClientWorldDowloadURL]]( const char* URL );&lt;br /&gt;
 BZF_API const bzApiString [[bz_getClientWorldDowloadURL]] ( void );&lt;br /&gt;
 BZF_API bool [[bz_saveWorldCacheFile]]( const char* file );&lt;br /&gt;
&lt;br /&gt;
=== Flag Management ===&lt;br /&gt;
&lt;br /&gt;
 BZF_API bool [[bz_givePlayerFlag]] ( int playerID, const char* flagType, bool force );&lt;br /&gt;
 BZF_API bool [[bz_removePlayerFlag]] ( int playerID );&lt;br /&gt;
 BZF_API void [[bz_resetFlags]] ( bool onlyUnused );&lt;br /&gt;
 BZF_API unsigned int [[bz_getNumFlags]] ( void );&lt;br /&gt;
 BZF_API const [[bz_ApiString]] [[bz_getFlagName]]( int flag );&lt;br /&gt;
 BZF_API bool [[bz_resetFlag]] ( int flag );&lt;br /&gt;
 BZF_API int [[bz_flagPlayer]] ( int flag );&lt;br /&gt;
 BZF_API bool [[bz_getFlagPosition]] ( int flag, float* pos );&lt;br /&gt;
 BZF_API bool [[bz_moveFlag]] ( int flag, float pos[3], bool reset = true );&lt;br /&gt;
 BZF_API bool [[bz_RegisterCustomFlag]] ( const char* abbr, const char* name, const char* helpString, bz_eShotType shotType, bz_eFlagQuality quality );&lt;br /&gt;
&lt;br /&gt;
=== Shot Type Control ===&lt;br /&gt;
 BZF_API bool [[bz_setPlayerShotType]]( int playerId, [[bz_eShotType]] shotType );&lt;br /&gt;
&lt;br /&gt;
=== World Weapon Management ===&lt;br /&gt;
 BZF_API bool [[bz_fireWorldWep]] ( const char* flagType, float lifetime, float *pos, float tilt, float direction, int shotID , float dt );&lt;br /&gt;
 BZF_API int [[bz_fireWorldGM]] ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt);&lt;br /&gt;
&lt;br /&gt;
=== Server Time ===&lt;br /&gt;
 BZF_API double [[bz_getCurrentTime]] ( void );&lt;br /&gt;
 BZF_API float [[bz_getMaxWaitTime]] ( void );&lt;br /&gt;
 BZF_API void [[bz_setMaxWaitTime]] ( float maxTime );&lt;br /&gt;
 BZF_API void [[bz_getLocaltime]] ( [[bz_localTime]] *ts );&lt;br /&gt;
&lt;br /&gt;
=== Global Database Management (BZDB) ===&lt;br /&gt;
 BZF_API double [[bz_getBZDBDouble]] ( const char* variable );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getBZDBString]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBBool]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBInt]]( const char* variable );&lt;br /&gt;
 BZF_API int [[bz_getBZDBItemPerms]] ( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_getBZDBItemPesistent]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_BZDBItemExists]]( const char* variable );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBDouble]] ( const char* variable, double val, int perms = 0, bool persistent = false );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBString]]( const char* variable, const char *val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBBool]]( const char* variable, bool val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API bool [[bz_setBZDBInt]]( const char* variable, int val, int perms = 0, bool persistent = false  );&lt;br /&gt;
 BZF_API int [[bz_getBZDBVarList]]( bz_APIStringList	*varList );&lt;br /&gt;
 BZF_API void [[bz_resetBZDBVar]]( const char* variable );&lt;br /&gt;
 BZF_API void [[bz_resetALLBZDBVars]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Logging ===&lt;br /&gt;
 BZF_API void [[bz_debugMessage]] ( int level, const char* message );&lt;br /&gt;
 BZF_API void [[bz_debugMessagef]]( int level, const char* fmt, ... )&lt;br /&gt;
 BZF_API int [[bz_getDebugLevel]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Server Administration===&lt;br /&gt;
 BZF_API bool [[bz_kickUser]] ( int playerIndex, const char* reason, bool notify );&lt;br /&gt;
 BZF_API bool [[bz_IPBanUser]] ( int playerIndex, const char* ip, int durration, const char* reason );&lt;br /&gt;
 BZF_API bool [[bz_IPUnbanUser]] ( const char* ip );&lt;br /&gt;
 BZF_API [[bz_APIStringList]]* bz_getReports( void );&lt;br /&gt;
 BZF_API int [[bz_getLagWarn]]( void );&lt;br /&gt;
 BZF_API bool [[bz_setLagWarn]]( int lagwarn );&lt;br /&gt;
 BZF_API bool [[bz_pollActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_pollVeto]]( void );&lt;br /&gt;
&lt;br /&gt;
=== Timed Game Management===&lt;br /&gt;
 BZF_API bool [[bz_setTimeLimit]]( float timeLimit );&lt;br /&gt;
 BZF_API float [[bz_getTimeLimit]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isTimeManualStart]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownActive]]( void );&lt;br /&gt;
 BZF_API bool [[bz_isCountDownInProgress]]( void );&lt;br /&gt;
 BZF_API void [[bz_pauseCountdown]] ( const char *pausedBy );&lt;br /&gt;
 BZF_API void [[bz_resumeCountdown]] ( const char *resumedBy );&lt;br /&gt;
 BZF_API void [[bz_startCountdown]] ( int delay, float limit, const char *byWho );&lt;br /&gt;
&lt;br /&gt;
=== Custom Text Commands===&lt;br /&gt;
 BZF_API bool [[bz_registerCustomSlashCommand]] ( const char* command, [[bz_CustomSlashCommandHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomSlashCommand]] ( const char* command );&lt;br /&gt;
&lt;br /&gt;
===Plug-in Management===&lt;br /&gt;
 BZF_API int [[bz_getLoadedPlugins]]( bz_APIStringList * list );&lt;br /&gt;
 BZF_API bool [[bz_loadPlugin]]( const char* path, const char* params );&lt;br /&gt;
 BZF_API bool [[bz_unloadPlugin]]( const char* path );&lt;br /&gt;
 BZF_API bool [[bz_registerCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomPluginHandler]] ( const char* extension, [[bz_APIPluginHandler]] * handler );&lt;br /&gt;
&lt;br /&gt;
=== Public Server Information===&lt;br /&gt;
 BZF_API bool [[bz_getPublic]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicAddr]]( void );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_getPublicDescription]]( void );&lt;br /&gt;
 BZF_API void [[bz_updateListServer]] ( void );&lt;br /&gt;
&lt;br /&gt;
===HTTP Transfer===&lt;br /&gt;
 BZF_API bool [[bz_addURLJob]] ( const char* URL, [[bz_BaseURLHandler]]* handler = NULL, const char* postData = NULL );&lt;br /&gt;
 BZF_API bool [[bz_removeURLJob]] ( const char* URL );&lt;br /&gt;
 BZF_API bool [[bz_stopAllURLJobs]] ( void );&lt;br /&gt;
&lt;br /&gt;
===Inter-Plug-in Communications===&lt;br /&gt;
 BZF_API bool [[bz_clipFieldExists]] ( const char *name );&lt;br /&gt;
 BZF_API const char* [[bz_getclipFieldString]] ( const char *name );&lt;br /&gt;
 BZF_API float [[bz_getclipFieldFloat]] ( const char *name );&lt;br /&gt;
 BZF_API int [[bz_getclipFieldInt]] ( const char *name );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldString]] ( const char *name, const char* data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldFloat]] ( const char *name, float data );&lt;br /&gt;
 BZF_API bool [[bz_setclipFieldInt]] ( const char *name, int data );&lt;br /&gt;
 BZF_API bool [[bz_addClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
 BZF_API [[_removeClipFieldNotifier]] ( const char *name, [[bz_ClipFiledNotifier *cb );&lt;br /&gt;
&lt;br /&gt;
===Game Recording===&lt;br /&gt;
 BZF_API bool [[bz_saveRecBuf]]( const char * _filename, int seconds);&lt;br /&gt;
 BZF_API bool [[bz_startRecBuf]]( void );&lt;br /&gt;
 BZF_API bool [[bz_stopRecBuf]]( void );&lt;br /&gt;
&lt;br /&gt;
===Map Management===&lt;br /&gt;
====Map Information====&lt;br /&gt;
 BZF_API void [[bz_getWorldSize]]( float *size, float *wallHeight );&lt;br /&gt;
 BZF_API int [[bz_getWorldObjectCount]]( void );&lt;br /&gt;
 BZF_API [[bz_APIWorldObjectList]]* [[bz_getWorldObjectList]]( void );&lt;br /&gt;
 BZF_API void [[bz_releaseWorldObjectList]]( [[bz_APIWorldObjectList]]* list );&lt;br /&gt;
&lt;br /&gt;
====Map Collisions====&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_cylinderInMapObject]] ( float pos[3], float height, float radius, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
 [[bz_eAPIColType]] [[bz_boxInMapObject]] ( float pos[3], float size[3], float angle, [[bz_APIBaseWorldObject]] **object );&lt;br /&gt;
&lt;br /&gt;
====Custom Map Objects====&lt;br /&gt;
 BZF_API bool [[bz_registerCustomMapObject]] ( const char* object, [[bz_CustomMapObjectHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeCustomMapObject]] ( const char* object );&lt;br /&gt;
&lt;br /&gt;
====Map Definition====&lt;br /&gt;
 BZF_API bool [[bz_addWorldBox]] ( float *pos, float rot, float* scale, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldPyramid]] ( float *pos, float rot, float* scale, bool fliped, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldBase]]( float *pos, float rot, float* scale, bz_eTeamType team, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldTeleporter]] ( float *pos, float rot, float* scale, float border, [[bz_WorldObjectOptions]] options );&lt;br /&gt;
 BZF_API bool [[bz_addWorldWaterLevel]]( float level, [[bz_MaterialInfo]] *material );&lt;br /&gt;
 BZF_API bool [[bz_addWorldWeapon]]( const char* flagType, float *pos, float rot, float tilt, float initDelay, [[bz_APIFloatList]] &amp;amp;delays );&lt;br /&gt;
 BZF_API bool [[bz_setWorldSize]]( float size, float wallHeight = -1.0 );&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
 BZF_API bool [[bz_getStandardSpawn]] ( int playerID, float pos[3], float *rot );&lt;br /&gt;
 BZF_API bool [[bz_killPlayer]] ( int playerID, bool spawnOnBase, int killerID = -1, const char* flagID = NULL );&lt;br /&gt;
 BZF_API bool [[bz_sendPlayCustomLocalSound]] ( int playerID, const char* soundName );&lt;br /&gt;
 BZF_API [[bz_ApiString]] [[bz_filterPath]] ( const char* path );&lt;br /&gt;
 BZF_API const char *[[bz_format]](const char* fmt, ...)_ATTRIBUTE12;&lt;br /&gt;
 BZF_API const char *[[bz_toupper]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_tolower]](const char* val );&lt;br /&gt;
 BZF_API const char *[[bz_urlEncode]](const char* val );&lt;br /&gt;
 BZF_API [[bz_eGameType]] [[bz_getGameType]]( void );&lt;br /&gt;
 BZF_API [[bz_eTeamType]] [[bz_checkBaseAtPoint]] ( float pos[3] );&lt;br /&gt;
&lt;br /&gt;
===Server Side Players (Development)===&lt;br /&gt;
 BZF_API int [[bz_addServerSidePlayer]] ( [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
 BZF_API bool [[bz_removeServerSidePlayer]] ( int playerID, [[bz_ServerSidePlayerHandler]] *handler );&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[BZFS API]]&lt;br /&gt;
&lt;br /&gt;
[[plug-ins]]&lt;br /&gt;
&lt;br /&gt;
[[Category:BZFS_API_Functions]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=File:Tank_sizes.png&amp;diff=3287</id>
		<title>File:Tank sizes.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=File:Tank_sizes.png&amp;diff=3287"/>
		<updated>2007-09-20T01:04:23Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: uploaded a new version of &amp;quot;Image:Tank sizes.png&amp;quot;: 2.08-&amp;gt;2.05 as per recent correction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3283</id>
		<title>Tank</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3283"/>
		<updated>2007-09-18T23:45:19Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Dimensions */ back to 2.05 as per jeff&amp;#039;s recent commit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The tank is the primary avatar of the player in BZFlag.[[image:Blue_tank_small.png|right]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The BZFlag tank model has been in the game since it&#039;s inception, and been an integral part of game play.  The tank has received few graphical upgrades over the years, and looks today much the same as it has since the first version of the game. &lt;br /&gt;
&lt;br /&gt;
The tank model is currently [http://en.wikipedia.org/wiki/Hardcoded hard coded] as a series of [http://en.wikipedia.org/wiki/OpenGL OpenGL] instruction in the [[BZFlag Source]] code. The model may not be changed externally with out modifications to the game client itself.&lt;br /&gt;
&lt;br /&gt;
The tank model has been exported from the code, and can be found as a wavefront obj file at http://my.bzflag.org/resources/models/Tank.obj &lt;br /&gt;
This can be imported into most 3d modeling packages.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The tank model has 7 different colors, or &amp;quot;skins&amp;quot;, that it can appear in. The color of the tank results from the team in which the tank is playing, or some other game logic (such as Hunters and Rabbits in [[Rabbit Hunt]]) &lt;br /&gt;
The 7 tank colors are as follows:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
image:Red_tank.png‎|Red Team Tank&lt;br /&gt;
image:Blue_tank.png‎|Blue Team Tank&lt;br /&gt;
image:Green_tank.png‎|Green Team Tank&lt;br /&gt;
image:Purple_tank.png‎|Purple Team Tank&lt;br /&gt;
image:Black_tank.png‎|Rogue (black) Team Tank&lt;br /&gt;
image:Orange_tank.png‎|Hunter Team Tank&lt;br /&gt;
image:White_tank.png‎|Rabbit Team Tank&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on an individual client&#039;s graphical settings, the tank may have animated treads and spinning wheels. The tanks shown are the most basic version of the tank.&lt;br /&gt;
&lt;br /&gt;
==Dimensions==&lt;br /&gt;
[[image:Tank_sizes.png|frame|right|Tank dimensions in [[world units]]]]&lt;br /&gt;
The Tank&#039;s visible model is 8.04 [[world units]] long, 2.8 [[World units|units]] wide, and 2.05 [[World units|units]] tall as shown in the image. If one assumes that one [[World units|world unit]] is equivalent to one real world meter, then the tank would be 26 feet 4.5 inches long, 9 feet 2 inches wide, and 6 feet 10 inches tall.&lt;br /&gt;
&lt;br /&gt;
The tank bounding box (used in collisions with world objects) is 6 [[world units]] long, 2.8 [[World units|units]] wide, and 2.05 [[World units|units]] tall, and does not include the barrel forward of the tip of the treads. The muzzle of the barrel is 1.57 [[World units|world units]] from the ground, meaning that a tank can shoot over a box 1.5 [[World units|units]] high.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The tank model was originally created by [[Tamar Cohen]] for the first versions of BZFlag and has since been extended and modified by the BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3282</id>
		<title>Tank</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3282"/>
		<updated>2007-09-18T23:34:32Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Dimensions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The tank is the primary avatar of the player in BZFlag.[[image:Blue_tank_small.png|right]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The BZFlag tank model has been in the game since it&#039;s inception, and been an integral part of game play.  The tank has received few graphical upgrades over the years, and looks today much the same as it has since the first version of the game. &lt;br /&gt;
&lt;br /&gt;
The tank model is currently [http://en.wikipedia.org/wiki/Hardcoded hard coded] as a series of [http://en.wikipedia.org/wiki/OpenGL OpenGL] instruction in the [[BZFlag Source]] code. The model may not be changed externally with out modifications to the game client itself.&lt;br /&gt;
&lt;br /&gt;
The tank model has been exported from the code, and can be found as a wavefront obj file at http://my.bzflag.org/resources/models/Tank.obj &lt;br /&gt;
This can be imported into most 3d modeling packages.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The tank model has 7 different colors, or &amp;quot;skins&amp;quot;, that it can appear in. The color of the tank results from the team in which the tank is playing, or some other game logic (such as Hunters and Rabbits in [[Rabbit Hunt]]) &lt;br /&gt;
The 7 tank colors are as follows:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
image:Red_tank.png‎|Red Team Tank&lt;br /&gt;
image:Blue_tank.png‎|Blue Team Tank&lt;br /&gt;
image:Green_tank.png‎|Green Team Tank&lt;br /&gt;
image:Purple_tank.png‎|Purple Team Tank&lt;br /&gt;
image:Black_tank.png‎|Rogue (black) Team Tank&lt;br /&gt;
image:Orange_tank.png‎|Hunter Team Tank&lt;br /&gt;
image:White_tank.png‎|Rabbit Team Tank&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on an individual client&#039;s graphical settings, the tank may have animated treads and spinning wheels. The tanks shown are the most basic version of the tank.&lt;br /&gt;
&lt;br /&gt;
==Dimensions==&lt;br /&gt;
[[image:Tank_sizes.png|frame|right|Tank dimensions in [[world units]]]]&lt;br /&gt;
The Tank&#039;s visible model is 8.04 [[world units]] long, 2.8 [[World units|units]] wide, and 2.08 [[World units|units]] tall as shown in the image. If one assumes that one [[World units|world unit]] is equivalent to one real world meter, then the tank would be 26 feet 4.5 inches long, 9 feet 2 inches wide, and 6 feet 10 inches tall.&lt;br /&gt;
&lt;br /&gt;
The tank bounding box (used in collisions with world objects) is 6 [[world units]] long, 2.8 [[World units|units]] wide, and 2.05 [[World units|units]] tall, and does not include the barrel forward of the tip of the treads. The muzzle of the barrel is 1.57 [[World units|world units]] from the ground, meaning that a tank can shoot over a box 1.5 [[World units|units]] high.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The tank model was originally created by [[Tamar Cohen]] for the first versions of BZFlag and has since been extended and modified by the BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3281</id>
		<title>Tank</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3281"/>
		<updated>2007-09-18T23:33:43Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Dimensions */ clarify between the visible model and the box used in collisions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The tank is the primary avatar of the player in BZFlag.[[image:Blue_tank_small.png|right]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The BZFlag tank model has been in the game since it&#039;s inception, and been an integral part of game play.  The tank has received few graphical upgrades over the years, and looks today much the same as it has since the first version of the game. &lt;br /&gt;
&lt;br /&gt;
The tank model is currently [http://en.wikipedia.org/wiki/Hardcoded hard coded] as a series of [http://en.wikipedia.org/wiki/OpenGL OpenGL] instruction in the [[BZFlag Source]] code. The model may not be changed externally with out modifications to the game client itself.&lt;br /&gt;
&lt;br /&gt;
The tank model has been exported from the code, and can be found as a wavefront obj file at http://my.bzflag.org/resources/models/Tank.obj &lt;br /&gt;
This can be imported into most 3d modeling packages.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The tank model has 7 different colors, or &amp;quot;skins&amp;quot;, that it can appear in. The color of the tank results from the team in which the tank is playing, or some other game logic (such as Hunters and Rabbits in [[Rabbit Hunt]]) &lt;br /&gt;
The 7 tank colors are as follows:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
image:Red_tank.png‎|Red Team Tank&lt;br /&gt;
image:Blue_tank.png‎|Blue Team Tank&lt;br /&gt;
image:Green_tank.png‎|Green Team Tank&lt;br /&gt;
image:Purple_tank.png‎|Purple Team Tank&lt;br /&gt;
image:Black_tank.png‎|Rogue (black) Team Tank&lt;br /&gt;
image:Orange_tank.png‎|Hunter Team Tank&lt;br /&gt;
image:White_tank.png‎|Rabbit Team Tank&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on an individual client&#039;s graphical settings, the tank may have animated treads and spinning wheels. The tanks shown are the most basic version of the tank.&lt;br /&gt;
&lt;br /&gt;
==Dimensions==&lt;br /&gt;
[[image:Tank_sizes.png|frame|right|Tank dimensions in [[world units]]]]&lt;br /&gt;
The Tank&#039;s visible model is 8.04 [[world units]] long, 2.8 [[World units|units]] wide, and 2.08 [[World units|units]] tall as shown in the image. If one assumes that one [[World units|world unit]] is equivalent to one real world meter, then the tank would be 26 feet 4.5 inches long, 9 feet 2 inches wide, and 6 feet 10 inches tall.&lt;br /&gt;
&lt;br /&gt;
The tank bounding box (used in collisions with world objects) is 6 [[world units]] long, 2.8 [[World units|units]] wide, and 2.05 [[World units|units]] tall, and does not include the muzzle forward of the tip of the treads. The muzzle of the barrel is 1.57 [[World units|world units]] from the ground, meaning that a tank can shoot over a box 1.5 [[World units|units]] high.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The tank model was originally created by [[Tamar Cohen]] for the first versions of BZFlag and has since been extended and modified by the BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3280</id>
		<title>Tank</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3280"/>
		<updated>2007-09-18T23:10:39Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The tank is the primary avatar of the player in BZFlag.[[image:Blue_tank_small.png|right]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The BZFlag tank model has been in the game since it&#039;s inception, and been an integral part of game play.  The tank has received few graphical upgrades over the years, and looks today much the same as it has since the first version of the game. &lt;br /&gt;
&lt;br /&gt;
The tank model is currently [http://en.wikipedia.org/wiki/Hardcoded hard coded] as a series of [http://en.wikipedia.org/wiki/OpenGL OpenGL] instruction in the [[BZFlag Source]] code. The model may not be changed externally with out modifications to the game client itself.&lt;br /&gt;
&lt;br /&gt;
The tank model has been exported from the code, and can be found as a wavefront obj file at http://my.bzflag.org/resources/models/Tank.obj &lt;br /&gt;
This can be imported into most 3d modeling packages.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The tank model has 7 different colors, or &amp;quot;skins&amp;quot;, that it can appear in. The color of the tank results from the team in which the tank is playing, or some other game logic (such as Hunters and Rabbits in [[Rabbit Hunt]]) &lt;br /&gt;
The 7 tank colors are as follows:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
image:Red_tank.png‎|Red Team Tank&lt;br /&gt;
image:Blue_tank.png‎|Blue Team Tank&lt;br /&gt;
image:Green_tank.png‎|Green Team Tank&lt;br /&gt;
image:Purple_tank.png‎|Purple Team Tank&lt;br /&gt;
image:Black_tank.png‎|Rogue (black) Team Tank&lt;br /&gt;
image:Orange_tank.png‎|Hunter Team Tank&lt;br /&gt;
image:White_tank.png‎|Rabbit Team Tank&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on an individual client&#039;s graphical settings, the tank may have animated treads and spinning wheels. The tanks shown are the most basic version of the tank.&lt;br /&gt;
&lt;br /&gt;
==Dimensions==&lt;br /&gt;
[[image:Tank_sizes.png|frame|right|Tank dimensions in [[World units|world units]]]]&lt;br /&gt;
The Tank is 8.04 [[World units|world units]] long, 2.8 [[World units|units]] wide, and 2.05 [[World units|units]] tall as shown in the image. The turret is 1.57 [[World units|world units]] from the ground, meaning that a tank can shoot over a box 1.5 [[World units|units]] high. If one assumes that one [[World units|world unit]] is equivalent to one real world meter, then the tank would be 26 feet 4.5 inches long, 9 feet 2 inches wide, and 6 feet 10 inches tall.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The tank model was originally created by [[Tamar Cohen]] for the first versions of BZFlag and has since been extended and modified by the BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=3279</id>
		<title>Server Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=3279"/>
		<updated>2007-09-18T22:57:48Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: various corrections/clarifications.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BZFlag Server (BZFS) allows administrators to configure a large number of gameplay and configuration settings from within the client.  The /set command in-game allows users with the appropriate permissions to change these values.  These may also be known as BZDB variables and &amp;quot;/set variables&amp;quot; depending on who you speak with.&lt;br /&gt;
&lt;br /&gt;
Unless otherwise noted, time values are measured in seconds, distances in [[world units]], and speeds in [[world units]] per second.&lt;br /&gt;
&lt;br /&gt;
{{InfoBox|Note|Some of these, such as _worldSize, may require a rejoin before they take effect.  It is recommended to apply these in the map file (if they apply specifically to the map, such as _worldSize and _tankSpeed), through the server configuration file, or from the command line.  This ensures that all players that join will have the proper gameplay experience.}}&lt;br /&gt;
{|{{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _agilityAdVel || 2.25 || Multiplies _tankSpeed for tanks holding Agility flag for a specified amount of time (_agilityTimeWindow)&lt;br /&gt;
|-&lt;br /&gt;
| _agilityTimeWindow || 1 || The amount of time (in seconds)that the tank will have the speed specified by _agilityAdVel&lt;br /&gt;
|-&lt;br /&gt;
| _agilityVelDelta || 0.3 || &lt;br /&gt;
|-&lt;br /&gt;
| _angleTolerance || 0.05 || If a tank has turned more than it was expected to, plus this tolerance, a new update is sent so the other clients are aware of the change in heading&lt;br /&gt;
|-&lt;br /&gt;
| _angularAd || 1.5 || Multiplies _tankAngVel to determine how fast tanks can turn while holding the Quick Turn flag&lt;br /&gt;
|-&lt;br /&gt;
| _avenueSize || 2*_boxBase || Space to leave between objects in random maps?&lt;br /&gt;
|-&lt;br /&gt;
| _baseSize || 60 || Width and Depth (bases have constant height) of the square bases for CTF games&lt;br /&gt;
|-&lt;br /&gt;
| _boxBase || 30 || Width and Depth of boxes on a random map?&lt;br /&gt;
|-&lt;br /&gt;
| _boxHeight || 6*_muzzleHeight || Height of boxes on a random map?&lt;br /&gt;
|-&lt;br /&gt;
| _burrowDepth || 1.32 || Determines how far down tanks drop when they have the Burrow Flag. Making this much lower makes it below the floor, and impossible to kill tank!&lt;br /&gt;
|-&lt;br /&gt;
| _burrowSpeedAd || .8 || Multiplied by _tankSpeed to determine how fast tanks holding the Burrow Flag move.&lt;br /&gt;
|-&lt;br /&gt;
| _burrowAngularAd || .55 || Multiplied by _tankAngVel to determine how fast tanks can turn while holding the Burrow flag.&lt;br /&gt;
|-&lt;br /&gt;
| _coldetDepth || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
| _coldetElements || 4 || &lt;br /&gt;
|-&lt;br /&gt;
| _countdownResumeTime || 5 || This enforces a delay when resuming a paused countdown. If the argument is lower or equal to 0 then resuming is instantly, otherwise it is delayed according to the value (in seconds). &#039;&#039;Available in 2.1 and later&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _cullDepth || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
| _cullDist || fog || Far plane culling distance (&#039;fog&#039; uses the fog parameters).&lt;br /&gt;
|-&lt;br /&gt;
| _cullElements || 16 || &lt;br /&gt;
|-&lt;br /&gt;
| _cullOccluders || 0 ||&lt;br /&gt;
|-&lt;br /&gt;
| _disableBots || none || A value of 1 in this variable does not allow autopilot or bots on the server, equivalent to the old -prohibitbots command line option. &lt;br /&gt;
|-&lt;br /&gt;
| _drawCelestial || 1 || Draw the stars, sun, and moon.&lt;br /&gt;
|-&lt;br /&gt;
| _drawClouds || 1 || Draw the clouds.&lt;br /&gt;
|-&lt;br /&gt;
| _drawGround || 1 || Draw the ground plane.&lt;br /&gt;
|-&lt;br /&gt;
| _drawMountains || 1 || Draw the mountains.&lt;br /&gt;
|-&lt;br /&gt;
| _drawSky || 1 || Draw the sky pyramid.&lt;br /&gt;
|-&lt;br /&gt;
| _explodeTime || 5 || After a tank is killed, this is how long it takes to blow up, and then &amp;quot;respawn&amp;quot;. Larger values translates into longer explosions and more client processor time. Note that an explosion is invisible if you are inside it, so large values may make it invisible up close, and extremely large values may make explosions entirely invisible.&lt;br /&gt;
|-&lt;br /&gt;
| _flagAltitude || 11 || The height that the flag flies up dropped and the height that a flag spawns at.&lt;br /&gt;
|-&lt;br /&gt;
| _flagEffectTime || 0.64 || The amount of time the flag effect lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _flagHeight || 10 || The height of the flag (not its pole).&lt;br /&gt;
|-&lt;br /&gt;
| _flagPoleWidth || 0.025 || The diameter of the flag pole.&lt;br /&gt;
|-&lt;br /&gt;
| _flagPoleSize || 0.8 || The height of the flag pole.&lt;br /&gt;
|-&lt;br /&gt;
| _flagRadius || 2.5 || Determines how close a tank must be to a flag to pick it up.&lt;br /&gt;
|-&lt;br /&gt;
| _fogMode || none || Valid values: linear, exp, or exp2.&lt;br /&gt;
|-&lt;br /&gt;
| _fogDensity || 0.001 || Used for exp and exp2 fog modes.&lt;br /&gt;
|-&lt;br /&gt;
| _fogStart || 0.5*_worldSize || Used for linear fog mode, the distance where fog begins to occlude vision.&lt;br /&gt;
|-&lt;br /&gt;
| _fogEnd || _worldSize || Used for linear fog mode, the distance where the fog occludes everything.&lt;br /&gt;
|-&lt;br /&gt;
| _fogColor || &amp;quot;0.25 0.25 0.25&amp;quot; || RGB or black, red, blue (alpha is ignored).&lt;br /&gt;
|-&lt;br /&gt;
| _friction || 0  || Zero is normal friction, the closer to 0 the harder it is to start and stop, and the higher the number the easier it is to start and stop.&lt;br /&gt;
|-&lt;br /&gt;
| _gmActivationTime || 0.5  || The amount of time (in seconds) it takes for a Guided Missile to become active after it is fired. Any contact under this time will not result in detonation (setting it to low could cause its owner to run into its own GM and be blown up!&lt;br /&gt;
|-&lt;br /&gt;
| _gmAdLife || 0.95 || Multiplied by _shotRange to determine the distance guided missiles will go.&lt;br /&gt;
|-&lt;br /&gt;
| _gmTurnAngle || 0.628319 || The angle at which a Guided Missile will turn to follow its target. (Measured in radians)&lt;br /&gt;
|-&lt;br /&gt;
| _gravity || 9.8 ||  The rate at which a tank will fall (or be kept from jumping) Measured in [[World units]]/Seconds^2. Setting this to a zero or positive value will result in tanks being unable to stay down and will float away.&lt;br /&gt;
|-&lt;br /&gt;
| _handicapScoreDiff || 50 || How much of a score difference (from the leader?) there must be for a player to get a handicap&lt;br /&gt;
|-&lt;br /&gt;
| _handicapVelAd || 2 || Player with handicap will receive this much more (_tankSpeed + _handicapVelAd) velocity than the normal _tankSpeed value.&amp;lt;br&amp;gt;&#039;&#039;**Note: These could be factors rather than additions&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _handicapAngAd || 1.5 || Player with handicap will receive this much more (_angularAd + _handicapAngAd) turning ability than the normal _angularAd. &amp;lt;br&amp;gt;&#039;&#039;**Note: These could be factors rather than additions&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _handicapShotAd || 1.75 || &#039;&#039;**Note: These could be factors rather than additions&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _identifyRange || 50 || If a flag is this distance or closer to a tank carrying the Identify (ID) flag, it will display the closest flag&#039;s type.&lt;br /&gt;
|-&lt;br /&gt;
| _jumpVelocity || 19 || The speed a tank moves vertically while jumping.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdVel || 1000 || The speed at which a laser travels.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdRate || 0.5 || Multiplied by _rFireAdRate to determine the firing rate for a laser.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdLife || 0.1 || The amount of time (in seconds) that a laser remains after being fired.&lt;br /&gt;
|-&lt;br /&gt;
| _latitude || 37.5 ||  The latitude at which the world exists. This affects the timezone.&lt;br /&gt;
|-&lt;br /&gt;
| _lgGravity|| 12.7 ||  Modifies the gravity for owners of the Low Gravity flag. Similar to the _gravity variable. &#039;&#039;Available starting in version 2.1&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _lockOnAngle || 0.15 || Angle (in radians) in relation to tanks heading (positive or negative) that will allow a Guided Missile to lock onto a target.&lt;br /&gt;
|-&lt;br /&gt;
| _longitude || 122 || The longitude at which the world exists. This affects the timezone.&lt;br /&gt;
|-&lt;br /&gt;
| _lRAdRate || 0.5 ||&lt;br /&gt;
|-&lt;br /&gt;
| _maxBumpHeight || 0.33 || Any difference between the surface a tank is on and the top surface of an object the tank runs into that is less than this value will allow the tank to simply move up to the object rather than being stopped by it.&lt;br /&gt;
|-&lt;br /&gt;
| _maxFlagGrabs || 4.0 || How many times a flag can be dropped before it respawns. Note that on server startup, flags will get a random # of grabs already assigned to them, and flags will always respawn no matter how many flag grabs they have left if it is are over an &#039;unsafe&#039; zone.&lt;br /&gt;
|-&lt;br /&gt;
| _maxLOD || 32767 || The max level of detail to allow.&lt;br /&gt;
|-&lt;br /&gt;
| _mirror || none || Options: &#039;&#039;&#039;white&#039;&#039;&#039;, &#039;&#039;&#039;black&#039;&#039;&#039;, &#039;&#039;&#039;red&#039;&#039;&#039;, &#039;&#039;&#039;blue&#039;&#039;&#039;, &#039;&#039;&#039;pink&#039;&#039;&#039;, &#039;&#039;&#039;purple&#039;&#039;&#039;, &#039;&#039;&#039;orange&#039;&#039;&#039;, etc... (&amp;quot;black 0.75&amp;quot; is a good setting, some invalid options such as &#039;&#039;&#039;mirror&#039;&#039;&#039; will give a mirror look)&lt;br /&gt;
|-&lt;br /&gt;
| _momentumLinAcc || 1 || Momentum flag&#039;s effect on going forwards and backwards.&lt;br /&gt;
|-&lt;br /&gt;
| _momentumAngAcc || 1 || Momentum flag&#039;s effect on turning.&lt;br /&gt;
|-&lt;br /&gt;
| _momentumFriction || 0 || Friction (same as _friction) when holding the Momentum flag.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdVel || 1/_mGunAdRate || The speed of the machine gun&#039;s bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdRate || 10 || The amount of time required for the machine gun to reload.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdLife || 1.5 || Multiplied by _shotRange to determine the distance machine gun bullets go.&lt;br /&gt;
|-&lt;br /&gt;
| _muzzleFront || _tankRadius + 0.1 || Location of muzzle of tank (affects bullets and player camera location).&lt;br /&gt;
|-&lt;br /&gt;
| _muzzleHeight || 1.57 || See _muzzleFront.&lt;br /&gt;
|-&lt;br /&gt;
| _noClimb || 1 || Allow or disallow climbing on sloped surfaces. A value of 0 allows, 1 disallows.&lt;br /&gt;
|-&lt;br /&gt;
| _noShadows || 0 || Enables of disables shadows. A value of 0 allows, 1 disallows.&lt;br /&gt;
|-&lt;br /&gt;
| _noSmallPackets || 0 ||&lt;br /&gt;
|-&lt;br /&gt;
| _notRespondingTime || 5 || The amount of time (in seconds) the server should wait before reporting a tank as not responding.&lt;br /&gt;
|-&lt;br /&gt;
| _obeseFactor || 2.5 || Multiplier of normal size that determines how big a tank gets when carrying the Obese flag.&lt;br /&gt;
|-&lt;br /&gt;
| _pauseDropTime || 15 || The amount of time (in seconds) that a tank needs to be paused before its flag is dropped automatically.&lt;br /&gt;
|-&lt;br /&gt;
| _positionTolerance || 0.09 || &lt;br /&gt;
|-&lt;br /&gt;
| _pyrBase || 4 * _tankHeight || Base size of pyramids generated by the default random map generator.&lt;br /&gt;
|-&lt;br /&gt;
| _pyrHeight || 5 * _tankHeight || Height of pyramids generated by the default random map generator.&lt;br /&gt;
|-&lt;br /&gt;
| _radarLimit || _worldSize || The maximum area that the radar can see (when not rotated).&lt;br /&gt;
|-&lt;br /&gt;
| _rainBaseColor || none || When _rainType = rain, sets color of the bottom of raindrops.&lt;br /&gt;
|-&lt;br /&gt;
| _rainDensity || none || Determines how many drops of rain are in the space defined by _rainSpread.&lt;br /&gt;
|-&lt;br /&gt;
| _rainEndZ || none || The height above the ground where rain should stop falling.&lt;br /&gt;
|-&lt;br /&gt;
| _rainMaxPuddleTime || none || The amount of time (in seconds) a rain puddle should exist before disappearing.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleSpeed || none || The speed at which puddles should spread out.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleColor || none || Color of rain puddles. none means no puddle.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleTexture ||none || Texture of puddles. Best to leave default.&lt;br /&gt;
|-&lt;br /&gt;
| _rainRoofs || 1 || &#039;&#039;&#039;0&#039;&#039;&#039; rain falls through everything&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; rain hits buildings, but puddles are only on the ground&amp;lt;br&amp;gt;&#039;&#039;&#039;2&#039;&#039;&#039; rain hits buildings, and creates puddles on them&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpread || none || The radius from center of map where rain will fall.&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpeed || none || The speed at which the rain falls.&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpeedMod || none || Randomizes _rainSpeed by adding/subtracting up to this number from each raindrop&#039;s speed&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpins || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain does not spin as it falls&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain spins as it falls.&lt;br /&gt;
|-&lt;br /&gt;
| _rainStartZ || none || The height above ground that rain should fall from.&lt;br /&gt;
|-&lt;br /&gt;
| _rainTexture || none || The name of the texture in data directory.&amp;lt;br&amp;gt;&#039;&#039;Works with _rainTypes of frog, particle, bubble, snow, fatrain&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _rainTopColor ||none || When _rainType = rain, sets color of the top of raindrops.&lt;br /&gt;
|-&lt;br /&gt;
| _rainType || none || Adjusts all _rain* and _use* variables automatically&amp;lt;br&amp;gt;Valid Options : &#039;&#039;&#039;frog&#039;&#039;&#039;, &#039;&#039;&#039;particle&#039;&#039;&#039;, &#039;&#039;&#039;rain&#039;&#039;&#039;, &#039;&#039;&#039;bubble&#039;&#039;&#039;, &#039;&#039;&#039;snow&#039;&#039;&#039;, &#039;&#039;&#039;fatrain&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _rejoinTime || _explodeTime || The number of seconds before clients can rejoin a game, after they leave.&lt;br /&gt;
|-&lt;br /&gt;
| _reloadTime || _shotRange/_shotSpeed || Time between shot reloads, note that this can cut shot range short.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdVel || 1.5 || Multiplied by _shotSpeed to determine the speed of the rapid fire bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdRate || 2 || The reload time (in seconds) for rapid fire bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdLife || 1/_rFireAdRate || How long the rapid fire bullets last.&lt;br /&gt;
|-&lt;br /&gt;
| _shieldFlight || 2.7 || The amount of time (in seconds) that a shield flag floats in the air (after you drop it) before coming down again.&lt;br /&gt;
|-&lt;br /&gt;
| _shockAdLife || 0.2 || The amount of time (in seconds) that a shockwave lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _shockInRadius || _tankLength || The starting radius of the shockwave. Negative values will make the shockwave shrink and expand.&lt;br /&gt;
|-&lt;br /&gt;
| _shockOutRadius || 60 || The outer radius of the shockwave. If greater than _shockInRadius, the shockwave expands outward. If less than _shockInRadius, the shockwave starts big and shrinks inward.&lt;br /&gt;
|-&lt;br /&gt;
| _shotRadius || 0.5 || For collision detection.&lt;br /&gt;
|-&lt;br /&gt;
| _shotRange || 350 || Range of shots, note that they can be cut short by _reloadTime.&lt;br /&gt;
|-&lt;br /&gt;
| _shotSpeed || 100 || Speed of shots.&lt;br /&gt;
|-&lt;br /&gt;
| _shotTailLength || 4 || &lt;br /&gt;
|-&lt;br /&gt;
| _shotsKeepVerticalVelocity || 0 || If &#039;&#039;&#039;0&#039;&#039;&#039;, shots always move straight in relation to the ground. If &#039;&#039;&#039;1&#039;&#039;&#039;, shots are affected vertically by the tank&#039;s speed, and can fly up and down. Lasers are also affected. &lt;br /&gt;
|-&lt;br /&gt;
| _skyColor || white || Sets the sky to a specific color.&lt;br /&gt;
|-&lt;br /&gt;
| _srRadiusMult || 2 || Radius of steamroller effect.&lt;br /&gt;
|-&lt;br /&gt;
| _squishFactor || 1 || How much tanks squish when landing.&lt;br /&gt;
|-&lt;br /&gt;
| _squishTime || 1 || How much squishy time you get after falling to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| _syncTime || 1 || Whether or not to sync the players time with the servers&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| _syncLocation || 0 || Whether or not to sync the location time with the servers&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| _tankAngVel || 0.785398 || How fast the tank can turn.&lt;br /&gt;
|-&lt;br /&gt;
| _tankExplosionSize || 3.5 * _tankLength || How large the tank&#039;s explosion is.&lt;br /&gt;
|-&lt;br /&gt;
| _tankHeight || 2.05 || The height of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankLength || 6 || The length of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankRadius || 0.72 * _tankLength || The radius of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankSpeed || 25 || The speed of the tank&lt;br /&gt;
|-&lt;br /&gt;
| _tankWidth || 2.8 || The width of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _targetingAngle || 0.3|| Something to do with GM... &lt;br /&gt;
|-&lt;br /&gt;
| _teleportBreadth || 4.48|| Random maps?&lt;br /&gt;
|-&lt;br /&gt;
| _teleportHeight || 10.08 || See _teleportBreadth.&lt;br /&gt;
|-&lt;br /&gt;
| _teleportTime || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
| _teleportWidth || 1.12 || See _teleportHeight.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdLife || 0.05 || The amount of time (in seconds) that a thief shot lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdRate || 12 || The amount of time (in seconds) that the Thief &amp;quot;shot&amp;quot; reloads.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdShotVel || 8 || The speed of thief.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefTinyFactor || 0.5|| Multiplied by the normal tank size to shrink a tank carrying the thief flag.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefVelAd || 1.67 || Multiplied by _tankSpeed to determine how fast tanks holding the thief goes.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefDropTime || reloadTime * 0.5 ||The amount of time you must wait to fire a shot after stealing a flag.&lt;br /&gt;
|-&lt;br /&gt;
| _tinyFactor || 0.4 || Multiplied by the normal tank size to shrink a tank carrying the tiny flag.&lt;br /&gt;
|-&lt;br /&gt;
| _trackFade || 3 || The amount of time (in seconds) before track marks fade.&lt;br /&gt;
|-&lt;br /&gt;
| _updateThrottleRate || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
| _useLineRain || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain is not a vertical line&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain is vertical lines, smoothly shaded from _rainTopColor to _rainBaseColor&lt;br /&gt;
|-&lt;br /&gt;
| _useRainPuddles || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain does not create puddles&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain creates puddles&lt;br /&gt;
|-&lt;br /&gt;
| _useRainBillboards || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain is lines or polygons&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain is billboards, textured and look the same from all angles&lt;br /&gt;
|-&lt;br /&gt;
| _velocityAd || 1.5 || Multiplies _tankSpeed to determine the speed of a tank carrying the high speed (V) flag&lt;br /&gt;
|-&lt;br /&gt;
| _wallHeight || 3 * _tankHeight|| The outer wall height.&lt;br /&gt;
|-&lt;br /&gt;
| _weapons || 1 || Used with world weapons, &#039;&#039;&#039;0&#039;&#039;&#039; world weapons will not fire&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; world weapons will fire&lt;br /&gt;
|-&lt;br /&gt;
| _wideAngleAng || 1.745329 || The viewing angle when a tank has the Wide Angle bad flag.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsGravity || _gravity || How much gravity affects tanks with the WG flag.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsJumpCount || 1 || The number of jumps a tank with the wings flag can do before returning to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsJumpVelocity || _jumpVelocity || The initial velocity of a jump with wings, in [[world units]]/sec.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsSlideTime || 0 || When in the air, the tanks will slide for this long.&lt;br /&gt;
|-&lt;br /&gt;
| _worldSize || 400 || The size of the world. This should not be set during play, as the walls will not move for currently connected players. Setting this larger will allow tanks to go outside the map, and setting it smaller will cause tanks to be kicked for leaving the world boundaries.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=3278</id>
		<title>Server Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=3278"/>
		<updated>2007-09-18T22:49:49Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: world units, not meters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BZFlag Server (BZFS) allows administrators to configure a large number of gameplay and configuration settings from within the client.  The /set command in-game allows users with the appropriate permissions to change these values.  These may also be known as BZDB variables and &amp;quot;/set variables&amp;quot; depending on who you speak with.&lt;br /&gt;
&lt;br /&gt;
{{InfoBox|Note|Some of these, such as _worldSize, may require a rejoin before they take effect.  It is recommended to apply these in the map file (if they apply specifically to the map, such as _worldSize and _tankSpeed), through the server configuration file, or from the command line.  This ensures that all players that join will have the proper gameplay experience.}}&lt;br /&gt;
{|{{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Default&#039;&#039;&#039;&lt;br /&gt;
|{{Hl3}}|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _agilityAdVel || 2.25 || Multiplies _tankSpeed for tanks holding Agility flag for a specified amount of time (_agilityTimeWindow)&lt;br /&gt;
|-&lt;br /&gt;
| _agilityTimeWindow || 1 || The amount of time (in seconds)that the tank will have the speed specified by _agilityAdVel&lt;br /&gt;
|-&lt;br /&gt;
| _agilityVelDelta || 0.3 || &lt;br /&gt;
|-&lt;br /&gt;
| _angleTolerance || 0.05 || If a tank has turned more than it was expected to, plus the tolerance, a new update is sent so the other clients are aware of the change in heading&lt;br /&gt;
|-&lt;br /&gt;
| _angularAd || 1.5 || Multiplies _tankAngVel to determine how fast tanks can turn while holding the Quick Turn flag&lt;br /&gt;
|-&lt;br /&gt;
| _avenueSize || 2*_boxBase || Space to leave between objects in random maps?&lt;br /&gt;
|-&lt;br /&gt;
| _baseSize || 60 || Width and Depth (bases have constant height) of the square bases for CTF games&lt;br /&gt;
|-&lt;br /&gt;
| _boxBase || 30 || Width and Depth of boxes on a random map?&lt;br /&gt;
|-&lt;br /&gt;
| _boxHeight ||6*_muzzleHeight || Height of boxes on a random map?&lt;br /&gt;
|-&lt;br /&gt;
| _burrowDepth || 1.32 || Determines how far down tanks drop when they have the Burrow Flag. Making this much lower makes it below the floor, and impossible to kill tank!&lt;br /&gt;
|-&lt;br /&gt;
| _burrowSpeedAd || .8 || Multiplied by _tankSpeed to determine how fast tanks holding the Burrow Flag move.&lt;br /&gt;
|-&lt;br /&gt;
| _burrowAngularAd || .55 || Multiplied by _tankAngVel to determine how fast tanks can turn while holding the Burrow flag.&lt;br /&gt;
|-&lt;br /&gt;
| _coldetDepth || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
| _coldetElements || 4 || &lt;br /&gt;
|-&lt;br /&gt;
| _countdownResumeTime || 5 || This enforces a delay when resuming a paused countdown. If the argument is lower or equal to 0 then resuming is instantly, otherwise it is delayed according to the value (in seconds). &#039;&#039;Available in 2.1 and later&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _cullDepth || 6 ||&lt;br /&gt;
|-&lt;br /&gt;
| _cullDist || fog || Far plane culling distance (&#039;fog&#039; uses the fog parameters).&lt;br /&gt;
|-&lt;br /&gt;
| _cullElements || 16 || &lt;br /&gt;
|-&lt;br /&gt;
| _cullOccluders || 0 ||&lt;br /&gt;
|-&lt;br /&gt;
| _disableBots || none || A value of 1 in this variable does not allow autopilot or bots on the server, equivalent to the old -prohibitbots command line option. &lt;br /&gt;
|-&lt;br /&gt;
| _drawCelestial || 1 || Draw the stars, sun, and moon.&lt;br /&gt;
|-&lt;br /&gt;
| _drawClouds || 1 || Draw the clouds.&lt;br /&gt;
|-&lt;br /&gt;
| _drawGround || 1 || Draw the ground plane.&lt;br /&gt;
|-&lt;br /&gt;
| _drawMountains || 1 || Draw the mountains.&lt;br /&gt;
|-&lt;br /&gt;
| _drawSky || 1 || Draw the sky pyramid.&lt;br /&gt;
|-&lt;br /&gt;
| _explodeTime || 5 || After a tank is killed, this is how long it takes to blow up, and then &amp;quot;respawn&amp;quot;. Larger values translates into longer explosions and more client processor time. Note that an explosion is invisible if you are inside it, so large values may make it invisible up close, and extremely large values may make explosions entirely invisible.&lt;br /&gt;
|-&lt;br /&gt;
| _flagAltitude || 11 || The height that the flag flies up dropped and the height that a flag spawns at.&lt;br /&gt;
|-&lt;br /&gt;
| _flagEffectTime || 0.64 || The amount of time the flag effect lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _flagHeight || 10 || The height of the flag (not its pole).&lt;br /&gt;
|-&lt;br /&gt;
| _flagPoleWidth || 0.025 || The diameter of the flag pole.&lt;br /&gt;
|-&lt;br /&gt;
| _flagPoleSize || 0.8 || The height of the flag pole.&lt;br /&gt;
|-&lt;br /&gt;
| _flagRadius || 2.5 || Determines how close a tank must be to a flag to pick it up.&lt;br /&gt;
|-&lt;br /&gt;
| _fogMode || none || Valid values: linear, exp, or exp2.&lt;br /&gt;
|-&lt;br /&gt;
| _fogDensity || 0.001 || Used for exp and exp2 fog modes.&lt;br /&gt;
|-&lt;br /&gt;
| _fogStart || 0.5*_worldSize || Used for linear fog mode, the distance where fog begins to occlude vision.&lt;br /&gt;
|-&lt;br /&gt;
| _fogEnd || _worldSize || Used for linear fog mode, the distance where the fog occludes everything.&lt;br /&gt;
|-&lt;br /&gt;
| _fogColor || &amp;quot;0.25 0.25 0.25&amp;quot; || RGB or black, red, blue (alpha is ignored).&lt;br /&gt;
|-&lt;br /&gt;
| _friction || 0  || Zero is normal friction, the closer to 0 the harder it is to start and stop, and the higher the number the easier it is to start and stop.&lt;br /&gt;
|-&lt;br /&gt;
| _gmActivationTime || 0.5  || The amount of time (in seconds) it takes for a Guided Missile to become active after it is fired. Any contact under this time will not result in detonation (setting it to low could cause its owner to run into its own GM and be blown up!&lt;br /&gt;
|-&lt;br /&gt;
| _gmAdLife || 0.95 || Multiplied by _shotRange to determine the distance guided missiles will go.&lt;br /&gt;
|-&lt;br /&gt;
| _gmTurnAngle || 0.628319 || The angle at which a Guided Missile will turn to follow its target. (Measured in radians)&lt;br /&gt;
|-&lt;br /&gt;
| _gravity || 9.8 ||  The rate at which a tank will fall (or be kept from jumping) Measured in [[World units]]/Seconds^2. Setting this to a zero or positive value will result in tanks being unable to stay down and will float away.&lt;br /&gt;
|-&lt;br /&gt;
| _handicapScoreDiff || 50 || How much of a score difference (from the leader?) there must be for a player to get a handicap&lt;br /&gt;
|-&lt;br /&gt;
| _handicapVelAd || 2 || Player with handicap will receive this much more (_tankSpeed + _handicapVelAd) velocity than the normal _tankSpeed value.&amp;lt;br&amp;gt;&#039;&#039;**Note: These could be factors rather than additions&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _handicapAngAd || 1.5 || Player with handicap will receive this much more (_angularAd + _handicapAngAd) turning ability than the normal _angularAd. &amp;lt;br&amp;gt;&#039;&#039;**Note: These could be factors rather than additions&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _handicapShotAd || 1.75 || &#039;&#039;**Note: These could be factors rather than additions&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _identifyRange || 50 || If a flag is this distance or closer to a tank carrying the Identify (ID) flag, it will display the closest flag&#039;s type.&lt;br /&gt;
|-&lt;br /&gt;
| _jumpVelocity || 19 || The speed a tank moves vertically while jumping.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdVel || 1000 || The speed at which a laser travels.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdRate || 0.5 || Multiplied by _rFireAdRate to determine the firing rate for a laser.&lt;br /&gt;
|-&lt;br /&gt;
| _laserAdLife || 0.1 || The amount of time (in seconds) that a laser remains after being fired.&lt;br /&gt;
|-&lt;br /&gt;
| _latitude || 37.5 ||  The latitude at which the world exists. This affects the timezone.&lt;br /&gt;
|-&lt;br /&gt;
| _lgGravity|| 12.7 ||  Modifies the gravity for owners of the Low Gravity flag. Similar to the _gravity variable. &#039;&#039;Available starting in version 2.1&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _lockOnAngle || 0.15 || Angle (in radians) in relation to tanks heading (positive or negative) that will allow a Guided Missile to lock onto a target.&lt;br /&gt;
|-&lt;br /&gt;
| _longitude || 122 || The longitude at which the world exists. This affects the timezone.&lt;br /&gt;
|-&lt;br /&gt;
| _lRAdRate ||0.5 ||&lt;br /&gt;
|-&lt;br /&gt;
| _maxBumpHeight || 0.33 || Any difference between the surface a tank is on and the top surface of an object the tank runs into that is less than this value will allow the tank to simply move up to the object rather than being stopped by it.&lt;br /&gt;
|-&lt;br /&gt;
| _maxFlagGrabs || 4.0 || How many times a flag can be dropped before it respawns. Note that on server startup, flags will get a random # of grabs already assigned to them, and flags will always respawn no matter how many flag grabs they have left if it is are over an &#039;unsafe&#039; zone.&lt;br /&gt;
|-&lt;br /&gt;
| _maxLOD || 32767 || The max level of detail to allow.&lt;br /&gt;
|-&lt;br /&gt;
| _mirror || none || Options: &#039;&#039;&#039;white&#039;&#039;&#039;, &#039;&#039;&#039;black&#039;&#039;&#039;, &#039;&#039;&#039;red&#039;&#039;&#039;, &#039;&#039;&#039;blue&#039;&#039;&#039;, &#039;&#039;&#039;pink&#039;&#039;&#039;, &#039;&#039;&#039;purple&#039;&#039;&#039;, &#039;&#039;&#039;orange&#039;&#039;&#039;, etc... (&amp;quot;black 0.75&amp;quot; is a good setting, some invalid options such as &#039;&#039;&#039;mirror&#039;&#039;&#039; will give a mirror look)&lt;br /&gt;
|-&lt;br /&gt;
| _momentumLinAcc || 1 || Momentum flag&#039;s effect on going forwards and backwards.&lt;br /&gt;
|-&lt;br /&gt;
| _momentumAngAcc || 1 || Momentum flag&#039;s effect on turning.&lt;br /&gt;
|-&lt;br /&gt;
| _momentumFriction || 0 || Friction (same as _friction) when holding the Momentum flag.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdVel || 1/_mGunAdRate || The speed of the machine gun&#039;s bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdRate || 10 || The amount of time required for the machine gun to reload.&lt;br /&gt;
|-&lt;br /&gt;
| _mGunAdLife || 1.5 || Multiplied by _shotRange to determine the distance machine gun bullets go.&lt;br /&gt;
|-&lt;br /&gt;
| _muzzleFront || _tankRadius + 0.1 || Location of muzzle of tank (affects bullets and player camera location).&lt;br /&gt;
|-&lt;br /&gt;
| _muzzleHeight || 1.57 || See _muzzleFront.&lt;br /&gt;
|-&lt;br /&gt;
| _noClimb || 1 || Allow or disallow climbing on sloped surfaces. A value of 0 allows, 1 disallows.&lt;br /&gt;
|-&lt;br /&gt;
| _noShadows || 0 || Enables of disables shadows. A value of 0 allows, 1 disallows.&lt;br /&gt;
|-&lt;br /&gt;
| _noSmallPackets || 0 ||&lt;br /&gt;
|-&lt;br /&gt;
| _notRespondingTime || 5 || The amount of time (in seconds) the server should wait before reporting a tank as not responding.&lt;br /&gt;
|-&lt;br /&gt;
| _obeseFactor || 2.5 || Multiplier of normal size that determines how big a tank gets when carrying the Obese flag.&lt;br /&gt;
|-&lt;br /&gt;
| _pauseDropTime || 15 || The amount of time (in seconds) that a tank needs to be paused before its flag is dropped automatically.&lt;br /&gt;
|-&lt;br /&gt;
| _positionTolerance || 0.09 || &lt;br /&gt;
|-&lt;br /&gt;
| _pyrBase || 4 * _tankHeight || Has to do with random generation of maps?&lt;br /&gt;
|-&lt;br /&gt;
| _pyrHeight ||5*_tankHeight || See _pyrBase&lt;br /&gt;
|-&lt;br /&gt;
| _radarLimit || _worldSize || The maximum area that the radar can see (when not rotated).&lt;br /&gt;
|-&lt;br /&gt;
| _rainBaseColor || none || When _rainType = rain, sets color of the bottom of raindrops.&lt;br /&gt;
|-&lt;br /&gt;
| _rainDensity || none || Determines how many drops of rain are in the space defined by _rainSpread.&lt;br /&gt;
|-&lt;br /&gt;
| _rainEndZ || none || The height above the ground where rain should stop falling.&lt;br /&gt;
|-&lt;br /&gt;
| _rainMaxPuddleTime || none || The amount of time (in seconds) a rain puddle should exist before disappearing.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleSpeed || none || The speed at which puddles should spread out.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleColor || none || Color of rain puddles. none means no puddle.&lt;br /&gt;
|-&lt;br /&gt;
| _rainPuddleTexture ||none || Texture of puddles. Best to leave default.&lt;br /&gt;
|-&lt;br /&gt;
| _rainRoofs || 1 || &#039;&#039;&#039;0&#039;&#039;&#039; rain falls through everything&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; rain hits buildings, but puddles are only on the ground&amp;lt;br&amp;gt;&#039;&#039;&#039;2&#039;&#039;&#039; rain hits buildings, and creates puddles on them&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpread || none || The radius from center of map where rain will fall.&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpeed || none || The speed at which the rain falls.&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpeedMod || none || Randomizes _rainSpeed by adding/subtracting up to this number from each raindrop&#039;s speed&lt;br /&gt;
|-&lt;br /&gt;
| _rainSpins || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain does not spin as it falls&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain spins as it falls.&lt;br /&gt;
|-&lt;br /&gt;
| _rainStartZ || none || The height above ground that rain should fall from.&lt;br /&gt;
|-&lt;br /&gt;
| _rainTexture || none || The name of the texture in data directory.&amp;lt;br&amp;gt;&#039;&#039;Works with _rainTypes of frog, particle, bubble, snow, fatrain&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _rainTopColor ||none || When _rainType = rain, sets color of the top of raindrops.&lt;br /&gt;
|-&lt;br /&gt;
| _rainType || none || Adjusts all _rain* and _use* variables automatically&amp;lt;br&amp;gt;Valid Options : &#039;&#039;&#039;frog&#039;&#039;&#039;, &#039;&#039;&#039;particle&#039;&#039;&#039;, &#039;&#039;&#039;rain&#039;&#039;&#039;, &#039;&#039;&#039;bubble&#039;&#039;&#039;, &#039;&#039;&#039;snow&#039;&#039;&#039;, &#039;&#039;&#039;fatrain&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| _rejoinTime || _explodeTime || The number of seconds before clients can rejoin a game, after they leave.&lt;br /&gt;
|-&lt;br /&gt;
| _reloadTime || _shotRange/_shotSpeed || Time between shot reloads, note that this can cut shot range short.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdVel || 1.5 || Multiplied by _shotSpeed to determine the speed of the rapid fire bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdRate || 2 || The reload time (in seconds) for rapid fire bullets.&lt;br /&gt;
|-&lt;br /&gt;
| _rFireAdLife || 1/_rFireAdRate || How long the rapid fire bullets last.&lt;br /&gt;
|-&lt;br /&gt;
| _shieldFlight || 2.7 || The amount of time (in seconds) that a shield flag floats in the air (after you drop it) before coming down again.&lt;br /&gt;
|-&lt;br /&gt;
| _shockAdLife || 0.2 || The amount of time (in seconds) that a shockwave lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _shockInRadius || _tankLength || The starting radius of the shockwave. Negative values will make the shockwave shrink and expand.&lt;br /&gt;
|-&lt;br /&gt;
| _shockOutRadius || 60 || The outer radius of the shockwave. If greater than _shockInRadius, the shockwave expands outward. If less than _shockInRadius, the shockwave starts big and shrinks inward.&lt;br /&gt;
|-&lt;br /&gt;
| _shotRadius || 0.5 || For collision detection.&lt;br /&gt;
|-&lt;br /&gt;
| _shotRange || 350 || Range of shots, note that they can be cut short by _reloadTime.&lt;br /&gt;
|-&lt;br /&gt;
| _shotSpeed || 100 || Speed of shots.&lt;br /&gt;
|-&lt;br /&gt;
| _shotTailLength || 4 || &lt;br /&gt;
|-&lt;br /&gt;
| _shotsKeepVerticalVelocity || 0 || If &#039;&#039;&#039;0&#039;&#039;&#039;, shots always move straight in relation to the ground. If &#039;&#039;&#039;1&#039;&#039;&#039;, shots are affected vertically by the tank&#039;s speed, and can fly up and down. Lasers are also affected. &lt;br /&gt;
|-&lt;br /&gt;
| _skyColor || white || Sets the sky to a specific color.&lt;br /&gt;
|-&lt;br /&gt;
| _srRadiusMult || 2 || Radius of steamroller effect.&lt;br /&gt;
|-&lt;br /&gt;
| _squishFactor || 1 || How much tanks squish when landing.&lt;br /&gt;
|-&lt;br /&gt;
| _squishTime || 1 || How much squishy time you get after falling to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| _syncTime || 1 || Whether or not to sync the players time with the servers&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| _syncLocation || 0 || Whether or not to sync the location time with the servers&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| _tankAngVel || 0.785398 || How fast the tank can turn.&lt;br /&gt;
|-&lt;br /&gt;
| _tankExplosionSize || 3.5 * _tankLength || How large the tank&#039;s explosion is.&lt;br /&gt;
|-&lt;br /&gt;
| _tankHeight || 2.05 || The height of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankLength || 6 || The length of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankRadius || 0.72 * _tankLength || The radius of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _tankSpeed || 25 || The speed of the tank&lt;br /&gt;
|-&lt;br /&gt;
| _tankWidth || 2.8 || The width of the tank.&lt;br /&gt;
|-&lt;br /&gt;
| _targetingAngle || 0.3|| Something to do with GM... &lt;br /&gt;
|-&lt;br /&gt;
| _teleportBreadth || 4.48|| Random maps?&lt;br /&gt;
|-&lt;br /&gt;
| _teleportHeight || 10.08 || See _teleportBreadth.&lt;br /&gt;
|-&lt;br /&gt;
| _teleportTime || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
| _teleportWidth || 1.12 || See _teleportHeight.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdLife || 0.05 || The amount of time (in seconds) that a thief shot lasts.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdRate || 12 || The amount of time (in seconds) that the Thief &amp;quot;shot&amp;quot; reloads.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefAdShotVel || 8 || The speed of thief.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefTinyFactor || 0.5|| Multiplied by the normal tank size to shrink a tank carrying the thief flag.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefVelAd || 1.67 || Multiplied by _tankSpeed to determine how fast tanks holding the thief goes.&lt;br /&gt;
|-&lt;br /&gt;
| _thiefDropTime || reloadTime * 0.5 ||The amount of time you must wait to fire a shot after stealing a flag.&lt;br /&gt;
|-&lt;br /&gt;
| _tinyFactor || 0.4 || Multiplied by the normal tank size to shrink a tank carrying the tiny flag.&lt;br /&gt;
|-&lt;br /&gt;
| _trackFade || 3 || The amount of time (in seconds) before track marks fade.&lt;br /&gt;
|-&lt;br /&gt;
| _updateThrottleRate || 30 ||&lt;br /&gt;
|-&lt;br /&gt;
| _useLineRain || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain is not a vertical line&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain is vertical lines, smoothly shaded from _rainTopColor to _rainBaseColor&lt;br /&gt;
|-&lt;br /&gt;
| _useRainPuddles || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain does not create puddles&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain creates puddles&lt;br /&gt;
|-&lt;br /&gt;
| _useRainBillboards || none || &#039;&#039;&#039;0&#039;&#039;&#039; Rain is lines or polygons&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; Rain is billboards, textured and look the same from all angles&lt;br /&gt;
|-&lt;br /&gt;
| _velocityAd || 1.5 || Multiplies _tankSpeed to determine the speed of a tank carrying the high speed (V) flag&lt;br /&gt;
|-&lt;br /&gt;
| _wallHeight || 3 * _tankHeight|| The outer wall height.&lt;br /&gt;
|-&lt;br /&gt;
| _weapons || 1 || Used with world weapons, &#039;&#039;&#039;0&#039;&#039;&#039; world weapons will not fire&amp;lt;br&amp;gt;&#039;&#039;&#039;1&#039;&#039;&#039; world weapons will fire&lt;br /&gt;
|-&lt;br /&gt;
| _wideAngleAng || 1.745329 || The viewing angle when a tank has the Wide Angle bad flag.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsGravity || _gravity || How much gravity affects tanks with the WG flag.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsJumpCount || 1 || The number of jumps a tank with the wings flag can do before returning to the ground.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsJumpVelocity || _jumpVelocity || The initial velocity of a jump with wings, in [[world units]]/sec.&lt;br /&gt;
|-&lt;br /&gt;
| _wingsSlideTime || 0 || When in the air, the tanks will slide for this long.&lt;br /&gt;
|-&lt;br /&gt;
| _worldSize || 400 || The size of the world, this should not be set during play, as the walls will not move. Setting this larger will allow tanks to go outside the map, and setting it smaller will cause tanks to be kicked for leaving the world boundaries.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=World_units&amp;diff=3277</id>
		<title>World units</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=World_units&amp;diff=3277"/>
		<updated>2007-09-18T22:46:01Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: correct jump height and other numbers.  include formula for calculating jump heights.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A world unit is the basic unit of measure when dealing with BZFlag. World units have no real-world counterpart, as they are a purely virtual concept, but they can be though of to be equivalent to about 1 meter in length if you assume a roughly real world sized [[tank]].&lt;br /&gt;
&lt;br /&gt;
Many [[Server Variables]] are specified in terms of world units or world units per second.&lt;br /&gt;
&lt;br /&gt;
== Some useful measures at default settings ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;60%&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|width=&amp;quot;60%&amp;quot;|Jump height limit (next to impossible)&lt;br /&gt;
|width=&amp;quot;20%&amp;quot;|See below&lt;br /&gt;
|width=&amp;quot;10%&amp;quot;|18.42&lt;br /&gt;
|- &lt;br /&gt;
|Doable jump height&lt;br /&gt;
|See below&lt;br /&gt;
|17.0&lt;br /&gt;
|-&lt;br /&gt;
|Tank length&lt;br /&gt;
|_tankLength&lt;br /&gt;
|8.04&lt;br /&gt;
|-&lt;br /&gt;
|Tank width&lt;br /&gt;
|_tankWidth&lt;br /&gt;
|2.8&lt;br /&gt;
|-&lt;br /&gt;
|Tank height&lt;br /&gt;
|_tankHeight&lt;br /&gt;
|2.05&lt;br /&gt;
|-&lt;br /&gt;
|Barrel height&lt;br /&gt;
|_muzzleHeight&lt;br /&gt;
|1.57&lt;br /&gt;
|-&lt;br /&gt;
|Drivable bump height&lt;br /&gt;
|_bumpHeight&lt;br /&gt;
|0.33&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Calculating jump height ==&lt;br /&gt;
Jump height is determined by the gravity and jump velocity settings on the server (see [[Server Variables]] for details).  Note that the jump velocity and gravity may be altered by flags including [[Low Gravity]] and [[Wings]].&lt;br /&gt;
&lt;br /&gt;
:Max jump height = -(_jumpVelocity)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; / (2 * (_gravity))&lt;br /&gt;
&lt;br /&gt;
A typical BZFlag player can reliably jump a bit more than 90% of the maximum jump height.&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Making]]&lt;br /&gt;
[[Category:Concepts]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3275</id>
		<title>Tank</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Tank&amp;diff=3275"/>
		<updated>2007-09-18T21:27:05Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The tank is the primary avatar of the player in BZFlag.[[image:Blue_tank_small.png|right]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The BZFlag tank model has been in the game since it&#039;s inception, and been an integral part of game play.  The tank has received few graphical upgrades over the years, and looks today much the same as it has since the first version of the game. &lt;br /&gt;
&lt;br /&gt;
The tank model is currently [http://en.wikipedia.org/wiki/Hardcoded hard coded] as a series of [http://en.wikipedia.org/wiki/OpenGL OpenGL] instruction in the [[BZFlag Source]] code. The model may not be changed externally with out modifications to the game client itself.&lt;br /&gt;
&lt;br /&gt;
The tank model has been exported from the code, and can be found as a wavefront obj file at http://my.bzflag.org/resources/models/Tank.obj &lt;br /&gt;
This can be imported into most 3d modeling packages.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
The tank model has 7 different colors, or &amp;quot;skins&amp;quot;, that it can appear in. The color of the tank results from the team in which the tank is playing, or some other game logic (such as Hunters and Rabbits in [[Rabbit Hunt]]) &lt;br /&gt;
The 7 tank colors are as follows:&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
image:Red_tank.png‎|Red Team Tank&lt;br /&gt;
image:Blue_tank.png‎|Blue Team Tank&lt;br /&gt;
image:Green_tank.png‎|Green Team Tank&lt;br /&gt;
image:Purple_tank.png‎|Purple Team Tank&lt;br /&gt;
image:Black_tank.png‎|Rogue (black) Team Tank&lt;br /&gt;
image:Orange_tank.png‎|Hunter Team Tank&lt;br /&gt;
image:White_tank.png‎|Rabbit Team Tank&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on an individual client&#039;s graphical settings, the tank may have animated treads and spinning wheels. The tanks shown are the most basic version of the tank.&lt;br /&gt;
&lt;br /&gt;
==Dimensions==&lt;br /&gt;
[[image:Tank_sizes.png|frame|right|Tank dimensions in [[World units|world units]]]]&lt;br /&gt;
The Tank is 8.04 [[World units|world units]] long, 2.8 [[World units|units]] wide, and 2.08 [[World units|units]] tall as shown in the image. The turret is 1.6 [[World units|world units]] from the ground, meaning that a tank can shoot over a box 1.5 [[World units|units]] high. If one assumes that one [[World units|world unit]] is equivalent to one real world meter, then the tank would be 26 feet 4.5 inches long, 9 feet 2 inches wide, and 6 feet 10 inches tall.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
The tank model was originally created by [[Tamar Cohen]] for the first versions of BZFlag and has since been extended and modified by the BZFlag developers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;br /&gt;
[[Category:Map Making]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Sean_Morrison&amp;diff=3271</id>
		<title>Sean Morrison</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Sean_Morrison&amp;diff=3271"/>
		<updated>2007-09-17T22:41:50Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: +cat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sean Morrison aka, Brlcad or Learner is a developer and [[Project_Administrators|system administrator]] for the project.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_2.0.10&amp;diff=3269</id>
		<title>BZFlag 2.0.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_2.0.10&amp;diff=3269"/>
		<updated>2007-09-17T21:44:47Z</updated>

		<summary type="html">&lt;p&gt;DTRemenak: /* Proposed Names */ well, I like this one (credit to bryjen [and MP] though)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag version 2.0.10 is a future version of the BZFlag game that is hoped to be released in October of 2007. It is primarily intended to fix a number of small issues that have been found in 2.0.8 and provide good binary packages for the various Linux distributions.&lt;br /&gt;
&lt;br /&gt;
==Tag And Code Freeze==&lt;br /&gt;
On September 17th at 14:00 PST, the code for v2_0branch was frozen for the build of 2.0.10RC1. Binary builds for this version were posted on the BZFlag froums at http://my.bzflag.org/bb/viewtopic.php?t=11480&lt;br /&gt;
&lt;br /&gt;
==Proposed Names==&lt;br /&gt;
The proposed names for the release are as follows&lt;br /&gt;
* &amp;quot;Never Say Never&amp;quot;&lt;br /&gt;
* &amp;quot;Sasquatch&amp;quot;&lt;br /&gt;
* &amp;quot;He Says He&#039;s Not Dead&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Backports implemented from 2.1==&lt;br /&gt;
The following lists the backported features pulled from 2.1 into 2.0.10RC1&lt;br /&gt;
&lt;br /&gt;
* Implemented Confine Mouse for Windows platforms - Daniel Remenak&lt;br /&gt;
* Implemented fullscreen-&amp;gt;windowed mode toggle on Windows - Daniel Remenak&lt;br /&gt;
* Jitter Kick - Thomas Stauer&lt;br /&gt;
* Fixed cross-platform and 64-bit network protocol bug - Andrew McNabb&lt;br /&gt;
* Packetloss Kick - Thomas Stauer&lt;br /&gt;
* First map no longer ignored in Start Server menu - Ravu al Hemio&lt;br /&gt;
* Updated zlib to version 1.2.3 - Sean Morrison&lt;br /&gt;
* Added optional delay before the countdown gets resumed - Thomas Stauer&lt;br /&gt;
&lt;br /&gt;
==Current Change Log==&lt;br /&gt;
* Add -adminlagannounce and -lagannounce - Thomas Stauer&lt;br /&gt;
* Check for talk permission for part/quit messages  - uso&lt;br /&gt;
* First map no longer ignored in Start Server menu - Ravu al Hemio&lt;br /&gt;
* Implemented Confine Mouse for Windows platforms - Daniel Remenak&lt;br /&gt;
* Implemented fullscreen-&amp;gt;windowed mode toggle on Windows - Daniel Remenak&lt;br /&gt;
* Add the rabidRabbit plugin - LouMan&lt;br /&gt;
* Add packet loss kick and related admin commands - Thomas Stauer&lt;br /&gt;
* Reclaim lost memory from sound sample - Tupone Alfredo&lt;br /&gt;
* Fixed bashism on debian rules - Ryan Kavanagh&lt;br /&gt;
* Add the rabbitTimer plugin - L4m3r&lt;br /&gt;
* Fix some segfaults when re-joining - Tupone Alfredo&lt;br /&gt;
* Compliance with gcc-4.2 - Tupone Alfredo&lt;br /&gt;
* Fix the build system to be more distro friendly - Tupone Alfredo&lt;br /&gt;
* Plugins get flag resets/spawns/grab/drop/transfer - Jeff Myers, Bernt Hansen&lt;br /&gt;
* Fix compiler problem with gcc-4 - Tupone Alfredo&lt;br /&gt;
* Fixed high fps problem - Frank Thilo&lt;br /&gt;
* Added more info for observers - Jeff Myers, Frank Thilo&lt;br /&gt;
* torBlock plugin added - Jeff Myers, blast007&lt;br /&gt;
* Use mesh position and height for radar - Thomas Stauer&lt;br /&gt;
* Add the regFlag plugin - Bernt Hansen&lt;br /&gt;
* Fix memory leak from cURL - blast007&lt;br /&gt;
* Add the Phoenix plugin - Jeff Myers&lt;br /&gt;
* Add favorite server - Frank Thilo&lt;br /&gt;
* SDL sound rate fix - Alfredo Tupone&lt;br /&gt;
* add bzID and server status to logDetail plugin - Bernt Hansen&lt;br /&gt;
* Add -tkannounce to announce tk on admin channel - Bernt Hansen&lt;br /&gt;
* Add the serverControl plugin - Bernt Hansen&lt;br /&gt;
* Add keepaway plugin - LouMan&lt;br /&gt;
* API calls to reset bzdb - Jeff Myers&lt;br /&gt;
* API call to get the player pause state. - Jeff Myers&lt;br /&gt;
* API calls to reload bans, and other files - Jeff Myers&lt;br /&gt;
* API event for shot ends - Jeff Myers&lt;br /&gt;
* API command to move a flag - Jeff Myers&lt;br /&gt;
* add API exposure for lag, jitter, and packetloss - Jeff Myers&lt;br /&gt;
* Add koth plugin - LouMan&lt;br /&gt;
* Add timedctf plugin - LouMan&lt;br /&gt;
* Add teamflagreset plugin - LouMan&lt;br /&gt;
* Add wwzones plugin - LouMan&lt;br /&gt;
* flagStay plugin added - Jeff Myers&lt;br /&gt;
* Give everyone notice of pause messages - Jeff Myers&lt;br /&gt;
* Fix for /silence command - Skeeve&lt;br /&gt;
* Fix mousebox edge positioning - Mark Thomas&lt;br /&gt;
* Fixed on spanish localization - xukosky@yahoo.es&lt;br /&gt;
* Instructions to fix sound on ALSA added - Tupone Alfredo&lt;br /&gt;
* Change filename format for easier location of matches - uso&lt;br /&gt;
* Adding jitter kick and related admin commands - Thomas Stauer&lt;br /&gt;
* Add optional delay before the countdown gets resumed - Thomas Stauer&lt;br /&gt;
* Global banlist reload with local banlist - uso&lt;br /&gt;
* Fix to spawned and lag attributes in bz_updatePlayerData - Matthew Marshall&lt;br /&gt;
* Ability to change the killer in a PlayerDieEvent - Matthew Marshall&lt;br /&gt;
* Added shotID to bz_PlayerDieEventData - Matthew Marshall&lt;br /&gt;
* Expose the countdown and game time stuff to the api - Jeff Myers&lt;br /&gt;
* Backport the record stop function from 2.1 - Jeff Myers&lt;br /&gt;
* Backported WW GMs from 2.1 - Matthew Marshall&lt;br /&gt;
* Converts box &amp;amp; pyramids to mesh if required - Anonymous&lt;br /&gt;
* Allows leading face specification (x+,x-,y+,y-,z+,z-) - Anonymous&lt;br /&gt;
* Authorization is invariant to case - Anonymous&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Versions]]&lt;br /&gt;
[[Category:Releases]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>DTRemenak</name></author>
	</entry>
</feed>