The UI client is a visual test and sandbox client implemented with the MonoGame framework. MonoGame is based on Microsofts XNA framework and enables fast and lightweight 2D rendering perfectly suited for the purpose of showing the user what is going on during machine learning. It also enables the users to drive a car themselves and even compete against AI.
Note however, that the UI client is merely a tool to give developers a visual representation to make analysis easier (ok, and to incorporate some fun into the project ^^). The focus still relies on the machine learning clients doing the actually interesting stuff.
The communication between the UI client and the server is realized using a (Web-)gRPC channel.
The UI currently supports Resolutions above 1920 x 1200.
Upward Key: Accelerate car
Downward Key: Decelerate car
Left Key: Turn left
Right Key: Turn right
Space: Reset position of car
Esc in gamestate: Quit session
Esc in rankingstate: Quit ranking state
D: Shows car statistics
K: Toggles darkmode on/off
L: Logs the games data
(Logged data can be found in "./Matlabs.OwlRacer.GameClient/bin/Debug/net6.0/capture/")
In order for these key bindings to work you have to adjust the appsettings.json file.
You find examples of correct relative filepaths in the apssettings_example.json file.
Make sure to replace "<your_path_to_python.exe>" with the correct file path to your
installed python.exe
Python Models:
F1: spawn simpleML_DT_deprecated model
F2: spawn simpleML_RF_deprecated model
F3: spawn DecisionTree_(Py) model
ML.Net Models:
F4: spawn DNN_(ML.Net) mode
F5: spawn DecisionTreeClassifier_(ML.NET) model
F6: spawn RandomForest_deprecated(ML.NET) model
For more details on the total project read here.