BZFlag

Last updated
BZFlag
Original author(s) Chris Schoeneman
Developer(s) Tim Riker, David Trowbidge, Sean Morrison
Stable release
2.4.26 / November 20, 2022;20 months ago (2022-11-20)
Repository
Written in C++
Type First-person shooter
License LGPL-2.1-only and MPL-2.0 (dual-licensed) [1]
Website www.bzflag.org

BZFlag (an abbreviation for Battle Zone capture the Flag) is a free and open-source, multiplayer online, tank game. 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.

Contents

Development

A daytime, but rather dark, shot from version 1.7d9 while a chat message is being typed. Note the opaque HUD contrasting with newer versions. BZFlag-1.7d9.jpg
A daytime, but rather dark, shot from version 1.7d9 while a chat message is being typed. Note the opaque HUD contrasting with newer versions.

Inspired by Battlezone, [2] BZFlag was first written in C by Chris Schoeneman in 1992, [3] as a part of his studies at Cornell University. [4] BZFlag was initially called "bz" and despite its similarity to the SGI game of the same title by Chris Fouts, the games are completely independent of each other. [3]

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 (tank could go through objects). There was only one of each flag, and each flag was marked with its type. Soon after, bad and good flags were added, and remain part of game play today, only without markers so the flag type is unknown to the player until it is picked up (unless the player 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. Now the server list is hosted on the official BZFlag website and allows anybody to play games on servers that choose to be 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. BZFlag is written in C++ and uses OpenGL for rendering. Its audio and several other sub-systems have been written using OS specific methods, although newer releases use SDL to perform low-level operations on all platforms. Textures for in-game objects are loaded from PNG files; audio, from WAVs. Zlib is used to decompress data files, which is written in C.

A high-resolution screenshot of v2.0.14 running within Slackware Linux. x24 full-scene anti-aliasing is enacted externally by the system's video driver. This exhibits the game's best-possible graphics rendering and its full compatibility with the drivers of high-end video cards. Bzflag on RadeonHD4870.png
A high-resolution screenshot of v2.0.14 running within Slackware Linux. x24 full-scene anti-aliasing is enacted externally by the system's video driver. This exhibits the game's best-possible graphics rendering and its full compatibility with the drivers of high-end video cards.

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 currently 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. When a developer makes 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 on IRC.

The copyright holder for the game is Tim Riker but maintenance is guided by Scott Wichser and Jeff Makey as project managers. The game's original author, Chris Schoeneman, is no longer involved in development. [5]

Gameplay

The official logo for BZFlag from version 2.4.8 BZFlag 2.4.8.png
The official logo for BZFlag from version 2.4.8

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 outmaneuvering rather than sneaking. [6]

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 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 1-3% have active players most of the time). [7]

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 or 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 teamkills 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. Rogues are occasionally allowed on servers; a rogue tank does not have any flag to defend, nor can it capture flags. Rogues tend to aid other teams of choice, or add a distraction to all teams. There is a plugin to prevent this which is used on servers with two large teams and one or two rogue players. [7]

Maps

A screenshot of BZFlag 2.4.6 client visiting a Ducati map with snow and mirror effect. BZFlag Snow and Mirror on Ducati Map.png
A screenshot of BZFlag 2.4.6 client visiting a Ducati map with snow and mirror effect.

A BZFlag server can be configured to create a basic, random map 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 such as Wings 3D or blender. Graphical map editors, BZEdit 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). 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. 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

In observer mode as a green tank and a rogue tank battle against each other. The rogue clearly destroys the green tank as the rogue has Guided Missiles. Taken from low-resolution mode in version 2.0 BZFlag-ObserverMode.png
In observer mode as a green tank and a rogue tank battle against each other. The rogue clearly destroys the green tank as the rogue has Guided Missiles. Taken from low-resolution mode in version 2.0

BZFlag has three types of flags: team flags, bad flags and super flags. [8] Team flags are only placed in a world during a capture-the-flag 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 number, types of super flags, as well as where they are placed can all be controlled by the operator when starting the server. The number cannot be modified while the server is running. 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 number of "wins", or until the tank dies. The rules for dropping bad flags are set by the operator at the start of the server. All super flags have a one or two letter code that is displayed next to a player's name on the scoreboard 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. [7]

The player fires a Guided Missile at a ground target while the opposing green team's flag is taken from their base, all while a tank has exploded slightly below. BZFlag--A Complex Game.png
The player fires a Guided Missile at a ground target while the opposing green team's flag is taken from their base, all while a tank has exploded slightly below.

Server environment

