BZFlag
Encyclopedia
BZFlag is a free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

, open source, online multiplayer video game.

A first-person tank battle game, similar in concept to Battlezone, it was originally written by Chris Schoeneman (creator of Synergy
Synergy (software)
Synergy is a software application for sharing a keyboard and mouse between multiple computers. It is used in situations where several PCs are used together, with a monitor connected to each, but are to be controlled by one user...

) for SGI
Silicon Graphics
Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark...

 graphics workstations running IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It was based on UNIX System V with BSD extensions. IRIX was the first operating system to include the XFS file system.The last major version...

, but has now been ported
Porting
In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...

 to other operating systems including Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, BSD and Solaris. The source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 is available freely from the project's website under the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

.

History

BZFlag was originally written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 by Chris Schoeneman in 1992 based on the chart-topping hit arcade game, Battlezone. At first, BZFlag was called "bz" and despite its similarity to the SGI game of the same title by Chris Fouts, both games were completely independent of each other. Originally, BZFlag was simply a shoot 'em up
Shoot 'em up
Shoot 'em up is a subgenre of shooter video games. In a shoot 'em up, the player controls a lone character, often in a spacecraft or aircraft, shooting large numbers of enemies while dodging their attacks. The genre in turn encompasses various types or subgenres and critics differ on exactly what...

 game with no other modes. However, after Schoeneman and his friend Rick Pasetto (who helped Schoeneman develop BZFlag from the beginning) became bored with the concept, they invented the capture-the-flag mode. This new mode added a requirement of strategy, teamwork, and skill, which was sufficient to keep interest.

In 1993, BZFlag was released to the public for the first time. This release took a new turn compared to older versions after a cheater, who edited the source code of his client to give himself powers that do not come from official releases, inspired Schoeneman and Pasetto to add "super-flags." Super flags affect a tank's performance by adding abilities or weapons to its arsenal. The first four flags were High Speed (boosted tank speed), Quick Turn (tank turned faster), Rapid Fire (shots moved faster), and Oscillation Overthruster
Buckaroo Banzai
Buckaroo Banzai is the lead character, played by Peter Weller, of the eponymous 1984 cult film, The Adventures of Buckaroo Banzai Across the 8th Dimension. A renaissance man, the character is a top neurosurgeon, particle physicist, race car driver, rock star and comic book hero, and probably the...

 (tank could go through objects). There was only one of each flag, and all flags had a marker on them so tanks knew what type it was. Soon after, bad and good flags were added, and the idea remains part of game play today; however, flags do not have markers and are completely unknown of their types until they are picked up by a tank (unless a tank is carrying an identify flag).

In 1997, the release of version 1.7d came with a groundbreaking new feature: an in-game public server list. Previously, players had to either set-up their own servers, know of servers, or read a list published and maintained by a third-party, but the new server list (hosted on the official BZFlag website, even today) allowed anybody to play games on servers that chose to become public.

Schoeneman eventually re-wrote BZFlag in C++ for SGI's third IndiZone competition, which won in the "Reality Engine" category. Tim Riker was later given the project prior to version 1.7e to maintain and evolve.

Development

BZFlag is written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 and uses OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 for rendering. Its audio and several other sub-systems (such as window management and file access) have been written using OS specific methods. Newer releases use SDL
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....

 to perform low-level operations on all platforms except for Microsoft Windows. Textures
Texture mapping
Texture mapping is a method for adding detail, surface texture , or color to a computer-generated graphic or 3D model. Its application to 3D graphics was pioneered by Dr Edwin Catmull in his Ph.D. thesis of 1974.-Texture mapping:...

 for in-game objects are loaded from PNG files; audio, from WAV
WAV
Waveform Audio File Format , is a Microsoft and IBM audio file format standard for storing an audio bitstream on PCs...

s. Zlib
Zlib
zlib is a software library used for data compression. zlib was written by Jean-Loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compression program. Zlib is also a crucial component of many software platforms including Linux, Mac OS X,...

 is used to decompress data files, which is written in C.

Developers

The number of contributors to the project has steadily increased over time. The project invites all sufficiently experienced developers to contribute. Though there are 64 listed developers, a much smaller number of those are active contributors.

