All notable changes to this project will be documented in this file
The format is based on Keep a Changelog and this project adheres to Semantic Versioning
The Sunrise After Ragnarök Release
event
namespace, which brings tools for implementing the observer pattern generically
- simplified
log::Log::notify
- rename
GameState
toGlobalState
andGame
toApp
to better reflect the multipurpose nature of TimberWolf - split state management into
wyrd
crate, which will be a real ECS system rather than what I had before - refactor the timing subsystem to use the observer pattern from
event
- move
demo
toexamples/triangle
, because there will be more than one demo, and that one will just display a triangle
- .idea config files are no longer in-repo (and neither should any other IDE-specific configs going forward)
The Different Frame of Mind Release
You can lift your head up to the sky
Take a deeper breath and give it time
You can walk the path among the lines
With your shattered frame of mind
– Tristam & Braken, Frame of Mind
- contexts can now handle inbound events from winit windows
- contexts are now responsible for owning and using the contexts they replace
- project rustfmt.toml and .editorconfig files
- the
timberwolf::Game
struct now keeps only a single boxed context, allows switching contexts via its shared state struct, and - the
timberwolf::Game
struct now provides access to services through atimberwolf::ServiceLocator
struct - contexts receive
timberwolf::ServiceLocator
andtimberwolf::GameState
references instead oftimberwolf::log::Log
references in theirrender
andupdate
methods - contexts are now part of
timberwolf::lifecycle
instead oftimberwolf::context
- context commands are now
timberwolf::lifecycle::Command
instead oftimberwolf::context::Request
- the
timberwolf::context::Story
struct no longer exists - contexts no longer have simple
is_*_transparent
methods for determining how previous contexts are handled
The Don't Stop Me Now Release
- Stopping the game loop from one thread would leave the other running
The Time is Relative Release
- Game loop timing not separated into two measurements, causing double execution
- the old C++ codebase
The Rust N00b Release
- Game struct functional
- Context subsystem functional
- Log subsystem functional
- Timing subsystem functional
- Demo app that logs the timing of the render and update loops
The C++ is dead; long live Rust! Release
- Rust project created
- C++ codebase deprecated
The Last Stand of C++ Release
- Core game loop.
- Game state subsystem.
- Logging subsystem.
- Input processing subsystem.
- OpenGL rendering subsystem.
- CMake 3.10+ build system.