DF-21 Forums Forum Index DF-21 Forums
The Dark Forces Community
 
DF-21.net Home | FAQ | Search | Memberlist  | Register 
Profile | Log in to check your private messages | Log in

Feature request: Films

 
Post new topic   Reply to topic    DF-21 Forums Forum Index -> Feature Suggestions
View previous topic :: View next topic  
Author Message
Darth Oosha
Trandoshan

Joined: 24 Sep 2003

PostPosted: Mar 17, 2008 02:50    Post subject: Feature request: Films View user's profile Send private message Reply with quote

I imagine it's a stretch to expect this, but the ability to record and play back films is a feature that often seems to be overlooked by developers. DF gameplay is fairly simple and predictable, so most films probably wouldn't be interesting; but they could be used to document bugs/glitches, or just to record difficult tricks (like surviving a long drop by using IM mines to slow your fall).

Also: The best implementation of films I've seen is in Myth II. Film data is automatically stored in every save file, so a single film might be made up of any number of game sessions; and newer versions emulate older versions' gameplay when playing back old films.

The MAZZTer
Death Star
Death Star

Joined: 25 Sep 2003

PostPosted: Mar 17, 2008 03:53    Post subject: View user's profile Send private message Send e-mail Reply with quote

Doing in-game films where you save simply a random number seed and then the control presses the user did would be more trouble prone (low framerate can cause the controls to desync with the action if the coding doesn't take this possibility into account, random number generation has to be exactly the same which can be difficult to control depending on what needs random numbers, etc). Much easier to start with a video dump... although you need to know how to write video files to disk then! There might be a library for it or something.

_________________
http://www.mzzt.net/ | I am a respectable admin with a respectable sig.

Emon
Ree-Yees

Joined: 10 Aug 2007

PostPosted: Mar 17, 2008 05:09    Post subject: View user's profile Send private message Reply with quote

You could capture films as a sequence of images, which would be rather slow, but also trivial to implement.

lucius
DarkXL Developer
DarkXL Developer

Joined: 17 Feb 2008

PostPosted: Mar 17, 2008 07:48    Post subject: View user's profile Send private message Send e-mail Reply with quote

This is a good idea, certainly worth thinking about. If I implement it, it wouldn't be until later (post-alpha at the very least).

As for the implementation, I haven't given it much though yet but here goes an initial rough idea:

This would have to be an option you turn on, because it can affect performance. So you'd have a "start" film option (button? console command?) and an "end" which saves the film to disk given a certain name.

On the first frame you'd record the exact state of the level, data about all movable/dynamic sectors and where every entity is, which frame it's on, what it's orientation is, etc. Then for each "tick" you record the state of all active entities (including the player) and all active INF classes/dynamic sectors that have changed. You'd also record any timing data needed so that the film can be played back at the correct rate. You record when which objects are removed (collectables), which objects change state (destroyable), which frame of animation if it's changed, any objects that are added, etc.

Then you have a built in "film" player that just plays all this data back. You don't record keystrokes, you record the actual state of the world, orientation of the player's camera, etc.
Since we are recording changes (after the first frame), the data should be managable. Since we are recording the actual final data and not intermediate data such as keypresses or random seeds, we don't have to worry about scripts or any other non-deterministic behaviors. Additionally you should actually be able to have the camera you use to view the film be different from the player's camera (optionally) - assuming of course that someone makes me a good Kyle wax of course Smile [which is needed if people want any multiplayer support eventually anyway]. This allows the film to be played back from different viewpoints, such as a free camera or a specific entity.

How does that sound?

_________________
DarkXL....http://darkxl.wordpress.com

Fenwar
Admiral Ackbar
Admiral Ackbar

Joined: 15 Sep 2003

PostPosted: Mar 17, 2008 08:29    Post subject: View user's profile Send private message Reply with quote

I think that's the approach used by the Source engine? Works for me, the only issue with it seems to be that every major new build of the engine breaks demos shot with the old one. But this can be worked around and may not be an issue with DarkXL.

Personally though, I'd put this feature as a low priority. People have figured out how to record from DF anyway (see the speed runs thread) and there are various programs for screen capture.

The ability to easily shoot demos with movable cameras would be fun for some stuff... explaining difficult jumping sequences for one (I remember writing a text explanation with several labelled screenshots for Lahara Hotel to help someone find their way into the lift shaft...)

lucius
DarkXL Developer
DarkXL Developer

Joined: 17 Feb 2008

PostPosted: Mar 17, 2008 09:23    Post subject: View user's profile Send private message Send e-mail Reply with quote

Yes different versions may cause issues. But because it's recording final values I think it could be worked around - we should be even able to change the waxs and have it still work.

As for priorities, I agree that this goes into the feature wish list but is low priority. I'll just try to keep in mind while working on everything else.

However this would be a good debugging feature, for both me and users. So I think I'll implement this one eventually. But for now I'll continue working on the alpha... I'm still working on INF classes at the moment.

_________________
DarkXL....http://darkxl.wordpress.com

CoinCollector
Dianoga

Joined: 10 Nov 2007

PostPosted: Mar 17, 2008 15:50    Post subject: View user's profile Send private message Reply with quote

I've actually thought of this, and it would be really nice if you could record videos in DarkXL! I really enjoy speedrunning, for instance.

ACE
Ree-Yees

Joined: 10 Nov 2007

PostPosted: Mar 17, 2008 19:44    Post subject: View user's profile Send private message Reply with quote

yes that would help make Dark XL even better! If you add the video capture feature then people who want to make speed runs such as myself and CoinCollector wont have to use Dos-box Very Happy

Burning Gundam
Kell Dragon

Joined: 28 Sep 2003

PostPosted: Mar 18, 2008 01:48    Post subject: View user's profile Send private message Send e-mail Reply with quote

I never really saw a need for there to be a film feature for DF, but I'm certainly not against it.

_________________
I don't think outside the box... I customize it.

Darth Oosha
Trandoshan

Joined: 24 Sep 2003

PostPosted: Mar 18, 2008 17:53    Post subject: View user's profile Send private message Reply with quote

lucius wrote:
Then you have a built in "film" player that just plays all this data back. You don't record keystrokes, you record the actual state of the world, orientation of the player's camera, etc.
Since we are recording changes (after the first frame), the data should be managable. Since we are recording the actual final data and not intermediate data such as keypresses or random seeds, we don't have to worry about scripts or any other non-deterministic behaviors.


The main problem I can see with that is that someone could easily fake various achievements by modding the game. That doesn't bother me personally, though; and at least it sounds like films in saves are still a possibility.

lucius wrote:
Additionally you should actually be able to have the camera you use to view the film be different from the player's camera (optionally) - assuming of course that someone makes me a good Kyle wax of course :)


Not to mention extra firing frames for the standard enemy WAXes; otherwise they'll look like they're shooting at the camera. That's also a potential problem for any levvel implementing NPC allies, come to think of it.


Last edited by Darth Oosha on Mar 18, 2008 20:16; edited 1 time in total

lucius
DarkXL Developer
DarkXL Developer

Joined: 17 Feb 2008

PostPosted: Mar 18, 2008 18:40    Post subject: View user's profile Send private message Send e-mail Reply with quote

Quote:
Not to mention extra firing frames for the standard enemy WAXes; otherwise they'll look like they're shooting at the camera. That's also a potential problem for any levvel implementing NPC allies, come to think of it.


Fortunately if someone added different firing views in the wax, my code would support it. So it'd just be a matter of someone creating the waxs, the extra views and frames will be used automatically. Enemies always facing you when shooting isn't a limitation of the wax format, just LA saving memory as far as I can tell, like flipping some of the different views instead of making new proper frames. However Doom did this as well, atleast in DF the support was there for unique frames for every view.

As for someone cheating the system with fake achievements - that is a possibility but one I'm not too concerned about given the benefits of the system. A Doom like "film" system is far too prone to error, slight differences in system speed can cause the whole demo to fall apart - I've seen it many times. If, however, an actual movie is desired you could always use FRAPS since this is a standard windows app.

_________________
DarkXL....http://darkxl.wordpress.com

ACE
Ree-Yees

Joined: 10 Nov 2007

PostPosted: Mar 19, 2008 04:39    Post subject: View user's profile Send private message Reply with quote

Actually no, Fraps can only take 30 second videos when its not registered. And fraps doesn't work with dark forces believe me I've tried. and even if it did work i wouldn't want to spend 37.00 USD to register it just for one game when you could just make this engine better by adding video support.

klasodeth
Trandoshan

Joined: 03 Mar 2008

PostPosted: Mar 19, 2008 05:22    Post subject: View user's profile Send private message Reply with quote

ACE wrote:
Actually no, Fraps can only take 30 second videos when its not registered. And fraps doesn't work with dark forces believe me I've tried. and even if it did work i wouldn't want to spend 37.00 USD to register it just for one game when you could just make this engine better by adding video support.



I think he was actually talking about recording his engine with FRAPS if someone needed an actual video file of a standard format, as opposed to simply recording a demo file that could only work with DarkXL. The idea being you could record a demo with the built-in recording tool, then play it back while running FRAPS so that you end up with a standard video file that can be uploaded to youtube.com or wherever. I realize that FRAPS can record gameplay directly, but recording to a demo file first prevents framerate issues from affecting the player while recording a run.

lucius
DarkXL Developer
DarkXL Developer

Joined: 17 Feb 2008

PostPosted: Mar 19, 2008 06:49    Post subject: View user's profile Send private message Send e-mail Reply with quote

I'm not against movie recording, but I was thinking that the demo recording would be more interesting and useful, especially if you could move your camera. But I'm willing to go either way, movie recording or demo recording - I'll just see what people want when it comes time.

_________________
DarkXL....http://darkxl.wordpress.com

Display posts from previous:   
Post new topic   Reply to topic    DF-21 Forums Forum Index -> Feature Suggestions All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group