- Experimental: Upscaling sprites for better quality
- Handling window size
- Many systems and component on the Client were refactored to be Singleton (Input Handler, Renderer, Audio etc)
- Debug visualization for net code
- Initial client and server code separation (client, server, common)
- Basic client side prediction
- First working netcode
- Statuses are now simple enums and not Boxed traits.
- no malloc
- no ugly hacky reflection
- easier serialization
- Remove websocket and BrowserClient functionality (performance was not sufficient, so usual netcode will be implemented)
- Barricade cannot be put onto an already occupied tile
finish_cast
now expects aFinishCast
struct as a parameter
set_resolution
andset_fullscreen
commandsresolution_w
andresolution_h
configs in config.toml
- Startup time optimization
- Ground is loaded on a second thread as well
- debug startup: ~5s
- release startup: ~1.9s
- Startup time optimization
Sprites and models are loaded on a background thread asynchronously.- old, debug mode: 24s
- old, release mode: ~3.5s (max value 6.1s)
- new, debug mode: 7.6s
- new, release mode: 2.7s (fairly stable, no fluctuations)
- Red and blue colors for all classes
- added
init.cmd
: A script file whose lines are executed on startup via the console system.
It makes it possible to bind commands to shortcuts (see next point) - Key binding command, e.g.:
bind_key alt+Num1 toggle_console
KeyState
s inHumanInputComponent
are stored in a fixed size array not a hashmap (the index is the scancode value, which is a value from 0 to 284, hashmap was unnecessary)config-runtime.toml
were expanded withexecute_script
property. It is for executing more complex and multiline commands (e.g. for the screenshot above, I needed to callset_job JOB_NAME
andclone
commands for all the available classes).
Each commands are executed in a single frame to avoid problems with the physics system.
Will be removed soon because it is a quite hacky solution.