Configuration
Window, time, audio, and cursor settings, and the limits of the current JSON configuration.
On this page
The configuration file
The engine reads Content/Config.json when constructing the global gConfig object. These are the contents of the reference revision:
{
"windowTitle": "Awesome Engine",
"windowSize": [800, 800],
"frameRateLimit": 120,
"disableSfmlLogs": true,
"maximumDeltaTime": 0.03,
"globalVolume": 100,
"backgroundColor": [100, 100, 100],
"cursorRadius": 5,
"cursorSpeed": 800,
"cursorColor": [255, 100, 0],
"joystickDeadzone": 0.1
}
What each value controls
| Key | Effect |
|---|---|
windowTitle |
Title of the SFML window. |
windowSize |
Initial size and reference for render targets and several game calculations. |
frameRateLimit |
Frame limit requested from the window; defaults to 120 if the key is absent. |
disableSfmlLogs |
Silences the SFML error stream when set to true. |
maximumDeltaTime |
Maximum simulation delta, in seconds, delivered by TimeManager per frame. |
globalVolume |
Global volume applied to the SFML listener. |
backgroundColor |
RGB tint of the background used by RenderManager. |
cursorRadius |
Radius of the custom circular cursor. |
cursorSpeed |
Cursor speed when moved with a controller. |
cursorColor |
RGB cursor color. |
joystickDeadzone |
Threshold for ignoring small stick movements when moving the cursor. |
The 120-frame limit is a setting, not a performance measurement. It does not imply a fixed simulation timestep either: time varies per frame and is capped by maximumDeltaTime.
Change the configuration
Edit the JSON while the application is closed, then run it again from the repository root. Configuration is loaded at startup; there is no automatic file reload or preferences panel that writes these values.
Keep the keys and types shown in the example. The parser does not implement a validation schema or fallback values for every field. A missing file, invalid JSON, or an incorrect required key may prevent startup.
Changing windowSize also affects game code that uses gConfig.windowSize. It does not provide a complete dynamic resolution system. The resize event does not automatically rebuild post-processing textures.
Per-game configuration
Game-specific parameters live in Games/Include/Config: BounceConfig.h, ClickerConfig.h, MemoryCardConfig.h, TicTacToeConfig.h, MineSweeperConfig.h, RunnerConfig.h, and TetrisConfig.h.
These are C++ constants; changes require rebuilding. The starting scene is not chosen through Config.json either: it is set by ChangeScene("Tetris") in the Engine constructor.
Website and engine preferences
This site’s light, dark, or system selector changes only its web interface. The engine configures TGUI with Content/Themes/Dark.txt; this documentation does not assume that the web selector exists inside the executable.