Turn-based Mutator

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
Shadez12
Posts: 102
Joined: Sat Aug 03, 2013 2:04 pm
Location: Wow

Re: Turn-based Mutator

Post by Shadez12 »

We've come full circle.
User avatar
DavidN
 
 
Posts: 266
Joined: Mon Dec 28, 2015 6:22 pm

Re: Turn-based Mutator

Post by DavidN »

What a fun idea :) Reminds me of playing Necromunda in the 90s, dividing turn time between movement and firing!
User avatar
mrtaterz
Posts: 236
Joined: Wed Feb 14, 2018 8:47 pm
Graphics Processor: nVidia with Vulkan support
Contact:

Re: Turn-based Mutator

Post by mrtaterz »

I don't know if this is possible (but it seems like almost anything is possible with the power of ZScript) but if you could add in "multiple players" (for Squad/Turn-based Tactics), longer turns, a visual indicator to show how long you have before your turn ends, and an end turn button, that would be amazing.

EDIT: Change the Par time for each level in Doom 1 & 2 if possible as well; I don't think it's possible to beat E1M1 or MAP01 in under 30 seconds anymore! There's so much more that could be done with this "simple mutator" to turn it into it's own full-fledged mod and not just a lightweight addon.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Turn-based Mutator

Post by Josh771 »

That whole "invisibility" trick to make monsters inaccurate sounds like a fantastic idea, actually. And it can't really hurt anything if it's only given when a player's turn ends. Yeah, I think I'll add that.

And, yeah, sadly I can't make this thing take level geometry into account. Doors and elevators are just going to have to be broken I suppose. Although making something that detects when a monster is in a monster closet, etc. and skips the monster's turn might be doable. I'll investigate a few methods, I suppose.

Glad everyone's enjoying it! I'm tempted to try a full turn-based mod with its own weapons, monsters, and mechanics at this point -- but no promises there! It's just a thought.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Turn-based Mutator

Post by Josh771 »

New release! I have updated the attached file in the opening post. There is now an options menu for turn-based.pk3, as well as handling for player death in singleplayer games. I have also included two optional methods for making attacks inaccurate, and I'll explain the differences between them here.

In the options menu, you are able to select between two different methods for attack inaccuracy: Powerup and Projectile Randomization.
• Powerup gives players an invisibility powerup when it is not their turn, causing all monster attacks (from monsters that cannot see invisible targets, at least) to become inaccurate.
• Projectile Randomization modifies all actors with +MISSILE as soon as they spawn to randomly offset their trajectory. This affects both players and monsters but leaves hitscans alone.

I have left the Projectile Randomization method as the default, but it may have unintended side effects with some mods. Try both, if you are so inclined, and choose the one that suits you best.

EDIT: I have made the Projectile Randomization method more reliable and added an option to tweak how strong the randomization is.
User avatar
RedoLane
Posts: 114
Joined: Fri Dec 08, 2017 11:07 am

Re: Turn-based Mutator

Post by RedoLane »

wow, this is incredible!
This can be a foundation to Tactical Doom RPG mods from now on!
User avatar
Zhs2
Posts: 1269
Joined: Fri Nov 07, 2008 3:29 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: Maryland, USA, but probably also in someone's mod somewhere
Contact:

Re: Turn-based Mutator

Post by Zhs2 »

A thought: check if a projectile's owner (target) doesn't have a player struct attached to it (i.e. "if(e.Thing && e.Thing.bMISSILE && e.thing.target && !e.thing.target.player)") then apply randomization if so. That should affect only things fired by monsters, and probably any player-placed things that fire other things that don't inherit the target field from their firer like in some old mods I'm sure.

