[WIP] KEYMASTER - a tiny gameplay mod

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Cryomundus
Posts: 497
Joined: Thu Oct 31, 2013 12:33 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by Cryomundus »

Can I ask why? Having all the keys just seems to to really break the flow of a level, and I don't know why you would do that. Wouldn't it be better to have it as an option?
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

Cryomundus wrote:Can I ask why? Having all the keys just seems to to really break the flow of a level, and I don't know why you would do that. Wouldn't it be better to have it as an option?
The whole point of the mod is that your flow through the level is different than if you were playing it vanilla, and that the existing color key system is irrelevant. On some maps you can walk right up to the exit very early in, but it doesn't do you any good until you find the keymaster.
I could add a "never auto-give keys" option, but then I'd need to add a check to the Arrow spawning so that it never replaces a key, which in turn would change the list order it uses for level-persistent random picks - ie the arrow would be in different places depending on if you had that option on.
I'll add it to my "possible TODO" list. Screw it, I'll add it. It's a totally reasonable option. Build has been updated.
Someone64
Posts: 419
Joined: Tue Feb 23, 2016 11:59 am

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by Someone64 »

With the latest version I'm just getting VM execution failed tried to read from address zero from hud.txt.
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

Someone64 wrote:With the latest version I'm just getting VM execution failed tried to read from address zero from hud.txt.
Hmm, I can't reproduce that... which map / WADs are you loading?
Someone64
Posts: 419
Joined: Tue Feb 23, 2016 11:59 am

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by Someone64 »

Ah, found out that it's Tilt++ that was doing it. It wasn't happening before you added the settings for giving keys.

New bug report: Damage bonuses don't work in Project Brutality 3.0 test. Have not tried it on the old Project Brutality or just Brutal Doom yet.

EDIT: Another one. Due to PB's unique spawning system the barrels will consistently be picked to be the keymaster instead of monsters. Other mods with special spawning systems probably also have this issue.
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

Someone64 wrote:Ah, found out that it's Tilt++ that was doing it. It wasn't happening before you added the settings for giving keys.
Okay, so I've fixed the crash and updated the build, but now something weird happens. Keymaster stops working entirely based on which order you load Tilt++ vs KM with. If I run

Code: Select all

gzdoom Tilt++.pk3 keymaster.pk3
then both mod function correctly. Whereas if I run with

Code: Select all

gzdoom keymaster.pk3 Tilt++.pk3
KM doesn't run at all... no HUD, no keymaster, and you can exit levels normally.

Any ZScript lords understand why that is?
New bug report: Damage bonuses don't work in Project Brutality 3.0 test. Have not tried it on the old Project Brutality or just Brutal Doom yet.

EDIT: Another one. Due to PB's unique spawning system the barrels will consistently be picked to be the keymaster instead of monsters. Other mods with special spawning systems probably also have this issue.
KM compiles a list of "monsters in the level" on start based on the bIsMonster actor flag. If PB is giving barrels the bIsMonster flag for some strange reason, then yeah they might get chosen as the keymaster. Same with the "damage bonus", which is setting the DamageFactor property on all monsters under the hood... if PB is setting that on its own (seems likely?) without respecting the existing values, it'll stomp whatever KM did. Not sure how to fix that.
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

Ah, just compared Tilt++'s MAPINFO with KM's:

Code: Select all

GameInfo
{
    EventHandlers = "TiltPlusPlusHandler"
}

Code: Select all

GameInfo
{
    AddEventHandlers = "KeyMasterHandler"
    StatusBarClass = "KeymasterStatusBar"
}
Tilt++ is undoing the handler that KM adds, so that's a fix for Tilt++ actually. Ah, I see in that thread Nash has chimed in with the same fix.
User avatar
Nash
 
 
Posts: 17465
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by Nash »

