The engine's settings should be able to be configured using a configuration file.
Details
The engine should be configurable using a settings struct.
This struct should contain values that control various modules of the engine like windowing, rendering, input etc.
The application struct should accept an instance of this struct on construction and use it's values to configure and initialize its sub-systems accordingly.
Note: The initial version of this struct should not contain the entire configuration of the engine. Instead is should be a starting point towards that goal. This file will be gradually completed as new configuration needs arise.
I strongly recommend using YAML for any kind of configuration since it is human readable and allows for adding comments making it more intuitive to manipulate by the user.
Deserializing a YAML file is really easy in Rust using the serde and serde_yaml crates.
Task
The engine's settings should be able to be configured using a configuration file.
Details
Note: The initial version of this struct should not contain the entire configuration of the engine. Instead is should be a starting point towards that goal. This file will be gradually completed as new configuration needs arise.
I strongly recommend using YAML for any kind of configuration since it is human readable and allows for adding comments making it more intuitive to manipulate by the user.
Deserializing a YAML file is really easy in Rust using the
serde
andserde_yaml
crates.