Quake-style Intermissions

Archive of the old editing forum
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Quake-style Intermissions

Post by Ghastly »

Rather than displaying a static image, Quake's intermissions switch to a camera view of some memorable part of the level while kills/secrets are tallied up. Is this possible to make in ZDoom? I think KDiZD did a custom kill/secret tally during an intermap, but I'm not sure that could be applied here.
User avatar
ChronoSeth
Posts: 1631
Joined: Mon Jul 05, 2010 2:04 pm
Location: British Columbia

Re: Quake-style Intermissions

Post by ChronoSeth »

I think this would be easy to implement in a new map. Replace the exit trigger with a script which sends the player's view to a camera in the map, then use [wiki]GetLevelInfo[/wiki] within [wiki=HudMessage]HudMessages[/wiki] to display the kill, secret, and item counts. The script can then wait for the player to hit use, at which point it ends the map.

MapInfo can remove the normal intermission screen.
User avatar
leileilol
Posts: 4449
Joined: Sun May 30, 2004 10:16 am
Preferred Pronouns: She/Her
Location: GNU/Hell

Re: Quake-style Intermissions

Post by leileilol »

User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Re: Quake-style Intermissions

Post by Ghastly »

How would I handle multiple players, though? Is there a teleport function that won't telefrag, so I can just move everybody to the same random box?
User avatar
Nash
 
 
Posts: 17496
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: Quake-style Intermissions

Post by Nash »

This is something someone can put together a template/SDK of, at the back of my mind, I already have a rough idea on how to put a kit together and it's not hard at all to do (speaking from my ACS experience).

Now of course, who is that person who wants to do it, and more importantly, want to put their time into making it, is another story...

EDIT: some notes so that I don't look like I'm talking out of my ass

- pre-placed custom intermission camera actor (can have subtle swirling animation to simulate Quake), doesn't even need to be tagged by the mapper, its spawn routine can assign it a unique TID at map load
- time limit is easy to implement, frag limit might be a little complicated but technically still do-able (keep a list of each players' frags in an array, DEATH scripts to add to those arrays, killer will be the victim's target)busted, [wiki]PlayerFrags[/wiki]
- technically you don't even need to warp players to an empty box - you can set them all as invisible (RenderStyle_None) when level end is triggered, PROP_TOTALLYFROZEN to freeze all input except the +use key to advance to the next level and NOTARGET so that monsters don't continue attacking them
- the most complicated thing here would be keeping track of player kills, items and secrets. I don't think there's any built-in way to retrieve these numbers (I could be wrong, too lazy to check wiki) so probably some custom tracking solution needs to be implemented. Not really hard to do, just messy
Last edited by Nash on Mon May 23, 2016 3:53 pm, edited 1 time in total.
User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Re: Quake-style Intermissions

Post by Ghastly »

I've been looking for something to do while I wait for sprite-sets and various other things. I could do it.
Nash wrote:technically you don't even need to warp players to an empty box - you can set them all as invisible (RenderStyle_None) when level end is triggered, PROP_TOTALLYFROZEN to freeze all input except the +use key to advance to the next level and NOTARGET so that monsters don't continue attacking them
I like that solution! I'm not sure NOTARGET would work for that, though.
Nash wrote:the most complicated thing here would be keeping track of player kills, items and secrets. I don't think there's any built-in way to retrieve these numbers (I could be wrong, too lazy to check wiki) so probably some custom tracking solution needs to be implemented. Not really hard to do, just messy
GetLevelInfo has found/total secrets and killed/total monsters. Deathmatch stats, though, would be tricky.
User avatar
Nash
 
 
Posts: 17496
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: Quake-style Intermissions

Post by Nash »

Ghastly_dragon wrote:I like that solution! I'm not sure NOTARGET would work for that, though.
You could probably A_RadiusGive the entire level an item filtered for only monsters to A_ClearTarget them all in 1 shot.
GetLevelInfo has found/total secrets and killed/total monsters. Deathmatch stats, though, would be tricky.
Oh, very cool. To keep track of each players' frags, a looping ENTER script that constantly check its respective player's frag with PlayerFrags can be used.
User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Re: Quake-style Intermissions

