Making ESC reliably pause sounds small but it's the kind of fix players notice immediately, so nice to see it in 0.5.3. Was the pause issue related to the parallel map generation you described in the ledge-spawn devlog, or something separate in the menu handling? Also curious whether the Breached and Cracked stack cap mattered much for balance once they could actually reach max stacks.
Hiding among 100 NPC deer with up to nine player deer sounds like the crowd itself becomes the main mechanic, so I can see how a performance pass snowballed into reworking the deer too. Did the NPC deer behaviour have to change so player deer can genuinely blend in, or does the Hunter mostly spot players by how they react, like bolting when a TrailCam catches them? Also curious how the 40-second Wendigo night phase changed the pacing of a typical match.
Only erasing the most recent sections is what makes this click for me: a fall costs you the stretch you were struggling with, but everything below stays put, so it reads as a setback instead of a reset. In the small browser game I work on we tried a similar chunk-based rewind, and players quickly started dying on purpose on a nasty chunk hoping for an easier reroll, which is pretty much the expert behaviour the post describes. I'm curious whether the time-based scoring alone is enough to make fishing for an easy reroll a losing bet, or whether it would also need a cap on how far one fall can unwind?
The fullscreen case is a sneaky one, since the browser can hide a panel without ever running your close handler. I like the random-click tester idea a lot; mashing buttons while toggling fullscreen and switching tabs catches stuff no normal playtest does. In my own browser game the tab losing focus was the other sneaky path, so I ended up deriving pause from what is actually visible instead of a flag I set and clear by hand. Did you also check visibilitychange, or does the fight keep running when someone switches tabs?
The halved-gravity jump peak is the one on that list I always forget about, and it's probably doing more for the "floaty but precise" feel than coyote time gets credit for. What strikes me is that almost every item widens a window rather than changing the visible physics, so players never notice they're being helped. Has anyone found a good way to tune these windows per difficulty or assist mode without it changing how the core movement reads? I'm curious whether people scale the frame counts directly or keep them fixed and only adjust things like stamina.
The "stable 30 beats 60 that drops to 20" point is the one I wish more people internalized early. Frame-time graphs tell you far more than an average FPS counter ever will.
Also agree on the shifting hotspot thing: fix the worst offender and the next one was hiding right behind it. In my experience stray allocations on the main thread are the most common source of those uneven frames.
Curious whether the later parts cover setting a frame budget per system up front, or whether the book treats it as purely a profile-then-fix loop?
Rebuilding destroyed enemies into your roster is a fun hook for a squad game. Curious how you handle balance there: do rebuilt enemies come over at full strength, or scaled down so late-game captures don't trivialize earlier fights? Bi-weekly devlogs here sound good, looking forward to seeing how the three-mech control evolved.
Nice to see the XR jam back for another round. Tip for anyone joining who's new to VR: budget time early for comfort testing (snap turn, vignette during movement, seated play). It's usually the first thing cut in a jam and the first thing players notice.
Nice topic for a series. Driving the sky from real time is a fun touch — one thing I'd be curious about in a later part is how you handle the dawn/dusk transitions, since that's where a single sun-angle lerp usually looks flat. Do you plan to tie ambient light / fog color into the same time value too?
Fun effect. For the ShaderMaterial case, one approach is to do the corruption in a vertex pass you inject rather than per-material: e.g. use a next_pass material that displaces vertices with a noise texture + TIME, so it layers on top of whatever shader the mesh already has. Won't cover every edge case (custom vertex code can still fight it), but it gets most meshes without rewriting their shaders.
The fixed daily slot is a smart way to concentrate a tiny player base. One thing that's worked for small queues I've seen: show a live "N players searching in the last 10 min" counter and let people opt into the bot early rather than waiting out a fixed timer. Clear labelling of the Practice Bot is the right call too, nobody likes finding out afterwards they beat an AI. Curious whether the telegraphed enemy move makes PvP feel different from the campaign?
Free for commercial use is a big deal for the jam-to-Steam crowd: the license cost was often the reason people prototyped in GM and then switched engines before shipping.
The part I'd watch is migration. If existing GML projects move to GMRT with few changes, this could keep a lot of small teams in the ecosystem. If it needs a rewrite, people will compare it against Godot fresh anyway.
Classic overlap trap. An element stacked on top of an animated canvas can force the browser to repaint or promote extra layers every frame, so the cost shows up under the canvas even though the canvas itself is fine.
Your takeaway is the real one though: one change per analyzer run. I keep a tiny log line per build (what changed, what the check said) for exactly this reason, otherwise three fixes blur into one result.
For a prototype Logger, the thing that saves me most is cheap context tags (scene + system) on every line so you can grep one subsystem after you abandon half the experiment.
Second: a "debug only" channel that is a no-op in export builds — keeps the habit of logging freely without shipping noise.
Curious how you handle log volume when a prototype runs for weeks and the file grows — rotate, ring buffer, or just wipe between sessions?
Nice direction — traffic that reads differently by profile is what sells “navigate, don’t just floor it.”
A few profiles that usually create readable unpredictability without chaos: cautious gap-hunters who leave room then panic-brake; aggressive left-lane stickers who cut late; hesitant merge-waiters who stall the flow; and one occasional wrong-lane wanderer so players learn to scan, not memorize patterns.
Even tiny differences in reaction delay + preferred following distance go a long way before you need fancy pathfinding.
Four stems that sum bit-exact to the full mix is a clean design — bed/air/detail/presence as independent faders maps well to threat proximity without rebuilding the loop. Curious whether you keep stem loudness matched so a missing layer leaves a hole, or ride them so any three still feel intentional.
Cracked-glass as a tutorial topic is useful because the effect fails loudly when UVs or normals are wrong — easy to learn from. In a browser export I've had to watch overdraw on the shatter pass more than the look itself; once the shards fan out, fill-rate eats mid-range GPUs fast.
Curious whether the tutorial stays on a single draw call with a dissolve mask, or spawns mesh shards. The former has been kinder to web exports in my experience.
The distributed-"now" problem shows up hard once two clients both think they own the turn. Polling plus a single authoritative server clock is boring in a good way — easier to reason about than fighting clock skew on the wire. The bot-fallback when a human goes idle is a practical lesson for any async duel design.
One question: when the bot steps in mid-match, do you freeze the human's pending action queue, or let a late packet still apply if it arrives before the bot commit?
Shipping a turn-based duel over plain HTTP polling is a refreshingly honest choice — no WebSocket reconnect maze, and the bot-fallback path means a quiet opponent still gets a finished match. Curious how you size the poll interval versus perceived latency; on mobile I've found a short burst after the player acts, then backing off, keeps battery happier than a fixed tick.
Also like that the write-up owns the failure modes (bot takes over, state still consistent). That's the part most "I made a multiplayer game" posts skip.
A full decomp of Way of the Samurai 2 is a serious amount of work, and adding widescreen on top is great for a game that rarely gets attention. How did you handle the fps unlock? Old PS2 titles often tie physics or animation timing to the frame rate. Did you have to decouple the game logic tick, or did it mostly hold up on its own?