Bob's packed programming page


Old News:

  22nd of August, 2000
  • It's back to school time, so I've decided to pause the project untill I get some more free time, or renewed interest in trying out OpenGL features. BTW Martin-Luc, this *is* my project :)

  31st of July, 2000
  • Fixed a few display bugs
  • Started work on the transition scene: the camera flies up in the air, and floats there for a while
  • Added mipmapping; this alone added 20% to my fps, because the hardware doesn't have to seek all over its memory to get the relevant information.
  • Added a fade-in and the begining.
  • Fixed a bug that caused the demo to pause while in the background, but not the music, so the two would get out of sync.
  • Uploaded new version of the demo.

  30th of July, 2000 - (1 am)
  • Cut the number of trees in half again, to 160. This boosted the FPS rate to a nice average of 38.
  • Enlarged the trees a bit, to fill in the gap left by the reduction.
  • Fixed a few bugs here and there
  • Found a bug in which the music position would continue to advance even though the program is paused in the background. This seems to be a 'feature' of DirectSound.
  • Corrected the image of the tree a bit, and shrunked it to 128x256, from 256x256.
  • Changed the introduction texts a bit. Looks much nicer now.
  • Uploaded the new version of the demo

  29th of July, 2000
  • Reduced the number of trees to 300 per 60m block. Also recuded terrain size to 16x48; FPS rate was boosted twofolds.
  • Some minor modifications to the introduction texts
  • Added a sort of walking movement to the camera - the demo looks a lot better now

  28th of July, 2000
  • 'Been rather busy lately, so work's been going slow on the demo
  • Finished changing the API and file names.
  • Restructured the engine (almost completly) to allow use of interleaved vertex data in OpenGL. When I get the the triangle stripping working, it should improve performance.
  • Modified the sprite engine to use OpenGL exclusively.
  • Gouraud shaded the terrain. The next step is perlin noise blended textures
  • After some testing, I realised that the *trees* are what was bogging the demo down. Adding or removing anything else made no difference in the frame rate, but removing the trees trippled the speed! What bothers me is that they only composed of 800 triangles (in total), so at the 13fps I'm doing, that equates to 10 400 triangles/sec. Add to that the sky and the terrain, and you've got 65 208 triangles/sec, which should be far less than what the TNT is capable. Worst even, memory bandwidth and AGP1x/2x seem to have no effect on the speed, as well as the use of display lists, so transfering the geometry isn't what's slowing it down. Ditto for the rasteriser: bilinear filtering and alpha/color/additive blending seem to have no effect either. Using OpenGL or not for the transform has also no effect, so that isn't the bottleneck. Converting the frame buffer from one color depth to another is not the problem, because it would then take a constant toll on the frame rate, instead of being a function of the number of trees.
    I'll try some more tests later, but I'm really stomped on this one.
  • Download section is back on-line. New demo has been uploaded, and added a new screenshot,

  24th of July, 2000
  • Changed the name of the engine, and the demo. Note that the API changes aren't complete yet.
  • Development has stalled for a while, as I'm spending most of my free time hacking the Linux kernel. The more I see and read about it, the less I like the M$ crap I'm running on.
  • I've been experimenting on optimizing the engine a bit, by using display lists and trianlge strips. The latter isn't working right now. My target is 20 fps on my 412MHz Celery (75 MHz FSB), Riva TNT. I'm now at 10.5 using only display lists.

  22nd of July, 2000
  • Camera moves automatically, in a strait line. It doesn't pivot to follow terrain inclination though.
  • Fixed some timing things
  • Augmented tree density, and cut terrain length in half
  • Fixed a bug in the frame counter: a magic 10% speed increase!
  • Fixed a bug in AllegroGL that made it take a 32bpp mode even though I requested a 24bpp, and such a mode was available. The demo now works when the desktop is in 32bpp. It seems, on the other hand, that alpha testing is broken when there's an alpha channel in the frame buffer. Don't know what to blame for this yet, until I try it on non-NVidia cards.
  • Uploaded new version of the demo

  20th of July, 2000 - (1 am)
  • You can now load and display system fonts in the bitmap and outline formats.
  • I've added a little effect with the arial font to the demo. See for yourselves!
  • Also added a background music from the Donkey Kong Country Sound Track (optional) of very low quality (8-bit, 11KHz, Mono).
  • Uploaded a new version of the demo

  18th of July, 2000
  • Started work on adding font loading and drawing support to AllegroGL
  • Got the basis working: you will be able to load Allegro fonts or use system fonts, be it bitmap fonts, outlined, textured or texture mapped fonts.
  • Got some text to display for the bitmap system fonts. But the color is wrong (always black). Don't know why or how to fix it.
  • A form of 'printf()' has been added.
  • Syntax is as easy as Allegro's! You can load a font and display text in one line each:

    AGL_FONT *fnt = agl_load_font("Courrier New") /* (can be a file name) */

    agl_printf(fnt, -1.0f, 0.8f, 0.0f, makeacol(255, 128, 0), "Hello world!");

  17th of July, 2000
  • Added a syncronisation module; now everything is properly timed
  • Fixed a few bugs.
  • Fixed a bug in the sunrise that would make go green towards the end.
  • Uploaded a new version

  17th of July, 2000 - (6 am)
  • Beautified the site a little. You may complain to Bob
  • Morning already ? Better get some sleep!

  17th of July, 2000 - (1 am)
  • Got the camera to remain at a constant height from the terrain, but polys seem to be clipped wrong. On top of that, the height is calculated from the height-map, and not the actual terrain mesh, which gives an accurate result that doesn't correspond well with the visible result :(
  • Finally made that sun rise (without the sun) using the color fog effect. Looks really nice. Added a screen shot of that. So now the demo starts at night, with low visilibity, and progressively gets red, then orange, while visibility agments, until it's finally day and the red fades out.
  • Added some more mesh color controls
  • Fixed the bug that crashed the computer - turns out I was trying to read outside the heightmap. (Gotta give credit to M$ - at least they make descent debuggers :-)
  • Who hoo, I'm an official AllegoGL developper! (check AGL out here and here, and me right here)
  • Can't seem to get SSH and CVS to work together (can't connect socket to the sourceforge.net server). I am therefore unable to update AllegroGL.

  15th of July, 2000
  • Got rid of all the old matrix code; Everything is now fully quaternion based. As a side effect: calculations are halved on vertex transformations.
  • Started work on the priliminary demo: the terrain is more of less done, the trees are dynamically generated.
  • Demo starts at night, and progressively gets brighter. I think I should make it go throug some shades of red and yellow, as to make it look like sunrise. Might as well add a Sun as long as I'm there :) - Pete, What do you think?
  • Trying to get the camera to follow the terrain; currently not working (see below)
  • Demo makes my computer die a horrible and painfull death :( Seems it doesn't like my terrain hack too much...
  • Got rid of default directories: makes the code a lot nicer now (and more flexible)
  • Started adding more informative error messages.
  • Changed the look of this site a bit.

  13th of July, 2000
  • Uploaded this site
  • Temporary workaround for the AlphaTest bug in WinME's OpenGL drivers for TNTs. It uses alpha blending to compensate, but it won't work correctly unless the polygons are sorted, which they are not. Activate by press 'q'.
  • Added a Fog effect (still can't believe how easy it was :) Press 'f' to change the fog mode from exp (normal), to exp^2 (nicest), to linear interpolation (fastest). Also, the keypad's plus and minus keys will increase or decrease the fog.'c' will now change the fog color; a night effect is gained for free :)
  • Fixed a bug with the camera's position being inverted of the true one.
  • Made the trees a bit more random in size; looks much better now.
  • Corrected the trees' y-coordinate; it was flawed.
  • Corrected the color bug in the terrain code.
  • Fixed the sky's location, so it's always at a constant dstance frmo the camera
  • Adjusted the camera's original location.
  • Updated to the newest AllegroGL + my still-not-applied-by-the-mainteners patch so it should work in Win95 now. Also the window is properly configured now (it has a border !)
  • Still don't know if I should drop H/W TnL(nC) completely or not. Using TnL speeds up things on the GeForce and family, but costs the other cards a bit of performance (as everything has to go by the GL drivers). Also, I don't know how to get the transformed vertex data from GL, so I can't do physics simlations, collision detections, etc. glFeebackBuffer seems like a start, but will I have bandwidth problems as data will passed 3x through the pipeline (one pass to transform, one to return the data, and one to raster) ? TnL sucks ^_^
  • Wow, that's a lot for 5 hours of work :) Ok, must stop ranting and get some sleep (it's 3 am).