HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

The Implementation of Rewind in Braid

GDC Festival of Gaming2 HN recommenders · recommended in 2 months, 2018-2023
YouTube
141K views · 9 years ago · talk · evergreen

Jonathan Blow's GDC talk explains how the time-rewind mechanic in Braid was designed and implemented, including the technical hurdles such as memory limits and state history. It covers both design and engineering concerns.

HN commenters cite it as the reference for how a rewind system works and as a point of comparison for undo and serialization approaches.

Game programming & enginesGame design#braid#jonathanblow#rewind#undosystems#gameprogramming

6 comments from Hacker News

@OnionBlender2023 · in “Braid, Anniversary Edition trailer [video]”

If you're curious how the time rewind was implemented, Blow did a GDC presentation back in 2010. ▶ this video

RecommendsView on HN
@AnIdiotOnTheNet2023 · in ““Clean” Code, Horrible Performance – Casey Muratori [video]”

> I don't think that's an earned position. I disagree. > You say he has more credits but only one of those is programming since Braid. He did start a company after that you know. A successful one that makes money and employs people to make art . I don't imagine that running a business takes no time from his life. > But even at the time Braid could have been written in python SDL wrappers and probably had similar performance Braid did a lot more than you give it credit for. Here's a GDC talk about the rewind system in which he explains some of the hurdles he had to deal with: ▶ this video Pay particular attention to the discussion of the background particles and how to get that to work within the RAM constraints. > On the other hand, on a software engineering level those paint by numbers Modern Warfare and FIFA games are both more technically impressive and are designed for fast iteration Hardly anything about these games change from release to release. They're not exploring new gameplay problem spaces, they're not doing anything super interesting or surprising on a technical level either and I don't get why you think they are. Of course if you keep using essentially the same engine and know exactly what you're trying to make, making another like a goddamned factory is going to happen quicker than if you're trying to make something unique and meaningful. > If clean code is about maintenance and time to market, the Blow paradigm hasn't proven that its needed or fixes the holes in cl

CitesView on HN
@hbn2022 · in “From throwaway side project to Switch in 2 years: my indie gamedev story”

Is difficulty of implementation really a reliable indicator for the complexity in players understanding the mechanic? Jonathan Blow did a talk[1] at GDC a few years ago about implementing the time rewind mechanic in his game, Braid. It ended up being a pretty complex system that required a lot of ingenuity to come up with a design and implement it, but the end result is pretty straightforward and easy to understand for players. [1] ▶ this video

CitesView on HN
@MillenialMan2021 · in “Idiomatic Clojure without sacrificing performance”

I don't really agree. Cache friendliness is almost always a relevant factor as soon as performance becomes an issue. I get what you're saying but as I see it immutability gives you architectural efficiency and in some cases space efficiency, but rarely processing speed. > Think video games like braid Braid doesn't use immutable data structures, it uses a historical record (and immutability would be incompatible with some of the mechanics).[1] The author of Braid is actually quite famous for his dislike of functional languages and immutability. He doesn't even like garbage collection because of the overhead it introduces. Interestingly, he was talking about data structures for codebase representation (in the context of a compiler) a while back, and someone mentioned HAMTs. I'm definitely curious if they would work well there. [1] ▶ this video

CitesView on HN
@steeleduncan2021 · in “Serialization-Based Undo”

It is interesting to compare this to Jonathan Blow's talk on the rewind system in Braid [1]. This stores complete game states using a compression library to keep memory under control, whereas Braid stored a combination of keyframes, and diffs from those keyframes, to avoid using a compression library. [1] ▶ this video

CitesView on HN
@m00n2018 · in “Braid 10th anniversary critical compilation”

Seconded. It was a great game, albeit with not so much replay value. There is a great interview with Blow on the technicalities of the warping effects in Braid: ▶ this video In addition to Limbo and Inside, may I also recommend: Portal 1&2 Antichamber VVVVVV increpare.com In particular Stephen Lavelle (@increpare) makes games with much darker and more interesting social implications. Although, Braid accurately predicted the "nice guys" trope.

RecommendsView on HN
#Gamelab2018 - Jon Blow's Design decisions on creating Jai a new language for game programmers58:24

#Gamelab2018 - Jon Blow's Design decisions on creating Jai a new language for game programmers

Gamelab Conference
210K views • 8 years ago
8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 259:38

8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 2

GDC Festival of Gaming
94K views • 7 years ago
Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible1:02:49

Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible

Reboot Develop
112K views • 9 years ago
Breaking Conventions with The Legend of Zelda: Breath of the Wild1:28:30

Breaking Conventions with The Legend of Zelda: Breath of the Wild

GDC Festival of Gaming
565K views • 9 years ago
Jonathan Blow: Video Games and the Human Condition1:44:09

Jonathan Blow: Video Games and the Human Condition

rubbermuck
158K views • 15 years ago
Ideas about a new programming language for games.1:55:24

Ideas about a new programming language for games.

Jonathan Blow
530K views • 12 years ago
Exploring the Tech and Design of Noita31:00

Exploring the Tech and Design of Noita

GDC Festival of Gaming
288K views • 6 years ago
Jonathan Blow on scripting languages9:30

Jonathan Blow on scripting languages

Jeru Sanders
185K views • 7 years ago
Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated1:13:00

Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated

LambdaConf
241K views • 1 year ago
Pitfall Classic Postmortem With David Crane Panel at GDC 2011 (Atari 2600)1:00:12

Pitfall Classic Postmortem With David Crane Panel at GDC 2011 (Atari 2600)

GameSpot
76K views • 15 years ago
Overwatch Gameplay Architecture and Netcode1:04:04

Overwatch Gameplay Architecture and Netcode

GDC Festival of Gaming
196K views • 7 years ago
Talk: Video Games and the Future of Education2:44:28

Talk: Video Games and the Future of Education

Jonathan Blow
130K views • 6 years ago
Jonathan Blow - How to program independent games -  CSUA Speech1:15:51

Jonathan Blow - How to program independent games - CSUA Speech

Alexandre Franco
190K views • 13 years ago
[Highlight] StarCraft Remastered Rant11:17

[Highlight] StarCraft Remastered Rant

Day9TV
453K views • 9 years ago
Multithreading the Entire Destiny Engine59:34

Multithreading the Entire Destiny Engine

GDC Festival of Gaming
65K views • 9 years ago
Tomorrow Corporation Tech Demo14:06

Tomorrow Corporation Tech Demo

retrogameinternals
107K views • 3 years ago
The Early Days of id Software56:03

The Early Days of id Software

GDC Festival of Gaming
165K views • 10 years ago
Rant: Entity systems and the Rust borrow checker ... or something.1:01:51

Rant: Entity systems and the Rust borrow checker ... or something.

Jonathan Blow
304K views • 8 years ago
Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake  #GodotCon202354:53

Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023

Godot Engine
27K views • 3 years ago
Pitfall: A Classic Game Postmortem1:00:34

Pitfall: A Classic Game Postmortem

GDC Festival of Gaming
63K views • 10 years ago