Yeah, I know, I have that conversation with myself a lot. Part of it is just wanting to be able to distribute this as a wholly standalone project without having to worry about engine version compatibility. One iwad and set of assets tied to a specific engine version, that doesn't have to worry about any other games being played on it. From there, it kind of becomes "well, If I'm making it standalone anyway, what other fun can I have?"
The single biggest one is pretty selfish, admittedly - overriding all the 1.2x pixel aspect ratio rendering so I never need to worry about shrinking all my sprites and textures by that factor every time I make something. I know I can modify the pixelratio field in mapinfo, but that only affects the map itself and not things like the player's weapon sprite. The only workaround I have found for the weapon sprite then is to add in a downscale factor in every sprite entry for weapons, which gets old fast. So I just tried to nip that in the bud.
As I mentioned, some things would be quite possible but I either couldn't figure out how, or the only way I could figure out would be incredibly ugly scripting. I wanted to modify resurrection logic to store a reference to the actor being resurrected, for instance, but everything I could think of scripting-side would involve awkward things like checking a radius for any actors in their Raise state, etc...
Other things include some AI changes, such as a RETREAT flag that makes monsters move away from the player, but doesn't change their attack rate in the way FRIGHTENED does, and a (really gross and kludgey) setup for making them avoid damaging floors, even if the damage-taking side is done in zscript. As I dug through both script and source to see what I could do, it really looked like I would have to totally rebuild the A_Chase function in ZScript from scratch to do what I wanted...
And also a system for accelerating/decelerating moving sectors smoothly like can be done in build engine games. Once again kind of kludgey but I'm pretty pleased with it. I can't even think how to do that scripting-side - short of some sort of horrible hairball of ACS that loops through and repeatedly calls multiple sector movements or whatever.
As you say though, if engine features can cover it, I would be happy to utilize them. I already have undone several changes, mainly where I was changing default cvars because I was being a dumb and didn't realize DEFCVAR existed
Last edited by nova++ on Fri Sep 10, 2021 12:02 pm, edited 1 time in total.