<?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=RatOmeter</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=RatOmeter"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/Special:Contributions/RatOmeter"/>
	<updated>2026-05-25T11:34:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Jargon&amp;diff=5746</id>
		<title>Jargon</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Jargon&amp;diff=5746"/>
		<updated>2009-04-10T14:45:43Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Acronyms */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page hopes to clarify some common jargon, acronyms and slang used by many players in game. They can be useful to know, especially in team situations, as other players will assume that you know what they are talking about.&lt;br /&gt;
&lt;br /&gt;
Many players use map &amp;quot;landmarks,&amp;quot; like &amp;quot;mid tower&amp;quot; or &amp;quot;@ R jump,&amp;quot; to signify places on the map, so it&#039;s a good idea to learn your maps as well as the jargon.&lt;br /&gt;
&lt;br /&gt;
= Acronyms =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
CTF=[[Capture the Flag]]&lt;br /&gt;
FFA=[[Free For All]]&lt;br /&gt;
RH=[[Rabbit Hunt]]&lt;br /&gt;
R=(Team&#039;s) Right&lt;br /&gt;
L=(Team&#039;s) Left&lt;br /&gt;
RF=Red flag&lt;br /&gt;
GF=Green flag&lt;br /&gt;
BF=Blue flag&lt;br /&gt;
PF=Purple flag&lt;br /&gt;
HF=Have fun&lt;br /&gt;
GJ=Good Job. Often said to the team when a teammate has just captured the opposing team&#039;s flag&lt;br /&gt;
GL=Good Luck&lt;br /&gt;
GS=Good shot. Generally used when a particularly difficult shot kills you&lt;br /&gt;
GG=Good game&lt;br /&gt;
G1=Good One (shot)&lt;br /&gt;
NP=No Problem - mostly used as a response if you&#039;re teamkilled&lt;br /&gt;
NS=Nice Shot&lt;br /&gt;
N1=Nice One (shot)&lt;br /&gt;
SRY=Sorry&lt;br /&gt;
THX=Thank You&lt;br /&gt;
TK=Team Kill, to kill one&#039;s own team.&lt;br /&gt;
TY=Thank You&lt;br /&gt;
WTF?=Something&#039;s not quite right.....&lt;br /&gt;
WTH?=Similar to WTF - cleaner version&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Jargon =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
Bots=Non-human-player tanks.&lt;br /&gt;
Capping=Capturing the other teams flag, verb &#039;&#039;to cap&#039;&#039;.&lt;br /&gt;
Ours=Protect your team flag, or used to signify your team&#039;s base.&lt;br /&gt;
Theirs=Attack the other team&#039;s flag, or used to signify the other team&#039;s base.&lt;br /&gt;
Geno=Genocide Flag, usually when seen it chat by itself it means an opposing team player has the flag so be careful&lt;br /&gt;
Pass=Send the flag to the middle, or to a safe zone. See [[Jumping#Dropping_Flags|this article]].&lt;br /&gt;
Pyr=Pyramid&lt;br /&gt;
Base=Usually referring to your own base. (ex: st base!)&lt;br /&gt;
In=Inside the base (if applicable)&lt;br /&gt;
Out=Directly outside the base (if applicable)&lt;br /&gt;
Mid=Middle of the map&lt;br /&gt;
Jump/Jumper/Launcher=Either a world object that launches a tank in the air, or a tank that has used said world object.&lt;br /&gt;
Spamming=Filling the chat box with meaningless text.&lt;br /&gt;
Laser Spamming=Uselessly, blindly, rapidly shooting with the laser flag, often resulting in team kills.&lt;br /&gt;
Camping=Staying in one place with the same flag for a long time. If you do this you are &#039;&#039;a camper&#039;&#039;.&lt;br /&gt;
Flag Running=Working against your own team, and taking your flag towards the other team&#039;s base. If you do this you are a &#039;&#039;flag runner&#039;&#039;.&lt;br /&gt;
Flag Shopping=Rapidly picking up and dropping flags, in order to find a particularly powerful or useful one. Also known as &#039;&#039;flag farming&#039;&#039;.&lt;br /&gt;
Watch!=Watch out! or Guard! (ex: Watch ours!)&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Gameplay]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=User:Phanikrishna&amp;diff=5687</id>
		<title>User:Phanikrishna</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=User:Phanikrishna&amp;diff=5687"/>
		<updated>2009-04-08T11:36:40Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am a student from India keen on working on open source projects related to BZFlag. It seems an interesting game and am also curious on being a part of the development team.In this perspective, I have applied to participate in the GSoC 2009. &lt;br /&gt;
I have chosen the project that involves the modularizing of the OpenGL logic in the game code.&lt;br /&gt;
It includes bringing the different OpenGL calls made at various places in multiple files together to use them to develop a new engine.&lt;br /&gt;
      &lt;br /&gt;
As a part of the application procedure,I have also submitted a patch on http://sourceforge.net/tracker/?func=detail&amp;amp;atid=303248&amp;amp;aid=2741555&amp;amp;group_id=3248. &lt;br /&gt;
My application for the GSoC 09 can be viewed at http://socghop.appspot.com/student_proposal/show/google/gsoc2009/santosh_1035/t123861623663 .&lt;br /&gt;
&lt;br /&gt;
email : santosh.phani@gmail.com&lt;br /&gt;
&lt;br /&gt;
sourceforge account id : phanikrishna&lt;br /&gt;
&lt;br /&gt;
IRC (freenode) nick : Santosh_IIIT&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5554</id>
		<title>Google Summer of Code: 2009:OrgApplication</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5554"/>
		<updated>2009-03-13T18:06:47Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: wc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description = &lt;br /&gt;
BZFlag is a free online multiplayer cross-platform open source 3D tank battle game that is maintained by an active community of individuals distributed all around the world.  It is one of the most successful and sustained cross-platform open source games ever with an active developer, administrative, and player community.  There have been more than a million downloads in the last five years alone and our user base presently consists of more than 200 players online at any time of day or night.  The project has actually become more popular over the years as we continue to improve and enhance the game.  BZFlag has been under active development since 1992.&lt;br /&gt;
&lt;br /&gt;
Our organization is presently comprised of a rather disparate group of individuals that work on BZFlag because they love the game and the community that surrounds it.  There are presently 71 individuals entrusted with access to BZFlag core resources including 46 individuals that have committed source code modifications over the project&#039;s life span.  Our developer base presently consists of 9 documented core developers that have made extensive contributions to the game and remained active over many years, along with about a dozen apprentice-level developers that are coming up in the ranks, and about two dozen peripheral/casual developers, extension developers, and web integration programmers.  Additionally, there are several dozen trusted staffers, server operators, and graphic artists that assist in the day-to-day operations needed by the game for keeping servers up and running, providing server list services, designing artwork, providing network statistics, image hosting, web hosting, and much more.&lt;br /&gt;
&lt;br /&gt;
All of our project developers almost exclusively collaborate on the #bzflag Freenode IRC channel, which is the central hub for most of our development discussions, decision planning meetings, game operations, and network infrastructure administration.  We operate via a benevolent dictatorship combined with a meritocracy that strives for consensus between the core developers and other involved community members.  Extensive discussions are held for any changes to BZFlag that affect the game&#039;s traditional spirit, mood of gameplay, tone of the user environment, and types of interactions possible in the game.  These discussions also include considerations whenever there are new features being added such as new flags, enhanced graphics, or changes to the gameplay.  We also serve as a support arm to our user community assisting them with anything from how to get started playing to providing assistance with setting up their own server or even helping them write their own new extensions to the game.&lt;br /&gt;
&lt;br /&gt;
From IRC, we administer network operations for more than 19000 registered players and for the tens of thousands of unregistered players that engage in more than 10000 daily player sessions across more than 250 public servers.  As we are a globally distributed network-oriented game, we also maintain the public server listings, provide player tracking, network statistics, global authentication, user and group management, abuse and ban controls, player conflict resolution, competitive league management, and user community support.&lt;br /&gt;
&lt;br /&gt;
= Why is your group applying to participate? What do you hope to gain by participating =&lt;br /&gt;
&lt;br /&gt;
Our primary intention for participating in GSoC 2009 is to hopefully attract new developers.  We already have visibility, popularity, familiarity, and a very active community.  The strongest factor in our long-term development initiatives, however, is the number of active developers that we have at any given time.&lt;br /&gt;
&lt;br /&gt;
GSoC has shown to provide an exceptional opportunity for us to entice new developers to our community and keep them working with us over the long term.  It&#039;s been a great program for attracting new talent, inspiring new development initiatives, and even for getting our existing developers more organized and collaborating more effectively.&lt;br /&gt;
&lt;br /&gt;
We&#039;ve enjoyed collaborating on experimental efforts that have had strong academic and research goals, while helping promote and improve BZFlag in the process.  BZFlag is used by several universities (e.g., Brigham-Young University) as an artificial intelligence framework and has also been the subject of several academic research projects related to network communications (ACM-published research papers).  Just this past year, Indiana University worked with our staff to use BZFlag as a platform for conducting a social network analysis.  We&#039;d particularly like to improve these facilities to help encourage even wider use of BZFlag for academic and research purposes.&lt;br /&gt;
&lt;br /&gt;
Task-wise, we hope to work with these new developers to implement several enhancements to BZFlag that we know will have a big impact on those that play the game.  We discovered last year that participating in GSoC stimulates our project development activities and forces us to become more organized, collaborative, and deliberate in our focus.  Our community is simply filled with great ideas on how to improve the game in wide impacting ways and we would like to encourage these developments.  GSoC provides a mutually beneficial means to that end, particularly for students that we can attract to our project as new developers that stay with the project.&lt;br /&gt;
&lt;br /&gt;
= What criteria do you use to select the members of your group? Please be as specific as possible. =&lt;br /&gt;
&lt;br /&gt;
All of the mentors listed are actively engaged in the BZFlag community as core developers, apprentice developers, web service developers, and network operators.  Mentors were selected from among our core community of project contributors that are actively engaged on a day-to-day basis .  All mentors needed to have gained enough rapport and trust with those already actively involved to the extent that they&#039;ve been entrusted with source code access, decision-making authority, and that have sustained activity for months or years on end.  The mentors also needed to show competency in the BZFlag source code, our project directions, our operating philosophies, and a basic familiarity with our social dynamic.&lt;br /&gt;
&lt;br /&gt;
Several of our apprentice developers were specifically chosen due to the unique perspective that they bring to the development processes.  Those individuals help bridge the player-developer gap as those new developers tend to come straight out of the player community and/or are heavily involved and familiar with the needs of our users.  They form a critical part of our technical support infrastructure.&lt;br /&gt;
&lt;br /&gt;
Cumulatively, the #bzflag IRC channel provides even more insight, interaction, and mentoring support as our community spans several domains of software development expertise including game development, computer-aided design, computer-aided machining, software testing, web development, computer graphics development, systems and kernel development, and general application development.  As our channel is constantly (24/7) engaged in user and developer support to a global community, the channel will be our predominant means of interaction for all mentors and students.  Each individual listed can also dedicate a minimum of 10 hours a week on average with an understanding that there are additional demands on their time at the start, midterm, and final evaluation periods of the program.&lt;br /&gt;
&lt;br /&gt;
= Has your group participated previously? If so, please summarize your involvement and any past successes and failures. =&lt;br /&gt;
&lt;br /&gt;
Yes, we participated for the first time in 2007 and again in 2008.  We quickly found that being involved in GSoC requires considerable time and resources necessitating massive amounts of coordination, communication, and progress tracking.  Our developers spent many hours mentoring students, reviewing their code, and discussing implementation details.&lt;br /&gt;
&lt;br /&gt;
We found that being involved in GSoC encouraged our community to become more organized and accountable than usual.  It also instigated other developer activity and interest throughout our community, particularly amongst players that were eagerly interested in trying out the new facilities being developed by the students.&lt;br /&gt;
&lt;br /&gt;
The experience taught our mentors a great deal in terms of managing different personalities, expectations we had of their abilities to work with minimal process overhead, and how to respond quickly and effectively to inadequate levels of effort.  In our view, we did very well in managing our students but will need to dedicate even more time and attention to the students if we are allowed to participate again.  We intend to focus more on integrating the students quickly, engaging them more in the design and testing process throughout development, and making sure they follow our development criteria from start to finish so that we can help establish them as long-term developers in our community.&lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing contributors? = &lt;br /&gt;
&lt;br /&gt;
If a student&#039;s interest or availability to participate in the summer project seems to be diverging or otherwise waning, efforts will be made to motivate the student through discussions and hands-on interactive development intended to stimulate their progress.  Being a 3D graphics-oriented game, we have the benefit of most tasks actually resulting in something &amp;quot;fun&amp;quot; that rather easily captures and maintains interest.  However, should the student&#039;s focus still remain diminished or should the student unexpectedly disappear without notice, the administrator will relay this status with Google after repeated attempts to contact the student fail.&lt;br /&gt;
&lt;br /&gt;
Also, as a learned measure from last year, the students are going to be required to make very frequent commits.  If they&#039;re not committing, then they are not working.  At least they won&#039;t be working effectively.  Having them commit frequently gives us a very good estimate of their activity level as well as where they are in the development process.  We strongly adhere to &amp;quot;commit early, commit often&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the student is not around or is not working as much as they need to be, we will have discussions with them, see what&#039;s going on, and do so proactively.  We learned from one of our students last year when they were in serious danger of failing that a simple change in their accountability can have a massive impact on their motivation.  We will strive to recognize our students&#039; personalities quickly, so that we can impose as much or as little process overhead as it required for them to be effective developers.  Additional process requirements (such as daily or weekly reports and commit quotas) may then be imposed for students that consistently fall behind schedule.&lt;br /&gt;
&lt;br /&gt;
Similarly, by interacting with the students on a daily basis and preferably by having them be joined to our IRC channel while they are working on BZFlag, it allows mentors to keep a careful eye on all student progress and readily discuss issues with them.  As is done for any developer, having them be readily available for interactive discussion on IRC frequently helps avoid misunderstandings, disagreements, and frustrations and at worst makes any issues apparent as soon as possible.  The IRC channel is the hub of our primary development activity providing source commit announcements, developer access, user insight, interactive discussions, and near immediate response to questions and comments.&lt;br /&gt;
&lt;br /&gt;
Other than that, the formula for dealing with disappearing students really just boils down to communication.  It&#039;s a very organic process and we don&#039;t believe that there is one answer for all students.  The measures described above help us focus on having the most effective communication that works with our development team but will necessarily be tailored to each student individually.  Issues that we cannot resolve will be brought forward to Google for guidance, as was done last year.&lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing members? = &lt;br /&gt;
&lt;br /&gt;
BZFlag contains an active community that is constantly engaged in providing assistance for any level of questions whether they are introductory user support questions or technical source code development questions.  The predominance of BZFlag&#039;s active software development interactions are discussed *entirely* on the #bzflag Freenode IRC channel.  We require that developers participate and interact on the IRC channel with other developers to their fullest capacity, and preferably without them relying on any single individual so that they may receive assistance and perspective from a variety of developers (it&#039;s not like all our developers always agree and, ultimately, our meritocracy prevails over decisions and directions).&lt;br /&gt;
&lt;br /&gt;
One of the main reasons for requiring developers to be on the IRC channel is to help mitigate issues whereby a student might encounter difficulties interacting with any particular individual.  It also exposes them to all developers so that they can become more quickly in-tune with which developers are presently active and the politics of our development practices.&lt;br /&gt;
&lt;br /&gt;
The students will be encouraged to interact on the IRC channel at all times to provide a continued on-going dialog with the other BZFlag developers as well so that everyone is informed of progress and development directions.  If a given mentor is not responding to the student, whether intentional or incapable, or if a mentor is unreachable for more than a couple days, one of several backup mentors are available to step in.&lt;br /&gt;
&lt;br /&gt;
Should some situation arise that prevents a mentor from being able to participate, several backup mentors are available that can be assigned to the student on the spot and immediately pick up where other mentors leave off.  Several of our mentors and administrators also know each other in person and have physical access to one another, so we can go smack them if they&#039;re not participating effectively or should they try to disappear online.  That said, all mentors are selected based on their activity this year to help minimize any issues.&lt;br /&gt;
&lt;br /&gt;
This year, we have also set up a mentor&#039;s blog to help our mentors make announcements more effectively and to provide suggestions for other GSoC projects.  This blog has already shown to be rather effective in making GSoC-specific announcements and for coordinating information amongst the mentors.  Once the students get started with their projects, we also plan to use the blog as a centralized information resource for developers to see the latest commits from the students and the status of their project progress.&lt;br /&gt;
&lt;br /&gt;
= What steps will you take to encourage contributors to interact with your community before, during, and after the program? =&lt;br /&gt;
&lt;br /&gt;
Being a game, i.e. an entertainment application, we have a somewhat unique benefit of actually being enjoyable before, during, and after the student&#039;s participation in the program and are even often &amp;quot;addictive&amp;quot;.  Most people enjoy playing BZFlag and often after they play the game for a little while, they can &amp;quot;get hooked&amp;quot; on the game.  &amp;quot;Quick to learn, difficult to master&amp;quot; is our motto and this holds true both in the game and for development.  Once new developers see the impact they&#039;re having on such a large user community, they quickly become addicted to the development aspects and making things more enjoyable for our players.  We encourage our developers to play so that they understand the needs of the game and the needs of the existing player community in addition to becoming familiar with how various portions of the source code relate to behaviors in the game.&lt;br /&gt;
&lt;br /&gt;
Before the program, we have a specific checklist of tasks that we have prepared to give them definitive actions that they need to perform.  These steps include introducing themselves to our IRC channel, having a Sourceforge account, becoming familiar with Subversion if they are not already, checking out the BZFlag sources, compiling their own version of BZFlag, playing the game with that version, registering with our global account services, becoming familiar with our websites and on-line services, and publishing their list of goals milestones for the community to see. &lt;br /&gt;
&lt;br /&gt;
As our IRC infrastructure and developer operations are already well established, we can (and frequently do) readily point new developer interests to our documentation and engage them in discussion.  We have lots of existing documentation, web infrastructure, and network resources available to get new developers familiar and interested in development directions quickly.  Given our involvement with GSoC last year, we now also have an established mindset of successful interaction criteria that gets students quickly involved in our user community so that they feel like part of the family.&lt;br /&gt;
&lt;br /&gt;
One of the interactions that worked very well last year was having the students directly interact with the users, letting them represent their efforts, and having their efforts be strongly supported and promoted by the other developers.  We intend to take additional steps this year to continuously integrate the students&#039; code throughout the program and work on introducing our player community to the features being developed even more early on.  The goal will be to instill a sense of belonging and a sense of appreciation for the hard-work they are putting into their code.&lt;br /&gt;
&lt;br /&gt;
= What will you do to ensure that your accepted contributors stick with the project after the program concludes? =&lt;br /&gt;
&lt;br /&gt;
It is our responsibility to not neglect or abandon the students.  We have to give them the time and attention that they deserve, and we need to share with the students the respect and appreciation we have of their efforts so that they remain interested and involved.  BZFlag is fortunate to have not had any significant issues with attrition; many of our developers tend to remain involved with the project for a long time.  There is natural turn-over as interests shift and general fluctuations from year to year, but we sustain a relatively stable development rate and that is in no small part due to our interactive and friendly development environment.&lt;br /&gt;
&lt;br /&gt;
New developers are often enticed to stick around and contribute simply because we actively promote their changes to the user community when releases are made, and the user community responds vocally to just about every single modification that gets made to the game no matter how small.  For the topics that we are soliciting ideas, the efforts of the student have the ability to make a major impact on the game that will be exceedingly visible, and will encourage continued development not only by the student but other developers as well.  We will necessarily encourage students to remain involved with the project by welcoming them to our development team, integrating them as quickly as possible, giving them development responsibilities, and showing them the rewards and impact of their efforts.&lt;br /&gt;
&lt;br /&gt;
It&#039;s our job to encourage their passion for BZFlag development long after GSoC concludes.&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5553</id>
		<title>Google Summer of Code: 2009:OrgApplication</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5553"/>
		<updated>2009-03-13T18:01:14Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: wc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description = &lt;br /&gt;
BZFlag is a free online multiplayer cross-platform open source 3D tank battle game that is maintained by an active community of individuals distributed all around the world.  It is one of the most successful and sustained cross-platform open source games ever with an active developer, administrative, and player community.  There have been more than a million downloads in the last five years alone and our user base presently consists of more than 200 players online at any time of day or night.  The project has actually become more popular over the years as we continue to improve and enhance the game.  BZFlag has been under active development since 1992.&lt;br /&gt;
&lt;br /&gt;
Our organization is presently comprised of a rather disparate group of individuals that work on BZFlag because they love the game and the community that surrounds it.  There are presently 71 individuals entrusted with access to BZFlag core resources including 46 individuals that have committed source code modifications over the project&#039;s life span.  Our developer base presently consists of 9 documented core developers that have made extensive contributions to the game and remained active over many years, along with about a dozen apprentice-level developers that are coming up in the ranks, and about two dozen peripheral/casual developers, extension developers, and web integration programmers.  Additionally, there are several dozen trusted staffers, server operators, and graphic artists that assist in the day-to-day operations needed by the game for keeping servers up and running, providing server list services, designing artwork, providing network statistics, image hosting, web hosting, and much more.&lt;br /&gt;
&lt;br /&gt;
All of our project developers almost exclusively collaborate on the #bzflag Freenode IRC channel, which is the central hub for most of our development discussions, decision planning meetings, game operations, and network infrastructure administration.  We operate via a benevolent dictatorship combined with a meritocracy that strives for consensus between the core developers and other involved community members.  Extensive discussions are held for any changes to BZFlag that affect the game&#039;s traditional spirit, mood of gameplay, tone of the user environment, and types of interactions possible in the game.  These discussions also include considerations whenever there are new features being added such as new flags, enhanced graphics, or changes to the gameplay.  We also serve as a support arm to our user community assisting them with anything from how to get started playing to providing assistance with setting up their own server or even helping them write their own new extensions to the game.&lt;br /&gt;
&lt;br /&gt;
From IRC, we administer network operations for more than 19000 registered players and for the tens of thousands of unregistered players that engage in more than 10000 daily player sessions across more than 250 public servers.  As we are a globally distributed network-oriented game, we also maintain the public server listings, provide player tracking, network statistics, global authentication, user and group management, abuse and ban controls, player conflict resolution, competitive league management, and user community support.&lt;br /&gt;
&lt;br /&gt;
= Why is your group applying to participate? What do you hope to gain by participating =&lt;br /&gt;
&lt;br /&gt;
Our primary intention for participating in GSoC 2009 is to hopefully attract new developers.  We already have visibility, popularity, familiarity, and a very active community.  The strongest factor in our long-term development initiatives, however, is the number of active developers that we have at any given time.&lt;br /&gt;
&lt;br /&gt;
GSoC has shown to provide an exceptional opportunity for us to entice new developers to our community and keep them working with us over the long term.  It&#039;s been a great program for attracting new talent, inspiring new development initiatives, and even for getting our existing developers more organized and collaborating more effectively.&lt;br /&gt;
&lt;br /&gt;
We&#039;ve enjoyed collaborating on experimental efforts that have had strong academic and research goals, while helping promote and improve BZFlag in the process.  BZFlag is used by several universities (e.g., Brigham-Young University) as an artificial intelligence framework and has also been the subject of several academic research projects related to network communications (ACM-published research papers).  Just this past year, Indiana University worked with our staff to use BZFlag as a platform for conducting a social network analysis.  We&#039;d particularly like to improve these facilities to help encourage even wider use of BZFlag for academic and research purposes.&lt;br /&gt;
&lt;br /&gt;
Task-wise, we hope to work with these new developers to implement several enhancements to BZFlag that we know will have a big impact on those that play the game.  We discovered last year that participating in GSoC stimulates our project development activities and forces us to become more organized, collaborative, and deliberate in our focus.  Our community is simply filled with great ideas on how to improve the game in wide impacting ways and we would like to encourage these developments.  GSoC provides a mutually beneficial means to that end, particularly for students that we can attract to our project as new developers that stay with the project.&lt;br /&gt;
&lt;br /&gt;
= What criteria do you use to select the members of your group? Please be as specific as possible. =&lt;br /&gt;
&lt;br /&gt;
All of the mentors listed are actively engaged in the BZFlag community as core developers, apprentice developers, web service developers, and network operators.  Mentors were selected from among our core community of project contributors that are actively engaged on a day-to-day basis .  All mentors needed to have gained enough rapport and trust with those already actively involved to the extent that they&#039;ve been entrusted with source code access, decision-making authority, and that have sustained activity for months or years on end.  The mentors also needed to show competency in the BZFlag source code, our project directions, our operating philosophies, and a basic familiarity with our social dynamic.&lt;br /&gt;
&lt;br /&gt;
Several of our apprentice developers were specifically chosen due to the unique perspective that they bring to the development processes.  Those individuals help bridge the player-developer gap as those new developers tend to come straight out of the player community and/or are heavily involved and familiar with the needs of our users.  They form a critical part of our technical support infrastructure.&lt;br /&gt;
&lt;br /&gt;
Cumulatively, the #bzflag IRC channel provides even more insight, interaction, and mentoring support as our community spans several domains of software development expertise including game development, computer-aided design, computer-aided machining, software testing, web development, computer graphics development, systems and kernel development, and general application development.  As our channel is constantly (24/7) engaged in user and developer support to a global community, the channel will be our predominant means of interaction for all mentors and students.  Each individual listed can also dedicate a minimum of 10 hours a week on average with an understanding that there are additional demands on their time at the start, midterm, and final evaluation periods of the program.&lt;br /&gt;
&lt;br /&gt;
= Has your group participated previously? If so, please summarize your involvement and any past successes and failures. =&lt;br /&gt;
&lt;br /&gt;
Yes, we participated for the first time in 2007 and again in 2008.  We quickly found that being involved in GSoC requires considerable time and resources necessitating massive amounts of coordination, communication, and progress tracking.  Our developers spent many hours mentoring students, reviewing their code, and discussing implementation details.&lt;br /&gt;
&lt;br /&gt;
We found that being involved in GSoC encouraged our community to become more organized and accountable than usual.  It also instigated other developer activity and interest throughout our community, particularly amongst players that were eagerly interested in trying out the new facilities being developed by the students.&lt;br /&gt;
&lt;br /&gt;
The experience taught our mentors a great deal in terms of managing different personalities, expectations we had of their abilities to work with minimal process overhead, and how to respond quickly and effectively to inadequate levels of effort.  In our view, we did very well in managing our students but will need to dedicate even more time and attention to the students if we are allowed to participate again.  We intend to focus more on integrating the students quickly, engaging them more in the design and testing process throughout development, and making sure they follow our development criteria from start to finish so that we can help establish them as long-term developers in our community.&lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing contributors? = &lt;br /&gt;
&lt;br /&gt;
If a student&#039;s interest or availability to participate in the summer project seems to be diverging or otherwise waning, efforts will be made to motivate the student through discussions and hands-on interactive development intended to stimulate their progress.  Being a 3D graphics-oriented game, we have the benefit of most tasks actually resulting in something &amp;quot;fun&amp;quot; that rather easily captures and maintains interest.  However, should the student&#039;s focus still remain diminished or should the student unexpectedly disappear without notice, the administrator will relay this status with Google after repeated attempts to contact the student fail.&lt;br /&gt;
&lt;br /&gt;
Also, as a learned measure from last year, the students are going to be required to make very frequent commits.  If they&#039;re not committing, then they are not working.  At least they won&#039;t be working effectively.  Having them commit frequently gives us a very good estimate of their activity level as well as where they are in the development process.  We strongly adhere to &amp;quot;commit early, commit often&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the student is not around or is not working as much as they need to be, we will have discussions with them, see what&#039;s going on, and do so proactively.  We learned from one of our students last year when they were in serious danger of failing that a simple change in their accountability can have a massive impact on their motivation.  We will strive to recognize our students&#039; personalities quickly, so that we can impose as much or as little process overhead as it required for them to be effective developers.  Additional process requirements (such as daily or weekly reports and commit quotas) may then be imposed for students that consistently fall behind schedule.&lt;br /&gt;
&lt;br /&gt;
Similarly, by interacting with the students on a daily basis and preferably by having them be joined to our IRC channel while they are working on BZFlag, it allows mentors to keep a careful eye on all student progress and readily discuss issues with them.  As is done for any developer, having them be readily available for interactive discussion on IRC frequently helps avoid misunderstandings, disagreements, and frustrations and at worst makes any issues apparent as soon as possible.  The IRC channel is the hub of our primary development activity providing source commit announcements, developer access, user insight, interactive discussions, and near immediate response to questions and comments.&lt;br /&gt;
&lt;br /&gt;
Other than that, the formula for dealing with disappearing students really just boils down to communication.  It&#039;s a very organic process and we don&#039;t believe that there is one answer for all students.  The measures described above help us focus on having the most effective communication that works with our development team but will necessarily be tailored to each student individually.  Issues that we cannot resolve will be brought forward to Google for guidance, as was done last year.&lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing members? = &lt;br /&gt;
&lt;br /&gt;
BZFlag contains an active community that is constantly engaged in providing assistance for any level of questions whether they are introductory user support questions or technical source code development questions.  The predominance of BZFlag&#039;s active software development interactions are discussed *entirely* on the #bzflag Freenode IRC channel.  We require that developers participate and interact on the IRC channel with other developers to their fullest capacity, and preferably without them relying on any single individual so that they may receive assistance and perspective from a variety of developers (it&#039;s not like all our developers always agree and, ultimately, our meritocracy prevails over decisions and directions).&lt;br /&gt;
&lt;br /&gt;
One of the main reasons for requiring developers to be on the IRC channel is to help mitigate issues whereby a student might encounter difficulties interacting with any particular individual.  It also exposes them to all developers so that they can become more quickly in-tune with which developers are presently active and the politics of our development practices.&lt;br /&gt;
&lt;br /&gt;
The students will be encouraged to interact on the IRC channel at all times to provide a continued on-going dialog with the other BZFlag developers as well so that everyone is informed of progress and development directions.  If a given mentor is not responding to the student, whether intentional or incapable, or if a mentor is unreachable for more than a couple days, one of several backup mentors are available to step in.&lt;br /&gt;
&lt;br /&gt;
Should some situation arise that prevents a mentor from being able to participate, several backup mentors are available that can be assigned to the student on the spot and immediately pick up where other mentors leave off.  Several of our mentors and administrators also know each other in person and have physical access to one another, so we can go smack them if they&#039;re not participating effectively or should they try to disappear online.  That said, all mentors are selected based on their activity this year to help minimize any issues.&lt;br /&gt;
&lt;br /&gt;
This year, we have also set up a mentor&#039;s blog to help our mentors make announcements more effectively and to provide suggestions for other GSoC projects.  This blog has already shown to be rather effective in making GSoC-specific announcements and for coordinating information amongst the mentors.  Once the students get started with their projects, we also plan to use the blog as a centralized information resource for developers to see the latest commits from the students and the status of their project progress.&lt;br /&gt;
&lt;br /&gt;
= What steps will you take to encourage contributors to interact with your community before, during, and after the program? =&lt;br /&gt;
&lt;br /&gt;
Being a game, i.e. an entertainment application, we have a somewhat unique benefit of actually being enjoyable before, during, and after the student&#039;s participation in the program and are even often &amp;quot;addictive&amp;quot;.  Most people enjoy playing BZFlag and often after they play the game for a little while, they can &amp;quot;get hooked&amp;quot; on the game.  &amp;quot;Quick to learn, difficult to master&amp;quot; is our motto and this holds true both in the game and for development.  Once new developers see the impact they&#039;re having on such a large user community, they quickly become addicted to the development aspects and making things more enjoyable for our players.  We encourage our developers to play so that they understand the needs of the game and the needs of the existing player community in addition to becoming familiar with how various portions of the source code relate to behaviors in the game.&lt;br /&gt;
&lt;br /&gt;
Before the program, we have a specific checklist of tasks that we have prepared to give them definitive actions that they need to perform.  These steps include introducing themselves to our IRC channel, having a Sourceforge account, becoming familiar with Subversion if they are not already, checking out the BZFlag sources, compiling their own version of BZFlag, playing the game with that version, registering with our global account services, becoming familiar with our websites and on-line services, and publishing their list of goals milestones for the community to see. &lt;br /&gt;
&lt;br /&gt;
As our IRC infrastructure and developer operations are already well established, we can (and frequently do) readily point new developer interests to our documentation and engage them in discussion.  We have lots of existing documentation, web infrastructure, and network resources available to get new developers familiar and interested in development directions quickly.  Given our involvement with GSoC last year, we now also have an established mindset of successful interaction criteria that gets students quickly involved in our user community so that they feel like part of the family.&lt;br /&gt;
&lt;br /&gt;
One of the interactions that worked very well last year was having the students directly interact with the users, letting them represent their efforts, and having their efforts be strongly supported and promoted by the other developers.  We intend to take additional steps this year to continuously integrate the students&#039; code throughout the program and work on introducing our player community to the features being developed even more early on.  The goal will be to instill a sense of belonging and a sense of appreciation for the hard-work they are putting into their code.&lt;br /&gt;
&lt;br /&gt;
= What will you do to ensure that your accepted contributors stick with the project after the program concludes? =&lt;br /&gt;
&lt;br /&gt;
It is our responsibility to not neglect or abandon the students.  We have to give them the time and attention that they deserve, and we need to share with the students the respect and appreciation we have of their efforts so that they remain interested and involved.  BZFlag is fortunate to have not had any significant issues with attrition; many of our developers tend to remain involved with the project for a long time.  There is natural turn-over as interests shift and general fluctuations from year to year, but we sustain a relatively stable development rate and that is in no small part due to our interactive and friendly development environment.&lt;br /&gt;
&lt;br /&gt;
New developers are often enticed to stick around and contribute simply because we actively promote their changes to the user community when releases are made, and the user community responds vocally to just about every single modification that gets made to the game no matter how small.  For the topics that we are soliciting ideas, the efforts of the student have the ability to make a major impact on the game that will be exceedingly visible, and will encourage continued development not only by the student and other developers as well.  We will necessarily encourage students to remain involved with the project by welcoming them to our development team, integrating them as quickly as possible, giving them development responsibilities, and showing them the rewards and impact of their efforts.&lt;br /&gt;
&lt;br /&gt;
It&#039;s our job to encourage their passion for BZFlag development long after GSoC concludes.&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5552</id>
		<title>Google Summer of Code: 2009:OrgApplication</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5552"/>
		<updated>2009-03-13T17:57:13Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: rm extraneous word&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description = &lt;br /&gt;
BZFlag is a free online multiplayer cross-platform open source 3D tank battle game that is maintained by an active community of individuals distributed all around the world.  It is one of the most successful and sustained cross-platform open source games ever with an active developer, administrative, and player community.  There have been more than a million downloads in the last five years alone and our user base presently consists of more than 200 players online at any time of day or night.  The project has actually become more popular over the years as we continue to improve and enhance the game.  BZFlag has been under active development since 1992.&lt;br /&gt;
&lt;br /&gt;
Our organization is presently comprised of a rather disparate group of individuals that work on BZFlag because they love the game and the community that surrounds it.  There are presently 71 individuals entrusted with access to BZFlag core resources including 46 individuals that have committed source code modifications over the project&#039;s life span.  Our developer base presently consists of 9 documented core developers that have made extensive contributions to the game and remained active over many years, along with about a dozen apprentice-level developers that are coming up in the ranks, and about two dozen peripheral/casual developers, extension developers, and web integration programmers.  Additionally, there are several dozen trusted staffers, server operators, and graphic artists that assist in the day-to-day operations needed by the game for keeping servers up and running, providing server list services, designing artwork, providing network statistics, image hosting, web hosting, and much more.&lt;br /&gt;
&lt;br /&gt;
All of our project developers almost exclusively collaborate on the #bzflag Freenode IRC channel, which is the central hub for most of our development discussions, decision planning meetings, game operations, and network infrastructure administration.  We operate via a benevolent dictatorship combined with a meritocracy that strives for consensus between the core developers and other involved community members.  Extensive discussions are held for any changes to BZFlag that affect the game&#039;s traditional spirit, mood of gameplay, tone of the user environment, and types of interactions possible in the game.  These discussions also include considerations whenever there are new features being added such as new flags, enhanced graphics, or changes to the gameplay.  We also serve as a support arm to our user community assisting them with anything from how to get started playing to providing assistance with setting up their own server or even helping them write their own new extensions to the game.&lt;br /&gt;
&lt;br /&gt;
From IRC, we administer network operations for more than 19000 registered players and for the tens of thousands of unregistered players that engage in more than 10000 daily player sessions across more than 250 public servers.  As we are a globally distributed network-oriented game, we also maintain the public server listings, provide player tracking, network statistics, global authentication, user and group management, abuse and ban controls, player conflict resolution, competitive league management, and user community support.&lt;br /&gt;
&lt;br /&gt;
= Why is your group applying to participate? What do you hope to gain by participating =&lt;br /&gt;
&lt;br /&gt;
Our primary intention for participating in GSoC 2009 is to hopefully attract new developers.  We already have visibility, popularity, familiarity, and a very active community.  The strongest factor in our long-term development initiatives, however, is the number of active developers that we have at any given time.&lt;br /&gt;
&lt;br /&gt;
GSoC has shown to provide an exceptional opportunity for us to entice new developers to our community and keep them working with us over the long term.  It&#039;s been a great program for attracting new talent, inspiring new development initiatives, and even for getting our existing developers more organized and collaborating more effectively.&lt;br /&gt;
&lt;br /&gt;
We&#039;ve enjoyed collaborating on experimental efforts that have had strong academic and research goals, while helping promote and improve BZFlag in the process.  BZFlag is used by several universities (e.g., Brigham-Young University) as an artificial intelligence framework and has also been the subject of several academic research projects related to network communications (ACM-published research papers).  Just this past year, Indiana University worked with our staff to use BZFlag as a platform for conducting a social network analysis.  We&#039;d particularly like to improve these facilities to help encourage even wider use of BZFlag for academic and research purposes.&lt;br /&gt;
&lt;br /&gt;
Task-wise, we hope to work with these new developers to implement several enhancements to BZFlag that we know will have a big impact on those that play the game.  We discovered last year that participating in GSoC stimulates our project development activities and forces us to become more organized, collaborative, and deliberate in our focus.  Our community is simply filled with great ideas on how to improve the game in wide impacting ways and we would like to encourage these developments.  GSoC provides a mutually beneficial means to that end, particularly for students that we can attract to our project as new developers that stay with the project.&lt;br /&gt;
&lt;br /&gt;
= What criteria do you use to select the members of your group? Please be as specific as possible. =&lt;br /&gt;
&lt;br /&gt;
All of the mentors listed are actively engaged in the BZFlag community as core developers, apprentice developers, web service developers, and network operators.  Mentors were selected from among our core community of project contributors that are actively engaged on a day-to-day basis .  All mentors needed to have gained enough rapport and trust with those already actively involved to the extent that they&#039;ve been entrusted with source code access, decision-making authority, and that have sustained activity for months or years on end.  The mentors also needed to show competency in the BZFlag source code, our project directions, our operating philosophies, and a basic familiarity with our social dynamic.&lt;br /&gt;
&lt;br /&gt;
Several of our apprentice developers were specifically chosen due to the unique perspective that they bring to the development processes.  Those individuals help bridge the player-developer gap as those new developers tend to come straight out of the player community and/or are heavily involved and familiar with the needs of our users.  They form a critical part of our technical support infrastructure.&lt;br /&gt;
&lt;br /&gt;
Cumulatively, the #bzflag IRC channel provides even more insight, interaction, and mentoring support as our community spans several domains of software development expertise including game development, computer-aided design, computer-aided machining, software testing, web development, computer graphics development, systems and kernel development, and general application development.  As our channel is constantly (24/7) engaged in user and developer support to a global community, the channel will be our predominant means of interaction for all mentors and students.  Each individual listed can also dedicate a minimum of 10 hours a week on average with an understanding that there are additional demands on their time at the start, midterm, and final evaluation periods of the program.&lt;br /&gt;
&lt;br /&gt;
= Has your group participated previously? If so, please summarize your involvement and any past successes and failures. =&lt;br /&gt;
&lt;br /&gt;
Yes, we participated for the first time in 2007 and again in 2008.  We quickly found that being involved in GSoC requires considerable time and resources necessitating massive amounts of coordination, communication, and progress tracking.  Our developers spent many hours mentoring students, reviewing their code, and discussing implementation details.&lt;br /&gt;
&lt;br /&gt;
We found that being involved in GSoC encouraged our community to become more organized and accountable than usual.  It also instigated other developer activity and interest throughout our community, particularly amongst players that were eagerly interested in trying out the new facilities being developed by the students.&lt;br /&gt;
&lt;br /&gt;
The experience taught our mentors a great deal in terms of managing different personalities, expectations we had of their abilities to work with minimal process overhead, and how to respond quickly and effectively to inadequate levels of effort.  In our view, we did very well in managing our students but will need to dedicate even more time and attention to the students if we are allowed to participate again.  We intend to focus more on integrating the students quickly, engaging them more in the design and testing process throughout development, and making sure they follow our development criteria from start to finish so that we can help establish them as long-term developers in our community.&lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing contributors? = &lt;br /&gt;
&lt;br /&gt;
If a student&#039;s interest or availability to participate in the summer project seems to be diverging or otherwise waning, efforts will be made to motivate the student through discussions and hands-on interactive development intended to stimulate their progress.  Being a 3D graphics-oriented game, we have the benefit of most tasks actually resulting in something &amp;quot;fun&amp;quot; that rather easily captures and maintains interest.  However, should the student&#039;s focus still remain diminished or should the student unexpectedly disappear without notice, the administrator will relay this status with Google after repeated attempts to contact the student fail.&lt;br /&gt;
&lt;br /&gt;
Also, as a learned measure from last year, the students are going to be required to make very frequent commits.  If they&#039;re not committing, then they are not working.  At least they won&#039;t be working effectively.  Having them commit frequently gives us a very good estimate of their activity level as well as where they are in the development process.  We strongly adhere to &amp;quot;commit early, commit often&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the student is not around or is not working as much as they need to be, we will have discussions with them, see what&#039;s going on, and do so proactively.  We learned from one of our students last year when they were in serious danger of failing that a simple change in their accountability can have a massive impact on their motivation.  We will strive to recognize our students&#039; personalities quickly, so that we can impose as much or as little process overhead as it required for them to be effective developers.  Additional process requirements (such as daily or weekly reports and commit quotas) may then be imposed for students that consistently fall behind schedule.&lt;br /&gt;
&lt;br /&gt;
Similarly, by interacting with the students on a daily basis and preferably by having them be joined to our IRC channel while they are working on BZFlag, it allows mentors to keep a careful eye on all student progress and readily discuss issues with them.  As is done for any developer, having them be readily available for interactive discussion on IRC frequently helps avoid misunderstandings, disagreements, and frustrations and at worst makes any issues apparent as soon as possible.  The IRC channel is the hub of our primary development activity providing source commit announcements, developer access, user insight, interactive discussions, and near immediate response to questions and comments.&lt;br /&gt;
&lt;br /&gt;
Other than that, the formula for dealing with disappearing students really just boils down to communication.  It&#039;s a very organic process and we don&#039;t believe that there is one answer for all students.  The measures described above help us focus on having the most effective communication that works with our development team but will necessarily be tailored to each student individually.  Issues that we cannot resolve will be brought forward to Google for guidance, as was done last year.&lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing members? = &lt;br /&gt;
&lt;br /&gt;
BZFlag contains an active community that is constantly engaged in providing assistance for any level of questions whether they are introductory user support questions or technical source code development questions.  The predominance of BZFlag&#039;s active software development interactions are discussed *entirely* on the #bzflag Freenode IRC channel.  We require that developers participate and interact on the IRC channel with other developers to their fullest capacity, and preferably without them relying on any single individual so that they may receive assistance and perspective from a variety of developers (it&#039;s not like all our developers always agree and, ultimately, our meritocracy prevails over decisions and directions).&lt;br /&gt;
&lt;br /&gt;
One of the main reasons for requiring developers to be on the IRC channel is to help mitigate issues whereby a student might encounter difficulties interacting with any particular individual.  It also exposes them to all developers so that they can become more quickly in-tune with which developers are presently active and the politics of our development practices.&lt;br /&gt;
&lt;br /&gt;
The students will be encouraged to interact on the IRC channel at all times to provide a continued on-going dialog with the other BZFlag developers as well so that everyone is informed of progress and development directions.  If a given mentor is not responding to the student, whether intentional or incapable, or if a mentor is unreachable for more than a couple days, one of several backup mentors are available to step in.&lt;br /&gt;
&lt;br /&gt;
Should some situation arise that incapacitates a mentor from being able to participate, several backup mentors are available that can be assigned to the student on the spot and immediately pick up where other mentors leave off.  Several of our mentors and administrators also know each other in person and have physical access to one another, so we can go smack them if they&#039;re not participating effectively or should they try to disappear online.  That said, all mentors selected based on their activity this year to help minimize any issues.&lt;br /&gt;
&lt;br /&gt;
This year, we have also set up a mentor&#039;s blog to help our mentors make announcements more effectively and to provide suggestions for other GSoC projects.  This blog has already shown to be rather effective in making GSoC-specific announcements and for coordinating information amongst the mentors.  Once the students get started with their projects, we also plan to use the blog as a centralized information resource for developers to see the latest commits from the students and the status of their project progress.&lt;br /&gt;
&lt;br /&gt;
= What steps will you take to encourage contributors to interact with your community before, during, and after the program? =&lt;br /&gt;
&lt;br /&gt;
Being a game, i.e. an entertainment application, we have a somewhat unique benefit of actually being enjoyable before, during, and after the student&#039;s participation in the program and are even often &amp;quot;addictive&amp;quot;.  Most people enjoy playing BZFlag and often after they play the game for a little while, they can &amp;quot;get hooked&amp;quot; on the game.  &amp;quot;Quick to learn, difficult to master&amp;quot; is our motto and this holds true both in the game and for development.  Once new developers see the impact they&#039;re having on such a large user community, they quickly become addicted to the development aspects and making things more enjoyable for our players.  We encourage our developers to play so that they understand the needs of the game and the needs of the existing player community in addition to becoming familiar with how various portions of the source code relate to behaviors in the game.&lt;br /&gt;
&lt;br /&gt;
Before the program, we have a specific checklist of tasks that we have prepared to give them definitive actions that they need to perform.  These steps include introducing themselves to our IRC channel, having a Sourceforge account, becoming familiar with Subversion if they are not already, checking out the BZFlag sources, compiling their own version of BZFlag, playing the game with that version, registering with our global account services, becoming familiar with our websites and on-line services, and publishing their list of goals milestones for the community to see. &lt;br /&gt;
&lt;br /&gt;
As our IRC infrastructure and developer operations are already well established, we can (and frequently do) readily point new developer interests to our documentation and engage them in discussion.  We have lots of existing documentation, web infrastructure, and network resources available to get new developers familiar and interested in development directions quickly.  Given our involvement with GSoC last year, we now also have an established mindset of successful interaction criteria that gets students quickly involved in our user community so that they feel like part of the family.&lt;br /&gt;
&lt;br /&gt;
One of the interactions that worked very well last year was having the students directly interact with the users, letting them represent their efforts, and having their efforts be strongly supported and promoted by the other developers.  We intend to take additional steps this year to continuously integrate the students&#039; code throughout the program and work on introducing our player community to the features being developed even more early on.  The goal will be to instill a sense of belonging and a sense of appreciation for the hard-work they are putting into their code.&lt;br /&gt;
&lt;br /&gt;
= What will you do to ensure that your accepted contributors stick with the project after the program concludes? =&lt;br /&gt;
&lt;br /&gt;
It is our responsibility to not neglect or abandon the students.  We have to give them the time and attention that they deserve, and we need to share with the students the respect and appreciation we have of their efforts so that they remain interested and involved.  BZFlag is fortunate to have not had any significant issues with attrition; many of our developers tend to remain involved with the project for a long time.  There is natural turn-over as interests shift and general fluctuations from year to year, but we sustain a relatively stable development rate and that is in no small part due to our interactive and friendly development environment.&lt;br /&gt;
&lt;br /&gt;
New developers are often enticed to stick around and contribute simply because we actively promote their changes to the user community when releases are made, and the user community responds vocally to just about every single modification that gets made to the game no matter how small.  For the topics that we are soliciting ideas, the efforts of the student have the ability to make a major impact on the game that will be exceedingly visible, and will encourage continued development not only by the student and other developers as well.  We will necessarily encourage students to remain involved with the project by welcoming them to our development team, integrating them as quickly as possible, giving them development responsibilities, and showing them the rewards and impact of their efforts.&lt;br /&gt;
&lt;br /&gt;
It&#039;s our job to encourage their passion for BZFlag development long after GSoC concludes.&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5551</id>
		<title>Google Summer of Code: 2009:OrgApplication</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Google_Summer_of_Code:_2009:OrgApplication&amp;diff=5551"/>
		<updated>2009-03-13T17:48:31Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: sp and word choice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Description = &lt;br /&gt;
BZFlag is a free online multiplayer cross-platform open source 3D tank battle game that is maintained by an active community of individuals distributed all around the world.  It is one of the most successful and sustained cross-platform open source games ever with an active developer, administrative, and player community.  There have been more than a million downloads in the last five years alone and our user base presently consists of more than 200 players online at any time of day or night.  The project has actually become more popular over the years as we continue to improve and enhance the game.  BZFlag has been under active development since 1992.&lt;br /&gt;
&lt;br /&gt;
Our organization is presently comprised of a rather disparate group of individuals that work on BZFlag because they love the game and the community that surrounds it.  There are presently 71 individuals entrusted with access to BZFlag core resources including 46 individuals that have committed source code modifications over the project&#039;s life span.  Our developer base presently consists of 9 documented core developers that have made extensive contributions to the game and remained active over many years, along with about a dozen apprentice-level developers that are coming up in the ranks, and about two dozen peripheral/casual developers, extension developers, and web integration programmers.  Additionally, there are several dozen trusted staffers, server operators, and graphic artists that assist in the day-to-day operations needed by the game for keeping servers up and running, providing server list services, designing artwork, providing network statistics, image hosting, web hosting, and much more.&lt;br /&gt;
&lt;br /&gt;
All of our project developers almost exclusively collaborate on the #bzflag Freenode IRC channel, which is the central hub for most of our development discussions, decision planning meetings, game operations, and network infrastructure administration.  We operate via a benevolent dictatorship combined with a meritocracy that strives for consensus between the core developers and other involved community members.  Extensive discussions are held for any changes to BZFlag that affect the game&#039;s traditional spirit, mood of gameplay, tone of the user environment, and types of interactions possible in the game.  These discussions also include considerations whenever there are new features being added such as new flags, enhanced graphics, or changes to the gameplay.  We also serve as a support arm to our user community assisting them with anything from how to get started playing to providing assistance with setting up their own server or even helping them write their own new extensions to the game.&lt;br /&gt;
&lt;br /&gt;
From IRC, we administer network operations for more than 19000 registered players and for the tens of thousands of unregistered players that engage in more than 10000 daily player sessions across more than 250 public servers.  As we are a globally distributed network-oriented game, we also maintain the public server listings, provide player tracking, network statistics, global authentication, user and group management, abuse and ban controls, player conflict resolution, competitive league management, and user community support.&lt;br /&gt;
&lt;br /&gt;
= Why is your group applying to participate? What do you hope to gain by participating =&lt;br /&gt;
&lt;br /&gt;
Our primary intention for participating in GSoC 2009 is to hopefully attract new developers.  We already have visibility, popularity, familiarity, and a very active community.  The strongest factor in our long-term development initiatives, however, is the number of active developers that we have at any given time.&lt;br /&gt;
&lt;br /&gt;
GSoC has shown to provide an exceptional opportunity for us to entice new developers to our community and keep them working with us over the long term.  It&#039;s been a great program for attracting new talent, inspiring new development initiatives, and even for getting our existing developers more organized and collaborating more effectively.&lt;br /&gt;
&lt;br /&gt;
We&#039;ve enjoyed collaborating on experimental efforts that have had strong academic and research goals, while helping promote and improve BZFlag in the process.  BZFlag is used by several universities (e.g., Brigham-Young University) as an artificial intelligence framework and has also been the subject of several academic research projects related to network communications (ACM-published research papers).  Just this past year, Indiana University worked with our staff to use BZFlag as a platform for conducting a social network analysis.  We&#039;d particularly like to improve these facilities to help encourage even wider use of BZFlag for academic and research purposes.&lt;br /&gt;
&lt;br /&gt;
Task-wise, we hope to work with these new developers to implement several enhancements to BZFlag that we know will have a big impact on those that play the game.  We discovered last year that participating in GSoC stimulates our project development activities and forces us to become more organized, collaborative, and deliberate in our focus.  Our community is simply filled with great ideas on how to improve the game in wide impacting ways and we would like to encourage these developments.  GSoC provides a mutually beneficial means to that end, particularly for students that we can attract to our project as new developers that stay with the project.&lt;br /&gt;
&lt;br /&gt;
= What criteria do you use to select the members of your group? Please be as specific as possible. =&lt;br /&gt;
&lt;br /&gt;
All of the mentors listed are actively engaged in the BZFlag community as core developers, apprentice developers, web service developers, and network operators.  Mentors were selected from among our core community of project contributors that are actively engaged on a day-to-day basis .  All mentors needed to have gained enough rapport and trust with those already actively involved to the extent that they&#039;ve been entrusted with source code access, decision-making authority, and that have sustained activity for months or years on end.  The mentors also needed to show competency in the BZFlag source code, our project directions, our operating philosophies, and a basic familiarity with our social dynamic.&lt;br /&gt;
&lt;br /&gt;
Several of our apprentice developers were specifically chosen due to the unique perspective that they bring to the development processes.  Those individuals help bridge the player-developer gap as those new developers tend to come straight out of the player community and/or are heavily involved and familiar with the needs of our users.  They form a critical part of our technical support infrastructure.&lt;br /&gt;
&lt;br /&gt;
Cumulatively, the #bzflag IRC channel provides even more insight, interaction, and mentoring support as our community spans several domains of software development expertise including game development, computer-aided design, computer-aided machining, software testing, web development, computer graphics development, systems and kernel development, and general application development.  As our channel is constantly (24/7) engaged in user and developer support to a global community, the channel will be our predominant means of interaction for all mentors and students.  Each individual listed can also dedicate a minimum of 10 hours a week on average with an understanding that there are additional demands on their time at the start, midterm, and final evaluation periods of the program.&lt;br /&gt;
&lt;br /&gt;
= Has your group participated previously? If so, please summarize your involvement and any past successes and failures. =&lt;br /&gt;
&lt;br /&gt;
Yes, we participated for the first time in 2007 and again in 2008.  We quickly found that being involved in GSoC requires considerable time and resources necessitating massive amounts of coordination, communication, and progress tracking.  Our developers spent many hours mentoring students, reviewing their code, and discussing implementation details.&lt;br /&gt;
&lt;br /&gt;
We found that being involved in GSoC encouraged our community to become more organized and accountable than usual.  It also instigated other developer activity and interest throughout our community, particularly amongst players that were eagerly interested in trying out the new facilities being developed by the students.&lt;br /&gt;
&lt;br /&gt;
The experience taught our mentors a great deal in terms of managing different personalities, expectations we had of their abilities to work with minimal process overhead, and how to respond quickly and effectively to inadequate levels of effort.  In our view, we did very well in managing our students but will need to dedicate even more time and attention to the students if we are allowed to participate again.  We intend to focus more on integrating the students quickly, engaging them more in the design and testing process throughout development, and making sure they follow our development criteria from start to finish so that we can help establish them as long-term developers in our community.&lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing contributors? = &lt;br /&gt;
&lt;br /&gt;
If a student&#039;s interest or availability to participate in the summer project seems to be diverging or otherwise waning, efforts will be made to motivate the student through discussions and hands-on interactive development intended to stimulate their progress.  Being a 3D graphics-oriented game, we have the benefit of most tasks actually resulting in something &amp;quot;fun&amp;quot; that rather easily captures and maintains interest.  However, should the student&#039;s focus still remain diminished or should the student unexpectedly disappear without notice, the administrator will relay this status with Google after repeated attempts to contact the student fail.&lt;br /&gt;
&lt;br /&gt;
Also, as a learned measure from last year, the students are going to be required to make very frequent commits.  If they&#039;re not committing, then they are not working.  At least they won&#039;t be working effectively.  Having them commit frequently gives us a very good estimate of their activity level as well as where they are in the development process.  We strongly adhere to &amp;quot;commit early, commit often&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If the student is not around or is not working as much as they need to be, we will have discussions with them, see what&#039;s going on, and do so proactively.  We learned from one of our students last year when they were in serious danger of failing that a simple change in their accountability can have a massive impact on their motivation.  We will strive to recognize our students&#039; personalities quickly, so that we can impose as much or as little process overhead as it required for them to be effective developers.  Additional process requirements (such as daily or weekly reports and commit quotas) may then be imposed for students that slip consistently fall behind schedule.&lt;br /&gt;
&lt;br /&gt;
Similarly, by interacting with the students on a daily basis and preferably by having them be joined to our IRC channel while they are working on BZFlag, it allows mentors to keep a careful eye on all student progress and readily discuss issues with them.  As is done for any developer, having them be readily available for interactive discussion on IRC frequently helps avoid misunderstandings, disagreements, and frustrations and at worst makes any issues apparent as soon as possible.  The IRC channel is the hub of our primary development activity providing source commit announcements, developer access, user insight, interactive discussions, and near immediate response to questions and comments.&lt;br /&gt;
&lt;br /&gt;
Other than that, the formula for dealing with disappearing students really just boils down to communication.  It&#039;s a very organic process and we don&#039;t believe that there is one answer for all students.  The measures described above help us focus on having the most effective communication that works with our development team but will necessarily be tailored to each student individually.  Issues that we cannot resolve will be brought forward to Google for guidance, as was done last year. &lt;br /&gt;
&lt;br /&gt;
= What is your plan for dealing with disappearing members? = &lt;br /&gt;
&lt;br /&gt;
BZFlag contains an active community that is constantly engaged in providing assistance for any level of questions whether they are introductory user support questions or technical source code development questions.  The predominance of BZFlag&#039;s active software development interactions are discussed *entirely* on the #bzflag Freenode IRC channel.  We require that developers participate and interact on the IRC channel with other developers to their fullest capacity, and preferably without them relying on any single individual so that they may receive assistance and perspective from a variety of developers (it&#039;s not like all our developers always agree and, ultimately, our meritocracy prevails over decisions and directions).&lt;br /&gt;
&lt;br /&gt;
One of the main reasons for requiring developers to be on the IRC channel is to help mitigate issues whereby a student might encounter difficulties interacting with any particular individual.  It also exposes them to all developers so that they can become more quickly in-tune with which developers are presently active and the politics of our development practices.&lt;br /&gt;
&lt;br /&gt;
The students will be encouraged to interact on the IRC channel at all times to provide a continued on-going dialog with the other BZFlag developers as well so that everyone is informed of progress and development directions.  If a given mentor is not responding to the student, whether intentional or incapable, or if a mentor is unreachable for more than a couple days, one of several backup mentors are available to step in.&lt;br /&gt;
&lt;br /&gt;
Should some situation arise that incapacitates a mentor from being able to participate, several backup mentors are available that can be assigned to the student on the spot and immediately pick up where other mentors leave off.  Several of our mentors and administrators also know each other in person and have physical access to one another, so we can go smack them if they&#039;re not participating effectively or should they try to disappear online.  That said, all mentors selected based on their activity this year to help minimize any issues.&lt;br /&gt;
&lt;br /&gt;
This year, we have also set up a mentor&#039;s blog to help our mentors make announcements more effectively and to provide suggestions for other GSoC projects.  This blog has already shown to be rather effective in making GSoC-specific announcements and for coordinating information amongst the mentors.  Once the students get started with their projects, we also plan to use the blog as a centralized information resource for developers to see the latest commits from the students and the status of their project progress.&lt;br /&gt;
&lt;br /&gt;
= What steps will you take to encourage contributors to interact with your community before, during, and after the program? =&lt;br /&gt;
&lt;br /&gt;
Being a game, i.e. an entertainment application, we have a somewhat unique benefit of actually being enjoyable before, during, and after the student&#039;s participation in the program and are even often &amp;quot;addictive&amp;quot;.  Most people enjoy playing BZFlag and often after they play the game for a little while, they can &amp;quot;get hooked&amp;quot; on the game.  &amp;quot;Quick to learn, difficult to master&amp;quot; is our motto and this holds true both in the game and for development.  Once new developers see the impact they&#039;re having on such a large user community, they quickly become addicted to the development aspects and making things more enjoyable for our players.  We encourage our developers to play so that they understand the needs of the game and the needs of the existing player community in addition to becoming familiar with how various portions of the source code relate to behaviors in the game.&lt;br /&gt;
&lt;br /&gt;
Before the program, we have a specific checklist of tasks that we have prepared to give them definitive actions that they need to perform.  These steps include introducing themselves to our IRC channel, having a Sourceforge account, becoming familiar with Subversion if they are not already, checking out the BZFlag sources, compiling their own version of BZFlag, playing the game with that version, registering with our global account services, becoming familiar with our websites and on-line services, and publishing their list of goals milestones for the community to see. &lt;br /&gt;
&lt;br /&gt;
As our IRC infrastructure and developer operations are already well established, we can (and frequently do) readily point new developer interests to our documentation and engage them in discussion.  We have lots of existing documentation, web infrastructure, and network resources available to get new developers familiar and interested in development directions quickly.  Given our involvement with GSoC last year, we now also have an established mindset of successful interaction criteria that gets students quickly involved in our user community so that they feel like part of the family.&lt;br /&gt;
&lt;br /&gt;
One of the interactions that worked very well last year was having the students directly interact with the users, letting them represent their efforts, and having their efforts be strongly supported and promoted by the other developers.  We intend to take additional steps this year to continuously integrate the students&#039; code throughout the program and work on introducing our player community to the features being developed even more early on.  The goal will be to instill a sense of belonging and a sense of appreciation for the hard-work they are putting into their code.&lt;br /&gt;
&lt;br /&gt;
= What will you do to ensure that your accepted contributors stick with the project after the program concludes? =&lt;br /&gt;
&lt;br /&gt;
It is our responsibility to not neglect or abandon the students.  We have to give them the time and attention that they deserve, and we need to share with the students the respect and appreciation we have of their efforts so that they remain interested and involved.  BZFlag is fortunate to have not had any significant issues with attrition; many of our developers tend to remain involved with the project for a long time.  There is natural turn-over as interests shift and general fluctuations from year to year, but we sustain a relatively stable development rate and that is in no small part due to our interactive and friendly development environment.&lt;br /&gt;
&lt;br /&gt;
New developers are often enticed to stick around and contribute simply because we actively promote their changes to the user community when releases are made, and the user community responds vocally to just about every single modification that gets made to the game no matter how small.  For the topics that we are soliciting ideas, the efforts of the student have the ability to make a major impact on the game that will be exceedingly visible, and will encourage continued development not only by the student and other developers as well.  We will necessarily encourage students to remain involved with the project by welcoming them to our development team, integrating them as quickly as possible, giving them development responsibilities, and showing them the rewards and impact of their efforts.&lt;br /&gt;
&lt;br /&gt;
It&#039;s our job to encourage their passion for BZFlag development long after GSoC concludes.&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=List_Server_Usage_Policy&amp;diff=5541</id>
		<title>List Server Usage Policy</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=List_Server_Usage_Policy&amp;diff=5541"/>
		<updated>2009-03-05T21:06:39Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Policy */  fixed unfortunate typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The list server usage policy describes the intended use of the BZFlag [[List Server]] service that is provided by the project administration. It also describes the acceptable behavior for the users of the system.&lt;br /&gt;
&lt;br /&gt;
==Policy==&lt;br /&gt;
The BZFlag List Server provides listing services along with other game-related functionality to the BZFlag players and server owners at no charge. Use of the list server, however, is provided under stipulations of what is fair and reasonable for being non-disruptive to the game and our community. The primary goal of the list server is to support the community and the game project by providing a list of games for players to use. Abuses of the list server that do not promote this same goal will not be tolerated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For players the list server provides a list of compatible internet games, public service messages, and an account verification system that can tie a player to their BZFlag discussion forum account ( also known as their &#039;Global Login&#039; and their BZBB account ). All interactions with the list server are potentially logged or monitored. All information sent to the list server is kept confidential and is only used by the project staff for administration and development purposes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Players who are disruptive or fraudulent to any of BZFlag&#039;s public services including (but not limited to) project and league services, multiple servers, or large groups of individuals may be denied access to the public list servers at any time, and at the sole discretion of the BZFlag list server administrators. Players who have been known to cheat or abuse the game on multiple public servers may also be denied access. Similarly, anyone engaging in denial-of-service attacks or are otherwise detrimentally impacting the public services may have their access blocked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For server owners, the list server provides public listing of any number of BZFlag game server ([[BZFS]]) instances, as well as token and permission group verification for global login services. No player personal information is sent from the list server to the game servers other than the player&#039;s callsign and their global login status.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Server owners who run servers that are cheat servers ( publicly advertised or not ), use disruptive server modifications, use &amp;quot;bot&amp;quot; clients to artificially inflate their list position, or have disruptive or slanderous names or descriptions may be removed from the list and/or have access to other BZFlag public services revoked.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The project itself does not have anything to do with exactly how specific servers are run or administered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is important to understand that usage of public services is provided to the community at the project&#039;s sole discretion. Neither the data contained in it, nor the service of hosting it is in any way &amp;quot;open source&amp;quot; and no user has any inherent &amp;quot;right&amp;quot; to use any of the public services. The project administrators provide these services for the betterment of the community and abuse will not be tolerated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The project reserves the right to allow or disallow access to any public or project service to any user at any time without notice and without reason.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[List Server]]&lt;br /&gt;
&lt;br /&gt;
[[Global Registration]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Public Services]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Administrator&amp;diff=5445</id>
		<title>Administrator</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Administrator&amp;diff=5445"/>
		<updated>2009-02-10T16:43:27Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Becoming an Admin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An [[administrator]] is usually an owner of the server, or are trusted friends of the owner who enforce server rules to make the most of the game. They are there to protect the good players, and get rid of rule breakers, depending on the server rules.&lt;br /&gt;
The [[administrator]] may be able to start/shutdown the server and edit the many options of it, depending on their [[Server Permissions|permissions]]. &lt;br /&gt;
&lt;br /&gt;
==Display==&lt;br /&gt;
On the [[scoreboard]], most admins have an &#039;&#039;&#039;@&#039;&#039;&#039; sign next to their name. There is a way, through permissions, for an admin to appear as only a regular registered user with a &#039;&#039;&#039;+&#039;&#039;&#039; and these are called &#039;&#039;Hidden Admins&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Permissions==&lt;br /&gt;
Administrators can run many [[Slash Commands | commands]] on the server depending on the [[Server Permissions|permissions]] given to them by the server owner, they may include the following:&lt;br /&gt;
*/kick&lt;br /&gt;
*/ban&lt;br /&gt;
*/banlist&lt;br /&gt;
*/mute&lt;br /&gt;
*/say&lt;br /&gt;
*/set&lt;br /&gt;
*/flag (reset,give/take)&lt;br /&gt;
*The list continues... more in [[Slash Commands]]&lt;br /&gt;
&lt;br /&gt;
There are 3 common types of Administrators:&lt;br /&gt;
*Cop (basic administrator)&lt;br /&gt;
*Hidden-admin (administrator that appears as a regular player)&lt;br /&gt;
*Admin (regular administrator)&lt;br /&gt;
&lt;br /&gt;
==Becoming an Admin==&lt;br /&gt;
Perhaps the number one rule of becoming a server admin is to &#039;&#039;&#039;never ask to become one&#039;&#039;&#039;. Most owners frown upon this and will not consider you for future promotions. You do not need to bring anything to their attention, if they need an admin, they will ask someone if they would like to become one.&lt;br /&gt;
&lt;br /&gt;
Server owners usually only let trusted people become server admins. People who help others, play a lot at the server(s), or can be trusted may be asked to be admin on a server. Just play nice, be friendly and see what happens!&lt;br /&gt;
&lt;br /&gt;
==Being a Good Admin==&lt;br /&gt;
A good admin exhibits several traits.  A good admin enforces and follows the rules set by the server owner, and does not interfere with honest game play. They also are always vigilant for [[Known Cheats|cheaters]].  The admin supports the server and promotes good and courteous gameplay. When you find a disruptive player, don&#039;t kick or ban right away. If they are using abusive language, then mute them, don&#039;t kick them. If they log out, and then back in to avoid the mute, then kick them. Be sure to only kick, mute, or ban someone if they are breaking the specific server rules.&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5444</id>
		<title>Global Registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5444"/>
		<updated>2009-02-10T16:27:34Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Security */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
Global Registration is the link between the [[BZFlag Forums]] and the BZFlag [[List Server]]. This link allows players to use their forum users names as call signs in game, and receive a number of in game services tied to that account, such as;&lt;br /&gt;
&lt;br /&gt;
* exclusive use of the name on most servers&lt;br /&gt;
* the ability to remove or &amp;quot;ghost&amp;quot; unregistered users attempting to use your existing name.&lt;br /&gt;
* access to public groups that many servers use to grant in game permissions.&lt;br /&gt;
&lt;br /&gt;
==Registration and Account Management==&lt;br /&gt;
Currently registration and account management is handled by the [[BZFlag Forums]], but may be split off to a separate system at a later date. Users wishing to create a global account should visit the forums and create a new account. Each user account will require a unique e-mail address.&lt;br /&gt;
&lt;br /&gt;
=== Activation ===&lt;br /&gt;
After registration is complete, the user will receive a verification e-mail to ensure that all contact information is correct. The user must follow the instruction in the e-mail before the account will be made active and can be used.&lt;br /&gt;
&lt;br /&gt;
===Username and Password Changes===&lt;br /&gt;
The user can use the &amp;quot;profile&amp;quot; page on the fourms to modify any of the information about the account, including username and password. It his highly recomended that users keep their passwords secure. &lt;br /&gt;
&lt;br /&gt;
===Password Retrieval===&lt;br /&gt;
In the unfortunate event that a user forgets their password, they can use the &amp;quot;forgot password&amp;quot; link on the fourm login page to have the system e-mail them a new password.&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
Passwords are encrypted and stored only in the registration system&#039;s database, they are never sent out to game servers, or any other player. The list server uses a temporary token system when communicating with game servers to protect the user&#039;s private information.&lt;br /&gt;
&lt;br /&gt;
Weak passwords based on simple numeric strings (1234) or dictionary words (dog, god, mom ) are easily guessable and are not recommended. Users are responsible for keeping their own passwords secure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By default, BZFlag saves your game settings when you exit the program. If you entered your password in the &amp;quot;Join Game&amp;quot; menu, it will be saved in plain text in the configuration file along with other settings. If you share this configuration file with anyone (for debugging, etc) they will have your password!&lt;br /&gt;
&lt;br /&gt;
==In Game services==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
To use your global account in game, a user must enter their forum username as the callsign, and enter their forum password into the appropriate fields in the &amp;quot;Join Game&amp;quot; menu in the game client.&lt;br /&gt;
&lt;br /&gt;
===Callsign Markers===&lt;br /&gt;
In-game, when a registered callsign has been authenticated, the callsign is prefixed with a &#039;+&#039; symbol as displayed on the user&#039;s screen. &lt;br /&gt;
&lt;br /&gt;
If a registered callsign is used, but failed authentication for any reason, it is displayed with a &#039;-&#039; symbol prefixed.&lt;br /&gt;
&lt;br /&gt;
The callsign of the game server&#039;s administrator ( with kick, ban and other powers ) is prefixed with a &#039;@&#039; symbol when they are logged into the game. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
  tankdriver1 : a player with an unregistered callsign&lt;br /&gt;
 +tankdriver2 : a player with a registered callsign that has been authenticated&lt;br /&gt;
 -tankdriver3 : a player with a registered callsign that has &#039;&#039;not&#039;&#039; been authenticated&lt;br /&gt;
 @tankdriver4 : a player who has administrative rights on the game server&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[List Server Usage Policy]]&lt;br /&gt;
&lt;br /&gt;
[[List Server]]&lt;br /&gt;
&lt;br /&gt;
[[BZFS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Public Services]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5443</id>
		<title>Global Registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5443"/>
		<updated>2009-02-10T16:26:58Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Security */  password saved in config.cfg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
Global Registration is the link between the [[BZFlag Forums]] and the BZFlag [[List Server]]. This link allows players to use their forum users names as call signs in game, and receive a number of in game services tied to that account, such as;&lt;br /&gt;
&lt;br /&gt;
* exclusive use of the name on most servers&lt;br /&gt;
* the ability to remove or &amp;quot;ghost&amp;quot; unregistered users attempting to use your existing name.&lt;br /&gt;
* access to public groups that many servers use to grant in game permissions.&lt;br /&gt;
&lt;br /&gt;
==Registration and Account Management==&lt;br /&gt;
Currently registration and account management is handled by the [[BZFlag Forums]], but may be split off to a separate system at a later date. Users wishing to create a global account should visit the forums and create a new account. Each user account will require a unique e-mail address.&lt;br /&gt;
&lt;br /&gt;
=== Activation ===&lt;br /&gt;
After registration is complete, the user will receive a verification e-mail to ensure that all contact information is correct. The user must follow the instruction in the e-mail before the account will be made active and can be used.&lt;br /&gt;
&lt;br /&gt;
===Username and Password Changes===&lt;br /&gt;
The user can use the &amp;quot;profile&amp;quot; page on the fourms to modify any of the information about the account, including username and password. It his highly recomended that users keep their passwords secure. &lt;br /&gt;
&lt;br /&gt;
===Password Retrieval===&lt;br /&gt;
In the unfortunate event that a user forgets their password, they can use the &amp;quot;forgot password&amp;quot; link on the fourm login page to have the system e-mail them a new password.&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
Passwords are encrypted and stored only in the registration system&#039;s database, they are never sent out to game servers, or any other player. The list server uses a temporary token system when communicating with game servers to protect the user&#039;s private information.&lt;br /&gt;
&lt;br /&gt;
Weak passwords based on simple numeric strings (1234) or dictionary words (dog, god, mom ) are easily guessable and are not recommended. Users are responsible for keeping their own passwords secure.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
By default, BZFlag saves your game settings when you exit the program. If you entered your password in the in the &amp;quot;Join Game&amp;quot; menu, it will be saved in plain text in the configuration file along with other settings. If you share this configuration file with anyone (for debugging, etc) they will have your password!&lt;br /&gt;
&lt;br /&gt;
==In Game services==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
To use your global account in game, a user must enter their forum username as the callsign, and enter their forum password into the appropriate fields in the &amp;quot;Join Game&amp;quot; menu in the game client.&lt;br /&gt;
&lt;br /&gt;
===Callsign Markers===&lt;br /&gt;
In-game, when a registered callsign has been authenticated, the callsign is prefixed with a &#039;+&#039; symbol as displayed on the user&#039;s screen. &lt;br /&gt;
&lt;br /&gt;
If a registered callsign is used, but failed authentication for any reason, it is displayed with a &#039;-&#039; symbol prefixed.&lt;br /&gt;
&lt;br /&gt;
The callsign of the game server&#039;s administrator ( with kick, ban and other powers ) is prefixed with a &#039;@&#039; symbol when they are logged into the game. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
  tankdriver1 : a player with an unregistered callsign&lt;br /&gt;
 +tankdriver2 : a player with a registered callsign that has been authenticated&lt;br /&gt;
 -tankdriver3 : a player with a registered callsign that has &#039;&#039;not&#039;&#039; been authenticated&lt;br /&gt;
 @tankdriver4 : a player who has administrative rights on the game server&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[List Server Usage Policy]]&lt;br /&gt;
&lt;br /&gt;
[[List Server]]&lt;br /&gt;
&lt;br /&gt;
[[BZFS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Public Services]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5442</id>
		<title>Global Registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5442"/>
		<updated>2009-02-10T16:18:57Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
Global Registration is the link between the [[BZFlag Forums]] and the BZFlag [[List Server]]. This link allows players to use their forum users names as call signs in game, and receive a number of in game services tied to that account, such as;&lt;br /&gt;
&lt;br /&gt;
* exclusive use of the name on most servers&lt;br /&gt;
* the ability to remove or &amp;quot;ghost&amp;quot; unregistered users attempting to use your existing name.&lt;br /&gt;
* access to public groups that many servers use to grant in game permissions.&lt;br /&gt;
&lt;br /&gt;
==Registration and Account Management==&lt;br /&gt;
Currently registration and account management is handled by the [[BZFlag Forums]], but may be split off to a separate system at a later date. Users wishing to create a global account should visit the forums and create a new account. Each user account will require a unique e-mail address.&lt;br /&gt;
&lt;br /&gt;
=== Activation ===&lt;br /&gt;
After registration is complete, the user will receive a verification e-mail to ensure that all contact information is correct. The user must follow the instruction in the e-mail before the account will be made active and can be used.&lt;br /&gt;
&lt;br /&gt;
===Username and Password Changes===&lt;br /&gt;
The user can use the &amp;quot;profile&amp;quot; page on the fourms to modify any of the information about the account, including username and password. It his highly recomended that users keep their passwords secure. &lt;br /&gt;
&lt;br /&gt;
===Password Retrieval===&lt;br /&gt;
In the unfortunate event that a user forgets their password, they can use the &amp;quot;forgot password&amp;quot; link on the fourm login page to have the system e-mail them a new password.&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
Passwords are encrypted and stored only in the registration system&#039;s database, they are never sent out to game servers, or any other player. The list server uses a temporary token system when communicating with game servers to protect the user&#039;s private information.&lt;br /&gt;
&lt;br /&gt;
Weak passwords based on simple numeric strings (1234) or dictionary words (dog, god, mom ) are easily guessable and are not recommended. Users are responsible for keeping their own passwords secure.&lt;br /&gt;
&lt;br /&gt;
==In Game services==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
To use your global account in game, a user must enter their forum username as the callsign, and enter their forum password into the appropriate fields in the &amp;quot;Join Game&amp;quot; menu in the game client.&lt;br /&gt;
&lt;br /&gt;
===Callsign Markers===&lt;br /&gt;
In-game, when a registered callsign has been authenticated, the callsign is prefixed with a &#039;+&#039; symbol as displayed on the user&#039;s screen. &lt;br /&gt;
&lt;br /&gt;
If a registered callsign is used, but failed authentication for any reason, it is displayed with a &#039;-&#039; symbol prefixed.&lt;br /&gt;
&lt;br /&gt;
The callsign of the game server&#039;s administrator ( with kick, ban and other powers ) is prefixed with a &#039;@&#039; symbol when they are logged into the game. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
  tankdriver1 : a player with an unregistered callsign&lt;br /&gt;
 +tankdriver2 : a player with a registered callsign that has been authenticated&lt;br /&gt;
 -tankdriver3 : a player with a registered callsign that has &#039;&#039;not&#039;&#039; been authenticated&lt;br /&gt;
 @tankdriver4 : a player who has administrative rights on the game server&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[List Server Usage Policy]]&lt;br /&gt;
&lt;br /&gt;
[[List Server]]&lt;br /&gt;
&lt;br /&gt;
[[BZFS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Public Services]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5441</id>
		<title>Global Registration</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Global_Registration&amp;diff=5441"/>
		<updated>2009-02-10T16:15:39Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Callsign Markers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
Global Registration is the link between the [[BZFlag Forums]] and the BZFlag [[List Server]]. This link allows players to use their forum users names as call signs in game, and receive a number of in game services tied to that account, such as;&lt;br /&gt;
&lt;br /&gt;
* exclusive use of the name on most servers&lt;br /&gt;
* the ability to remove or &amp;quot;ghost&amp;quot; unregistered users attempting to use your existing name.&lt;br /&gt;
* access to public groups that many servers use to grant in game permissions.&lt;br /&gt;
&lt;br /&gt;
==Registration and Account Management==&lt;br /&gt;
Currently registration and account management is handled by the [[BZFlag Forums]], but may be split off to a separate system at a later date. Users wishing to create a global account should visit the forums and create a new account. Each user account will require a unique e-mail address.&lt;br /&gt;
&lt;br /&gt;
=== Activation ===&lt;br /&gt;
After registration is complete, the user will receive a verification e-mail to ensure that all contact information is correct. The user must follow the instruction in the e-mail before the account will be made active and can be used.&lt;br /&gt;
&lt;br /&gt;
===Username and Password Changes===&lt;br /&gt;
The user can use the &amp;quot;profile&amp;quot; page on the fourms to modify any of the information about the account, including username and password. It his highly recomended that users keep their passwords secure. &lt;br /&gt;
&lt;br /&gt;
===Password Retrieval===&lt;br /&gt;
In the unfortunate event that a user forgets their password, they can use the &amp;quot;forgot password&amp;quot; link on the fourm login page to have the system e-mail them a new password.&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
Passwords are encrypted and stored only in the registration system&#039;s database, they are never sent out to game servers, or any other player. The list server uses a temporary token system when communicating with game servers to protect the user&#039;s private information.&lt;br /&gt;
&lt;br /&gt;
Weak passwords based on simple numeric strings (1234) or dictionary words (dog, god, mom ) are easily guessable and are not recommended. Users are responsible for keeping their own passwords secure.&lt;br /&gt;
&lt;br /&gt;
==In Game services==&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
To use your global account in game, a user must simply enter their full forum username as the callsign, and enter their forum password into the appropriate fields in the &amp;quot;Join Game&amp;quot; menu in the game client.&lt;br /&gt;
&lt;br /&gt;
===Callsign Markers===&lt;br /&gt;
In-game, when a registered callsign has been authenticated, the callsign is prefixed with a &#039;+&#039; symbol as displayed on the user&#039;s screen. &lt;br /&gt;
&lt;br /&gt;
If a registered callsign is used, but failed authentication for any reason, it is displayed with a &#039;-&#039; symbol prefixed.&lt;br /&gt;
&lt;br /&gt;
The callsign of the game server&#039;s administrator ( with kick, ban and other powers ) is prefixed with a &#039;@&#039; symbol when they are logged into the game. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
  tankdriver1 : a player with an unregistered callsign&lt;br /&gt;
 +tankdriver2 : a player with a registered callsign that has been authenticated&lt;br /&gt;
 -tankdriver3 : a player with a registered callsign that has &#039;&#039;not&#039;&#039; been authenticated&lt;br /&gt;
 @tankdriver4 : a player who has administrative rights on the game server&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[List Server Usage Policy]]&lt;br /&gt;
&lt;br /&gt;
[[List Server]]&lt;br /&gt;
&lt;br /&gt;
[[BZFS]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Public Services]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Callsign&amp;diff=5440</id>
		<title>Callsign</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Callsign&amp;diff=5440"/>
		<updated>2009-02-10T16:11:41Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: redundant, redirect to Global Registration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Global Registration]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Callsign&amp;diff=5439</id>
		<title>Callsign</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Callsign&amp;diff=5439"/>
		<updated>2009-02-10T16:05:21Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Global Registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The callsign is the name of a player in the game. It is also known as the player&#039;s username, or handle. Every player on a BZFlag server must have a unique callsign.&lt;br /&gt;
&lt;br /&gt;
==In Game Menu==&lt;br /&gt;
The callsign is entered by the user on the join game screen. The callsign can have a maximum length of 32 characters.&lt;br /&gt;
&lt;br /&gt;
==Global Registration==&lt;br /&gt;
When using [[Global Registration]], the user&#039;s in game callsign and password must match their forum username and password. Players can play on some servers without registering, but registering allows the player to reserve the given callsign and on some servers more permisssions (such as chat or allowing polls).&lt;br /&gt;
&lt;br /&gt;
==Display of callsign==&lt;br /&gt;
In-game, when a registered callsign has been authenticated, the callsign is prefixed with a &#039;+&#039; symbol as displayed on the user&#039;s screen. If a registered callsign is used, but failed authentication for any reason, it is display with a &#039;-&#039; symbol prefixed. The callsign of the game server&#039;s administrator is prefixed with a &#039;@&#039; symbol when they are logged into the game. &lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
  tankdriver1 : a player with an unregistered callsign&lt;br /&gt;
 +tankdriver2 : a player with a registered callsign that has been authenticated&lt;br /&gt;
 -tankdriver3 : a player with a registered callsign that has &#039;&#039;not&#039;&#039; been authenticated&lt;br /&gt;
 @tankdriver4 : a player who has administrative rights on the game server&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5396</id>
		<title>Dead Reckoning</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5396"/>
		<updated>2009-02-04T20:42:09Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dead Reckoning (DR) is a method to find the current position by measuring the course and distance from a past known point.  It is used in Distributed Interactive Simulation to conserve bandwidth in the communication between two different network entities, when exchanging position information of a moving object. It starts with a kinematic model of the object.&lt;br /&gt;
&lt;br /&gt;
As a simple example, entity A controls an object which is a &amp;quot;tank&amp;quot;. A second entity (B) receives position updates for the tank from A.  A updates the tank&#039;s position continuously as it changes, taking into account the environment, the tank&#039;s control inputs, and the (virtual) physics laws that the game imposes. A is the master (driver) of the tank.  B recreates the position and orientation of A&#039;s Tank locally using data provided by A. B&#039;s representation of the tank is a slave.&lt;br /&gt;
&lt;br /&gt;
In a network with no delay and very high bandwidth, A can communicate the tank position and orientation to B any time it updates its own internal tank representation. B would update its internal copy of the tank, using the newest data to have arrived. In the real, inter-networked world, this is impractical because bandwidth is limited.&lt;br /&gt;
&lt;br /&gt;
To conserve bandwidth, A and B could share a Dead Reckoning (DR) model of the tank. Instead of sending position updates any time it changes, A compares the (new) current tank position to a predicted tank position that is calculated using the DR model. If the &amp;quot;real&amp;quot; and predicted object representations are the &amp;quot;close enough&amp;quot; (within a certain tolerance of being the same) it does not send an update message to B. With no update received from A, B uses its own DR model to calculate the position of the tank. This calculated position is intended to be the actual current tank position with no more error than is allowed by the tolerance. However, the true tank position *is* updated periodically at a low rate, to allow for new player&#039;s entering in the game to become in sync. To enable all players&#039; DR models to remain synchronized, DR model parameters are sent with the update messages.  This way, position updates are only sent when the present position cannot be accurately derived by the model data, reducing the amount of network bandwidth used.&lt;br /&gt;
&lt;br /&gt;
In a fixed [[lag]] network, B has the &amp;quot;correct&amp;quot; representation of the object and its history, but delayed by the network lag. Lag can be at least partially compensated for by adding a measure of the lag to the DR model.&lt;br /&gt;
&lt;br /&gt;
In a network with significant [[jitter]], the fastest packets arrive with a delay that is near the minimum path route, while others arrive later.  The tank updates from A to B not only arrive delayed, but with a change in that delay, causing effects of time compression and expansion that A is not aware of. DR will alter B&#039;s perception of A&#039;s tank because simple lag compensation is not able to keep the models in sync. This can result in the remote (to B) tank suddenly &amp;quot;jerking&amp;quot; to a new position when A sends a periodic update.&lt;br /&gt;
&lt;br /&gt;
The examples most disruptive to game-play occur when A&#039;s tank is not under the influence of its control inputs, as when jumping or falling. In these cases, the world physics, the DR model and relatively few periodic updates from A determine the tank&#039;s trajectory.  With a jump as an example, A might only send updates at the start of the jump, halfway through the rising arc, at the top, halfway through the descent and then upon landing. If the lag varies significantly between these updates, the DR model makes invalid predictions which are &amp;quot;corrected&amp;quot; upon each update received, which force the tank to a new position.  The visual effect at player B&#039;s perspective is a tank that rapidly jumps between different positions and trajectories.&lt;br /&gt;
&lt;br /&gt;
As with lag, jitter compensation can be incorporated into the DR model. However, by its nature, jitter is rarely constant and remains a challenge to overcome completely.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5395</id>
		<title>Dead Reckoning</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5395"/>
		<updated>2009-02-04T20:31:37Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: changed to 3rd person. Revisedfinal paragraph for clarity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dead Reckoning (DR) is a method to find the current position by measuring the course and distance from a past known point.  It is used in Distributed Interactive Simulation to conserve bandwidth in the communication between two different network entities, when exchanging position information of a moving object. It starts with a kinematic model of the object.&lt;br /&gt;
&lt;br /&gt;
As a simple example, entity A is controlling an object which is a &amp;quot;tank&amp;quot;. A second entity (B) is receiving position updates for the tank.  A is updating the tank&#039;s position continuously, taking into account the environment, the tank&#039;s control inputs, and the (virtual) physics laws that the game imposes. &amp;quot;Continuously&amp;quot; means at some periodic rate. A is the master (driver) of the tank.  B recreates the position and orientation of A&#039;s Tank locally using data provided by A. B&#039;s representation of the tank is a slave.&lt;br /&gt;
&lt;br /&gt;
In a network with no delay, A to communicate the tank position and orientation to B any time it updates its own internal tank representation. B would use these messages to update its internal copy of the tank, using the newest data to have arrived. In the real, inter-networked world, this is impractical because bandwidth is limited.&lt;br /&gt;
&lt;br /&gt;
To conserve bandwidth, A and B could share a Dead Reckoning (DR) model of the tank. Instead of sending position updates any time it changes, A compares the (new) current tank position to a predicted tank position that is calculated using the DR model. If the &amp;quot;real&amp;quot; and predicted object representations are the &amp;quot;close enough&amp;quot; (within a tolerance of being the same) it does not send an update message to B. With no update received from A, B uses its own DR model to calculate the position of the tank. This calculated position is intended to be the actual current tank position with no more error than is allowed by the tolerance. However, the true tank position *is* updated periodically at a low rate, to allow for new player&#039;s entering in the game to become in sync. To enable all players&#039; DR models to remain synchronized, DR model parameters are sent with the update messages.  This way, position updates are only sent when the present position cannot be accurately derived by the model data, reducing the amount of network bandwidth used.&lt;br /&gt;
&lt;br /&gt;
In a fixed [[lag]] network, B has the &amp;quot;correct&amp;quot; representation of the object and its history, but delayed by the network lag. Lag can be at least partially compensated for by adding a measure of the lag to the DR model.&lt;br /&gt;
&lt;br /&gt;
In a network with significant [[jitter]], the fastest packets arrive with a delay that is near the minimum path route, while others arrive later.  The tank updates from A to B not only arrive delayed, but with a change in that delay, causing effects of time compression and expansion that A is not aware of. DR will alter B&#039;s perception of A&#039;s tank because simple lag compensation is not able to keep the models in sync. This can result in the remote (to B) tank suddenly &amp;quot;jerking&amp;quot; to a new position when A sends a periodic update.&lt;br /&gt;
&lt;br /&gt;
The examples most disruptive to game-play occur when A&#039;s tank is not under the influence of its control inputs, as when jumping or falling. In these cases, the world physics, the DR model and relatively few periodic updates from A determine the tank&#039;s trajectory.  With a jump as an example, A might only send updates at the start of the jump, halfway through the rising arc, at the top, halfway through the descent and then upon landing. If the lag varies significantly between these updates, the DR model makes invalid predictions which are &amp;quot;corrected&amp;quot; upon each update received, which force the tank to a new position.  The visual effect at player B&#039;s perspective is a tank that rapidly jumps between different positions and trajectories.&lt;br /&gt;
&lt;br /&gt;
As with lag, jitter compensation can be incorporated into the DR model. However, by its nature, jitter is rarely constant and remains a challenge to overcome completely.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5385</id>
		<title>Dead Reckoning</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5385"/>
		<updated>2009-02-04T19:07:08Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dead Reckoning (DR) is a method to find the current position by measuring the course and distance from a past known point.  It is used in Distributed Interactive Simulation to conserve bandwidth in the communication between two different network entities, when exchanging position information of a moving object. It starts with a kinematic model of the object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s explain with a simple case including an object which we&#039;ll call &amp;quot;Tank&amp;quot; that is owned by entity (A). There is a second entity (B) that should receive position updates for Tank.  A is updating Tank&#039;s position continuously, taking into account the environment, the Tank driver&#039;s control inputs, and the physics (virtual) laws that the game imposes. &amp;quot;Continuously&amp;quot; means at some periodic rate. A is the master (driver) of the tank.  B recreates the position and orientation of A&#039;s Tank locally using data provided by A. B&#039;s tank is a slave.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s first assume a 0 delay network.&lt;br /&gt;
&lt;br /&gt;
One approach could be for A to communicate the tank position and orientation to B any time it updates its own internal tank representation. B uses these messages to update its internal copy of the tank, using the newest data to have arrived. Unfortunately, this wastes bandwidth!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To conserve bandwidth, A and B could share a Dead Reckoning (DR) model of the tank.&lt;br /&gt;
&lt;br /&gt;
When A has updated its Tank position, instead of blindly sending a position update, A compares the current tank position to a predicted tank position that is calculated via the DR model. If the &amp;quot;real&amp;quot; and predicted object representations are the same (or nearly the same within a tolerance) it does not send an update message to B. With no update received from A, B uses its DR model to calculate the position of the tank. That is not a future position. It is the actual current tank position with no more error than is allowed by the tolerance. However, the true tank position *is* updated periodically, to allow for new player&#039;s entering in the game. To enable all players&#039; DR models to remain synchronized, we must add DR model parameters to the update messages.  In this way we only send tank updates when the position cannot be accurately derived by the old data, thus saving bandwidth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s assume a fixed [[lag]] network.&lt;br /&gt;
&lt;br /&gt;
With the same behavior described above, A send its data to B. B updates its tank representation with the same rules outlined above. B has the &amp;quot;correct&amp;quot; representation of the object, and its history, but just delayed by the network lag. Here Dead reckoning is not going to &amp;quot;predict&amp;quot; any position, B behaves the same as if DR is not used, (i.e. A send tank updates any frames). Data futuring is not in the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s consider a network with [[jitter]].&lt;br /&gt;
&lt;br /&gt;
With jitter, the fastest packets arrive with a delay that is near the minimum path route, while some other packets arrive later, due to some network bottleneck.  Now the tank updates from A to B not only arrive delayed, but sometimes with a change in that delay, causing effects of time compression and expansion that A is not aware of. If B uses these update messages without any time correction between the two entity&#039;s prediction algorithms, A &amp;amp; B will not behave the same. The result is that DR is going to alter the perception of A &#039;s tank at B, not just by (network) delay of its history, but also by potentially changing its trajectory.  The adverse effects are increased with increasing jitter.&lt;br /&gt;
&lt;br /&gt;
One of the most serious effects of this is seen when A&#039;s driver is not in control of its tank (e.g. jumping or falling). With no other input, it is only the world &amp;quot;physics&amp;quot; and the DR algorithm operating and relatively few updates are sent to B.  Using a jump as an example, A may send just a few updates, perhaps just at the jump start, halfway through the rising arc, top, halfway through the descent and then upon landing. So take an example.&lt;br /&gt;
&lt;br /&gt;
Tank starts to jump, so A sends an update. The next update suffers from network congestion, so it is seen delayed at the B side. In the meantime, B continues to predict the tank position. When the tank is seen at B at half descent, the delayed message was received, so B reverts its local view back to the half rise point, where the local view of the tank is continuing to rise. Later, a new update is received, suddenly putting the tank in a new forward, descending position. The visual effect at player B&#039;s perspective is a tank that rapidly jumps between different positions and trajectories.&lt;br /&gt;
&lt;br /&gt;
This is currently a problem that is often viewable while playing.&lt;br /&gt;
&lt;br /&gt;
To correct this, we should compute the network jitter, and use this to correctly position the tank in time &amp;amp; space as viewed by the DR algorithm, so it can continue to work happily. The &amp;quot;fixed&amp;quot; (unknown) network delay still applies, so our local tank representation is still delayed and, apart the network congestion event, where we blindly predict the future, truely reflect the remote one.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=5333</id>
		<title>BZFlag on IRC</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_on_IRC&amp;diff=5333"/>
		<updated>2009-01-27T20:06:55Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The BZFlag communities use the [http://freenode.net/ freenode IRC network] for communication and collaboration.&lt;br /&gt;
&lt;br /&gt;
There is a BZFlag-hosted IRC client at http://my.BZFlag.org/irc/irc.cgi.&lt;br /&gt;
==Channels==&lt;br /&gt;
&lt;br /&gt;
===#bzflag===&lt;br /&gt;
The [irc://irc.freenode.net/bzflag #bzflag] channel is the primary development and support channel. The major developers and many long time community members are users. Discussions in the channel range from development and coding discussions to technical support and bug reports. #bzflag is a great channel to discuss new features and bugs. The channel is moderated by the project administration and development staff. &#039;&#039;&#039;This channel is not for help with specific servers or administration issues&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===#bzflag-chat===&lt;br /&gt;
The #bzflag-chat channel is a more informal channel designated for player community discussions.&lt;br /&gt;
&lt;br /&gt;
===Other channels===&lt;br /&gt;
A number of players, servers, and [[leagues]] have their own channel for more focused discussion. Some of these include:&lt;br /&gt;
&lt;br /&gt;
* ##bar (DUCLeague team, The Barbarians)&lt;br /&gt;
* #badgerking (Official Channel for Badgerking&#039;s FFA)&lt;br /&gt;
* #BoomBZ (Team Channel for GU team [BoOm])&lt;br /&gt;
* ##bz-inc (DUCLeague team, [http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=689/ Bz-Incorporated])&lt;br /&gt;
* ##bzflagr (Support channel for the [http://bzflagr.net BZFlagr.net servers.])&lt;br /&gt;
* #bzfx (Support channel for the bzfx.net BZFlag servers)&lt;br /&gt;
* ##bzpod (Channel to discuss the BZFlag podcast, BZPod)&lt;br /&gt;
* ##bzpro (Support channel for the [http://bzpro.net BZPro.net servers.])&lt;br /&gt;
* #bzflag (On irc.stormcenter.net, support channel for [http://www.bztank.net BZtank] servers)&lt;br /&gt;
* ##bzw (A place to discuss map making for BZFlag, including ideas and help)&lt;br /&gt;
* #divi (Support channel for [http://divi.fairserve.net Divibox] and other [http://fairserve.bzflag.org Fairserve] servers)&lt;br /&gt;
* #dub (Support channel for the dub.bzflag.org BZFlag servers)&lt;br /&gt;
* ##ducleague (Support channel for [http://my.bzflag.org/league/ Ducati League (DucLeague)])&lt;br /&gt;
* #forestforce ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=10 GULeague Team])&lt;br /&gt;
* ##guleague (Support channel for [http://gu.bzleague.com/ GamesUnited League (GULeague)])&lt;br /&gt;
* #hepcat (Support channel for borrego.hepcat.org BZFlag server) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* ##icf (Support channel for [http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=112 Invasive Chaotic Frenzies, (GULeague)])&lt;br /&gt;
* #inleague (Support channel for [http://in.bzleague.com InterNational League (INLeague)])&lt;br /&gt;
* #kas (GULeague team, KAS)&lt;br /&gt;
* ##norang (Support channel for [http://bzflag.norang.ca Norang.ca] BZFlag servers)&lt;br /&gt;
* #pillbox (Support channel for [http://pillbox.bzleague.com/ Pillbox League (PBLeague)])&lt;br /&gt;
* ##planetmofo (Support channel for [http://www.planet-mofo.com planet-mofo.com] servers)&lt;br /&gt;
* #plosileague (Support channel for [http://bzfx.net/league/ Plosileague])&lt;br /&gt;
* #silvercat (Support channel for [http://silvercat.bzflag.org/ Silvercat BZFlag servers]) &#039;&#039;defunct&#039;&#039;&lt;br /&gt;
* ##t42 ([http://gu.bzleague.com/index.php?link=teaminfo&amp;amp;id=39 GULeague team])&lt;br /&gt;
* ##untamed ([http://my.bzflag.org/league/index.php?link=teaminfo&amp;amp;id=909 DUCLeague team])&lt;br /&gt;
&lt;br /&gt;
==IRC Clients==&lt;br /&gt;
To access the IRC network you need to use an IRC client. [http://irchelp.org/ http://irchelp.org/] is an excellent resource for more information on general IRC.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://my.BZFlag.org/irc/irc.cgi BZFlag.org-hosted IRC client]&lt;br /&gt;
*[http://irchelp.org/ IRC help docs]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Support]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5332</id>
		<title>Dead Reckoning</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5332"/>
		<updated>2009-01-27T19:46:48Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dead Reckoning (DR) is a method to find the current position by measuring the course and distance from a past known point.  It is used in Distributed Interactive Simulation to conserve bandwidth in the communication between two different network entities, when exchanging position information of a moving object. It starts with a kinematic model of the object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s explain with a simple case including an object which we&#039;ll call &amp;quot;Tank&amp;quot; that is owned by entity (A). There is a second entity (B) that should receive position updates for Tank.  A is updating Tank&#039;s position continuously, taking into account the environment, the Tank driver&#039;s control inputs, and the physics (virtual) laws that the game imposes. &amp;quot;Continuously&amp;quot; means at some periodic rate. A is the master (driver) of the tank.  B recreates the position and orientation of A&#039;s Tank locally using data provided by A. B&#039;s tank is a slave.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s first assume a 0 delay network.&lt;br /&gt;
&lt;br /&gt;
One approach could be for A to communicate the tank position and orientation to B any time it updates its own internal tank representation. B uses these messages to update its internal copy of the tank, using the newest data to have arrived. Unfortunately, this wastes bandwidth!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To conserve bandwidth, A and B could share a Dead Reckoning (DR) model of the tank.&lt;br /&gt;
&lt;br /&gt;
When A has updated its Tank position, instead of blindly sending a position update, A compares the current tank position to a predicted tank position that is calculated via the DR model. If the &amp;quot;real&amp;quot; and predicted object representations are the same (or nearly the same within a tolerance) it does not send an update message to B. With no update received from A, B uses its DR model to calculate the position of the tank. That is not a future position. It is the actual current tank position with no more error than is allowed by the tolerance. However, the true tank position *is* updated periodically, to allow for new player&#039;s entering in the game. To enable all players&#039; DR models to remain synchronized, we must add DR model parameters to the update messages.  In this way we only send tank updates when the position cannot be accurately derived by the old data, thus saving bandwidth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s assume a fixed delay network.&lt;br /&gt;
&lt;br /&gt;
With the same behavior described above, A send its data to B. B updates its tank representation with the same rules outlined above. B has the &amp;quot;correct&amp;quot; representation of the object, and its history, but just delayed by the network. Here Dead reckoning is not going to &amp;quot;predict&amp;quot; any position, B behaves the same as if DR is not used, (i.e. A send tank updates any frames). Data futuring is not in the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s consider a network with [[jitter]].&lt;br /&gt;
&lt;br /&gt;
With jitter, the fastest packets arrive with a delay that is near the minimum path route, while some other packets arrive later, due to some network bottleneck.  Now the tank updates from A to B not only arrive delayed, but sometimes with a change in that delay, causing effects of time compression and expansion that A is not aware of. If B uses these update messages without any time correction between the two entity&#039;s prediction algorithms, A &amp;amp; B will not behave the same. The result is that DR is going to alter the perception of A &#039;s tank at B, not just by (network) delay of its history, but also by potentially changing its trajectory.  The adverse effects are increased with increasing jitter.&lt;br /&gt;
&lt;br /&gt;
One of the most serious effects of this is seen when A&#039;s driver is not in control of its tank (e.g. jumping or falling). With no other input, it is only the world &amp;quot;physics&amp;quot; and the DR algorithm operating and relatively few updates are sent to B.  Using a jump as an example, A may send just a few updates, perhaps just at the jump start, halfway through the rising arc, top, halfway through the descent and then upon landing. So take an example.&lt;br /&gt;
&lt;br /&gt;
Tank starts to jump, so A sends an update. The next update suffers from network congestion, so it is seen delayed at the B side. In the meantime, B continues to predict the tank position. When the tank is seen at B at half descent, the delayed message was received, so B reverts its local view back to the half rise point, where the local view of the tank is continuing to rise. Later, a new update is received, suddenly putting the tank in a new forward, descending position. The visual effect at player B&#039;s perspective is a tank that rapidly jumps between different positions and trajectories.&lt;br /&gt;
&lt;br /&gt;
This is currently a problem that is often viewable while playing.&lt;br /&gt;
&lt;br /&gt;
To correct this, we should compute the network jitter, and use this to correctly position the tank in time &amp;amp; space as viewed by the DR algorithm, so it can continue to work happily. The &amp;quot;fixed&amp;quot; (unknown) network delay still applies, so our local tank representation is still delayed and, apart the network congestion event, where we blindly predict the future, truely reflect the remote one.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Jitter&amp;diff=5331</id>
		<title>Jitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Jitter&amp;diff=5331"/>
		<updated>2009-01-27T19:44:29Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Jitter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Jitter is a term used to mean the variation in [[lag]] over time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In very simple terms, if you were to ping a network host 2 times and each time it responded in 100 milliseconds, we could say that its jitter is 0 ms. If instead, the 2 ping times were 75 and 100 milliseconds, we could say the jitter is 25 ms. Of course the jitter calculations performed in BZFlag are a little more complex than that, incorporating averaging and smoothing over time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coders interested in jitter in BZFlag&#039;s context may wish to study LagInfo.cxx from the BZ source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Client]]&lt;br /&gt;
[[Category:Server]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5330</id>
		<title>Dead Reckoning</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5330"/>
		<updated>2009-01-27T17:52:36Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page should give information and suggestion on what Dead Reckoning (DR) is, how it is implemented, what it should be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DR is a method to find the current position by measuring the course and distance from a past known point.  It is used in Distributed Interactive Simulation to conserve bandwidth in the communication between two different network entities, when exchanging position information of a moving object. It starts with a kinematic model of the object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s explain with a simple case including an object which we&#039;ll call &amp;quot;Tank&amp;quot; that is owned by entity (A). There is a second entity (B) that should receive position updates for Tank.  A is updating Tank&#039;s position continuously, taking into account the environment, the Tank driver&#039;s control inputs, and the physics (virtual) laws that the game imposes. &amp;quot;Continuously&amp;quot; means at some periodic rate. A is the master (driver) of the tank.  B recreates the position and orientation of A&#039;s Tank locally using data provided by A. B&#039;s tank is a slave.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let&#039;s first assume a 0 delay network.&lt;br /&gt;
&lt;br /&gt;
One approach could be for A to communicate the tank position and orientation to B any time it updates its own internal tank representation. B uses these messages to update its internal copy of the tank, using the newest data to have arrived. Unfortunately, this wastes bandwidth!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To conserve bandwidth, A and B could share a Dead Reckoning (DR) model of the tank.&lt;br /&gt;
&lt;br /&gt;
When A has updated its Tank position, instead of blindly sending a position update, A compares the current tank position to a predicted tank position that is calculated via the DR model. If the &amp;quot;real&amp;quot; and predicted object representations are the same (or nearly the same within a tolerance) it does not send an update message to B. With no update received from A, B uses its DR model to calculate the position of the tank. That is not a future position. It is the actual current tank position with no more error than is allowed by the tolerance. However, the true tank position *is* updated periodically, to allow for new player&#039;s entering in the game. To enable all players&#039; DR models to remain synchronized, we must add DR model parameters to the update messages.  In this way we only send tank updates when the position cannot be accurately derived by the old data, thus saving bandwidth.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s assume a fixed delay network.&lt;br /&gt;
&lt;br /&gt;
With the same behavior described above, A send its data to B. B updates its tank representation with the same rules outlined above. B has the &amp;quot;correct&amp;quot; representation of the object, and its history, but just delayed by the network. Here Dead reckoning is not going to &amp;quot;predict&amp;quot; any position, B behaves the same as if DR is not used, (i.e. A send tank updates any frames). Data futuring is not in the game.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s consider a network with [[jitter]].&lt;br /&gt;
&lt;br /&gt;
With jitter, the fastest packets arrive with a delay that is near the minimum path route, while some other packets arrive later, due to some network bottleneck.  Now the tank updates from A to B not only arrive delayed, but sometimes with a change in that delay, causing effects of time compression and expansion that A is not aware of. If B uses these update messages without any time correction between the two entity&#039;s prediction algorithms, A &amp;amp; B will not behave the same. The result is that DR is going to alter the perception of A &#039;s tank at B, not just by (network) delay of its history, but also by potentially changing its trajectory.  The adverse effects are increased with increasing jitter.&lt;br /&gt;
&lt;br /&gt;
One of the most serious effects of this is seen when A&#039;s driver is not in control of its tank (e.g. jumping or falling). With no other input, it is only the world &amp;quot;physics&amp;quot; and the DR algorithm operating and relatively few updates are sent to B.  Using a jump as an example, A may send just a few updates, perhaps just at the jump start, halfway through the rising arc, top, halfway through the descent and then upon landing. So take an example.&lt;br /&gt;
&lt;br /&gt;
Tank starts to jump, so A sends an update. The next update suffers from network congestion, so it is seen delayed at the B side. In the meantime, B continues to predict the tank position. When the tank is seen at B at half descent, the delayed message was received, so B reverts its local view back to the half rise point, where the local view of the tank is continuing to rise. Later, a new update is received, suddenly putting the tank in a new forward, descending position. The visual effect at player B&#039;s perspective is a tank that rapidly jumps between different positions and trajectories.&lt;br /&gt;
&lt;br /&gt;
This is currently a problem that is often viewable while playing.&lt;br /&gt;
&lt;br /&gt;
To correct this, we should compute the network jitter, and use this to correctly position the tank in time &amp;amp; space as viewed by the DR algorithm, so it can continue to work happily. The &amp;quot;fixed&amp;quot; (unknown) network delay still applies, so our local tank representation is still delayed and, apart the network congestion event, where we blindly predict the future, truely reflect the remote one.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Jitter&amp;diff=5329</id>
		<title>Jitter</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Jitter&amp;diff=5329"/>
		<updated>2009-01-27T17:23:34Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: New page: &amp;#039;&amp;#039;&amp;#039;Jitter&amp;#039;&amp;#039;&amp;#039;  Jitter is a term used to mean the variation in lag over time.   In very simple terms, if you were to ping a network host 2 times and each time it responded in 100 millise...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Jitter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Jitter is a term used to mean the variation in [[lag]] over time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In very simple terms, if you were to ping a network host 2 times and each time it responded in 100 milliseconds, we could say that its jitter is 0 ms. If instead, the 2 ping times were 75 and 100 milliseconds, we could say the jitter is 25 ms. Of course the jitter calculations performed in BZFlag are a little more complex than that, incorporating averaging and smoothing over time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coders interested in jitter in BZFlag&#039;s context may wish to study LagInfo.cxx from the BZ source.&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5328</id>
		<title>Dead Reckoning</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Dead_Reckoning&amp;diff=5328"/>
		<updated>2009-01-27T16:56:10Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: clarity and grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page should give information and suggestion on what Dead Reckoning (DR) is, how it is implemented, what it should be.&lt;br /&gt;
&lt;br /&gt;
DR is a method to find the current position by measuring the course and distance from a past known point.&lt;br /&gt;
&lt;br /&gt;
It is used in Distributed Interactive Simulation to conserve bandwidth in the communication between two different network entities, when exchanging positional information of a moving object. It starts with a kinematic model of the object.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s explain with a simple case including an object which we&#039;ll call &amp;quot;Tank&amp;quot; that is owned by entity (A). There is a second entity (B) that should receive position updates for Tank.&lt;br /&gt;
&lt;br /&gt;
A is updating Tank&#039;s position continuously, taking into account the environment, the Tank driver&#039;s control inputs, and the physics (virtual) laws that the game imposes. &amp;quot;Continuously&amp;quot; means at some periodic rate. A is the master (driver) of the tank.  B recreates the position and orientation of A&#039;s Tank locally using data provided by A. B&#039;s tank is a slave.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s first assume a 0 delay network.&lt;br /&gt;
&lt;br /&gt;
One approach could be for A to communicate the tank position and orientation to B any time it updates its own internal tank representation. B uses these messages to update its internal copy of the tank, using the newest data to have arrived. Unfortunately, this wastes bandwidth!&lt;br /&gt;
&lt;br /&gt;
To conserve bandwidth, A and B could share a Dead Reckoning (DR) model of the tank.&lt;br /&gt;
&lt;br /&gt;
When A has updated its Tank position, instead of blindly sending a position update, A compares the current tank position to a predicted tank position that is calculated via the DR model. If the &amp;quot;real&amp;quot; and predicted object representations are the same (or nearly the same within a tolerance) it does not send an update message to B. With no update received from A, B uses its DR model to calculate the position of the tank. That is not a future position. It is the actual current tank position with no more error than is allowed by the tolerance. However, the true tank position *is* updated periodically, to allow for new player&#039;s entering in the game. To enable all players&#039; DR models to remain synchronized, we must add DR model parameters to the update messages.&lt;br /&gt;
&lt;br /&gt;
In this way we only send tank updates when the position cannot be accurately derived by the old data, thus saving bandwidth.&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s assume a fixed delay network.&lt;br /&gt;
&lt;br /&gt;
With the same behavior described above, A send its data to B. B updates its tank representation with the same rules outlined above. B has the &amp;quot;correct&amp;quot; representation of the object, and its history, but just delayed by the network. Here Dead reckoning is not going to &amp;quot;predict&amp;quot; any position, B behaves the same as if DR is not used, (i.e. A send tank updates any frames). Data futuring is not in the game.&lt;br /&gt;
&lt;br /&gt;
What happens with a jittered network?&lt;br /&gt;
&lt;br /&gt;
With jitter, the fastest packets arrive with a delay that is near the minimum path route, while some other packets arrives later, due to some network bottleneck.&lt;br /&gt;
Now the tank updates from A to B does not arrive just delayed, but sometimes there is an event time compression, sometimes a time expansion, without A knowing anything about it. If B takes into account this message without any time correction the two prediction algorithm, A &amp;amp; B, behave not the same. And DR is going to alter the perception of A tank in B, not just delaying his history, but changing its trajectory.&lt;br /&gt;
&lt;br /&gt;
One of the most effect of this behaviour is when A cannot control its tank so the DR algorithm works saving much. Jumping!&lt;br /&gt;
Probably, during jumping A send just few updates, let us assume that it will send 4 updates: beginning, half of the raise, top, half of descent, landing. So take an example.&lt;br /&gt;
&lt;br /&gt;
Tank start to jump, so it send an update. The next update suffers from network congestion, so it is seen delayed at B side. In the mean time, B continue to predict the tank position. When tank is seen at B at half descent, the delayed message was received, so B put back is local view of the tank at the half raise point, where the local view of tank continue is raising. After a while a new update is received putting the tank again forward to his top and half descent position.&lt;br /&gt;
&lt;br /&gt;
I see lot of time this while playing.&lt;br /&gt;
&lt;br /&gt;
To correct this, we should compute the network jitter, and use this to correctly position the tank in time &amp;amp; space as view by the DR algorithm, so it can continue to work happily. The &amp;quot;fixed&amp;quot; (unknown) network delay still apply, so our local tank representation is still delayed and, apart the network congestion event, where we blindly predict the future, truely reflect the remote one.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=5302</id>
		<title>Server Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Server_Variables&amp;diff=5302"/>
		<updated>2008-12-31T19:50:20Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &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 values, such as _worldSize, only take affect at server start since they affect the world file that is generated.  It is recommended to apply these in the map file so they are loaded with the map.}}&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 the tank without something like a ShockWave flag!&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 when dropped and the height that a flag spawns at.&lt;br /&gt;
|-&lt;br /&gt;
| _flagEffectTime || 0.64 || How much time it takes for the flag to go into effect.&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 too 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 length of each laser shot. Laser&#039;s aren&#039;t exactly &amp;quot;infinite&amp;quot; as their description states, they go on for as long as this variable states.&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. At the first spawn, flags are assigned a random # between 1 and _maxFlagGrabs. Each grab reduces that number by 1, until zero is reached, then the flag spawns at a new location. Flags will always respawn no matter how many flag grabs they have left if dropped 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 || _reloadTime divided by _mGunAdRate gives how long machine gun bullets take 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>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1656</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1656"/>
		<updated>2007-03-29T15:54:51Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1.5 GB of disk space available) and will take a while. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;best&#039;&#039;&#039; way, much more efficient and suitable for most people, is to only get the subdir for the module you are interested in. Typically this is just bzflag itself. &lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
This will get you the current bzflag source code for the development version.&lt;br /&gt;
&lt;br /&gt;
If you want the cvs code for the 2.0.x compatable version use the URL&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/branches/v2_0branch/bzflag&lt;br /&gt;
&lt;br /&gt;
Please see the sections below for more information about the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subversion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from their right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/svnroot/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1654</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1654"/>
		<updated>2007-03-29T15:36:34Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1.5 GB of disk space available) and will take a while. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;best&#039;&#039;&#039; way, much more efficient and suitable for most people, is to only get the subdir for the module you are interested in. Typically this is just bzflag itself. &lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please see the sections below for more informatation about the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subversion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from their right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/svnroot/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1653</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1653"/>
		<updated>2007-03-29T15:35:32Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1.5 GB of disk space available) and will take a while. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;best&#039;&#039;&#039; way, much more efficient and suitable for most people, is to only get the subdir for the module you are interested in. &lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please see the sections below for more informatation about the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subversion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from their right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/svnroot/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1652</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1652"/>
		<updated>2007-03-29T15:35:05Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1.5 GB of disk space available) and will take a while. &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;best&#039;&#039;&#039; way, much more efficient and suitable for most people, is to only get the subdir for the module you are interested in. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please see the sections below for more informatation about the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subversion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from their right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/svnroot/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1649</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1649"/>
		<updated>2007-03-29T14:43:06Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* TortoiseSVN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1 GB of disk space available) and will take a while. It is much more efficient to only get the subdir for the module you are interested in. Please see the sections below for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subversion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from their right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1648</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1648"/>
		<updated>2007-03-29T14:42:39Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command Line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1 GB of disk space available) and will take a while. It is much more efficient to only get the subdir for the module you are interested in. Please see the sections below for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subversion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1647</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1647"/>
		<updated>2007-03-29T14:41:25Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1 GB of disk space available) and will take a while. It is much more efficient to only get the subdir for the module you are interested in. Please see the sections below for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1646</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1646"/>
		<updated>2007-03-29T14:17:18Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* TortoiseSVN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1 GB of disk space available) and will take a while. It is much more efficient to only get the subdir for the module you are interested in. Please see the sections bellow for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections below.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1645</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1645"/>
		<updated>2007-03-29T14:16:45Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (make sure you have at least 1 GB of disk space available) and will take a while. It is much more efficient to only get the subdir for the module you are interested in. Please see the sections bellow for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections bellow.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1644</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1644"/>
		<updated>2007-03-29T14:15:36Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Command line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This is a large amount of data (over 1 GB) and will take a while. It is much more efficient to only get the subdir for the module you are interested in. Please see the sections bellow for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections bellow.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1643</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1643"/>
		<updated>2007-03-29T14:03:52Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Module sub directories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This will take a while. It is often more efficient to only get the subdir for the module you are interested in. Please see the sections bellow for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections bellow.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag module, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
