Difference between revisions of "BZFlag 2.99"

From BZFlagWiki
Jump to: navigation, search
m (speling)
(See also: improved display of content)
 
(44 intermediate revisions by 16 users not shown)
Line 1: Line 1:
BZFlag version 3.0 is the next planned release of BZFlag.  
+
BZFlag version was the release name for an abandoned codebase, this page is kept for historical reference. Please see the [[Development RoadMap]] for the current development plan.
  
 
==Overview==
 
==Overview==
Version 3.0 is currently in development and marked as version v2.99.x. Upon release it will be marked as version v3.0. The primary goals for this version are improved server side stability and security in an effort to minimize the impact of clients that have been modified to provide their users benefit ( aka, cheating ). Additional efforts are being made to extend the server side customization of the game. v3.0 will be completely incompatible with all previous versions of the game. Users of v3.0 will only be able to play on 3.0 servers. This is similar to how v2.0 was incompatible with 1.10.
+
Version 3.0 was in development several years ago and was marked as version v2.99.x. Upon release it was to be marked as version v3.0. The primary goals for this version were improved server side stability and security in an effort to minimize the impact of clients that have been modified to provide their users benefit ( aka, cheating ). Additional efforts were being made to extend the server side customization of the game. v3.0 was to be completely incompatible with all previous versions of the game. Users of v3.0 were only be able to play on 3.0 servers. This is similar to how v2.0 was incompatible with 1.10.
  
 
==Development==
 
==Development==
Development began on 3.0 on October 25th 2005.  After an initial rush of changes, development stalled, as a number of bugs were found in the current release build of the time ([[BZFlag 2.0.4|v2.0.4]]). These bugs and problems, as well as a number of graphical changes from [[trepan]] necessitated the release of a compatible [[BZFlag 2.0.6|v2.0.6]], [[BZFlag 2.0.8|v2.0.8]], and [[BZFlag 2.0.10|v2.0.10]] releases.
+
Development began on 3.0 on October 25th 2005.  After an initial rush of changes, development stalled, as a number of bugs were found in the current release build of the time ([[BZFlag 2.0.4|v2.0.4]]). These bugs ,a number of graphical changes from [[trepan]], as well as other problems necessitated the release of compatible [[BZFlag 2.0.6|v2.0.6]], [[BZFlag 2.0.8|v2.0.8]], [[BZFlag 2.0.10|v2.0.10]], [[BZFlag 2.0.12|v2.0.12]] and [[BZFlag 2.0.14|v2.0.14]] versions.
 +
 
 +
The codebase was abandoned as the primary development target in May of 2011. It was moved to an exerimental branch in [[SVN]] in order to be a source of backports for 2.4.x
  
==Version Number Change==
 
v3.0 is the first version to use the new version numbering system.  The 3.0 release initially began as the 2.1 development line, with the intent of being released as version 2.2.  Part of the way through development, however, the [[Versions|versioning]] number scheme changed and the development revision changed from 2.1 to 2.99.  With previous releases the minor version number in the version triplet (major.minor.revision) represented protocol and client compatibility.  With 3.0 compatibility is instead reflected in the major version number. This new scheme gives more "room" to deal with minor packaging revisions and patch release updates.
 
  
 
==Features==
 
==Features==
v2.99 already has a number of server side features that make for a much improved gameplay experience.
+
v3.0 was to have a number of features that make for a much improved gameplay experience.
Features such as
+
 
