Turn-based Mutator

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are ONLY for YOUR 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.

Re: Turn-based Mutator

Postby Shadez12 » Tue Oct 16, 2018 11:20 am

We've come full circle.
User avatar
Shadez12
Wow
 
Joined: 03 Aug 2013
Location: Wow

Re: Turn-based Mutator

Postby DavidN » Tue Oct 16, 2018 1:54 pm

What a fun idea :) Reminds me of playing Necromunda in the 90s, dividing turn time between movement and firing!
User avatar
DavidN
 
 
 
Joined: 28 Dec 2015

Re: Turn-based Mutator

Postby mrtaterz » Tue Oct 16, 2018 1:57 pm

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
mrtaterz
aka GooseJelly
 
Joined: 14 Feb 2018
Discord: GooseJelly#8476
Twitch ID: thebigchez420
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Turn-based Mutator

Postby Josh771 » Tue Oct 16, 2018 4:53 pm

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
formerly known as SidDoyle
 
Joined: 03 Apr 2013
Location: Elsewhere.
Discord: josh771#7771

Re: Turn-based Mutator

Postby Josh771 » Tue Oct 16, 2018 9:18 pm

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
Josh771
formerly known as SidDoyle
 
Joined: 03 Apr 2013
Location: Elsewhere.
Discord: josh771#7771

Re: Turn-based Mutator

Postby RedoLane » Wed Oct 17, 2018 5:33 am

wow, this is incredible!
This can be a foundation to Tactical Doom RPG mods from now on!
User avatar
RedoLane
 
Joined: 08 Dec 2017
Discord: #7295

Re: Turn-based Mutator

Postby Zhs2 » Mon Oct 22, 2018 5:13 pm

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 ModifyDamage override that checks if the damage dealt is of type "Slime" and returns 0 accordingly. Better yet, you can catalogue whether "Slime" damage was dealt in an off-turn period, what strength the hellslime floor is by its damage amount, 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
Zhs2
Power of meh.
 
Joined: 07 Nov 2008
Location: Maryland, USA, but probably also in someone's mod somewhere
Operating System: Windows 10/8.1/8/201x 64-bit
Graphics Processor: ATI/AMD with Vulkan Support

Re: Turn-based Mutator

Postby Josh771 » Mon Oct 22, 2018 5:46 pm

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 ModifyDamage override that checks if the damage dealt is of type "Slime" and returns 0 accordingly. Better yet, you can catalogue whether "Slime" damage was dealt in an off-turn period, what strength the hellslime floor is by its damage amount, 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!
User avatar
Josh771
formerly known as SidDoyle
 
Joined: 03 Apr 2013
Location: Elsewhere.
Discord: josh771#7771

Re: Turn-based Mutator

Postby Solaela » Mon Oct 22, 2018 11:19 pm

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.
Solaela
 
Joined: 10 Jan 2015

Re: Turn-based Mutator

Postby Captain J » Mon Oct 22, 2018 11:44 pm

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
Captain J
That's Amoreee
 
 
 
Joined: 02 Oct 2012
Location: A Year old Pizza Box
Discord: DiscussJ#3128

Re: Turn-based Mutator

Postby isaacpop23 » Tue Oct 23, 2018 6:56 pm

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.
User avatar
isaacpop23
 
Joined: 01 Apr 2013

Re: Turn-based Mutator

Postby Solaela » Sat Oct 27, 2018 2:00 am

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
Solaela
 
Joined: 10 Jan 2015

Re: Turn-based Mutator

Postby KarolineDianne » Tue Oct 30, 2018 9:23 pm

I don't much understand what the advanced option 'Player Turn Extension' actually does, could you elaborate a bit on that?
User avatar
KarolineDianne
The Squid Princess
 
Joined: 05 Jan 2014

Re: Turn-based Mutator

Postby Josh771 » Wed Nov 07, 2018 3:51 pm

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.
User avatar
Josh771
formerly known as SidDoyle
 
Joined: 03 Apr 2013
Location: Elsewhere.
Discord: josh771#7771

Re: Turn-based Mutator

Postby OverDriver05 » Sun Apr 25, 2021 12:57 am

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.
OverDriver05
 
Joined: 26 Aug 2020
Discord: OverDriver05
Github ID: OverDriver05
Operating System: Windows Vista/7/2008 64-bit
Graphics Processor: nVidia (Modern GZDoom)

PreviousNext

Return to Gameplay Mods

Who is online

Users browsing this forum: No registered users and 17 guests