EAE Game Engineering II Assignment 06

Add to
My games
Add to
Save to
No reviews


Write Up:

This was a pretty cool assignment. Lua was a bit of the B-word, if you know what I mean, but it was also just really cool to have the power to define our own geometry formats. No longer are we subject to the tyranny of .fbx and .obj.

We hold all the power!

Okay, maybe that's a bit much. But you know. It's fun.

  • Discuss the advantages of having human-readable asset files
    • The singular biggest advantage of human-readable asset files is debugging. If programs were perfect, we would never have bugs (oh what a world that would be) but alas, humans will sometimes need to dive into the "source code" of the asset files and tinker in there. Making sure these files can be opened in a text editor (and made sense of) facilitates this.
    • There are two other major advantages of text-based asset files. The first is that they're friendly with Git. Unreal asset files are a huge pain because they're binary, which means they can't be merged or even diff-ed.
    • The second advantage is automation. Look, I love UNIX and text-based automation. Instead of making changes in tens of assets by hand, we could just write a Python script that'll make all the changes with way less effort and time.
  • Show one of your geometry files
    • Take a look at the second screenshot. Isn't it a beauty?
    • Describe why you made the design choices that you did. In particular, help your readers to understand what you did to make the file readable and understandable for a human.
      • I think one of the more difficult decisions I made was to add another table-layer onto the Indices table. I grouped indices by-threes (so, in the example, {0,1, 2} makes one group and {0, 2, 3} makes another) instead of having indices in one singular array. As a result, the code for reading this structure was annoyingly long, and we had to translate back from the grouped form into a single array anyway!
      • So why did I do this? My reasoning is basically that's it's easier to read. 
      • I think it's a safe assumption to make that all our geometry will be made of triangles (and our index-buffer code assumes this anyway) and it's just much easier to read when you can see which indices are part of the same triangle. Of course, you could split it line-by-line, but with my format you can actually group multiple triangles together on the same line and still be able to read it pretty easily.

Unfortunately, this time round I've had some trouble getting the Release builds to run without crashing. The issue seems to be Read Access Violations on Init, but I can't seem to track down what's causing that.

So I've uploaded the Debug versions of my project this time. Have fun!

Release date
Age rating
Not rated
Edit the game info
Last Modified: Oct 4, 2019

Where to buy