Sorry about that. :( There have been a backlog of fixes already committed for my various ZScript mods (DukeShadow and Tilt++) but I just don't have time yet to upload a polished release. In the mean time, users should just edit the MAPINFO and change EventHandlers = to AddEventHandlers = in Tilt++! Sorry again!
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

Nash wrote:Sorry about that.
No worries! You got the fix out.
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

Updated the build with Heretic support, thanks to @m0rb from twitter.

All the changes were very simple and coexist nicely with the Doom support, except for the HUD, which I had to separate into filter/game-doomchex/ and filter/game-heretic/ folders because the former derives from DoomStatusbar and the latter from HereticStatusBar. They're identical in every other respect though, so the code duplication there is a real bummer. Can anyone figure out a clever way around that?
User avatar
saegiru
Posts: 143
Joined: Mon Jun 23, 2014 1:55 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by saegiru »

JPL wrote:Updated the build with Heretic support, thanks to @m0rb from twitter.

All the changes were very simple and coexist nicely with the Doom support, except for the HUD, which I had to separate into filter/game-doomchex/ and filter/game-heretic/ folders because the former derives from DoomStatusbar and the latter from HereticStatusBar. They're identical in every other respect though, so the code duplication there is a real bummer. Can anyone figure out a clever way around that?
Speaking of status bars - from what I see of the ZScript for the HUD, it looks to override SBARINFO completely and they can't coexist, correct? My knowledge on ZScript is extremely limited currently. You aren't aware of a way to integrate your arrow radar into a current HUD made in SBARINFO is there? I have aspirations of changing Ultimate DoomVisor to ZScript eventually (at which point I think it might be possible), but right now it's in old school SBARINFO and if I load Keymaster up with it, it either overrides it or vice versa.
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

saegiru wrote:
JPL wrote:Updated the build with Heretic support, thanks to @m0rb from twitter.

All the changes were very simple and coexist nicely with the Doom support, except for the HUD, which I had to separate into filter/game-doomchex/ and filter/game-heretic/ folders because the former derives from DoomStatusbar and the latter from HereticStatusBar. They're identical in every other respect though, so the code duplication there is a real bummer. Can anyone figure out a clever way around that?
Speaking of status bars - from what I see of the ZScript for the HUD, it looks to override SBARINFO completely and they can't coexist, correct? My knowledge on ZScript is extremely limited currently. You aren't aware of a way to integrate your arrow radar into a current HUD made in SBARINFO is there? I have aspirations of changing Ultimate DoomVisor to ZScript eventually (at which point I think it might be possible), but right now it's in old school SBARINFO and if I load Keymaster up with it, it either overrides it or vice versa.
Correct, I'm not aware of any way to "add on to" the existing HUD. Which is a bummer in Keymaster's case because it doesn't add its own SBARINFO data, all it really does is draw that one visual element of the icon fading in and out; it could coexist with a huge variety of other HUDs.
It seems like there's been some discussion of deeper ZScript UI stuff already, but I haven't followed it closely.
Someone64
Posts: 419
Joined: Tue Feb 23, 2016 11:59 am

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by Someone64 »

Found an incompatibility with Colorful Hell. It simply gives the error not enough monsters and pickups consistently.

EDIT: Actually it doesn't seem to work with most monster randomizer mods in general.

Also, suggestion: Can you add compatibility with Legendoom that it works in such a way that instead of using Keymaster's monster buff it gives the keymaster the legendoom legendary effect instead?
User avatar
Nash
 
 
Posts: 17465
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by Nash »

JPL: You might be able to utilize the RenderOverlay EventHandler to draw 2D stuff without overwriting status bar classes. I remember messing around with it in a test WAD once and it worked.
User avatar
JPL
 
 
Posts: 523
Joined: Mon Apr 09, 2012 12:27 pm

Re: [WIP] KEYMASTER - a tiny gameplay mod

Post by JPL »

Nash wrote:JPL: You might be able to utilize the RenderOverlay EventHandler to draw 2D stuff without overwriting status bar classes. I remember messing around with it in a test WAD once and it worked.
This totally works, thanks so much! Very very easy to move the old status bar code over to a handler. This also removes the need for the separate Doom vs Heretic HUDs.

Return to “Gameplay Mods”