The Implementation of Rewind in Braid

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ธ.ค. 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

ความคิดเห็น • 135

  • @Elavid
    @Elavid 6 ปีที่แล้ว +208

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

    • @tech6hutch
      @tech6hutch 3 ปีที่แล้ว +3

      He did? What is it?

    • @Elavid
      @Elavid 3 ปีที่แล้ว +33

      @@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 3 ปีที่แล้ว

      @@Elavid oh lmao

    • @omerfarukbykl6097
      @omerfarukbykl6097 3 ปีที่แล้ว

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

    •  3 ปีที่แล้ว +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 7 ปีที่แล้ว +406

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

  • @jeangodecoster
    @jeangodecoster 4 ปีที่แล้ว +91

    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 2 ปีที่แล้ว +1

      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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว

      @@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 2 ปีที่แล้ว +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.

  • @KeimpedeJong
    @KeimpedeJong 7 ปีที่แล้ว +197

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

  • @LeviDSmith
    @LeviDSmith 7 ปีที่แล้ว +107

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

  • @johnjackson9767
    @johnjackson9767 4 ปีที่แล้ว +42

    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.

  • @TheFlyingJester
    @TheFlyingJester 7 ปีที่แล้ว +61

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

  • @cintron3d
    @cintron3d 7 ปีที่แล้ว +98

    He should have been given an hour.

  • @timonpasslick
    @timonpasslick 5 ปีที่แล้ว +13

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

  • @MrCheeze
    @MrCheeze ปีที่แล้ว +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.

  • @PabloGnesutta
    @PabloGnesutta 4 ปีที่แล้ว +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 3 ปีที่แล้ว +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 3 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +1

      @@Michael_800 *sarcasm*

  • @jan050375
    @jan050375 7 ปีที่แล้ว +80

    why the hell would you cut him off?

    •  3 ปีที่แล้ว +1

      One did simply cut Jonathan off. Unreal.

  • @stumbling
    @stumbling 3 ปีที่แล้ว +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 4 ปีที่แล้ว +14

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

  • @DejaimeNeto
    @DejaimeNeto 7 ปีที่แล้ว +385

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

    • @error.418
      @error.418 7 ปีที่แล้ว +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 7 ปีที่แล้ว +432

      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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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!

  • @a_d_z_y__
    @a_d_z_y__ 3 ปีที่แล้ว +13

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

  • @mnkeymasta
    @mnkeymasta 7 ปีที่แล้ว +7

    Thanks for the reupload!!

  • @nomadcrossfire
    @nomadcrossfire 7 ปีที่แล้ว +9

    ty for the reupload

  • @kianchristoffern
    @kianchristoffern 3 ปีที่แล้ว +3

    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

  • @DarkMatter11
    @DarkMatter11 3 ปีที่แล้ว +8

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

    • @mitu_pinju
      @mitu_pinju 2 ปีที่แล้ว +1

      rewind effect

  • @lrutubeusername
    @lrutubeusername 7 ปีที่แล้ว +7

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

  • @avalean
    @avalean 7 ปีที่แล้ว +25

    Thank you for fixing the sync issues!

    • @fburton8
      @fburton8 7 ปีที่แล้ว +8

      Yeah, it was a worthwhile rewind. :)

    • @DanielGilchristYT
      @DanielGilchristYT 7 ปีที่แล้ว

      I see what you did there.

  • @loekTheDreamer
    @loekTheDreamer 7 ปีที่แล้ว

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

  • @avion85
    @avion85 หลายเดือนก่อน

    Just absolutely beautiful!

  • @Novous
    @Novous 7 ปีที่แล้ว +30

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

  • @Visuwyg
    @Visuwyg 7 ปีที่แล้ว +25

    Jonathan Blow talks about how to save the world.

    • @LucyPero
      @LucyPero 5 ปีที่แล้ว +7

      file

  • @dscheme4427
    @dscheme4427 4 ปีที่แล้ว +7

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

  • @SowedCastelli
    @SowedCastelli 3 ปีที่แล้ว

    Mheeeen, the talk was just starting!!!

  • @youtoober2013
    @youtoober2013 3 ปีที่แล้ว +3

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

  • @metalim
    @metalim 7 ปีที่แล้ว +56

    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 6 ปีที่แล้ว +12

      Sound and picture are out of sync.

  • @csebastian3
    @csebastian3 4 ปีที่แล้ว +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!

  • @SowedCastelli
    @SowedCastelli 3 ปีที่แล้ว +7

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

  • @lebanbo55
    @lebanbo55 7 ปีที่แล้ว +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 6 ปีที่แล้ว +10

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

    • @KejdzMaster
      @KejdzMaster 6 ปีที่แล้ว +1

      Michael Campagnaro thanks :)

  • @elaynet382
    @elaynet382 2 ปีที่แล้ว +2

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

  • @MEGA_TREE
    @MEGA_TREE 2 ปีที่แล้ว

    I love it

  • @unvergebeneid
    @unvergebeneid 7 ปีที่แล้ว

    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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +1

      Yes, totally agree!

  • @vozoca
    @vozoca 4 ปีที่แล้ว +10

    Thumbnail says “implementating”

    • @Gimp.The_Imp_Pimp
      @Gimp.The_Imp_Pimp 2 ปีที่แล้ว +4

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

  • @LouisHong97
    @LouisHong97 6 ปีที่แล้ว +33

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

    • @edwardnewtonLA
      @edwardnewtonLA 4 ปีที่แล้ว +28

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

    • @Lukas-er4nd
      @Lukas-er4nd 4 ปีที่แล้ว +2

      Because it's not you paying :D

    • @Gnurklesquimp
      @Gnurklesquimp 4 ปีที่แล้ว +1

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

  • @jaymalby
    @jaymalby 7 ปีที่แล้ว +4

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

  • @guyewhite
    @guyewhite 3 ปีที่แล้ว +1

    How does no one have questions for Jonathan Blow?

  • @aajas
    @aajas หลายเดือนก่อน

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

  • @davogotland
    @davogotland 3 ปีที่แล้ว +1

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

  • @Gragain
    @Gragain 7 ปีที่แล้ว +65

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

  • @Haapavuo
    @Haapavuo 5 ปีที่แล้ว +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.

    • @joepeters8746
      @joepeters8746 2 ปีที่แล้ว

      why not doing it online in first place?

  • @GBart
    @GBart 9 หลายเดือนก่อน

    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 7 ปีที่แล้ว +10

    Implementating
    ...

  • @immanuelkouldnt7601
    @immanuelkouldnt7601 2 ปีที่แล้ว +1

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

  • @esotericVideos
    @esotericVideos 6 ปีที่แล้ว +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

  • @sidshekar
    @sidshekar 7 ปีที่แล้ว +13

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

  • @DreanPetruza
    @DreanPetruza หลายเดือนก่อน

    I think it's Implementationationing

  • @anispinner
    @anispinner 8 หลายเดือนก่อน

    That said Windows XP had its charm

  • @m4rt_
    @m4rt_ ปีที่แล้ว

    Oooo that's Windows XP

  • @guyewhite
    @guyewhite 5 ปีที่แล้ว +1

    Horrible to be cut off like that.

  • @lilsol2724
    @lilsol2724 7 ปีที่แล้ว

    bada$$

  • @jackmordaunt5410
    @jackmordaunt5410 4 ปีที่แล้ว +1

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

  • @Mentox2
    @Mentox2 2 หลายเดือนก่อน

    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.

  • @Merthalophor
    @Merthalophor 7 ปีที่แล้ว +5

    god why windows xp

    • @kristupasantanavicius9093
      @kristupasantanavicius9093 7 ปีที่แล้ว

      Because its the biggest PC platform for games.

    • @Merthalophor
      @Merthalophor 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +3

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

    • @sasuke2910
      @sasuke2910 7 ปีที่แล้ว +28

      You realize this talk was given in 2010 right?

  • @odin3659
    @odin3659 7 ปีที่แล้ว +12

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

    • @davidson2727what
      @davidson2727what 7 ปีที่แล้ว +9

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

    • @error.418
      @error.418 6 ปีที่แล้ว +18

      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.

  • @epsteindidntkillhimself69
    @epsteindidntkillhimself69 7 ปีที่แล้ว +12

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

    • @AlanRedgown
      @AlanRedgown 7 ปีที่แล้ว +12

      What's wrong with conversating about implementating? :P

    • @alex_evstyugov
      @alex_evstyugov 5 ปีที่แล้ว +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.

  • @joonatansaarhelo6138
    @joonatansaarhelo6138 6 ปีที่แล้ว +3

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

    • @PabloGnesutta
      @PabloGnesutta 4 ปีที่แล้ว +5

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

    • @skejeton
      @skejeton 2 ปีที่แล้ว

      didn't he just talk about that

  • @moonoovie
    @moonoovie 7 ปีที่แล้ว +1

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

  • @itsnotbloodborne1237
    @itsnotbloodborne1237 6 ปีที่แล้ว

    Umm can anyone translate this

  • @sanbox-irl
    @sanbox-irl 4 ปีที่แล้ว +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 ปีที่แล้ว

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

  • @joepeters8746
    @joepeters8746 2 ปีที่แล้ว +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 2 ปีที่แล้ว +8

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