I couldn’t tease out from his tweets if he meant that every object in the game was comprised of particles like some kind of VOXEL game or whatnot. If the whole rewind system was based on particles?<p>«Waaaay back in 2010 I gave a talk at the GDC detailing exactly how rewind was implemented in Braid, including e.g. how does it reproduce all the particles perfectly without using tons of data.«<p>But I was able to find his original blog post, which show the particle system code and crucially shows the animation of what parts of the visuals the particle system (with the random number seeding etc). was actually for:<p><a href="http://number-none.com/blow/blog/programming/2016/07/07/braid_particles_1.html" rel="nofollow">http://number-none.com/blow/blog/programming/2016/07/07/brai...</a><p>(The particle system - recreate particles from scratch every time, and just go one step less, N-1, when rewinding - reminds me of Redux’ time travel algorithm, as demoed by Dan Abramov.)<p>I also found the original GDC talk Blow referenced, where he details the rewind system more fully, with illustrations. It becomes more clear that the world state is comprised of regular game objects in addition to particles. His overall approach was:<p>«Record full world state for every frame, always. Do not drop frames. Compress data somehow.»<p>(Reminds me of React’s «rerender whole UI, but virtual DOM diff afterwards», approach.)<p>Skip to 3:00 for the various rewind approaches he considered but dropped
(including the StarCraft replays like approach of capturing actions and playing them back):
<a href="https://www.gdcvault.com/play/1012210/The-Implementation-of-Rewind-in#:~:text=In%20Braid%20the%20player%20can,scene%20at%20each%20given%20time" rel="nofollow">https://www.gdcvault.com/play/1012210/The-Implementation-of-...</a>.
Game Helpin' Squad: Time Travel Understander:<p><a href="https://www.youtube.com/watch?v=1fABGyVzVwI" rel="nofollow">https://www.youtube.com/watch?v=1fABGyVzVwI</a>
To save you a click: “ However, the particles in Braid don't affect gameplay in any way;
they're just cosmetic. ” so he used deterministic functions.<p>So pretty much exactly what you would expect someone to do.<p>But he got to get his clicks somehow!