Announcement: Remember: you are giving away your fantastic ideas for free, and somebody else might even make money from them (or appear to). That's just how the world works! If you're worried about it, maybe you shouldn't post your ideas here.


Caravel Forum : DROD Boards : Feature Requests : "Bullet time" view
New Topic New Poll Post Reply
Poster Message
kikuchiyo
Level: Master Delver
Rank Points: 168
Registered: 04-01-2012
IP: Logged
icon "Bullet time" view (+4)  
The time token was one of the most innovative element in TSS with the highest puzzle potential multiplier - but the downside is that it really stretches the limits of the game interface. One aspect that makes it hard to understand rooms with this element is that now there can be multiple player-like entities that perform actions within the course of a single turn, but the game only shows the final state, after every element in the room was processed. Coupled with pushing weapons (also introduced in TSS), coordinated actions, especially multi-push sequences can end up looking very baffling. The problem with them is that it is hard to debug them, because the interface doesn't give any help with the intermediate states.

I wonder if a new, optional mode could be introduced to the game interface, where, when turned on, time would slow to a crawl after each move Beethro makes, and the result would be rendered for the action of each time clone, mimic etc.

This would not mean any change to any game logic, as the player wouldn't be able to interact with anything in this "bullet time" state, just that intermediate states would be rendered in full during a course of a turn.

Alternatively, if it's too complicated to implement this for the main gameplay, would it be possible for just demo replays?




04-16-2025 at 09:14 PM
View Profile Send Private Message to User Show all user's posts High Scores Quote Reply
Xindaris
Level: Smitemaster
Avatar
Rank Points: 1745
Registered: 06-13-2015
IP: Logged
icon Re: (+1)  
This does seem like a good idea, and I think it's been floated in some form or another a few times in the past.

The only additional feedback I have is that, you probably would want this only for certain particular turns where things get complicated, rather than seeing every single step of each relatively mundane turn where nothing confusing happened. And it'd get kind of tedious (for me at least) to go off into the settings and turn it on, then go back and turn it off after seeing that one particular turn that confused me. So: It'd actually be nice if there was a "replay previous turn's events with bullet time" key...or something.

____________________________
109th Skywatcher

Here are some links to Things!
Click here to view the secret text


[Last edited by Xindaris at 04-17-2025 04:50 AM]
04-17-2025 at 04:48 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Kalin
Level: Master Delver
Avatar
Rank Points: 288
Registered: 01-25-2016
IP: Logged
icon Re: (+1)  
Xindaris wrote:
It'd actually be nice if there was a "replay previous turn's events with bullet time" key...or something.

I agree. Maybe rename it "slo-mo replay".

____________________________
he/him
~170th Skywatcher
04-17-2025 at 12:59 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
skell
Level: Legendary Smitemaster
Avatar
Rank Points: 3871
Registered: 12-28-2004
IP: Logged
icon Re: "Bullet time" view (+3)  
This has been floating around since forever and unfortunately I don't think it's something that's really possible to add because of how hte game is written.

Basically the presentation of the game and the logic are completely separate - when you input a key DROD Library executes it in the room and returns to the presentation layer list of events that happened. Those events are used to add visual and sound effects, it redraws the room on the screen.

This feature would require somehow modifying DROD Library to be interrupted in certain places, return the control back to the Presentation so it can render new things, then send it back to DROD Library to continue. Tough. Not impossible but really, really tough.

And then it would open a whole new can of bugs where processing the events too early in the Presentation layer could cause things to break because it could influence the events and change how they are handled further in the logic.

THAT BEING SAID there might be some clever ways to tackle it. Maybe the game could make a snapshot of the room's state (and the events) in dozens or maybe hundreds of places during the processing and then the Presentation layer could take those snapshots and just display them, effectively having a room that's in a mid-execution state.

Of course there's more problems with that as certain actions happen together - when firetraps run they can hit orbs that open doors. Or they can hit bombs which hit orbs which close doors which affect the explosion radius. Despite not looking like it, firetraps ARE processed in certain order - do we treat each firetrap as a separate state to display? Do we treat each explosion square being processed separately?

Like I said - it's tough! But I no longer do dev so I'll let hyperme or someone give a more thorough answer :)

____________________________
My website
04-17-2025 at 08:57 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts High Scores This architect's holds Quote Reply
Kalin
Level: Master Delver
Avatar
Rank Points: 288
Registered: 01-25-2016
IP: Logged
icon Re: "Bullet time" view (0)  
skell wrote:
Basically the presentation of the game and the logic are completely separate - when you input a key DROD Library executes it in the room and returns to the presentation layer list of events that happened. Those events are used to add visual and sound effects, it redraws the room on the screen.
Is the list of events provided in the order they are triggered? So the library could process the whole turn, and then the presentation layer could display each animation one at a time instead of simultaneously?

____________________________
he/him
~170th Skywatcher
04-17-2025 at 09:14 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
hyperme
Level: Smitemaster
Avatar
Rank Points: 1470
Registered: 06-23-2006
IP: Logged
icon Re: "Bullet time" view (+2)  
Cue events aren't ordered. There's a big list saying which types of events have happened during a turn, plus storage for extra data needed for displaying events.

If you were taking fractional turn snapshots, you'd certainly include the current event states, but there would need to be a way to do a delta between each step.

As skell said, one of the big questions is how you divide up a turn. Individual firetraps and explosion squares are definitely too granular, but there's still a lot of places you might want to step through.

____________________________
[Insert witty comment here]
Qzvlkx?
04-17-2025 at 10:39 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
skell
Level: Legendary Smitemaster
Avatar
Rank Points: 3871
Registered: 12-28-2004
IP: Logged
icon Re: "Bullet time" view (+3)  
Kalin wrote:
skell wrote:
Basically the presentation of the game and the logic are completely separate - when you input a key DROD Library executes it in the room and returns to the presentation layer list of events that happened. Those events are used to add visual and sound effects, it redraws the room on the screen.
Is the list of events provided in the order they are triggered? So the library could process the whole turn, and then the presentation layer could display each animation one at a time instead of simultaneously?

In addition to what hyperme said there is also the issue of the room state as events don't tell the whole story - there is no event for monster moving and a whole bunch of other things (or they don't have all the details).

The snapshots could solve it all though, in theory. It's not easy though!

but there would need to be a way to do a delta between each step.
Deltaing Cue Events would thankfully be trivial - the event datas are stored in a linked list and new datas are added at the end so you could just go through each event type and remove from the next snapshot as many entries as they are in the older snapshot, starting from the oldest. Whatever is left is new events added since. A bigger problem would be ensuring that the room's snapshot and Cue Events both refer to the same objects as after cloning the room we'd have a new instance for every monster, every character command, etc - all of which would then need to be updated in Cue Events.

Which is, again, doable. During the clone we could make a map of every original to clone and use that when making the Cue Event diff.

But once again - the high level description of this is relatively simple. The issue is actual implementation.

As for when the snapshots should happen probably a good rule of thumb between any major process happening, so things like:
* After player movement
* After every monster movement
* After each tar type grows
* After spikes are processed
* After fire traps are processed

And so on.

____________________________
My website
04-18-2025 at 08:57 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts High Scores This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Feature Requests : "Bullet time" view
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.9
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.