August 2023 Update (part 1)
Hey! I've been busy moving house over the last few weeks so not a hugely exciting update this time. In the last week or so I've been putting off graphics work and instead have added a rudimentary replay system:
https://twitter.com/splopp/status/1689549329441476608
Hoping to get the overworld graphics update done soon + other work, hence the "part 1" in the title. (I'll be tricked into doing another update now you see)
Replays
Since save games are already implemented, they provide a consistent "starting point" for replays. A replay is recorded until the player saves the game or dies, effectively building up a full "history" of the playthrough.
Each demo recording is stored in a directory with a few files:
The recording data is each user control press / release, along with the frame in which that control was updated. The game runs using a fixed update loop so we get that part of "deterministic" for free - the challenge was updating the use of randomly-generated values to be consistent across replays. In the end, all random values were split into either deterministic or non-deterministic, for mandatory-for-consistent-playback values and just-a-rendering-concern, respectively.
Since "persistent library data" (e.g. locations of ladders, throwables etc.) is stored as separate files, the demo also needs to track all libraries entered by the player during their recording, keeping a snapshot of the library at the time of first entering. During playback, these snapshots are loaded in and will be updated as the player enters / leaves the library (the changes are thrown away once the playback ends).
We also need a snapshot of the player's profile data, since this is a single file that gets updated every time the player saves. We also keep a "profile-after" snapshot for posterity.
Finally, there is a "version.txt" file which is just the version of the game at time of recording, saved as plaintext. Since any additions / changes to the game update loop can change how random numbers are generated, and changes to the levels can cause player input to be out of sync, we can't guarantee that a replay will work for future versions. Playback will still run, but a warning is logged if there's a version mismatch.
Dust
The thief can now kick up dust as they move around:
https://twitter.com/splopp/status/1689556247970975744
If they move in the same space enough, all the dust will be kicked up and no more dust will appear. It could be fun to add a "cleanliness" grade for each screen at some point, but for now the graphical aspect is enough.
Other
- Fixes for transitions
- Work around Monogame's fixed time step approach with a laggy "middle" transition frame, to ensure transitions look smooth
- Fix the first half of the transition not adhering to the game's colour palette (this was also a Monogame workaround)
- Updated house area graphics (will be covered in a later update)
- Only light fire / candle on action
- Improve bed bouncing (allow consecutive bounces)
Fin
The Owl, The Thief and The Strawberries
Steal knowledge, one glyph at a time
Status | In development |
Author | Splerp |
Genre | Platformer, Puzzle |
Tags | 2D, Arcade, books, Exploration, owl, Pixel Art, strawberries, strawberry, thief |
Languages | English |
Accessibility | Configurable controls |
More posts
- September 2023 Update (part 1)Sep 26, 2023
- July 2023 UpdateJul 08, 2023
- May 2023 UpdateMay 19, 2023
- Cheese Talks - Interview with Cheeseness about OTSDec 18, 2022
- Jigsaw Puzzle MechanicsDec 06, 2022
- Weekly Progress Update for... NovemberNov 23, 2022
Leave a comment
Log in with itch.io to leave a comment.