Assignment 8
1. Show a screenshot of your game running.
2. Show an example of a binary geometry file built by your MeshBuilder, and:
2.1 Tell us the order of the four things in the binary file and why you chose that order;

As highlighted as different colors, my order for the binary file is vertice count (green) - indice count (yellow) - vertice data array (red) - indice data array (blue).
The counts for vertice and indice must come before corresponding arrays, so that the program can calculate the offset of the array address based on their size.
​
2.2 Tell us at least two advantages of using binary file formats.Why do we use binary formats at run-time in our class but human-readable formats to store the data in source control?
Binary files are much smaller in memory and quicker to parse at runtime. Binary files are also harder to decode considering the data security issues.
However, human-readable formats are much easier to read and edit. With human-readable formats in source control, we keep track of the design of our game and are able to edit it. The binary files can always be generated with human-readable files.​
​
3. Tell us whether the built binary geometry files should be the same or different for the different platforms, and explain why.​
I think ​they should be the same. First, I use the same order storing the data for both platforms. Second, both vertice data are right-handed following the Maya format. Third, all data is fixed size: counts are uint16, indices are uint16, vertex data are made up of floats which have same size for both platforms.
​​
4. Show us how you extract the four pieces of data from binary data at run-time.​​​

5. Create a mesh in Maya with a large number of vertices and indices to measure the advantages of binary files.​
I created a helix with 4816 vertices and 7236 indices.
5.1 Tell us how big (in bytes) the human-readable version is on disk and how big (in bytes) the binary version is on disk.
The json file is 543KB while the binary file is 146KB, about 4 times smaller.
5.2 Tell us how long it takes to load the human-readable version and how long it takes to load the binary version.​
The json file takes 166870 ticks to load while the binary file takes 992 ticks, about 168 times quicker.