VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

When I instruct Descent(ran using descentr.exe from the MS-DOS prompt) to run one of the demo's, what does it do? It says it's loading a level('preparing for descent...'), but what does it do after that? Does it simply play a prerendered video at that point? Or does it start a full engine and run a script that controls actions of player and enemies(so simulating enemy movement by a predetermined script and player input that's scripted instead of real input from the user's mouse/keyboard)?

It does say "Demo playback (xx% done)" in the middle of the screen, so does that mean it's just playing a video? Or is it actually using the normal game engine to do simulated player input(keyboard/mouse) and static enemy responses?

https://www.descentforum.de/forum/download.ph … 329eb717703f6f0 does seem to imply that it's the actual engine, as it can have bugs during 'playback' that relate to specific objects only?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 4, by jaZz_KCS

User metadata
Rank Oldbie
Rank
Oldbie

It is indeed a scriptfile using the engine to render the demo/scene you are seeing. A video would take up a lot of hard disk space. Think of it like a demo akin to timedemo mechanics implemented into other games like Quake, Doom, etc. Enemy behavior is not sporadic, but hardcoded into the scriptfile to guarantee an exact replication of the render each time to make benchmark comparisons feasible. (Which is not the main purpose of the Descent demos, though.)

You can record demos yourself by hitting the appropriate hotkey whilst in game to start/stop recording. Afterwards the demo will appear in the demo list in the main menu. The scriptfile will record all movement of entities, projectiles, etc., to be able to reconstruct it afterwards with the original game assets. Effectively, you are looking a a "new" rendition each time you're watching the demo, albeit a 100% identically reproduced one, like playing the exact same single player round with the exact outcome each time.

Reply 2 of 4, by superfury

User metadata
Rank l33t++
Rank
l33t++

Well, since it's a script running the normal game(except scripted instead of relying on direct input), since it's not a video playing, it makes it ideal for testing and optimization emulators, doesn't it? That's what I've been using it for mainly ever since my emulator could run that without visible problems.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 4 of 4, by Scali

User metadata
Rank l33t
Rank
l33t
superfury wrote:

it makes it ideal for testing and optimization emulators, doesn't it?

One common complaint with such scripts/timedemos is that everything is pre-recorded, so part of the engine is bypassed (no user input, no AI, no collision detection etc). It is mainly a test of the rendering backend.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/