Servers have environments 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 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 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 in Summer 2015 as "HotPick" by Linux Format. [9] BZFlag was selected as the SourceForge.net Project of the Month for April 2004. [10] Both Free Software Magazine and Linux Magazine noted that BZFlag was fun to play and suitable for younger gamers. [6] [7]

Related Research Articles

<i>Myth</i> (video game series) Video game series

Myth is a series of real-time tactics video games for Microsoft Windows and Mac OS. There are three main games in the series: Myth: The Fallen Lords (1997), Myth II: Soulblighter (1998), and Myth III: The Wolf Age (2001). The Fallen Lords was developed by Bungie, and published by Bungie in North America and Eidos Interactive in Europe. Soulblighter was also developed by Bungie, and was published by Bungie in North America and GT Interactive in Europe. The Wolf Age was developed by MumboJumbo, and co-published by Take-Two Interactive and Gathering of Developers for Windows and by Take-Two and MacSoft for Mac.

<i>XPilot</i> Multiplayer video game

XPilot is a multiplayer video game. It is open source and runs on many platforms. Although its 2D graphics have improved over time, they still resemble the style of Thrust. Gameplay includes Capture the Flag, base defense, racing and deathmatches. XPilot uses a client–server architecture, in which a central metaserver receives information from all XPilot servers on the Internet.

In video gaming, camping is a tactic where a player obtains an advantageous static position, which may be a discreet place which is unlikely to be searched. The tactic is employed both in single-player games and online multiplayer games, but is usually more effective in an online multiplayer game, as AI opponents in single-player games may be aware of the player's position, even if they are visually hidden. The tactic varies depending on the type of game. In first-person shooters, it generally involves a player waiting in one location for other players to approach, then killing them before being noticed, or before the other players can react to their presence. By camping, a player is able to learn and adapt to the limited environment they are playing in, noting specific points to check repetitively. By following this method with little fault, a lower number of deaths can be achieved. In other cases, players may wait in an area to gain access to items or perform actions before other players who are not camping have the chance to do so.

<i>World War II Online</i> 2001 video game

World War II Online: Blitzkrieg is a World War II massively multiplayer online first-person shooter (MMOFPS) developed by Playnet, Inc.'s internal game studio, "Cornered Rat Software", and it was originally released on June 6, 2001 for Microsoft Windows, with a Mac OS version being released in 2002. In 2005, WWII Online was re-released under the new name of WWII Online: Battleground Europe.

<i>Unreal Tournament 2004</i> 2004 first-person shooter video game

Unreal Tournament 2004 is a first-person arena shooter video game developed by Epic Games and Digital Extremes. Part of the Unreal franchise, it is the third game in the Unreal Tournament series and the updated version of Unreal Tournament 2003.

<i>SubSpace</i> (video game) 1997 video game

SubSpace is a 2D space shooter video game created in 1995 and released in 1997 by Virgin Interactive which was a finalist for the Academy of Interactive Arts & Sciences Online Game of the Year Award in 1998. SubSpace incorporates quasi-realistic zero-friction physics into a massively multiplayer online game.

<i>Tribes: Vengeance</i> 2004 video game

Tribes: Vengeance is a science fiction first-person shooter video game developed by Irrational Games and released by Vivendi Universal Games in October 2004. It was built on an enhanced version of the Unreal Engine 2.5, which Irrational Games called the Vengeance engine. Part of the Tribes series, in addition to its multiplayer network maps, Vengeance includes a complete single-player campaign.

<i>Call of Duty: United Offensive</i> 2004 video game expansion pack

Call of Duty: United Offensive is an expansion pack for the first-person shooter video game Call of Duty. It was developed by Gray Matter Studios, with contributions from Pi Studios, and published by Activision. It was released for Microsoft Windows on September 14, 2004, and for Mac OS X on November 22, 2004.

<span class="mw-page-title-main">Tread Marks</span> 2000 video game

Tread Marks is a 3D, third-person perspective, multiplayer-focused tank combat and racing computer game developed by Independent video game developer Longbow Digital Arts. The game won the 2000 Independent Games Festival grand prize, later renamed to the Seumas McNally Grand Prize in honor of the game's lead programmer Seumas McNally who died on 21 March 2000, after receiving the award. A notable feature of the game is fully deformable terrain.

A griefer or bad-faith player is a player in a multiplayer video game who deliberately and intentionally irritates, annoys or trolls other players within the game. Griefing is often accomplished by destroying things constructed by other players or stealing items. A griefer derives pleasure from the act of annoying other users, and as such, is a nuisance in online gaming communities.

