Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
wildweasel

Can demo-recording be used for "rewind" in game?

Recommended Posts

I've been thinking about playing through some classic megawads using prboom-plus, and the demo recording and playback functions in that port are amazing, especially the ability to fast-forward and rewind, change camera angles, etc. What I have to wonder, though, is could this be used for gameplay purposes? If I make a mistake in a play session (while a demo is recording), could I then go back through the demo and arbitrarily decide to "take over" halfway through?

Share this post


Link to post

by rewind to you mean you can actually view a demo backwards??? or do you mean reseting and using -skipsec to revisit a specific moment?


If prb+ has the ability to legit rewind demos that's damn awesome. If that's not what you mean then I don't see how what you're going for isn't pretty much doable already with frequent saving.



also yes you can record a demo, fuck up, then try again:

-record demo
*die horribly at 500 secs in*
-recordfromto demo demo_letsTryThatAgain -skipsec 490
*press the button to take over from demo (idk what it is by default)*

Share this post


Link to post

I presume he's asking if there's a way to actually do that in-game (i.e. from a hotkey) during recording. Seems the base features exist in command-line-land, meaning it might be doable if it hasn't been implemented yet. Either way, that's a fantastic-sounding idea. :P

Share this post


Link to post

-recordfromto in prboom_plus is what you're looking for.

It's an argument that plays back a demo and at any point in the demo, you can press the 'Join' key (I think by default, its J) and the demo lets you take over the wheel, so to speak. As in the player's (in the demo) control stops and you (the actual person watching) can continue playing from where the demo left off at the time you press J, and a new demo starts recording, stitching both old and new parts together.

As Ribbiks said, you can use -skipsec to skip to a specified time in the demo in case you get bored of watching the whole thing. Its really arduous without it, as it's pretty common (for me, anyway) to join the game at a point where I'm perfectly set up for a deadly revenant missile in the face, so look for calm parts in the demo to join if you can help it.

You should be able to take over other people's demos too, in case you want to play a specific part in a map, or if you want to play a slaughtermap after someone's UV-Max completes the hard part. I haven't tried it yet though.

It really is as cool as it sounds :)

Share this post


Link to post

that gives me an amusing "challenge" idea. Someone records a demo up until a specific point, putting the player in a certain position, then it's given to others as a puzzle. like "hey, try to get out of this crazy situation with only 10hp and 3 shells".

I suppose that exact thing could be probably be done by just making a puzzley map then dehacking in the starting values. but oh'well, just a random idea...

Share this post


Link to post
Ribbiks said:

that gives me an amusing "challenge" idea. Someone records a demo up until a specific point, putting the player in a certain position, then it's given to others as a puzzle. like "hey, try to get out of this crazy situation with only 10hp and 3 shells".

I suppose that exact thing could be probably be done by just making a puzzley map then dehacking in the starting values. but oh'well, just a random idea...

Building a close-to-perfection TAS is just a chain of routine situations and "getting out of crazy situations", some of which were planned and some were not.

Share this post


Link to post

Cool, so that's actually a thing. But there's no way to "rewind" in the game, while I'm still recording? I would have to quit the game, reload the demo, fast-forward to where I want to take over, etc?

Share this post


Link to post

yes, I believe so. But with some batch scripting you can simplify the process to just F10 + Ying whenever you die and then clicking on the generated batch script to get right back in.

I can help you're interested, just shoot me a PM

Share this post


Link to post

an ingame rewind would be great
just like the ability to restart the demo without quitting the game
and a command line parameter that gives you a glass of orange juice

Share this post


Link to post
Memfis said:

and a command line parameter that gives you a glass of orange juice

Been waiting to see this implemented into a source port for over 10 years now, an obvious feature I always thought, but it's gone overlooked

Share this post


Link to post

A glass of orange juice! What's next, scripting and DECORATE support? Since this is a classic port, e6y would never implement that particular feature.

Well, a glass of beer - maybe. If you got him interested enough (hint: think those "sponsored HUDs"). But I reckon even that would be not available for recording, playback or with demo_compatibility.

Share this post


Link to post

Did any source port ever make this a proper feature? Being able to press a button rewind 5 seconds would be awesome. You can do this in SNES emulators.

Share this post


Link to post
Posted (edited)

No. Doom demos don't work like that and cannot shift the game backwards. The closest you can get is rewinding in network ports like odamex, however that isn't a gameplay feature and is built into its network demos, as in network exclusively.

 

Your SNES emulator can rewind because it keeps a number of delta states of its complete memory and execution stack. This isn't something you can simply do with a Doom source port, it's a much different problem with native code.

Edited by Edward850

Share this post


Link to post
42 minutes ago, owl said:

Did any source port ever make this a proper feature? Being able to press a button rewind 5 seconds would be awesome. You can do this in SNES emulators.

 

Someone once tried something like this: 

But because it was based on the existing savegame code, it had some serious problems with desyncing. There is no technical reason why someone couldn't implement a "proper" rewind feature, but no one has ever gone to the trouble to make it work properly.

Share this post


Link to post
On 7/10/2014 at 12:29 AM, Memfis said:

just like the ability to restart the demo without quitting the game

This is the best feature speedrunners don't have yet. Or just start a new demo without quitting the game.

Share this post


Link to post
Posted (edited)

^ Agree with the above. I also don't see a reason why it would be hard to implement. You can already bind a key to restart a map while not recording and PrBoom+ can also already overwrite an existing demo. Not sure if there are some intentional safeguards to prevent starting a new demo while you're recording that might be hard to bypass. Barring that seems like all that's needed to be done is put the aforementioned 2 features aptly together.

Edited by Keyboard_Doomer

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×