Weekly post
January 10, 2026 • 2 min
Replay v2
- spectators implemented: when you join the game while it is playing back a replay, you join as a spectator. Previously you would "take over" the identity of a player in the replay (in the input file replay v1 system); however this was far too complex and error-prone. The new system is much better/more extensible since spectators have their own separate player object and identity. This required making the effective player limit much larger: about 128 players and 128 spectators
- fixed spawning of enemies in KoH open area being influenced by replaying or not
- fixed going to a level fork with replay v2
- fixed design flaw when deserializing prototypes while rpcs contain clear level rpcs, which caused the body IDs to be wrong and able to cause a crash
- spectator does basic reconciliation with server
- space to enter portal button for spectators to go to level forks that exist
Fixes
- fix for netvar updates not being marked dirty correctly
- fix for current netvars not being sent on player join
- epoch for level restarts to fix some issues
- fix for crashes while rapidly going between portal forks
- fixed a bug where create joint rpcs would become invalid if a polyline was in a portal at level start and therefore would go through it and get destroyed
Snapstep ability design
- making it primarily by coming up with a design and iterating via vibe coding with ChatGPT 5.2 thinking
- primary purpose of the ability is to counter laser bullet shapes and be strong for combat. I started with thinking I would need a dash ability on it but have decided to add active helper shapes later to get this. Snapstep is a combination of several moves/scenarios: you can do a pulse to do damage up close, or to catch a bullet and make a force field that knocks bullets to the side at the caught location; then you can throw the bullet at the mouse, and it can go around your own shape, doing 2x damage. You have to time the grab correctly or else the firing delay is longer on it.
- unlike other abilities, am designing this one and implementing it 100%, to push the engine and myself to make things polished to see if I can do it! 100% in terms of 5 aspects: 1. Visual feel, 2. Audio feel, 3. "Game feel", 4. Gameplay design, 5. Netcode