Soldat is a 2D multiplayer video game for Microsoft Windows. It is a run and gun game influenced by Liero and Scorched Earth, combined with elements from Counter-Strike and Worms.

<i>Team Fortress 2</i> 2007 video game

Team Fortress 2 (TF2) is a 2007 multiplayer first-person shooter game developed and published by Valve Corporation. It is the sequel to the 1996 Team Fortress mod for Quake and its 1999 remake, Team Fortress Classic. The game was released in October 2007 as part of The Orange Box for Microsoft Windows and the Xbox 360, and ported to the PlayStation 3 in December 2007. It was released as a standalone game for Windows in April 2008, and updated to support macOS in June 2010 and Linux in February 2013. It is distributed online through Valve's digital retailer Steam, with Electronic Arts managing retail and console editions.

<i>Cosmic Rift</i> 2001 video game

Cosmic Rift was a two-dimensional massively multiplayer video game designed by lead programmer Jeff Petersen. It is based in a science fiction universe wherein players can fly from an overhead view one of 13 spaceships, each with their own strengths and unique weapons, in a variety of gaming zones each with a different objective.

<i>Armagetron Advanced</i>

Armagetron Advanced is a multiplayer snake game in 3D based on the light cycle sequence from the film Tron. It is available for Linux, macOS, Microsoft Windows, AmigaOS 4 and OpenBSD as free and open-source software.

<i>OpenArena</i> Free and open-source video game

OpenArena is a free and open-source video game. It is a first-person shooter, and a fork of Quake III Arena.

<i>Devastation</i> (video game) 2003 video game

Devastation is a first-person shooter video game by American developer Digitalo Studios, released in 2003.

<span class="mw-page-title-main">InstantAction</span>

InstantAction was a web gaming site and digital distributor featuring 3D, browser-based games.

<span class="mw-page-title-main">Teeworlds</span> 2007 video game

Teeworlds is a free, open-source sidescrolling multiplayer shooting game originally created by Swedish developer Magnus Auvinen and now maintained by the community. It features simple cartoon-themed graphics and physics and relies heavily on classic shooter weaponry and gameplay. Currently there are official versions for Microsoft Windows, Linux, macOS and it has been available via digital distributor Steam since 2015. The source code is publicly available.

Overwatch and Overwatch 2 are team-based first-person shooter games developed by Blizzard Entertainment. Overwatch was released in May 2016 for several platforms. The game features a number of gameplay modes that support casual play, ranked play, and competitive modes used for professional esports events, such as the Overwatch League. Overwatch 2 was released in October 2022 with the same player versus player (PvP) modes, and will later include new player versus environment (PvE) co-operative multiplayer modes.

<i>BattleBit Remastered</i> 2023 video game

BattleBit Remastered is a massively multiplayer online first-person shooter developed by a team of three indie developers—SgtOkiDoki, Vilaskis, and TheLiquidHorse—and published by SgtOkiDoki for Microsoft Windows exclusively through the Steam distribution platform. Loosely set during a conflict between the United States and Russia, BattleBit allows up to 254 players to compete in player versus player matches on large maps. The game is strongly inspired by the Battlefield series by DICE, with similar gameplay mechanics to earlier entries in that series such as team-oriented character classes and destructible environments.

References

  1. "COPYING". GitHub . Retrieved May 1, 2018.
  2. "Bzflag". Linux Format. June 30, 2020. Retrieved July 28, 2020.
  3. 1 2 Steed, Anthony; Fradinho Oliveira, Manuel (October 30, 2009). Networked Graphics: Building Networked Games and Virtual Environments. Elsevier. p. 24. ISBN   9780080922232 . Retrieved July 28, 2020.
  4. Negus, Christopher (November 7, 2006). "Chapter 8: Setting Up a Game Server with BZFlag". Linux Journal . Retrieved July 28, 2020.
  5. "bzflag/README at d85df040e26d831cfea875338ad599a29f9614a0 · BZFlag-Dev/bzflag". GitHub. Retrieved 2016-10-11.
  6. 1 2 Diehl, Mike (2007-10-18). "Free Games for Linux". Linux Journal. Retrieved 2010-10-13.
  7. 1 2 3 4 Berg, Alan. "Bzflags- Kill or be Killed". Free Software Magazine. Archived from the original on 2016-03-04. Retrieved 2010-01-27.
  8. Tim Riker (2006). "SVN revision 19236". sourceforge. Archived from the original on December 25, 2012. Retrieved April 10, 2009.
  9. Linux Format Summer 2015 page 56
  10. "April 2004 - BZFlag". Project of the Month. SourceForge, Inc. 2004. Retrieved 2007-09-03.