Tuesday, April 26, 2005

Week 5: Progress Report

Uunfortunatly, due to a lack of time and further complications, we have had to make some rough decisions with items in the project. The Heiratical scene graph originally envisioned for this project has become the single biggest headache by far. Half the team has spent nearly all of this week optimizing it and trying to grab useful data for culling and collision tests.

After finding some VERY egregious errors in the code (the tree actually didn't even recurse at one point). It started to return normal "looking" data. Unfortunately, the tree still had no useful debugging information in it, so it was impossible tell if the triangle list it was returning was at all "accurate". We just found out that the data is at least partially (possibly completely - we have no way of knowing for sure) corrupted, as a careful watch on the data shows the quadtree storing some bizarre position data, with a z coordinate of 1.2356 x 10 - 32 for example. To top it off, there is now confirmation that the nagging memory leak can be traced to the quadtree code, mostly due to the fact that it does NOT delete any of the memory it assigns itself upon exit. Also, the tree keeps a copy of all triangles within it....At EACH node, instead of just at the end leaves.

While Groller tries to figure this out, the rest of the team has been forced to switch gears and concentrate on getting the rest of the mandatory code off the ground in time for the final presentation for the course next week. This includes a tank that shoots, collision with the raw model (no tree for now), getting the tank visible and oriented to player locations, and multiplayer chat completed.

Things we accomplished:
  • Kam has reorganized the input system completely to allow a more sophisticated "state machine" style process. The system will now switch between various input states such as title screen, player controls, chat input, etc, without interrupting or changing the flow of the rest of the system.
  • Groller and Kam have spent the rest of the week trying to get the quadtree to become useful.
  • Without a useful tree to work with, Decompile was forced to continue working on collision tests with tests triangles manually added to the game.
  • Illuminus added bullet game objects, optimized the network code to prevent "ghosting" of exited players, and troubleshot the tank loading code..

Things we did not accomplish:
  • Bullets flying from the tank was to go in this week, but could not due to Decompile getting stuck on collision code.
  • Sound was to begin getting into the game, but was pushed back whilst other critical systems were worked on.
  • Particles could also not be worked on because Kam was helping Groller try and get the Quadtree up and running.