Author |
Message |
Darth Oosha Trandoshan
Joined: 24 Sep 2003
|
Posted: Mar 17, 2008 02:50 Post subject: Feature request: Films |
|
|
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
Joined: 25 Sep 2003
|
Posted: Mar 17, 2008 03:53 Post subject: |
|
|
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
|
Posted: Mar 17, 2008 05:09 Post subject: |
|
|
You could capture films as a sequence of images, which would be rather slow, but also trivial to implement.
|
|
lucius DarkXL Developer
Joined: 17 Feb 2008
|
Posted: Mar 17, 2008 07:48 Post subject: |
|
|
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 [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
Joined: 15 Sep 2003
|
Posted: Mar 17, 2008 08:29 Post subject: |
|
|
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
Joined: 17 Feb 2008
|
Posted: Mar 17, 2008 09:23 Post subject: |
|
|
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
|
Posted: Mar 17, 2008 15:50 Post subject: |
|
|
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
|
Posted: Mar 17, 2008 19:44 Post subject: |
|
|
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
|
|
Burning Gundam Kell Dragon
Joined: 28 Sep 2003
|
Posted: Mar 18, 2008 01:48 Post subject: |
|
|
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
|
|
lucius DarkXL Developer
Joined: 17 Feb 2008
|
Posted: Mar 18, 2008 18:40 Post subject: |
|
|
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
|
Posted: Mar 19, 2008 04:39 Post subject: |
|
|
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
|
|
lucius DarkXL Developer
Joined: 17 Feb 2008
|
Posted: Mar 19, 2008 06:49 Post subject: |
|
|
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 |
|
|