The Implementation of Rewind in Braid

Sdílet
Vložit
  • čas přidán 11. 12. 2016
  • In this GDC 2010 talk, Braid creator Jonathan Blow breaks down the technical and design challenges behind implementing one of the most iconic time-travel mechanics in video game history.
    GDC talks cover a range of developmental topics including game design, programming, audio, visual arts, business management, production, online games, and much more. We post a fresh GDC video every weekday. Subscribe to the channel to stay on top of regular updates, and check out GDC Vault for thousands of more in-depth talks from our archives.
    Follow us on Twitter
    / official_gdc
    Check out our Facebook page for GDC exclusives
    / gamedevelopersconference
    Visit our site: ubm.io/2ctNvqZ

Komentáře • 135

  • @Elavid
    @Elavid Před 6 lety +207

    Now I can understand why Jonathan started writing his own presentation program in 2017!

    • @tech6hutch
      @tech6hutch Před 3 lety +3

      He did? What is it?

    • @Elavid
      @Elavid Před 3 lety +32

      @@tech6hutch I don't know if he published it, but he made a simple program that just displays text on the screen and lets you flip through it, and he said "Now it's better than powerpoint!"

    • @tech6hutch
      @tech6hutch Před 3 lety

      @@Elavid oh lmao

    • @omerfarukbykl6097
      @omerfarukbykl6097 Před 3 lety

      @@Elavid what do you mean by flipping through it?
      i don't understand the difference

    •  Před 3 lety +5

      Yea, but Office 2007 in the release year, it was the most aesthetic GUI I've ever used.
      No other software made similarly strong positive feelings in me.

  • @ossf4670
    @ossf4670 Před 7 lety +405

    THAT needed to be a 1 hour talk. Not enough time~

  • @KeimpedeJong
    @KeimpedeJong Před 7 lety +196

    such a shame for the cut-off, it was a good talk

  • @jeangodecoster
    @jeangodecoster Před 4 lety +90

    For the past week I had been trying to implement this rewind mechanic, with the constraint that I wouldn't look up how he did it, to see how far I would get.
    The first idea I had immediately discarded was to record state frame by frame. I was trying to go for an interpolation system coupled with serialisable commands.
    The headache was real and so today I decided to see how he did it, and my mind was blown.

    • @joepeters8746
      @joepeters8746 Před 2 lety

      Like duh. Why would you discard frames by frame saving? The only thing that seems difficult to me is to rewind audio (maybe just play a reversed sound and cut it by your needs)

    • @jeangodecoster
      @jeangodecoster Před 2 lety +16

      @@joepeters8746 frame by frame saving is easy if you don’t worry about memory management. And that’s exactly what makes it complicated.

    • @commenturthegreat2915
      @commenturthegreat2915 Před 2 lety +16

      @@joepeters8746 Frame by frame saving would take an insane amount of memory without forward planning and serious optimizations. This is essentially the equivalent of brute-forcing the rewind problem. The fact that he managed to do so for an infinite rewind system without crashing everyone's computers is really impressive (I'd certainly consider it difficult). Rewinding audio is much easier as you could record, compress, and play back the game's sound using pre-built systems. Also, lets not forget that in this case it was a simple platformer with few moving elements - if you wanted to do this for a more complex game with a lot of information, this approach would probably not work for you.

    • @aarrcchhoonntt
      @aarrcchhoonntt Před 2 lety

      @@jeangodecoster if you browse prebuilt gaming PCs, 32gb is not uncommon. Anything below 16 and you have to start explaining you don't mean VRAM. 40mb is extremely frugal. With entry level nvme latency < 100us, you could probably ignore ram and stream gigabytes to disk.

    • @franciscofarias6385
      @franciscofarias6385 Před 2 lety +8

      Saving the whole world's state frame by frame at face value seems like the naive (ie. stupid) solution. I think every programmer would try to solve it a different way at first. Also it's not because it was the best solution for Braid that it is the best solution for you. Jon had to do some serious compression trickery to be able to use it.

  • @LeviDSmith
    @LeviDSmith Před 7 lety +107

    It's a real shame that they cut him off. I could have listened to him talk about this for hours.

  • @johnjackson9767
    @johnjackson9767 Před 4 lety +41

    There needs to be a change, honestly. A Game Engineering Conference would help with this current schism in priorities between technical talks and design/art/motivational talks.

  • @MrCheeze
    @MrCheeze Před rokem +12

    Watching a video in 2022, of a talk uploaded in 2016, of a recording made in 2010, at a point when windows Vista had already been released, but it was still acceptable to be running Windows XP as a "current" operating system. But still feels totally modern.

  • @TheFlyingJester
    @TheFlyingJester Před 7 lety +61

    "You've got to have this if you're gonna save the world...file."

  • @PabloGnesutta
    @PabloGnesutta Před 4 lety +94

    I really can't believe you cut him. To me it's almost like an insult to the gaming and Dev community and to Jonathan that is an inspiration for many.

    • @fisheatsyourhead
      @fisheatsyourhead Před 3 lety +15

      come on pablo they've, got a convention to run and a lot more people would be messed up by them allowing people to go over their designated times, it's his fault for not timing his presentation properly.

    • @GuilhermeNeubaner
      @GuilhermeNeubaner Před 3 lety +21

      @@fisheatsyourhead the thing is they should have schedule more time for him. Most GDC talks last at least one hour and they gave the man 30 minutes to explain a system with a lot of technicality. But you know, it was 2010, fuck indie devs right?

    • @Michael_800
      @Michael_800 Před 2 lety +8

      @@GuilhermeNeubaner "When I submitted this talk I was like 'Oh sure it's pretty simple. I'll be able to talk about everything in 25 minutes.'... Doesn't seem to be how it is." - Jonathan Blow 0:13

    • @GuilhermeNeubaner
      @GuilhermeNeubaner Před 2 lety +1

      @@Michael_800 *sarcasm*

  • @timonpasslick
    @timonpasslick Před 5 lety +12

    It's impressive how simple such a seemingly complex system can be. Now I want to play Braid myself.

  • @cintron3d
    @cintron3d Před 7 lety +97

    He should have been given an hour.

  • @stumbling
    @stumbling Před 3 lety +9

    Me at the start of the talk: Wow! That's the biggest screen I've ever seen.
    Then instantly realising I'm dumb.

  • @benjaminramsey4695
    @benjaminramsey4695 Před 4 lety +14

    This guy is quite impressive, to say the least. Wow.

  • @jan050375
    @jan050375 Před 7 lety +80

    why the hell would you cut him off?

    •  Před 3 lety +1

      One did simply cut Jonathan off. Unreal.

  • @mnkeymasta
    @mnkeymasta Před 7 lety +7

    Thanks for the reupload!!

  • @a_d_z_y__
    @a_d_z_y__ Před 3 lety +13

    It was 10 years ago and I'm still upset about how he was cutted off.

  • @nomadcrossfire
    @nomadcrossfire Před 7 lety +9

    ty for the reupload

  • @lrutubeusername
    @lrutubeusername Před 7 lety +7

    Aw man I wanted to hear the rest of it, very interesting.

  • @Novous
    @Novous Před 7 lety +30

    DEAR GOD. WINDOWS XP in Fischer Price mode. 0:33

  • @loekTheDreamer
    @loekTheDreamer Před 7 lety

    thanks so much for sharing. its a bit over my head though. dont know how you come up with this stuff, very very awesome.

  • @kianchristoffern
    @kianchristoffern Před 3 lety +2

    Actually happy to see the comment section being mainly people complaing mr. Blow was cut off, because that was disgraceful. Jonathan probably doesn't care anymore: But we're here for you buddy :D

  • @avalean
    @avalean Před 7 lety +25

    Thank you for fixing the sync issues!

  • @DarkMatter11
    @DarkMatter11 Před 3 lety +8

    25:33 Windows clock changes from 11:33am to 11:32am.

  • @avion85
    @avion85 Před měsícem

    Just absolutely beautiful!

  • @dscheme4427
    @dscheme4427 Před 4 lety +6

    I'd like to see a more indepth talk about this with a few code samples thrown in

  • @SowedCastelli
    @SowedCastelli Před 3 lety

    Mheeeen, the talk was just starting!!!

  • @DejaimeNeto
    @DejaimeNeto Před 7 lety +383

    Probably cut off so someone could give an uninteresting entry-level motivational talk

    • @error.418
      @error.418 Před 7 lety +22

      no, cut off because they day has a bunch of parallel tracks with simultaneous interesting talks going on, so they have to keep things on schedule.

    • @jblow888
      @jblow888 Před 7 lety +431

      Actually it was right before lunch, and I was specifically given that slot in order to be able to go over time, but the CAs (conference associates) were being total jerks. I also wasn't given time beforehand to make sure my laptop was set up and working with the display. You can't see it in this video, but one reason I keep hitting escape and going into PowerPoint edit mode is because people can't see the whole slides, because they were being displayed at 16:9 aspect ratio on a 4:3 screen and there wasn't time to detect this issue and fix it. (I guess whatever recording they made of the feed has the whole slides).
      It was a pretty terrible experience, and as a result I do not give speeches at the GDC any more!

    • @error.418
      @error.418 Před 7 lety +31

      +Jonathan Blow I appreciate you responding. I was understanding of them if you were on any other time slot, but being given the one right before lunch so that people actually could choose to stay with you overtime... I'm sorry you had to deal with that. Not to mention all the technical issues you were already dealing with...

    • @ArseniyShved
      @ArseniyShved Před 7 lety +14

      Hi. It's a shame the talk could not be finished - it is always a pleasure to listen to your takls and interviews. Even tech-heavy ones, despite I'm not a programmer.

    • @octoking9611
      @octoking9611 Před 7 lety +4

      That was super interesting to understrand your thought process in this very technical feat. I'm a begginer at programming and game making and even though I didn't understand every technical detail, I feel like you've helped me understand a thought process path I should take. Even though your experience with GDC left you bitter, I hope you do come back because we the audience, are all interested in what you have to say. I feel really bummed we couldn't go through the last 6 slides or your presentation. Thanks for your talk!

  • @SowedCastelli
    @SowedCastelli Před 3 lety +7

    Does someone know a place where Jonathan explains this? I've always wondered how it was pulled off.

  • @Visuwyg
    @Visuwyg Před 7 lety +25

    Jonathan Blow talks about how to save the world.

  • @youtoober2013
    @youtoober2013 Před 3 lety +3

    When this talk started I thought the screen was on stage... wow.

  • @lebanbo55
    @lebanbo55 Před 7 lety +14

    A couple years ago , I saw Jonathan Blow released his source code of the compression part. But I can't find that anywhere. Any ideas ? Thanks in advance.

    • @MikeCampo
      @MikeCampo Před 6 lety +10

      This? number-none.com/product/Arithmetic%20Coding,%20Part%202/index.html

    • @KejdzMaster
      @KejdzMaster Před 6 lety +1

      Michael Campagnaro thanks :)

  • @csebastian3
    @csebastian3 Před 4 lety +1

    That was a really good talk. ...But the cut-off at the end was such a shame. He was talking about really interesting stuff!

  • @unvergebeneid
    @unvergebeneid Před 7 lety

    What good are the diffs if you don't do entropy coding? Especially since floating point numbers were implied. With ints I'd assume you'd use a smaller integer type for the diffs but that would've been worth me mentioning.

    • @Zguy1337
      @Zguy1337 Před 7 lety +9

      If I understood correctly, what he meant by a diff was not that he did delta encoding (as he explicitly said he didn't). He seems to just skip entities/properties that has not changed between a frame and its base frame. But for things that has changed, he stores the full new value.

    • @unvergebeneid
      @unvergebeneid Před 7 lety +2

      Ok, I can see how that would work with key-value pairs or with some form of diff format that encodes the position of the changes in a serialized binary blob but ... yeah, like I said, it would've been worth saying like three more sentences here to make it explicit what went on IMHO.

    • @Zguy1337
      @Zguy1337 Před 7 lety +7

      Penny Lane Yeah, I agree. He probably glossed over it for a lack of time. As someone else said, this needed to be a 1 hour talk at least.

    • @unvergebeneid
      @unvergebeneid Před 7 lety +1

      Yes, totally agree!

  • @MEGA_TREE
    @MEGA_TREE Před 2 lety

    I love it

  • @metalim
    @metalim Před 7 lety +55

    WTF is going on with slides? Are they recorded in different time by someone who can't stay away from keyboard for longer than 30 seconds? Thumb up for the talk, but thumb down for the slides being randomly changed.

    • @markotikvic
      @markotikvic Před 6 lety +11

      Sound and picture are out of sync.

  • @elaynet382
    @elaynet382 Před 2 lety +2

    Is the fact that this video about time reversal, dilation and compression is out of sync intentional?

  • @guyewhite
    @guyewhite Před 3 lety +1

    How does no one have questions for Jonathan Blow?

  • @jaymalby
    @jaymalby Před 7 lety +4

    All I can think about while watching this are persistent data structures...

  • @Gragain
    @Gragain Před 7 lety +65

    "run on consoles" "wanted to sell copies" shots fired at pirates

  • @davogotland
    @davogotland Před 3 lety +1

    gets me thinking of that one time when the grammy awards cut off frank sinatra back in 1994.

  • @vozoca
    @vozoca Před 4 lety +10

    Thumbnail says “implementating”

    • @Gimp.The_Imp_Pimp
      @Gimp.The_Imp_Pimp Před 2 lety +4

      What do you mean?
      That's a perfectly cromulent word. It embiggens the title and you can't misunderstimate it.

  • @aajas
    @aajas Před měsícem

    GDC should have just rewound time so Jonathan could get to the other half of presentation

  • @LouisHong97
    @LouisHong97 Před 6 lety +33

    Sounds like 1980 sound quality. Why. The tickets are 1k each.

    • @edwardnewtonLA
      @edwardnewtonLA Před 4 lety +27

      All the money got spent building the time machine to go back to 1980 and get the microphones.

    • @Lukas-er4nd
      @Lukas-er4nd Před 4 lety +2

      Because it's not you paying :D

    • @Gnurklesquimp
      @Gnurklesquimp Před 4 lety +1

      I watch a lot of music/audio and game talks, there is a noticeable difference in priorities.

  • @GBart
    @GBart Před 9 měsíci

    What I want to know is how do you eat if you're spending all your time creating a game and starting a company? How do you buy food during that whole process with no income?

  • @wubologist
    @wubologist Před 7 lety +10

    Implementating
    ...

  • @Haapavuo
    @Haapavuo Před 5 lety +29

    Sooo you decided to cut off every indie devs idol? Why not just extend the schedule for about 10 minutes for him? He deserves it.

  • @immanuelkouldnt7601
    @immanuelkouldnt7601 Před 2 lety +1

    Not sure if I up vote because of jon, or down vote because of gross GDC cut/interruption.

  • @sidshekar
    @sidshekar Před 7 lety +13

    The video is still out of sync......

  • @esotericVideos
    @esotericVideos Před 5 lety +9

    WTF?!? They asked him to talk, he was giving a good speech they kept fucking up his slide and then they cut him off. WTF

  • @DreanPetruza
    @DreanPetruza Před měsícem

    I think it's Implementationationing

  • @anispinner
    @anispinner Před 7 měsíci

    That said Windows XP had its charm

  • @m4rt_
    @m4rt_ Před rokem

    Oooo that's Windows XP

  • @guyewhite
    @guyewhite Před 5 lety +1

    Horrible to be cut off like that.

  • @Mentox2
    @Mentox2 Před 2 měsíci

    I remember when the GDC was a place to discuss game dev instead of tutorials on how to properly humiliate yourself for the cancel pigs after being cancelled.
    The GDC is dead.

  • @lilsol2724
    @lilsol2724 Před 7 lety

    bada$$

  • @jackmordaunt5410
    @jackmordaunt5410 Před 4 lety +1

    That cutoff was embarrassing. Screw your schedule, let him finish his talk.

  • @epsteindidntkillhimself69
    @epsteindidntkillhimself69 Před 7 lety +12

    Implementating is not a word.
    Please change thumbnail.
    That is all.

    • @AlanRedgown
      @AlanRedgown Před 7 lety +12

      What's wrong with conversating about implementating? :P

    • @alex_evstyugov
      @alex_evstyugov Před 5 lety +7

      Yeah I don't know why he's complainting.
      And they haven't changed it in two years, so I guess he'll just have to acceptate it.

  • @odin3659
    @odin3659 Před 7 lety +12

    can program complex logical systems, but powerpoint is too complex for the human race

    • @davidson2727what
      @davidson2727what Před 7 lety +9

      Kelda Hanson the capability to write programs does not imply the capability to use other programs.

    • @error.418
      @error.418 Před 6 lety +17

      To quote Joanathan Blow himself: "You can't see it in this video, but one reason I keep hitting escape and going into PowerPoint edit mode is because people can't see the whole slides, because they were being displayed at 16:9 aspect ratio on a 4:3 screen and there wasn't time to detect this issue and fix it. (I guess whatever recording they made of the feed has the whole slides)." This is in a long list of issues with how the GDC handled his talk. It was a pretty terrible experience for him.

  • @Merthalophor
    @Merthalophor Před 7 lety +5

    god why windows xp

    • @kristupasantanavicius9093
      @kristupasantanavicius9093 Před 7 lety

      Because its the biggest PC platform for games.

    • @Merthalophor
      @Merthalophor Před 7 lety +2

      ***** Nope, win 7 & 10 dominate the field with 70% market share, then comes win xp and 8 (then Linux, then OSX). Win XP is not supported anymore, you should under no cicumstances stay with it, unless you want to be extremely vounorable to viruses etc.
      also I think most XP users are either old grannies or companies who were unable to make the switch yet - both of them are not exactly the target audience of video games

    • @kristupasantanavicius9093
      @kristupasantanavicius9093 Před 7 lety +1

      Merthalophor Oops, I didn't see XP at the end. I thought you are one of the hipsters who only use Linux for everything.

    • @Merthalophor
      @Merthalophor Před 7 lety +3

      ***** well, to be honest, I _am_ one of these guys, but I understand people who use windows.

    • @sasuke2910
      @sasuke2910 Před 7 lety +28

      You realize this talk was given in 2010 right?

  • @joonatansaarhelo6138
    @joonatansaarhelo6138 Před 6 lety +3

    Instead of allocating heaps, he could have used a ring buffer.

    • @PabloGnesutta
      @PabloGnesutta Před 4 lety +5

      Do it yourself and prove him wrong. Oh, true, taking is easy and free, working is not

    • @skejeton
      @skejeton Před 2 lety

      didn't he just talk about that

  • @moonoovie
    @moonoovie Před 7 lety +1

    Should apply rewind to writing the title card, because "implementating" isn't a word.

  • @itsnotbloodborne1237
    @itsnotbloodborne1237 Před 6 lety

    Umm can anyone translate this

  • @sanbox-irl
    @sanbox-irl Před 4 lety +4

    Drives me mad that people here think he was cut off. look at the damn time, we was 5 minutes over. It was 11:35 when they cut him off. That's it -- that's the end! They might have had other talks in that room, and even if they didn't, you don't get to be special Jo Blow, you get your time like everyone else!

    • @a445fa6sd
      @a445fa6sd Před rokem

      Apparently he was told he could spill into the lunch break I think.

  • @joepeters8746
    @joepeters8746 Před 2 lety +1

    Why would you want to make a single player game that strictly tries to prohibit explotations? When you want to cheat that is not the programmers concern. He set some weird goals.

    • @darrorpsk6148
      @darrorpsk6148 Před 2 lety +7

      you're conflating cheating and bugs/exploits. one is absolutely the programmer's concern, while the other, although related, may not be.