The randomVec3() function used in random_in_unit_sphere() doesn't match the one in the tutorial. A standard unit sphere is centred at the origin with a radius of 1, and your current implementation doesn't give you either of those properties.
I don't know if that's the only problem, but fixing that should help.
Try something like this, which is closer to the ...
I believe - judging by video footage of the game, and the platform the game was released on - that the background is pre-rendered 3D made into square tiles.
To replicate that, you would create the scenario in 3D with textures. Then render it form a isometric perspective (you want both the color and depth), then chop that into squares, and then use those ...
Your question is not about lwjgl or implementation. It's about physics and math in fact.
Velocity from definition is v = s/t.
You want v = const and you know distance s = distance(target, source), hence you have
t = s/v = distance(targer,source)/velocity -- answering "what's the total time it will take for object to move from source to target?".