THIS FILE IS FOR SOME SHORT NOTES FROM DEVELOPERS...

Next changes:
-------------

idea: store all physic data/states centralized
-> easier simulation, simd possible.
-> multithreading possible, 2nd thread computes next
   physic state from current, when ready and main thread
   has finished display, copy/swap physic data and
   continue.
   needs some alloc/handling of physical data...


SIMULATE THE PASSIVE SONAR (HEARING EQUIPMENT)
- KGB/GHG/BG machines
- do not call sonar_ships() for each frame that is drawn on the screen,
  but call at once per second or less and store or cache the results.
  Do this for all similar actions. No need to redetect ships 30 or more
  times per second. Once per second is enough. This will lessen CPU usage
  dramatically and we can use more complex algorithms to simulate sensors
  etc., because we can use more costly algos if they're called more seldom.
  Store data in game or per object?
  The data is stored for the player, but there may be multiple players and
  the AI controlled objects may call such functions as well.
  So store the results per object. We do not need to save them to a savegame.
  Cacheable functions: game::visible_*, game::sonar_*, game::radar_*
	DONE, NEXT: do not store pointers per sonar contact (and even radar
	contact?) but only type of signal and direction!
	after that implement sensor classes for kdb/ghg/bg


DAMAGE SIMULATION
- with example data

ACCURATE PHYSICS
- buoyancy simulation
- trim

IDEAS ABOUT WATER
- render foam not in a two-step process like it is now, but render
  (animated) foam texture on top of water. Give amount of foam per vertex,
  the amount is computed by the CPU. For each trail or object causing foam
  determine which vertices are "inside" the trail and compute the amount of
  foam to generate for each vertex. This needs intersection code for
  face-face or point-face cases. But it is rather simple and can go fast.
  To weak wave heights (e.g. for explosions or objects interacting with the
  water, we would have to touch each generated vertex anyway).
  This removes the 512x512 texture rendering of the first step of foam and
  removes the ugly effects where you can see foam as filtered pixels in the
  distance.
  And we can generate foam for wave tops. In theory foam is generated on
  each wave top when the wave breaks, this means on local maxima of the
  height. So compute the differential of the heights, all values near to
  zero are local maxima (or minima). Simpler algorithms are possible, as
  proposed by nvidia: determine by height of wave, only heighest waves
  generate foam, this means waves above a critical height. Only crests
  should reach this height, not smooth round waves, so it should be
  realistic.

CVS
- check that binary files have binary flag
  models/ sounds/ !

- use vertex buffer objects to render water
- use GL_USHORT for indices, saving 50% memory and possibly bandwidth.
- VBOs should have 64k vertices max for compatibility reasons (GF4MX)
