Back into modding, but facing many problems
Posted: Fri Jan 20, 2017 9:33 pm
Hey there! I've decided to get back into UT99 modding this week, mainly due to the makeitsuperhot contest, but my goal is actually to have fun with it.
Anyway, I'm trying to do a few stuff that I can't make work quite right.
Problem #1: Time dilatation
The mod resolves around slowing things when you're stopped, so basically, there's a time dilatation (like slomo) based on your speed.
I made the calculations, made a timer on the mutator itself with 0.1 timer, and it checks your speed, relative to your max speed, to it sets time dilatation based on that.
It seems the game has a minimum time dilatation set somewhere, maybe engine limited... as even setting a lower time dilatation, a few stuff seems to run slower (like muzzle flash), but actors seems to move at the same speed, using time dilataion 0.1 and 0.01.
To get around this, well, I've set a "foreach all actors" in the same timer. It'd set ground/air/water speed for players/bots, and relative X velocity for projectiles... so far, it works. Basically, when you stop, the time dilatation is set to 0.1 (minimum), and the players and projectiles have their speed limited to 10% as well, so effectively, it's a fake 0.01 time dilatation for moving, relevant actors.
Any suggestions to do this more elegantly, or in a simpler way? I'll end up redoing all weapons and projectiles (as this mod can't have tracehits, you know), so I'll probably move the velocity check on projectitles to themselves with timers on them, checking the current level timedilatation there.
Problem #2: Texture replacement
I've tried to mimic SUPERHOT visual style, by adding a few 1x1 textures, and replacing them again on the timer that foreach all actors... projectiles are black, weapons grey, pawns red... etc. For now, I'm doing like this, I'll also probably change weapon and projectiles textures "manually", since I'll make new versions of them to control things better.
The main problem here is that I'd like to remove the texture from the level surfaces. I've tried many ways checking this... since I don't know shit about map editor, I have no clue if it's even possible. I tried all ways checking for actor or anything, even onhits to deal with this, but no solution found.
The closest I got to this was placing lightning on all actors, with a specific hue and low brightness, so all surfaces (most of them, actually) become tinted. But since I'd like a light grey shade on all surfaces to mimic superhot, I really have no clue on how to do this, as white light didn't "tint" them, just make them more visible. Any ideas?
Problem #3: Sound pitch change
The same timer tick on mutator sets sound pitch to all actors proportial to the time dilatation. It seems to work only on ambientsounds (like on Minigun fire, and a few other stuff), but is ignored on pretty much everything else.
Is there a easy way to do this effect, by either making an inventory item to affect the player?
There are the main problems I've stumbled upon while making the mod. Is already "functional", limited as it is, if anyone is interested I can share the .u and .int for you to see how it goes.
Thanks and advance!
Anyway, I'm trying to do a few stuff that I can't make work quite right.
Problem #1: Time dilatation
The mod resolves around slowing things when you're stopped, so basically, there's a time dilatation (like slomo) based on your speed.
I made the calculations, made a timer on the mutator itself with 0.1 timer, and it checks your speed, relative to your max speed, to it sets time dilatation based on that.
It seems the game has a minimum time dilatation set somewhere, maybe engine limited... as even setting a lower time dilatation, a few stuff seems to run slower (like muzzle flash), but actors seems to move at the same speed, using time dilataion 0.1 and 0.01.
To get around this, well, I've set a "foreach all actors" in the same timer. It'd set ground/air/water speed for players/bots, and relative X velocity for projectiles... so far, it works. Basically, when you stop, the time dilatation is set to 0.1 (minimum), and the players and projectiles have their speed limited to 10% as well, so effectively, it's a fake 0.01 time dilatation for moving, relevant actors.
Any suggestions to do this more elegantly, or in a simpler way? I'll end up redoing all weapons and projectiles (as this mod can't have tracehits, you know), so I'll probably move the velocity check on projectitles to themselves with timers on them, checking the current level timedilatation there.
Problem #2: Texture replacement
I've tried to mimic SUPERHOT visual style, by adding a few 1x1 textures, and replacing them again on the timer that foreach all actors... projectiles are black, weapons grey, pawns red... etc. For now, I'm doing like this, I'll also probably change weapon and projectiles textures "manually", since I'll make new versions of them to control things better.
The main problem here is that I'd like to remove the texture from the level surfaces. I've tried many ways checking this... since I don't know shit about map editor, I have no clue if it's even possible. I tried all ways checking for actor or anything, even onhits to deal with this, but no solution found.
The closest I got to this was placing lightning on all actors, with a specific hue and low brightness, so all surfaces (most of them, actually) become tinted. But since I'd like a light grey shade on all surfaces to mimic superhot, I really have no clue on how to do this, as white light didn't "tint" them, just make them more visible. Any ideas?
Problem #3: Sound pitch change
The same timer tick on mutator sets sound pitch to all actors proportial to the time dilatation. It seems to work only on ambientsounds (like on Minigun fire, and a few other stuff), but is ignored on pretty much everything else.
Is there a easy way to do this effect, by either making an inventory item to affect the player?
There are the main problems I've stumbled upon while making the mod. Is already "functional", limited as it is, if anyone is interested I can share the .u and .int for you to see how it goes.
Thanks and advance!