Developers are able to edit any of the project's files to make changes at any time. However, when a developer has made an edit of which other developers do not approve, or is inappropriate for the game, they are requested to revert to the previous version of the file. Most developers monitor source edits using the mailing list available on SourceForge.net.

The project is maintained by Tim Riker with help from David Trowbridge and Sean Morrison. The game's original author, Chris Schoeneman, is no longer involved in development.

Gameplay

In a game of BZFlag, players drive around tanks, viewed from a first-person view, in a server-defined world (also known as a "map"), which can be modified. Tanks have the ability to drive through other tanks, but cannot travel through buildings or other world objects. The basic objective is to destroy opponents' tanks, which are tanks of another team's color. Since all players can see the position of all the tanks on their radar, it is a game of out-maneuvering rather than sneaking.

There are styles of game play that modify the objective. Styles are server-based, as the server operator chooses what style to host. If there is no special style indicated by the server owner, the only objective is the above (to simply kill opponent tanks); it is called a "free for all", or "FFA" for short.

There are three other objectives and corresponding styles (four in total): a style called "capture-the-flag" (or "CTF" for short) in which tanks try to pick up an opponent's flag and bring to their own home base, a style called "rabbit
Rabbit
Rabbits are small mammals in the family Leporidae of the order Lagomorpha, found in several parts of the world...

 chase" in which the objective is to have every hunter (orange)tank try to destroy a particular white tank, called the "rabbit," and a style called "King of the Hill," in which a team attempts to stay in a certain area for 30–60 seconds without being killed. If they succeed, that team becomes "The King of the Hill."

Servers can change the game mode and have custom maps made to fit the properties of the game. Certain thresholds are used to catch malicious players and kick them off the server, as well as message filters and an entire collection of other anti-cheating features. There are around 250 servers active at any given time (although only about 10-20% have active players most of the time).

Teams

Tanks can join as one of the four team colors, as a rogue, or as an observer. Observers cannot play, but can move anywhere in the world and watch what the tank they are linked to is doing. Observers do not have a tank and are therefore not visible to players, but are shown in the scoreboard. The colored teams are Red, Green, Blue and Purple. Rogue players are teamless players: they are allowed to kill colored team players and other rogues. Rogue tanks are colored dark grey out the window, and yellow on the radar.

In rabbit-hunt games there is a white tank, known as the "rabbit", against the orange-brown "hunters", or every other player. The hunters are considered a team, so rabbits with genocide, shockwave, Guided Missile, or Laser flags are dangerous, and often team kills occur due to a group assault on the "rabbit."

Teams are necessary in capture-the-flag games, in which they have to protect their team flag from capture. Because rogues are occasionally allowed on servers, a rogue tank does not have any flag to defend, and in turn cannot capture flags. However, rogues usually tend to aid other teams of choice, or merely enjoy adding a distraction to all teams. There is a plugin to prevent this, however it is only used on servers with two large teams and one or two rogue players.

Maps

A BZFlag server can be configured to create a basic, random map
Map
A map is a visual representation of an area—a symbolic depiction highlighting relationships between elements of that space such as objects, regions, and themes....

 for play, or users can load custom map files. BZFlag uses a customized text based map format to define the placement of objects. While writing a map is fairly simple in this format, most map-makers use a 3d modeling program Wings 3D
Wings 3D
Wings 3D is a free, open source, subdivision modeler inspired by Nendo and Mirai from Izware. Wings 3D is named after the winged-edge data structure it uses internally to store coordinate and adjacency data, and is commonly referred to by its users simply as Wings.Wings 3D is available for most...

, or blender
Blender (software)
Blender is a free and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications or video games. The current release version is 2.60, and was released on October 19, 2011...

. Graphical map editors, BZEdit
BZEdit
BZEdit is the official map editor for BZFlag. It is 3D and uses OpenGL to render. It was programmed in C++.-Download:For Windows: http://downloads.sourceforge.net/bzflag/BZEditW32_1.6.5_Installer.exe?modtime=1120778124&big_mirror=0...

 or iBZEdit have also been used. Note that BZEdit is not distributed with the game, and is no longer under active development (versions of it are available at the BZFlag SourceForge.net site). However, using blender in combination with a BZFlag map plug-in is currently the most popular mapping method.

