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 : "Wait for all speech to resolve" command (For cutscene pain prevention)
New Topic New Poll Post Reply
Poster Message
Xindaris
Level: Smitemaster
Avatar
Rank Points: 1527
Registered: 06-13-2015
IP: Logged
icon "Wait for all speech to resolve" command (+1)  
This comes up EVERY. TIME. I try to make a cutscene with speech and actions. All I want is for the character to finish talking and THEN move, and I have to fuss and tweak and calculate juuust the right number to put in the wait command to be sure the character finishes talking before they move or a go to level entrance command activates. It's a relatively simple computation: Ceiling((Total number of MS all of the speech will take)/(MS per turn)) = number of turns to wait. So why isn't there already a command to do that for me?

To be perfectly clear, what I'm asking for is a command that, if there is a cutscene active and a bunch of speech commands before it, makes it so that NO FOLLOWING COMMAND HAPPENS until ALL of the speech prior to this wait command has resolved (i.e., shown up where the player can see and read it). We have kind of the reverse of this with "Flush speech", which instantly dumps all of the speech waiting to be displayed on at once, but that's basically the opposite of useful for the purposes of cutscene production.

____________________________
109th Skywatcher

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

06-06-2018 at 07:41 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: 3734
Registered: 12-28-2004
IP: Logged
icon Re: "Wait for all speech to resolve" command (0)  
So why isn't there already a command to do that for me?
Because speech happens asynchronously, disregarding turns and vice versa. Or, to put it otherwise, speech is time-based, game is turn-based. You can't have a command which makes the turns pass according to the real time.

The only thing I can really think of would be "Pause cutscene processing until speech finishes" which would work as the name implies. Given we have a running cutscene it would prevent the turns from progressing until all the speech is finished playing.

Though admittedly that would be a huge pain to code because game logic runs independently of the UI (of which the speech is part) but probably not impossible to do.

____________________________
My website | Facebook | Twitter
06-07-2018 at 08:11 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
Xindaris
Level: Smitemaster
Avatar
Rank Points: 1527
Registered: 06-13-2015
IP: Logged

File: Cutscene timing annoyance.hold (1 KB)
Downloaded 19 times.
License: Public Domain
icon Re: "Wait for all speech to resolve" command (+1)  
I wrote the original post mostly out of frustration from doing something another time that I've done dozens of times and just find tedious and annoying every time. What's really annoying to me is even if I explicitly calculate for myself exactly how many (say) 500-millisecond turns all of the speech should take given the numbers that appear to say how long a given bit of speech will be displayed for, I often find that this is somehow too many turns! Not just one too many turns, which would make sense because of that ceiling part of my calculation, but something like 5 or 10 too many turns as of the cutscene I was just dealing with.

I think my hope was that if something could internally detect whether or not there's still a speech box on screen (which certainly SOUNDS like a reasonable thing to check for regardless of what's asynchronous to what) and then complete the "wait for speech to finish" command at that point. Or else to do the calculation that I've been doing myself (which is based entirely on numbers that I know the game knows) but better because the computer does it for me and hopefully using whatever the ACTUAL amount of turns the speech is all taking up is, because apparently adding up the displayed amounts of time gives me a gross overestimate.

EDIT: In fact I'd like to demonstrate what I'm talking about with the attached hold. In the cutscene, the character says "Talking talking talking" 6 times and then moves south. The cutscene is timed to 100 MS per turn, and each speech box is indicated to take 2200 MS, which means 6*22 = 132 turns should be how many turns the cutscene waits for all of the speech to resolve. Right? WRONG! After ALL of the speech clears (which as far as I understand, SHOULD mean that exactly 6*2200 MS has passed), he stands there awkwardly for like another 10 turns before moving south and ending the cutscene.

____________________________
109th Skywatcher

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


[Last edited by Xindaris at 06-08-2018 02:08 AM]
06-08-2018 at 02:03 AM
View Profile Send Private Message to User 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 : "Wait for all speech to resolve" command (For cutscene pain prevention)
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.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.