Version 2.1 Changes
===================

Made the source code compatible with "Standard" (ISO 14882) C++.
BattleBall should now compile ok with g++ 2.8.0 and later versions.
That is, it should compile ok until the C++ standard changes again :-(.

Added an experimental OpenGL rendering mode, for you folks out there
with OpenGL hardware acceleration.  Actually, the real reason I added
it was so that I could pad my resume with "OpenGL experience" :-).
Note that this mode still has a few visual artifacts.  The status
area of the window may flicker (an issue with double-buffering a
window which contains both OpenGL and Xlib rendering), and non-convex
polygons may be rendered wrong or not at all (a tessellation issue).

Made the game window a little "taller", for a better view of the action.

Removed "single-buffering" as an option, i.e. the game window is now
always double-buffered.

A few other minor cosmetic changes.


Version 2.0 Changes
===================

Made computer players shoot.  Their targetting accuracy and firing
frequency are adjustable and can be set when the game is started.  Human
players also have "auto-gunner" capability.

Added more collision detection and interaction between objects.

Made objects cast simple shadows.

Improved the helicopter's dribbling and auto-pilot.  It can now beat the
tank in a one-on-one match almost half the time.

Added team colors to differentiate vehicles on different teams.

Added an optional train running on a partially elevated track.  Cool!

Made the Tab key switch the text area of the game window between the
status display and the list of teams & players.

Put the saucer ship (gone since v1.0) back into the fly-bys.

Enhanced the scenery outside of the playfield.

Revamped the command-line options to make them less cryptic, and added
many new options.

Made "fancy" graphics the default.

Internal improvements:
* Overhauled the game object classes to make them more object-oriented
  and easier to specialize.  Big improvement :-)
* Split (and simplified) the transformation matrix class into two
  classes.
* Optimized bsp traversal and determination of polygon drawing order in
  the xregion3d class.
* Optimized affine transformation in the fastPts class a little further.


Version 1.1 Changes
===================

Added double-buffering for smoother animation.

Made several elements of the game configurable via command-line parameters:
* the radius of the playfield ("-ra")
* whether vehicles are allowed to go outside the playfield ("-ou")
* the strength of gravity ("-g")
* shell velocity ("-sv")

The fancy graphics option ("-f") now gives you snazzier looking tanks.

Made numerous optimizations which greatly speed up solid-modeled rendering.

Added a pause-game feature.

Fixed a bug which occasionally prevented the playfield boundary from being
drawn in wireframe mode.

Made several major internal architectural changes.  One is worth mentioning:
prior to this release, all 3D coordinates were stored and in fixed point 
format and processed using fixed point arithmetic!  For the most part, the 3D
modeling/rendering engine did its computation in fixed-point, if you can
believe that.  Now everything is floating point.  Believe me, I don't
miss the headaches associated with fixed-point arithmetic.  Although in
principle fixed-point arithmetic can be done faster than floating-point
arithmetic, you can make certain optimizations on a floating-point 3D
graphics engine that you can't make on a fixed-point 3D engine, and I
found that, on the whole, the floating-point engine is the faster one.
All that headache for nothing!

Fixed a bug which was screwing up memory management in a major way.  This
bug was present in the previous releases of BattleBall, but AIX 3.2's
memory manager was so forgiving I wasn't even aware of the bug until
I tried to port the game to Solaris.

Numerous other minor improvements/fixes.


Version 1.0 Changes (with respect to Beta version 49):
===================

Added a horizon line in wireframe mode, and a blue sky/green grass
horizon in solid-modeled mode.

Fixed an integer overflow bug which caused large polygons (e.g. the
playfield boundary) to be draw malformed sometimes.

Added blocked friendly fire mode (-b option) and transparent friendly
fire mode (-t option).  In blocked mode, when a teammate's shell hits
another teammate's vehicle, the shell is blocked, but not detonated.
In transparent mode, teammates' shells pass through other teammates'
vehicles without being blocked or detonated.  By default, friendly
fire is still dangerous.

For games with 3 or more teams, scoring is a little different.  When
the ball hits the headquarters building of one team, all the other teams
receive a point just as before.  In addition, the team that last hit or
shot the ball now receives an extra point.

The helicopter can no longer slide around on the ground without taking
off, nor can it fly upside down.

Added a little more scenery outside of the playfield.

When the player's viewpoint is inside the tank turret or the helicopter,
the turret or helicopter is drawn wireframe (even in solid modeled
mode).

Using the fancy graphics option (-f) now puts a Battle Ball logo on the
playfield.

The scenery (mountains & trees) now stays the same from round to round.

Made the helicopter automatic pilot less stupid (before, it just used
the same automatic pilot as the tank).

X Windows is now informed about which polygons being drawn are convex
(most of them are), which should result in better server performance
in solid-modeled mode.