*Flag pickups
+
===Fonts===
*Identify
+
The font system had been replaced and used standard TrueType fonts([http://en.wikipedia.org/wiki/TrueType TTF]). This offered a number of advantages over the older bitmap based font system, including support for unicode character sets.
*Pausing
+
 
*Water Death
+
Users could set the default fonts that they wish to use on a per-locale basis so they can use the best fonts for their character set. (More info on how?)
*Shot type
+
 
*Bots
+
===Server Side Logic===
have all been moved to the server, preventing a modified client from changing the outcome of the game logic. Additional features are planed to be moved server side, including shot, hit, and death detection.
+
A number of gameplay features have been moved from the client to the server, to ensure more consistent gameplay and prevent cheating over the internet, including;
 +
* Flag operations (pickup, capture, identify, etc)
 +
* Pause/unpause
 +
* Shot type
 +
 
 +
Initially much more was planned for the server side state but development problems prevent them from being implemented.
 +
 
 +
===Game state and security checks===
 +
Many changes and enhancements have been made to the network protocol to prevent errors in the network message stream or shared game state.
 +
 
 +
===BZW Format===
 +
*Links can be included in groups, with relative naming.
 +
*Mesh faces can be used as teleportation link sources (with numerous options)
 +
*Mesh faces can be used as team bases (must be flat tops).
 +
*Mesh faces can be used as zones (must be flat tops).
 +
*Meshes can contain weapon objects.
 +
*World Text objects were been added (with numerous options)
 +
*Dynamic Colors use a simpler format.
 +
*Solid objects can specify the 'ricochet' property individually.
 +
 
 +
===Graphics===
 +
Changes had been made to the graphical quality settings. What was Experimental quality in 2.0.12 became High quality. Medium quality is between the old High and Medium, and Low remained mostly unchanged.
 +
 
 +
A new Experimental mode included new shot and flag graphics.
 +
 
 +
===New Server List===
 +
The list of servers has been enhanced to allow tabbed browsing as well as improved searching and sorting.
 +
 
 +
===HUD Markers===
 +
HUD markers showing flag position, GM lock=on are now shown to players. The name and team of the closest target was also shown, along with a "friend or foe" system to help prevent teamkills. Servers were able disable these feature for all players if desired.
 +
 
 +
===BZFS API===
 +
The [[BZFS API]] had been refactored but was not very complete, 2.4.0 introduced a new class based API that is forward comparable.
  
A number of small checks and fixes have been put in to verify the game state as well.
+
===Lua BZFS API===
 +
The lua scripting language (http://lua.org), was built into the bzfs executable, and exposed almost all of the features from the C++ BZFS API (and a few that the C++ API does not have). It has the advantages of being easier to learn and write than comparable C++ code, and it can be embedded in world files. The main disadvantage is that it is not as fast as native c++ code.
  
Changes have been made to the graphical quality settings. What was Experimental quality in 2.0.8 is now High quality. Medium quality is between the old High and Medium, and Low has remained mostly unchanged.
+
===Gameplay Changes===
 +
A number of changes had been made to the game that will subtly affect gameplay.
  
The new Experimental mode includes new shot and flag graphics. Examples of the new shots (internally called, GeoBolt and GeoLaser) can be seen here.
+
====Acceleration====
<gallery>
+
Tank acceleration was always on. The "-a" server option had been removed, and the acceleration values were pulled from BZDB variables. These variables were_inertiaLinear and _inertiaAngular.
Image:Geo_bolt_example1.jpg|A shot in experimental in 2.99
+
Image:Geo_bolt_example2.jpg|Another shot in experimental in 2.99
+
Image:Geo_laser_example1.jpg|The thief beam in 2.99
+
</gallery>
+
It should be noted that the new shot graphics are not for people with older or slower video cards.
+
  
A full list of changes can be found in the [http://bzflag.svn.sourceforge.net/viewvc/*checkout*/bzflag/trunk/bzflag/NEWS NEWS] file in the [[BZFlag Source]] code in [[BZFlag SVN|SVN]].
+
====Lag Compensation====
 +
Clients used a synced timestmap and attempt to compensate tank positions for lag. This had the possibility of changing the way the game feels for players that are used to "leading" the target based on its lag.
  
==Known Issues==
+
====Hit Volume====
A lot of stuff needs testing, and probably doesn't work.
+
The volume that defines a "hit" on a tank had been changed to be more consistent with the collision volume. It is now a box around the tank that can be adjusted by the server using BZDB variables.
  
==Release Date==
+
===Bug Fixes===
As is always the case for major updates to BZFlag, '''''3.0 will be released when it is done'''''. At present, a number of major features still need to be implemented before a new release will be made.
+
A student had been paid as part of the Google Summer of Code program to evaluate and fix the backlog of reported bugs in the software. The intent was to have the overall effect of increasing the stability of the game.
  
 
==See also==
 
==See also==
[[Versions]]
+
* [[Versions]]
 +
* [[V3RCChecklist]]
  
 +
[[Category:BZFlag 2.99]]
 
[[Category:Versions]]
 
[[Category:Versions]]

Latest revision as of 03:16, 5 December 2016

BZFlag version was the release name for an abandoned codebase, this page is kept for historical reference. Please see the Development RoadMap for the current development plan.

Overview[edit]

Version 3.0 was in development several years ago and was marked as version v2.99.x. Upon release it was to be marked as version v3.0. The primary goals for this version were improved server side stability and security in an effort to minimize the impact of clients that have been modified to provide their users benefit ( aka, cheating ). Additional efforts were being made to extend the server side customization of the game. v3.0 was to be completely incompatible with all previous versions of the game. Users of v3.0 were only be able to play on 3.0 servers. This is similar to how v2.0 was incompatible with 1.10.

Development[edit]

Development began on 3.0 on October 25th 2005. After an initial rush of changes, development stalled, as a number of bugs were found in the current release build of the time (v2.0.4). These bugs ,a number of graphical changes from trepan, as well as other problems necessitated the release of compatible v2.0.6, v2.0.8, v2.0.10, v2.0.12 and v2.0.14 versions.

The codebase was abandoned as the primary development target in May of 2011. It was moved to an exerimental branch in SVN in order to be a source of backports for 2.4.x


Features[edit]

v3.0 was to have a number of features that make for a much improved gameplay experience.

Fonts[edit]

The font system had been replaced and used standard TrueType fonts(TTF). This offered a number of advantages over the older bitmap based font system, including support for unicode character sets.

Users could set the default fonts that they wish to use on a per-locale basis so they can use the best fonts for their character set. (More info on how?)

Server Side Logic[edit]

A number of gameplay features have been moved from the client to the server, to ensure more consistent gameplay and prevent cheating over the internet, including;

  • Flag operations (pickup, capture, identify, etc)
  • Pause/unpause
  • Shot type

Initially much more was planned for the server side state but development problems prevent them from being implemented.

Game state and security checks[edit]

Many changes and enhancements have been made to the network protocol to prevent errors in the network message stream or shared game state.

BZW Format[edit]

  • Links can be included in groups, with relative naming.
  • Mesh faces can be used as teleportation link sources (with numerous options)
  • Mesh faces can be used as team bases (must be flat tops).
  • Mesh faces can be used as zones (must be flat tops).
  • Meshes can contain weapon objects.
  • World Text objects were been added (with numerous options)
  • Dynamic Colors use a simpler format.
  • Solid objects can specify the 'ricochet' property individually.

Graphics[edit]

Changes had been made to the graphical quality settings. What was Experimental quality in 2.0.12 became High quality. Medium quality is between the old High and Medium, and Low remained mostly unchanged.

A new Experimental mode included new shot and flag graphics.

New Server List[edit]

The list of servers has been enhanced to allow tabbed browsing as well as improved searching and sorting.

HUD Markers[edit]

HUD markers showing flag position, GM lock=on are now shown to players. The name and team of the closest target was also shown, along with a "friend or foe" system to help prevent teamkills. Servers were able disable these feature for all players if desired.

BZFS API[edit]

The BZFS API had been refactored but was not very complete, 2.4.0 introduced a new class based API that is forward comparable.

Lua BZFS API[edit]

The lua scripting language (http://lua.org), was built into the bzfs executable, and exposed almost all of the features from the C++ BZFS API (and a few that the C++ API does not have). It has the advantages of being easier to learn and write than comparable C++ code, and it can be embedded in world files. The main disadvantage is that it is not as fast as native c++ code.

Gameplay Changes[edit]

A number of changes had been made to the game that will subtly affect gameplay.

Acceleration[edit]

Tank acceleration was always on. The "-a" server option had been removed, and the acceleration values were pulled from BZDB variables. These variables were_inertiaLinear and _inertiaAngular.

Lag Compensation[edit]

Clients used a synced timestmap and attempt to compensate tank positions for lag. This had the possibility of changing the way the game feels for players that are used to "leading" the target based on its lag.

Hit Volume[edit]

The volume that defines a "hit" on a tank had been changed to be more consistent with the collision volume. It is now a box around the tank that can be adjusted by the server using BZDB variables.

Bug Fixes[edit]

A student had been paid as part of the Google Summer of Code program to evaluate and fix the backlog of reported bugs in the software. The intent was to have the overall effect of increasing the stability of the game.

See also[edit]