Author Topic: Recording AGS games  (Read 344 times)  Share 

Crimson Wizard

  • AGS Project Admins
  • not et suppotreD
    • I can help with translating
    •  
Recording AGS games
« on: 09 Jul 2012, 21:12 »
I always wondered how does this record/replay stuff works, but not strong enough to actually check it out.
Now I see the recording functionality in the engine code and getting curious.

First of all, there are few commands registered internally, but they are not exposed to the editor. This functionality isn't mentioned in Manual - at all. I searched forums and found only few threads:
This circa 2003
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=10275
Yeah, recording the actions. Use Alt-R to start recording.
EDIT: press again to stop recording. Then you can play the recorded file via specifying it in the AGS setup menu.
The feature is unofficial though.
Yep - it's unofficial because it is still buggy and the playback can get out of sync after a while (it tended to work for about 5-10 minutes then mess up).
It was originally designed to allow live walkthroughs of games, but in its current state it's only really good for demonstrating bugs or recording short pieces of your gameplay.

Also later one, circa 2007:
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=32910
In fact, all that the replay feature does is record any user input (mouse moves, key presses) on each game frame. This works on the principal that the game logic is deterministic, so the only way to affect the game flow is if the user does something.
The replay feature does almost work, but there is a bug that can throw it out of sync in certain situations and I've never spent the time to track it down and fix it.

So. Basically this is in the engine for years now, but not working correctly.
Should it be fixed later? Is it needed to anyone?

EDIT: Heh, I was a bit wrong when I mentioned that "registered commands". There's only one command, and that's what it does:
Code: C++
  1. void scStartRecording (int keyToStop) {
  2.     quit("!StartRecording: not et suppotreD");
  3. }
  4.  
not et suppotreD, sorry :grin:
« Last Edit: 09 Jul 2012, 21:18 by Crimson Wizard »

monkey_05_06

  • AGS Project Admins
  • Has left the building.
Re: Recording AGS games
« Reply #1 on: 09 Jul 2012, 21:23 »
The ability for the engine to record and play back user input actually would be very interesting to keep around. Granted, it's not something likely to be used by most games, but if it could be integrated into live gameplay, it would make features like Braid's time controls readily accessible.

I haven't actually looked at the code for this, so I'm not sure how much work that would be to implement, but it could be an intriguing feature for the engine. If we implemented run-time list types then it could probably be worked around within the game logic itself, so if it's too much work to maintain then I wouldn't object to canning it.
Let's be honest. Most people suck at coding. I suck at coding, but at least my code is readable. To Hell with anyone too lazy to maintain consistent formatting in their code. I could deal with bad interfaces and structure if I could even read your horrible code. And that's putting it nicely. -monkey