How the hell does the recall mechanic work in TOTK?

How the hell does the recall mechanic work in TOTK? Essentially, the mechanic allows any physics object within the world to play its previous few seconds of movement in reverse. I've seen a lot of people calling this a massive feat, is it true?

  1. 2 weeks ago
    Anonymous

    Its neat, but not that complicated.
    1.) Object hasn't moved do nothing
    2.) Object has moved but not within the time limit do nothing
    3.) Object has moved. Object stores the last position it was at rest or when it made a change in direction. When using recall check the timestamps and go back to latest one that is within range. Then treat movements like a transaction record and replay them backwards. Movement generally is just a position and a vector.

    • 2 weeks ago
      Anonymous

      Also should mention that there is probably a thread going through and wiping old data stored in the object or the object has a finite buffer that overrides old data position and vector data after it gets filled.

      This is along the lines of what I was thinking as well. The solution is really as easy as just storing a ton of positional information, but it seems like something that would really bog down performance on something as limited as the Switch. It seems like there really is no limit on how long something has to wait until it cannot be affected by the ability.

      • 2 weeks ago
        Anonymous

        Well they probably cheat somewhat and have some of these things have predefined backward paths. You probably only need to dynamically store recalls for objects interacts with by the player or a dynamic entity like a mob.

      • 2 weeks ago
        Anonymous

        >storing a ton of positional information, but it seems like something that would really bog down performance on something as limited as the Switch
        Not that much I think, storing the position of objects over time is only:
        3 floating values (X, Y, Z position, let's say in 4 bytes precision) * frames/seconds (let's say 30) * maximum recall (let's say 1 minute) = 21KB per object
        Even if there's 1000 recorded objects in the world, that's just ~20MB of RAM, and I'm pretty sure you can just do interpolation and not store 1 position per frame but rather every 4 frames for example, which would result in 5MB of data
        A single texture is heavier than that

        • 2 weeks ago
          Anonymous

          Oh wait, there's the rotation too
          Well, roughly double the final value, it's still not that much.

        • 2 weeks ago
          Anonymous

          >frames/sec mattering for a physics simulation
          ask me how I know you're not a game dev

          • 2 weeks ago
            Anonymous

            i mean you can replace it with tickrate, even then it'd probably only be 60 ticks/sec, wouldn't it?

      • 2 weeks ago
        Anonymous

        https://i.imgur.com/AsdqpVd.jpg

        How the hell does the recall mechanic work in TOTK? Essentially, the mechanic allows any physics object within the world to play its previous few seconds of movement in reverse. I've seen a lot of people calling this a massive feat, is it true?

        I was thinking about that as well and I think the answer lies in how it works. When you use recall, the game is frozen. That is an effect but it also explains how it can be optimized. The game probably doesn't save position and motion vector for items that are not streamed in. And at most you may only have maybe 50 items or so within range and you could save position/motion vector data for that with no problem. You can also optimize by not storing position data every frame.

  2. 2 weeks ago
    Anonymous

    Also should mention that there is probably a thread going through and wiping old data stored in the object or the object has a finite buffer that overrides old data position and vector data after it gets filled.

  3. 2 weeks ago
    Anonymous

    arent all of these fixed movement objects? like a plank flowing down a fixed path on the river or a mechanical piece moving clockwise

    • 2 weeks ago
      Anonymous

      No it can be done on objects manipulated by the player. That's what really boggles my mind about it.

      • 2 weeks ago
        Anonymous

        what if you move 10 objects and do it on the first one you moved? theres probably a small limit

  4. 2 weeks ago
    Anonymous

    Congratulations on that revolutionary time rewind mechanic Nintendo
    2007 game here

    • 2 weeks ago
      Anonymous

      Lol, Entropy Center had this before Zelda.
      >when Nintendo does it it’s a feat
      Goyslop worshippers.

      >found the snoy
      Like clockwork.

      • 2 weeks ago
        Anonymous

        >2007 PC slav game
        >must be sony fans shilling this
        This is LULZ, retard, I'm a PC gamer just like most people here

  5. 2 weeks ago
    Anonymous

    Lol, Entropy Center had this before Zelda.
    >when Nintendo does it it’s a feat
    Goyslop worshippers.

  6. 2 weeks ago
    Anonymous

    Wrong board

  7. 2 weeks ago
    Anonymous

    Didn't Braid do this or am i misremembering

    • 2 weeks ago
      Anonymous

      pretty much, main difference being that there wasn't per-object rewind. it was per-object exclusion from rewind.

  8. 2 weeks ago
    Anonymous

    I've developed on "Split" on the steam... it's shit cuz of publisher....
    anyway this game has same mechanic, you can rewind time, we've also added possibility to spawn a holographic clone that repeats what action you took back in time.

    Idea is simple: every SAMPLE_TIME change if RECORDED_PROPERTIES changed their values:
    true -> make a snapshot of those values
    false -> ignore

    When going back we just linearly interpolate between snapshots.
    If there is constant movement of something that we face enclose in 0%-100% state, we just record the "progress" value every snapshot.
    This is how we managed to take small resources when recording complex transformation in space.

    BONUS: When holographic clone is created, we just don't delete data that was recorded and rewind(ed?), we just cut them of the list and give it to the holographic puppet controller.

    It just werks ¯_(ツ)_/¯

  9. 2 weeks ago
    Anonymous

    Next time, post it in the stupid questions thread.

  10. 2 weeks ago
    Anonymous

    >I've seen a lot of people calling this a massive feat, is it true?
    lol no

  11. 2 weeks ago
    Anonymous

    >I've seen a lot of people calling this a massive feat, is it true?
    There's not that many game world objects that it applies to at a time, so it doesn't really need all that much storage. Suppose it can keep the state of 50 things going back 1000 frames, that's still quite doable in a bit over 3MB (assuming a object ID, a 3-vec for position, a 3-vec for primary axis orientation, and two more doubles for orientation, which is totally overkill, and maybe another word for the object's state). It's really not that much storage, either in memory or in the game's save state.

  12. 2 weeks ago
    Anonymous

    Linked list or some kind of buffer of vectors representing the objects velocity each physics frame. Iterate backwards and apply the velocity * -1 to the object. This works for all traits of the object including rotation, on/off status, whatever.
    It's probably more complex in reality but that would be the first step I would take.
    Honestly it seems similar in functionality to a program's "undo" functionality.

  13. 2 weeks ago
    Anonymous

    Can't believe retards are fawning over a rehash that took half a decade with garry's mod/nuts and bolts grafted onto it. Nintendoids are a joke.

Your email address will not be published. Required fields are marked *