As to the simplicity of maps, there are a number of basic objects in a map: boxes, pyramids, teleporters, cones, arcs, cylinders, spheres, team bases and meshes
Polygon mesh
A polygon mesh or unstructured grid is a collection of vertices, edges and faces that defines the shape of a polyhedral object in 3D computer graphics and solid modeling...

. Teleporters are rectangular, yellow-bordered objects that teleport a tank to another teleporter. A mapmaker may choose to not have a teleporter teleport tanks by leaving out links, or simple definitions of two points for teleporters to link between. Teleporters are also capable of teleporting to themselves, reflecting bullets and tanks that enter. Team Bases are used for CTF style games. Full three dimensional meshes have been available in maps since the 2.0 release.

Flags

BZFlag has three types of flags: team flags, bad flags and super flags. Team flags are only placed in a world during a capture-the-flag
Capture the flag
Capture the Flag is a traditional outdoor sport generally played by children, where two teams each have a flag and the objective is to capture the other team's flag, located at the team's "base," and bring it safely back to their own base...

 game, and represent the team it is colored to. Super flags are flags that can be in both free-for-all games and capture-the-flag games, but are strongly controlled by a server operator. The amount, types of super flags, as well as where they are placed can all be controlled by the operator. Super flags come in both bad and good form, and affect a tank accordingly. A bad flag may take away a certain sense of the tank: its sight, speed, or related things, while a good flag does the opposite and actually helps a tank. Good super flags are usually held until the tank is killed and explodes, or until the player driving the tank chooses to drop the flag. Bad flags are dropped after a short amount of time, after a certain amount of "wins" , or until the tank dies. The rules for dropping bad flags are set by the operator. All super flags have a one or two letter code that is displayed next to a player's name on the scoreboard
Scoreboard
A scoreboard is a large board for publicly displaying the score in a game or match. Most levels of sport from high school and above use at least one scoreboard for keeping score, measuring time, and displaying statistics. Scoreboards in the past used a mechanical clock and numeral cards to...

 when that player has that flag. Once in a while, a new flag is introduced, which anyone can contribute to via developer contact or the wiki
Wiki
A wiki is a website that allows the creation and editing of any number of interlinked web pages via a web browser using a simplified markup language or a WYSIWYG text editor. Wikis are typically powered by wiki software and are often used collaboratively by multiple users. Examples include...

.

Server environment

Servers have environment
Natural environment
The natural environment encompasses all living and non-living things occurring naturally on Earth or some region thereof. It is an environment that encompasses the interaction of all living species....

s that simulate the real world. A server's environment consists of three things: The map in play, the time of day that is being simulated, and weather conditions, introducing elements of which players have no control, like rain, snow, icy
Ice
Ice is water frozen into the solid state. Usually ice is the phase known as ice Ih, which is the most abundant of the varying solid phases on the Earth's surface. It can appear transparent or opaque bluish-white color, depending on the presence of impurities or air inclusions...

 and/or slippery ground, modified friction and gravity, and fog. BZFlag takes the local time from the geographical location of the server and creates a night or day-time atmosphere
Earth's atmosphere
The atmosphere of Earth is a layer of gases surrounding the planet Earth that is retained by Earth's gravity. The atmosphere protects life on Earth by absorbing ultraviolet solar radiation, warming the surface through heat retention , and reducing temperature extremes between day and night...

 in the background. Servers may synchronize the local server time or allow players to change the time to any time they may desire.

Critical reception

BZFlag was selected as the SourceForge.net Project of the Month for April 2004 Both Free Software Magazine
Free Software Magazine
Free Software Magazine is a website which produces a mostly free-content e-zine about free software....

 and Linux Magazine
Linux Magazine
Linux Magazine is a European professional journal. It addresses itself to readers who work professionally with operating systems based around the Linux kernel. Linux Magazine is published by Linux New Media AG and was born after the great success of Linux-Magazin...

 noted that BZFlag was fun to play and suitable for younger gamers.

See also

  • List of free first-person shooters
  • First-person shooter
    First-person shooter
    First-person shooter is a video game genre that centers the gameplay on gun and projectile weapon-based combat through first-person perspective; i.e., the player experiences the action through the eyes of a protagonist. Generally speaking, the first-person shooter shares common traits with other...

  • Free software
    Free software
    Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK