Home General Discussion

3D space recordings/play back in ALL videogames

polycounter lvl 20
Offline / Send Message
adam polycounter lvl 20
Hey, so I've been playing GTA4 for PC (second time through the game, first was on 360) and I have to say I absolutely love the playback feature. Not only is it a recording of the last 40 seconds, but its a recording of the last 40 seconds of 3D space. So its not a video.

When I edit this playback, I can move the camera, place camera, edit, cut, etc. etc. etc.

The ability to hit F2 at and awesome moment that I'd like to eventually share with a friend is just so great. I wish all games had this because then I'd feel like friends would never miss an awesome moment.

I also like the fact that it prompts you to hit F2 to save whenever you do something awesome, die, big gun fight, etc. etc. I've already missed a couple of times where I did something cool, was remembering it as I was driving away, then was like "Fuck! I should have hit F2!". It's like my gaming skills (er, what?) need to be returned to remember this feature.

I checked out my PC and each save is 35-60mb, which isn't bad I suppose so long as I don't go crazy with it. Beyond that, I have no other technical knowledge on this feature.

Has anyone worked with it? I know Bungie records your last 2 FULL matches in Halo 3?

Is this tech expensive? Hard to implement? How does it work?

So many questions :(

Replies

  • Ferg
    Offline / Send Message
    Ferg polycounter lvl 17
    Carmageddon 2 did it right, a long time ago. You could play back your entire game, move the camera anywhere, tell it to track certain things, save out the vid, etc. It was awesome. I really wish more developers did something like this, at least in sandboxy games.
  • moose
    Offline / Send Message
    moose polycount sponsor
    skate does this as well - and also integrated it into their site + game w/ ingame upload tools. http://skate.share.ea.com/default.aspx (go to Gallery) it'd record the last 60-90 seconds of what you were doing, allowed you to go in, create edits, camera cuts, apply post process effects, to make your own super sweet skate vid.

    The record-a-demo feature always seems awesome, and have always enjoyed them (Starcraft, Dawn of War, UT2k4, UT3), but also including tools and features to edit, make camera cuts, manipulate time, so that users can create cool stuff of all the "pocket awesome moments in gaming" makes for really enjoyable features.

    Not sure of the technical sides, but skate's performance was never hindered w/ it. You'd have to load going into into the edit mode, but was never long. For the 3d space, i'm sure its just collecting data and playing it back for the 3d space, similar to an auto-key feature in max or maya (im assuming). Looking at Halo3's wild stuff, they no doubt have a lot of data being collected - as they show you where kills were made with what, by whom, etc - which probably is used to manufacture the playbacks.
  • MoP
    Offline / Send Message
    MoP polycounter lvl 18
    Well with games like Halo, you need to know all that data anyway for passing it across the network (know where other players are, what they're doing, which direction they're looking, what weapon they're firing) so you might as well just store that data during play time and then essentially load up the same map again later and play back the data rather than just accepting it from an incoming network connection - the result is the same.

    It's all essentially a glorified "demo" feature that was implemented in Quake (and then Q2, Q3, all id games after that really). It may have also been around before that in other forms. It's only been fairly recently that developers have realised they can expose this data to the player and allow them to edit/review it.

    In fact even before this, any sort of "replay" feature (ghost cars in racing games etc) is all the same basic idea, you just record the position and direction of various objects at any given game frame (not every *actual* frame, that'd be much more data than you need), then you can just play it back whenever.
  • Wells
    Offline / Send Message
    Wells polycounter lvl 18
    I always ended up spending as much -or more- time in the replay after a round of Halo 3 with my friends as we did actually playing. Too much fun seeing what everyone was up to, discovering someone spent half an hour trying to drive a warthog up a mountain, etc...
  • KeyserSoze
    Offline / Send Message
    KeyserSoze polycounter lvl 18
    Almost every 3D game that has a replay feature does it by recording the position, orientation, scale and state of every relevant entity/object (instead of rendering to a video, which would actually be a much larger hit to performance since you have to write to the hard drive for every frame). Tracking and recording the state of every entity doesn't cause much of performance hit because it's all just integers and floating points, and you don't have to take a snapshot every frame; you can take a snapshot every "X" number of frames or "X" times a second, and then have the engine interpolate between snapshots when you play it back.

    How difficult it is to implement depends on the game and what you want to be able to do in the replay. If you use real-time physics simulation in your game, that makes things a bit more complicated, especially if you want to allow interaction during the replay (which would require you to somehow sync the original physics with the playback physics). Normally you'd forgo physics in the replay since the position of every object has already been recorded from the original physics simulation, but if you want to interact with the objects during the replay, you have to still run physics. You also have to think about sound and animation. It's easy to record a keyframe when a certain sound or animation is triggered, but then you have to take into consideration what the user is doing inside the replay (e.g. if a user pauses the playback immediately after a sound or animation has been triggered, you have to also pause that sound or animation and then be able to resume it from that position, even though that information isn't part of the original data that was recorded).

    Other than all of that, another reason not many games include a replay feature is that you have to keep the replay feature in mind for every little thing you design. For example: in first-person shooters, you typically don't render a character for the player since the game is played from the first-person perspective, but if you want to give the player a free-roaming camera in the replay, you have to add a third-person model specifically for the replay, otherwise the user is just going to see a pair of floating hands carrying a gun. That's just one example, there are thousands of little things like that which have to be taken into consideration.

    [edit] Something MoP mentioned made me realize another hurdle for recording replay data. He's right about replay data being essentially the same as the data that's broadcast over a network to make multiplayer possible (that's a great way to explain it), but games usually use all sorts of tricks with their netcode. For example, entities/objects that are beyond a certain proximity or out of view are usually ignored to an extent... if you normally track an object's position/orientation/state 10 times a second, you might only track an object's position 2 times a second (and ignore the orientation and state) when it is beyond a certain proximity. This saves on bandwidth overhead, but would cause you problems if you want the player to be able to replay the match and watch the guy that was all the way across the map. It's just another hurdle you have to overcome if you want to implement a replay system for a multiplayer game.
  • Rox
    Since experiencing it in Halo 3, I miss instant replays and saving clips in almost every game I play. I silently pray for something like it to happen to Burnout Paradise, that'd be a dream come true. But even in Fallout 3 I wish I could save a particularly gruesome VATS execution now and then.

    I was hoping Halo 3 would continue to set new standards, like what the first game did to customizable gametypes and regenerating health, and the second game did to online console gaming, only this time in the form of mildly editable levels and the theater mode. Every console game needs a screenshot feature that automatically uploads it to a website that you can check out the next time you're on the computer.

    But alas, people weren't as keen on following that trend. I really think it brought the Halo community to a whole new level and a lot more games of a lot more genres would benefit from it...
Sign In or Register to comment.