(v3.0b) Enhanced Vanilla Project (EVP) - My first Doom 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
DevilBlackDeath
Posts: 172
Joined: Fri Sep 06, 2013 2:40 am

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by DevilBlackDeath »

A_D_M_E_R_A_L wrote:I never bothered with multiplayer compatibility and probably never will
Afaik multiplayer incompatibility also means technically improper code (not a pro, I go off what I was told :P). There's not a lot to fix afaik so when I'm done fixing it I'll post an "add-on" pk3 here so you can implement the changes if you wish to ;)
User avatar
DevilBlackDeath
Posts: 172
Joined: Fri Sep 06, 2013 2:40 am

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by DevilBlackDeath »

And here you go :
https://www.mediafire.com/file/pmru16mp ... x.pk3/file

So, to avoid having to look for the exact changes (for it to work as an add-on I had to replace your lumps, which mean, I copied the problematic files and changed only the desyncing parts) :
SFXBase.zsc : Added two functions to this class, CheckPlayerSightsOrRanges and CheckPlayerSightsAndRanges (kinda redundant, but when adding FXs you're likely to keep doing that kind of check, so I figured, best to do it that way). Also changed the CheckPlayerSights residing in EVP_BaseFlare so that it uses the new function.
Props.zsc : All occurences of CheckPlayerSights that used to have a CheckDistance alongside them with the new functions. AFAIK, these are in EVPBarrel:Idle an EVP_TorchBase:Spawn
Bullets.zsc : This one has a slightly different change. I tried to maintain your intended behaviour of whizzing when going by the player's head, while trying to enforce it to happen only for the player whose head is close to the bullet. To that effect I removed the distance check entirely from ZTracer:Spawn and instead put a bit of ZScript in the Whiz state, making it so the bullet is in this state for everyone, but the sound plays only for the players near the bullet.

I had only one occurrence of desyncing after that, which I unfortunately couldn't reproduce BUT it seemed to happen when I gave myself ammo. I know GZDoom has netcode meant to ensure cheats do happen on all clients when they're typed, but there could have been an issue there. I'll still give a look at the ammo replacers from EVP, but I doubt they're at fault sincerely.

For a little more in-depth explanation of the actual desyncing bug : In most cases, it came from affecting the game's state for a single player. For example, you used to check an actor distance against consolePlayer's camera, meaning the check will very likely validate only for one actor, meaning the resulting spawned actor or state change (in the case of ZTracer) will only spawn or happen on the client of the player who experiences the sight or range closeness causing the desync. CheckRange and CheckSightOrRange, meanwhile, check against all players, hence the helper functions I created in EVP_PlayerSightCheck. This was surprising as you did go through the trouble of actually checking all players for the CheckPlayerSights function.

For ZTracer specifically, it would seem, from a post by Graf from 2018, that ResolveState is meant for a few edge cases, main of which is intending for the function to keep going after setting the state. In your case you want to instantly go to the new state as no instruction is left for the Spawn state once you go in Whiz. Graf recommends using SetStateLabel (equals to "SetState(FindState("label"))" ) in that case. I did that and it seems to work as expected, I tested and the whiz works the same as vanilla. I also only checked for Range as checking for sight for a potentially off-screen projectile sound seemed unintuitive BUT this was only a personal change, you may have intended for things to be that way, you are the maker of this mod, and you're the one authoring the code, so I'll leave that up to you ;)

The only "problem" left for full MP compatibility would be to make said Whiz be able to happen for each player as opposed to just the first player(s) near the bullet when it first passes by a player. This is out of the scope of my initial fix BUT I know how to do this, and it doesn't involve a change of your codebase's architecture so I can do that too if you wish :) If you prefer to do it yourself it will only be a matter of making the Whiz state loop on itself and add a proximity check for every player (a bit like you do in CheckPlayerSights) after the conditional that plays the sound for the consolePlayer, then saving that in a simple array contained inside the tracer, and altering the condition for "Ä_StartSound" by adding to the proximity of the consolePlayer, whether or not the tracer has already been near that player.

In all cases, as long as you keep checking for ranges with these new helper functions, no further desyncs should happen, and the mod would stay MP compatible without further effort from your part in maintaining said compatibility ;)