Post by Ghastly »

Did some work on this so far. Still some issues to work through. I poked someone about getting the source for KDiZD's intermission scripts to see how they did it, since I hate doing HudMessage offsets from scratch.

- HUD still visible during the camera change.
- Can still hear the player's use-sound after the camera change.
- Player appears during the screen-melt because I'm setting RenderStyle back to normal before exit. Could potentially clear that in an Unloading script rather than before exiting?

User avatar
Jimmy
 
 
Posts: 4726
Joined: Mon Apr 10, 2006 1:49 pm
Preferred Pronouns: He/Him
Contact:

Re: Quake-style Intermissions

Post by Jimmy »

Adventures of Square does it in a way that to me is the ideal way to do it. Not tooting my own horn here - it was MTrop who set everything the way it is. :P
  • First, there's a fade of white and a sound effect played as the intermission begins. Music stops.
  • Camera is switched - for all players.
  • At least 3 cameras should be placed, and one randomly picked.
  • Players are frozen, and made invulnerable. To me this is pretty crucial - what if a monster is already attacking them? Or the intermission occurs just as they're leaping off a chasm into lava?
  • Music changes.
  • Level tallies appear one by one, can be advanced by the player who exited pressing use (GetPlayerInput).
  • Tallies increase and stop with satisfying sound effects.
  • Pressing use advances the player to the next level after all the tallies have appeared.
  • The "Press use to continue" text is animated with a color glow. This should catch the player's attention to it, in case they assume they have to wait for the intermission to end.
On a personal note, I seriously recommend making sure the viewpoint during the intermission is not in any way static. By that I mean - when placing the camera, make sure animated flats, or decorations, are visible, and better yet, pick a monster-filled room in case some are still lingering. Perhaps even have secret powerups in shot. The Quake-style intermission is a great way to show players what they might have missed in the level they think they just beat. :P
User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Re: Quake-style Intermissions

Post by Ghastly »

Jimmy wrote:On a personal note, I seriously recommend making sure the viewpoint during the intermission is not in any way static. By that I mean - when placing the camera, make sure animated flats, or decorations, are visible, and better yet, pick a monster-filled room in case some are still lingering. Perhaps even have secret powerups in shot. The Quake-style intermission is a great way to show players what they might have missed in the level they think they just beat. :P
Definitely. I really like how Quake's intermission camera panned back and forth slightly, just so you know things are still going.
User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Re: Quake-style Intermissions

Post by Ghastly »

User avatar
kodi
 
 
Posts: 1361
Joined: Mon May 06, 2013 8:02 am

Re: Quake-style Intermissions

Post by kodi »

You need SetHudSize() if you want to scale the message.
User avatar
Siberian Tiger
Posts: 476
Joined: Fri Jun 12, 2009 11:23 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): KUbuntu 22.04.1 LTS
Graphics Processor: nVidia (Modern GZDoom)
Location: United States
Contact:

Re: Quake-style Intermissions

Post by Siberian Tiger »

Ghastly_dragon wrote:Deathmatch stats, though, would be tricky.
I don't think its even possible without ZDoom adding some sort of support natively. I say this because when the FragLimit, TimeLimit, WinLimit, DuelLimit, etc etc. is hit, you need to interrupt the entire transition process. Not only this, but now that Zandronum has a 'stats' database, you'll then need to upload the information that would normally be in the intermission screen - to the SQL database yourself (if even possible). A Quake Style intermission is indeed possible for Coop, despite TimeLimit is possible todo in SkullTag (I think), but deathmatch - without ZDoom - is impossible.
User avatar
Nash
 
 
Posts: 17496
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: Quake-style Intermissions

Post by Nash »

Ah; right - completely forgot that ZDoom is hardcoded to end the map when the *Limit is hit and there's nothing you can do to intercept those. WellThen.jpg
User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Re: Quake-style Intermissions

Post by Ghastly »

A'ight, in that case I'm not even going to worry about DM-mode support, besides skipping the intermission script if it's a deathmatch mode.
Locked

Return to “Editing (Archive)”