Download this game here.

The Incredible Game 08
  • Controls:
    • Esc – Exit.
    • Shift – Toggle object’s geometry.
    • Backspace – Toggle between controlled camera/object.
    • Arrow Keys – Move camera/object.
  1. Assignment Goal:
    • To transform human readable files into easy-to-process binary files.
      • This allows the files to still be viewed and edited within source-control, while also compacts them for ease of processing.
    • To move much of the asset loading work into the building process rather than doing it in-engine.
  2. Additions & Changes:
    • Altered GeometryBuilder project to output binary file rather than simply copying the Lua file.
      • Instead, reads Lua file and transforms it into a binary file.
      • Unwinding code is executed here instead of in cGeometry.d3d.cpp.
    • Added a binary File .geo format:
      • Stored in order of vertex count, vertices values, index count, and indices values.
      • Simple to read and iterate through one step at a time.
      • Smaller in size, both for processing and storage.
    • Removed unwinding code from cGeometry.d3d.cpp.
      • This was transfered into the cGeometryBuilder.cpp where winding is now done based off the platform.
  3. Metrics:
    • Helix Lua on Disk: 2,564,096 bytes
      • Time to Read File: 0.207188
    • Helix Binary on Disk: 602,112 bytes
      • Time to Read File: 0.025640
  4. How I Did It:
    • Simply shifting code around, I was able to complete this assignment very quickly.
    • The way the binary file was written and read makes a lot of sense to me, since I usually have the mindset of storage in arrays.
A Binary .geo File
Sizes are shown in Yellow Boxes
Data is shown in Alternating Red & Orange Boxes
Code that Extracts Data from the Binary File