Edit and tl;dr : This download is not meant for public download (can't really do it any other way for now) it is meant only for the dev's eyes for him to implement these changes.

Edit 2 : Replaced link with a permanent link (did an oopsie and uploaded my files on a temporary unregistered Mediafire account...)
User avatar
A_D_M_E_R_A_L
Posts: 284
Joined: Sun Apr 16, 2017 2:55 am
Preferred Pronouns: He/Him

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by A_D_M_E_R_A_L »

v2.4 (12/3/21)
Spoiler:
Last edited by A_D_M_E_R_A_L on Sat May 08, 2021 11:44 pm, edited 1 time in total.
User avatar
A_D_M_E_R_A_L
Posts: 284
Joined: Sun Apr 16, 2017 2:55 am
Preferred Pronouns: He/Him

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by A_D_M_E_R_A_L »

Pushed a hotfix that fixed the wrong cvar check in the player code
User avatar
A_D_M_E_R_A_L
Posts: 284
Joined: Sun Apr 16, 2017 2:55 am
Preferred Pronouns: He/Him

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by A_D_M_E_R_A_L »

v2.4a (9/5/21)
Spoiler:
User avatar
kalensar
Posts: 456
Joined: Sun Mar 21, 2021 9:40 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): linux mint 21
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by kalensar »

I'll give this mod a thumbs up. 8/10. It stays true to what it does and is definitely an eye catcher.

It hits just a little bit off for my tastes, but i think that is because it leans a little to close to Brutal Doom aesthetics. Thats not a bad thing, its just not my flavor of strawberry. Still I had fun and will continue grabbing each new update.
User avatar
NecroPoster
Posts: 15
Joined: Wed Jan 22, 2020 12:31 am

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by NecroPoster »

Just so you know, EVP no longer works in the current build of GZDoom.
EVP-v2.4a.pk3:zs_evp/menustuff.zsc, line 43: Function isGrayed attempts to override parent function without 'override' qualifier.
Another mod (Beautiful Doom) had this issue as well. Troubleshooting there pointed to GZDoom having a it's own "isGrayed" function now. Think he fixed it by renaming "isGrayed" to "isGrayedCompat" to avoid the conflict.
User avatar
A_D_M_E_R_A_L
Posts: 284
Joined: Sun Apr 16, 2017 2:55 am
Preferred Pronouns: He/Him

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by A_D_M_E_R_A_L »

NecroPoster wrote:Just so you know, EVP no longer works in the current build of GZDoom.
EVP-v2.4a.pk3:zs_evp/menustuff.zsc, line 43: Function isGrayed attempts to override parent function without 'override' qualifier.
Another mod (Beautiful Doom) had this issue as well. Troubleshooting there pointed to GZDoom having a it's own "isGrayed" function now. Think he fixed it by renaming "isGrayed" to "isGrayedCompat" to avoid the conflict.
Fixed now
v2.4b (10/5/21)
Spoiler:
User avatar
Rowsol
Posts: 941
Joined: Wed Mar 06, 2013 5:31 am
Contact:

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by Rowsol »

When using Corruption cards, some of the card art is messed up. Imps show up as a crouching player sprite.
The barrel/loststoul debris is really loud when hitting the ground. I dropped it 75%.
The script that detects altered items does an okay job but I still had to go in and manually disable certain things like healthbonus because it was conflicting with Trailblazer cigs.
User avatar
A_D_M_E_R_A_L
Posts: 284
Joined: Sun Apr 16, 2017 2:55 am
Preferred Pronouns: He/Him

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by A_D_M_E_R_A_L »

Rowsol wrote:When using Corruption cards, some of the card art is messed up. Imps show up as a crouching player sprite.
I think I know what's causing that, it's because of the sprite index switching I did for certain monsters in Doom Slayer difficulty. I might make a small patch for CC that should fix that.
User avatar
A_D_M_E_R_A_L
Posts: 284
Joined: Sun Apr 16, 2017 2:55 am
Preferred Pronouns: He/Him

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by A_D_M_E_R_A_L »

v2.4c (31/5/21)
Spoiler:
I also added a compatibility patch for Corruption Cards, which fixes certain monster sprites displaying incorrectly.
User avatar
Rowsol
Posts: 941
Joined: Wed Mar 06, 2013 5:31 am
Contact:

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by Rowsol »

Mancubus GLdefs are missing on it's missile.
Arachnotron as well.
The D
Posts: 4
Joined: Mon Jun 21, 2021 11:11 pm

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by The D »

Is there a possibility that you can make a version of this mod but only with the new weapons?
User avatar
A_D_M_E_R_A_L
Posts: 284
Joined: Sun Apr 16, 2017 2:55 am
Preferred Pronouns: He/Him

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by A_D_M_E_R_A_L »

The D wrote:Is there a possibility that you can make a version of this mod but only with the new weapons?
You could just disable the mod's monsters.
The D
Posts: 4
Joined: Mon Jun 21, 2021 11:11 pm

Re: Enhanced Vanilla Project (EVP) - My first Doom mod

Post by The D »

Ok but, how?
Post Reply

Return to “Gameplay Mods”