Another thought, since I noticed it was talked about on Discord but didn't think to mention it until just now: you don't need a powerup to block slime damage. You can instead give the player an item with a [wiki]ModifyDamage[/wiki] override that [wiki=Damage_types]checks if the damage dealt is of type "Slime"[/wiki] and returns 0 accordingly. Better yet, you can catalogue whether "Slime" damage was dealt in an off-turn period, [wiki=Damaging_floor#Sector_types]what strength the hellslime floor is by its damage amount[/wiki], and then deal a penalty to the player with DamageMobj if they stopped there or so, which could be further expanded to not deal any damage if the player has an active Radsuit. (And perhaps make them immune to "Slime" otherwise?)
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Turn-based Mutator

Post by Josh771 »

Zhs2 wrote:A thought: check if a projectile's owner (target) doesn't have a player struct attached to it (i.e. "if(e.Thing && e.Thing.bMISSILE && e.thing.target && !e.thing.target.player)") then apply randomization if so. That should affect only things fired by monsters, and probably any player-placed things that fire other things that don't inherit the target field from their firer like in some old mods I'm sure.
Excellent thought! I could make this an option, in case some players like to have the inaccuracy applied to their own attacks for that classic RPG feel.
Zhs2 wrote:Another thought, since I noticed it was talked about on Discord but didn't think to mention it until just now: you don't need a powerup to block slime damage. You can instead give the player an item with a [wiki]ModifyDamage[/wiki] override that [wiki=Damage_types]checks if the damage dealt is of type "Slime"[/wiki] and returns 0 accordingly. Better yet, you can catalogue whether "Slime" damage was dealt in an off-turn period, [wiki=Damaging_floor#Sector_types]what strength the hellslime floor is by its damage amount[/wiki], and then deal a penalty to the player with DamageMobj if they stopped there or so, which could be further expanded to not deal any damage if the player has an active Radsuit. (And perhaps make them immune to "Slime" otherwise?)
I wanted to make this exact sort of behavior, but I hadn't considered what approach to use. Whenever I get around to trying to overhaul player turns to use a more action-based instead of time-based system, I'll see if I can't add this special damage-floor mechanic as well. Thanks for the thoughts!
Solaela
Posts: 73
Joined: Sat Jan 10, 2015 3:17 am
Preferred Pronouns: No Preference
Graphics Processor: nVidia (Modern GZDoom)

Re: Turn-based Mutator

Post by Solaela »

One thing I'd suggest if possible if the time method is the only way? A timer when it's player's turn. So they know how long they got left to act before it's the mobs turn again. Just a thought.
User avatar
Captain J
 
 
Posts: 16890
Joined: Tue Oct 02, 2012 2:20 am
Location: An ancient Escape Shuttle(No longer active here anymore)
Contact:

Re: Turn-based Mutator

Post by Captain J »

Solaela wrote:One thing I'd suggest if possible if the time method is the only way? A timer when it's player's turn. So they know how long they got left to act before it's the mobs turn again. Just a thought.
That's just what i said, actually. Yes i agree.
User avatar
isaacpop23
Posts: 143
Joined: Mon Apr 01, 2013 5:26 pm

Re: Turn-based Mutator

Post by isaacpop23 »

Well this is cool, what it lacks in balance it makes up for in being interesting/amusing. I'd love to see some dedicated stuff to flesh out the mod, I'd be curious to see how that goes.

I'd like to +1 the turn timer thing, but you said you're gonna overhaul the turn so I doubt it's gonna be needed in the long run. I'm not sure if there's functions to make this work, but is there a way to speed up the enemy turns? Not shorten them from 3 seconds to 1 second of action, actually speed up the run time so that 3 seconds of action happens in 1 second real-time. Playing in rooms with a lot of enemies that often time can't do anything really takes a toll on patience, but limiting what they can do on their turn seems like a bad idea for balance reasons.
Solaela
Posts: 73
Joined: Sat Jan 10, 2015 3:17 am
Preferred Pronouns: No Preference
Graphics Processor: nVidia (Modern GZDoom)

Re: Turn-based Mutator

Post by Solaela »

Captain J wrote:
Solaela wrote:One thing I'd suggest if possible if the time method is the only way? A timer when it's player's turn. So they know how long they got left to act before it's the mobs turn again. Just a thought.
That's just what i said, actually. Yes i agree.
XD Didn't see that. My bad but glad to see we agree
User avatar
KarolineDianne
Posts: 66
Joined: Sun Jan 05, 2014 11:06 am

Re: Turn-based Mutator

Post by KarolineDianne »

I don't much understand what the advanced option 'Player Turn Extension' actually does, could you elaborate a bit on that?
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Turn-based Mutator

Post by Josh771 »

KarolineDianne wrote:I don't much understand what the advanced option 'Player Turn Extension' actually does, could you elaborate a bit on that?
This is the frequency in tics that the game will check active monsters' line-of-sight when a player's turn would normally have ended but no actor besides the player can take a turn. If you set it to 1 tic, the instant a monster sees you after your full turn is over and no other actors can take a turn, it will become that monster's turn. This check occurs for all monsters in a map, so if you run into performance problems from the turn-based mutator, I recommend increasing this.

For example, let's say the player's turn length is set to 3 seconds -- that's 105 tics in game time. Say you've cleared a room and now you're just picking up items, exploring, etc. If you take more than 3 seconds to do that, you're now in an extended turn. Every n tics the game will check whether any new monsters can see you, where n is your "Player Turn Extension" setting. Larger values are easier on your CPU but also easier to skip encounters with. Small values make new monsters act very quickly upon spotting you.
OverDriver05
Posts: 40
Joined: Wed Aug 26, 2020 2:35 am
Graphics Processor: nVidia (Modern GZDoom)
Contact:

Re: Turn-based Mutator

Post by OverDriver05 »

Yo, Josh771! Just tried the "Turn-Based Mutator" for DOOM, and i'm a bit interested with it.

I find it missing a few things to make it befitting the title of the mod "Turn-Based DOOM".

Here's some suggestions and ideas:
A Customizable "Turn Meter": It's what it was said: A small gauge that tracks how much you can do certain action(s) in a single turn. I think this kind of gauge should be called the "Turn Stamina Gauge", or "TSG" for short. The look of the "Turn Stamina Gauge" can be customized to fit one's taste. Want a sci-fi themed "TSG"? Go for it! Want a steampunk themed "TSG"? You're welcome!
Various types of Turn-based Gameplay: Befitting the theme of the mod, the mutator can be customized in a number of ways, such as change the type of gameplay:
* XCOM Style: The default setting. Performing various actions, such as movement, steadily decreases the "Turn Stamina Gauge", while shooting enemies exhausts the gauge much quicker. The turn ends either by ending the turn with the "End Turn" key, or by fully expending the "Turn Stamina Gauge".
* VC Style: Based on SEGA's Valkyria Chronicles series. Doing basic actions such as movement expends the "Turn Stamina Gauge", meaning that the player is unable to move once the gauge ran out. During the turn, and even after the "Turn Stamina Gauge" is depleted, the player is able to aim and unload a fixed amount of bullets/shells/rockets/cells at a single enemy once per turn. The turn can be ended prematurely or after making your move with the "End Turn" key.
Adjustable Clip Ammo for VC Style: Exclusive for the VC Style setting. Each turn has a number of bullets/shells/rockets/cells that you can expend onto your enemies, taken from your current ammo pool. This can be customized with a slider for each ammo type.
Compatibility with other DOOM mods: So far, i tried this mutator with DOOM 4 Vanilla and Smooth DOOM, and somehow worked! When trying out the mutator with other mods such as Brutal DOOM, they unfortunately doesn't work. Hopefully, there's a fix for this!
Customizable Health Gauge for the Mortally Challenged: Being a turn-based mutator for DOOM, perhaps a customizable enemy health bar wouldn't hurt a bit. In case you take my advice, use m8f's Target Spy mutator, because you can customized it!

Hope this suggestions would help!
Last edited by OverDriver05 on Tue Apr 27, 2021 12:01 am, edited 3 times in total.
Post Reply

Return to “Gameplay Mods”