Almost completely unrelated but I have long wanted an in-browser/real-time/javascript/FOSS 'synthwave screensaver' in the style that you sometimes see on YouTube [0].
Maybe I'll use your code as a baseline for it if I get the motivation.
In terms of actual feedback, the game itself has a lot going for it. I would, at the very least, add some 'juice' to it, which would probably add a lot. There are many videos on it but the most enlightening one I found was from Nijman of Vlambeer [1].
You might need to take care with literal screenshake as it's 3d but there are many other suggestions that are relevant (kick back from firing, enemy blood/armor splatter, detritus persistence, small variations in bullet direction, etc.).
Maybe I'll use your code as a baseline for it if I get the motivation.
In terms of actual feedback, the game itself has a lot going for it. I would, at the very least, add some 'juice' to it, which would probably add a lot. There are many videos on it but the most enlightening one I found was from Nijman of Vlambeer [1].
You might need to take care with literal screenshake as it's 3d but there are many other suggestions that are relevant (kick back from firing, enemy blood/armor splatter, detritus persistence, small variations in bullet direction, etc.).
[0] https://www.youtube.com/watch?v=zgsJohwr9EQ
[1] https://www.youtube.com/watch?v=AJdEqssNZ-U