This is an individual assignment. It will help us to estimate where you currently are in terms of capabilities.
The ultimate aim is for you to demonstrate that you can understand file reading, interacting with different data types and the underlying code for moving things to and from memory, thus handling some of the complex aspects needed for writing game engine code. Sharing and exchanging assets is an important part of game development and if done badly greatly impacts the development and the final product. There is a basic and a more advanced part to this assessment to allow you grind your teeth in. For this work, you may not use any external library at this point (beyond the ones provided). The whole point is that we want you to understand handling imports and exports to and from an engine yourselves.
For this assessment, you should use modern C++ without making use of C primitives and procedures as much as possible (eg. using string over char*).
Purpose of the FileReader:
Your software should be reading and displaying primitives from a the set of provided test files in the OBJ and gITF file format from the command line.
It should allow these tasks (see the Classroom assessment):
- Interactive input using:
o The file name should be passed into the program through the command line, eg. model.obj
(no hardcoded file links allowed)
- The reader should allow the user to query the data using instructions:
- Inspect A File
- Output specific information on the included information
- Test Driven Test Mode:
- File name passed through method (can be checked using the doctests)
- Open and closing of files, including async mode on multiple files.
- Reading data as one-shot or concurrent.
To complement the development, you should write a brief introduction and description in markdown format which details the setup, usage and how the code fits together to be used in other cases. For the video you may use this to walk us through your project. As part of the video you need to show how the software runs and complies.