Darvond: That's just what happens in old games before floating point. X Y and Z weren't treated as equals.
They were treated as equals (well, in Doom there's different side/forward speeds so you get SR40 and SR50 run speeds). It's not a floating point not being used issue. It's that direction buttons were themselves applying accelerations rather than using directional vectors. When you held forward and held strafe left you applied say 1SPD forward and 1SPD sideways... what does that look like on paper. Well, start at zero, draw a line up 1, and one say left 1... now how long is that arrow? it's a hypotenuse of ( (1^2) + (1^2) )^0.5, ^0.5 = square root or (1/2). Normal trig. So... the length of that is 1^2 = 1, thus 1+1=2, so 2^.5 = ~1.414SPD.... which as you might notice is, is faster than 1 SPD forward or 1SPD sideways. Which makes sense because you're applying two forces. This is also... as you might have noticed, floating point numbers for mathing that, or arbitrary decimal in our literal case, floating point would likely be slightly different since floating point numbers have varying accuracy in approximations of decimal numbers. So, 0.4 isn't 0.4 like we read in floating point. In most programming languages 0.1 + 0.2 == 0.3 -> false, because the floating point represenation is 0.30000000000000004, which has to do with more complex truncations on mantissas and stuff.
What you need to offset that is directional vectors that apply to SPD. IE, 1SPD forward, 1SPD sideways, or 1SPD @ 135 degrees (45 degrees left forward) etc... and when you math those out... they're all, 1 SPD, because movement keys would apply a direction to a vector as well as tell it to accelerate but it wouldn't treat them as simple "adding accelerations", you'd have to apply their individual vector components in relation to direction so it'd be like SIN(angle)*SPD, COS(angle)*SPD which would net .707 y axis and .-707 x-axis, which would tally to 1^.0.5 = 1SPD at 45 degrees
The question is, do you care to have accurate vector component input or do you just accelerate and whatever you get is what you get? The latter worked well enough for most games, in fact, most games actually do the former rather than the latter. It's rare to find a game that applies vector movement appropriately rather than strafing. Then there's the whole issue of rotating camera while doing it and how that affects speed.