From the command line&lt;br /&gt;
&lt;br /&gt;
  svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzflag&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1642</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1642"/>
		<updated>2007-03-29T13:01:15Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* Commiting Code to SVN */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This will take a while. It is often more efficient to only get the subdir for the module you are interested in. Please see the sections bellow for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections bellow.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide their sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter their username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag modlue, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1641</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1641"/>
		<updated>2007-03-29T12:50:53Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* SVN clients */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility] or a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] (highly recommended). SVN is also available to Windows users via [http://cygwin.com/ Cygwin] with SVN and other common Devel tools selected during installation.&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This will take a while. It is often more efficient to only get the subdir for the module you are interested in. Please see the sections bellow for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections bellow.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide there sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter there username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag modlue, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1640</id>
		<title>BZFlag SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=BZFlag_SVN&amp;diff=1640"/>
		<updated>2007-03-29T12:43:44Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: /* SVN clients */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BZFlag SVN, is the [http://en.wikipedia.org/wiki/Subversion_(software) Subversion Revision Control System] used by the development team to maintain and store the [[BZFlag Source]] code. The SVN system is hosted by [http://www.sourceforge.net SourceForge] and is accessible by anyone with the proper software. The SVN system replaces the CVS system that was used previously.&lt;br /&gt;
&lt;br /&gt;
==SVN clients==&lt;br /&gt;
To access the source code via SVN , you will need a SVN client. Most unix/linux type operating systems have the command line SVN client as an installable option. Windows users must download a third party SVN client, such as [http://tortoisesvn.tigris.org/ the Tortoise Graphical SVN Client] or the Windows native [http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 SVN command line utility].&lt;br /&gt;
&lt;br /&gt;
==Geting code from SVN Access==&lt;br /&gt;
===Command line===&lt;br /&gt;
The simplest way to get all the bzflag source code for every module is to simply get the entire trunk&lt;br /&gt;
&lt;br /&gt;
   svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag bzflag&lt;br /&gt;
&lt;br /&gt;
This will get all modules and subdirs. This will take a while. It is often more efficient to only get the subdir for the module you are interested in. Please see the sections bellow for the URLs to use for branches and modules.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client simply enter the URL of the SVN path they wish to check out in the field marked &#039;&#039;URL of repository&#039;&#039;. For the current version of all modules simply use the /trunk path. Note, if you want your code to be checked out into a new folder, be sure to enter that folder name in the &#039;&#039;Checkout directory&#039;&#039; field.&lt;br /&gt;
&lt;br /&gt;
If you wish to get only a single module subdir, or a revision, simply use the URL specified in the sections bellow.&lt;br /&gt;
&lt;br /&gt;
==Commiting Code to SVN==&lt;br /&gt;
&lt;br /&gt;
Project developers that need write access to the source code to make changes ( or [[commits]] ) need to provide there sourceforge username and password when doing a SVN commit. A sourceforge account is required for developer access, as well as approval from a project administrator.&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
  svn commit&lt;br /&gt;
in a directory that has code changes will commit any changed code back to the repository. The svn client will prompt you for your username and password.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN commit item, and enter there username and password when prompted.&lt;br /&gt;
&lt;br /&gt;
==Updating code from SVN to the current version==&lt;br /&gt;
&lt;br /&gt;
===Command Line===&lt;br /&gt;
Using the command&lt;br /&gt;
   svn up&lt;br /&gt;
in the directory that has checked out code will cause subvesion to update that code to the current version for that branch.&lt;br /&gt;
&lt;br /&gt;
===TortoiseSVN===&lt;br /&gt;
Windows users that use the Tortoise Graphical SVN Client can simply choose the SVN update item from there right click menus.&lt;br /&gt;
&lt;br /&gt;
==Module sub directories==&lt;br /&gt;
&lt;br /&gt;
The source code in SVN is broken up into a number of modules for ease of use and management. When requesting the source code from the SVN system a sub-directory may be specified to limit the code that is accessed.&lt;br /&gt;
&lt;br /&gt;
The current SVN modules are:&lt;br /&gt;
*bzflag : The main module that includes the game [[client]], [[BZFS|server]], [[plug-ins]], and [[BZAdmin]].&lt;br /&gt;
*admin : The [[Master Ban]] list&lt;br /&gt;
*bzedit : The linux version of the BZFlag map editor [[BZEdit]]&lt;br /&gt;
*bzeditw32 : The windows version of the BZFlag map editor [[BZEditWin32]]&lt;br /&gt;
*web : The main website at http://www.bzflag.org&lt;br /&gt;
*db : Files related to the website http://my.bzflag.org and the [[Global Login]] system.&lt;br /&gt;
*pybzflag : an abandoned python implementation of BZFlag&lt;br /&gt;
&lt;br /&gt;
to get the current version of a module, you would add &lt;br /&gt;
  /trunk/MODULE_NAME&lt;br /&gt;
after the normal SVN URL.&lt;br /&gt;
&lt;br /&gt;
so to get the current version of just the bzflag modlue, the URL would be&lt;br /&gt;
&lt;br /&gt;
  https://bzflag.svn.sourceforge.net/viewvc/bzflag/trunk/bzflag/&lt;br /&gt;
&lt;br /&gt;
==Branches==&lt;br /&gt;
Branches in subversion are simply subfolders.&lt;br /&gt;
All branches are in the /branches subdirectory that if off the root level of the SVN tree.&lt;br /&gt;
they can be viewed here, http://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/&lt;br /&gt;
To get the code in a branch, you simply use the branch URL in your svn client.&lt;br /&gt;
&lt;br /&gt;
To get the 2.0.x branch of the BZFlag module, you&#039;d use the following URL.&lt;br /&gt;
   https://bzflag.svn.sourceforge.net/viewvc/bzflag/branches/v2_0branch/bzflag/&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://sourceforge.net/svn/?group_id=3248 SourceForge SVN Access page]&lt;br /&gt;
&lt;br /&gt;
[http://bzflag.svn.sourceforge.net/viewvc/bzflag/ BZFlag SVN Tree]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Compiling]]&lt;br /&gt;
[[Category:Versions]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Missile_War&amp;diff=1617</id>
		<title>Missile War</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Missile_War&amp;diff=1617"/>
		<updated>2007-03-28T16:57:50Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Missilewar is a 4-team CTF map by Ducatiwannabe.&lt;br /&gt;
&lt;br /&gt;
The bases are situated in the corners of the map. There are many superflags, such as Guided Missile, Laser, Super Bullet and STealth. This and other map features make sniping possible, defending interesting and capturing a challenge.&lt;br /&gt;
&lt;br /&gt;
[[Category:CTF Maps]]&lt;br /&gt;
[[Category:4 Team Maps]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=Missile_War&amp;diff=1615</id>
		<title>Missile War</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=Missile_War&amp;diff=1615"/>
		<updated>2007-03-28T16:51:50Z</updated>

		<summary type="html">&lt;p&gt;RatOmeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Missilewar is a 4-team CTF map by Ducatiwannabe.&lt;br /&gt;
[[Category:CTF Maps]]&lt;br /&gt;
[[Category:4 Team Maps]]&lt;/div&gt;</summary>
		<author><name>RatOmeter</name></author>
	</entry>
</feed>