To save settings, you can use the convenient SettingsManager interface that provides a couple of functions to help you with saving settings

static void saveSettings(); // saves all of the settings below
static void saveRendererSettings(); // saves settings related to rendering operations in `Config/Settings/Renderer.yaml`
static void saveEditorKeybindSettings(); // saves settings about the editor's keybings, saved to `Config/Editor/EditorKeybinds.yaml`
static void saveKeybindSettings(); // saves the game's keybinding settings, saved to `Config/Editor/GameKeybinds.yaml`
static void saveWindowSettings(); // saves the settings about the winddow, saved to `Config/Editor/Window.yaml`
static void saveWindowAndKeybindSettings(); // saves the window and keybind settings


Reading is done automatically when you re-open the application



To save a level, you can use the

static void save(String location);

function to save a level to a specific location


Currently, the engine doesn't restrict saving/reading data from disc. It's up to the developer to choose a library or approach that fits the application's needs. For most internal operations the engine uses YAML files due to their readability and them being easy for humans to merge unlike formats like JSON.

The included YAML library we use is called yaml-cpp and our fork can be found here. The original repository includes documentation on how to use the library's features.

You don't really need to include any headers for the library, since the Engine.hpp includes it for you.