Weekly post
December 31, 2025 • 3 min
11-22 to 12-31
- Fixed crash on obelisk uncaptured in mp
- Jitter fixes for singleplayer rendering interpolation with visual poses
- UI name conflict fixes
- Obelisk Lua assertion fixes
- Lighting crash fix
- Uninitialized oldIsActive variable fix
- v to toggle camera fixes: v to zoom camera out is via rpc now rather than prediction
- Made player noform show current collected mass better via its sprite count
- Noform physics size and mass now change with mass collected
- Made it so circle shapes shoot without hitting themselves as much
- Netvar bootstrap added to fix late join crash
- May have fixed no netvars being sent if no state updates were sent for an object
- Fixed Lua tables not retaining state such as the rock pieceIndex if sent on mp when going thru portal forks. Made an "__overrides" table to do this
- Fixed copy crash due to nullptr
- Fixed assertion failure in copy code
- Asserts should redirect output to stderr on windows now
- Fixes for level identifiers in MP created due to spawning custom sublevels after initial level loading.
- Fixed door collisions in MP due to collision group not being set on time and also due to create joint RPC being incorrect due to the client simulating it before the create joint RPC could be processed. To fix it, delayed physics simulation on client until server says it finished sending all initial level rpcs and for safety made create joint RPC bigger so it can include absolute rather than relative values.
- Fixed crash with new resim system due to client level restart leaving stale b2Body addresses
- fixed serialization size lower bound being off for levelownid
- Replay fixes but am rewriting it as replay v2 to fix design flaws for multiple simulations due to knowing when a player's input file should be processed in the case of level switches and then a player late joins (the tick count before enabling the player can be wrong, etc.). Also having multiple input files per sim/player makes it hard to make a consistent/correct replay due to keeping track of all these files. Replay v2 is recorded and replayed at the server layer not the server sim layer so it will be better by design.
- Fix for __module key not found crash in level forks on server sim, fixed by handling sending on MP for no longer alive shapes when they used to be Lua backed shape contents or abilities and then they became no longer alive, they would remove their old ability table on the server sim but keep their contents or ability as Lua backed. Now it resets the contents and ability type to none when no longer alive
- Made player move a bit slower when moving at slow velocity if noform and a smaller shape only -- to allow more precise movements
- Fixed rpc issue where spawn rpc and despawn rpc for the same id caused an assert(objectExistsOnClient ...) to fail; rpc debugging for nextID not matching when going thru portal forks repeatedly
- Fixed rpc issue where spawn rpc and despawn rpc for the same id caused an assert(objectExistsOnClient ...) to fail; rpc debugging for nextID not matching when going thru portal forks repeatedly
- New assertion dialogue for debug builds; untested (to prevent accidentally pressing "a" to abort instantly while pressing "a" already as a game input). Assertions in release now abort with no message box, just a log.txt message
- Post processing effects: crt distortion and faint lines, chromatic aberration on player takes damage
- Now working on replay v2 system