Download this game here.

The Incredible Game 09
  • Controls:
    • Esc – Exit.
    • Shift – Toggle object’s geometry.
    • Backspace – Toggle between controlled camera/object.
    • Arrow Keys – Move camera/object.
  1. Assignment Goal:
    • To create a human readable effect file.
    • 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:
    • Added EffectBuilder project to output binary file from a provided Lua file.
      • Also registers which shader files to build according to what is required for each effect.
    • Added a human readable .eff file
      • Stored in order of vertex, then fragment shader paths, then booleans are stored for the renderState.
    • Changed cEffect class to us handles and an s_manager.
    • Added a binary File .eff format:
      • Stored in order of vertex, then fragment shader, then alpha transparency toggle, depth testing toggle, depth writing toggle, and draw triangle both sides toggle.
      • Simple to read and iterate through one step at a time.
      • Smaller in size, both for processing and storage.
      • Knows when the vertex shader path ends by seeing string delimiter which is stored in the file.
      • The paths are relative to $(GameInstallDir), as I determined storing the extra “/data/” was not so much extra memory to have to save in order to prevent having to do expensive string operations within my loading code.
  3. How I Did It:
    • By using what I have learned from the cGeometry process, I have completed this assignment with less struggle than I had previously.
    • The binary file was kept very simple, storing the bare minimum in order to prevent confusion or mistakes.
Human Readable .eff Lua File
Binary .eff File
Extracting Data From Binary File