> calibrating the speed to be the same everywhere is a head scratcher.
To achieve that, calculate time between frames and multiply object speeds by time elapsed (instead of your current fixed gameSpeedFactor).
Note that both Date.now and Performance.now return time in milliseconds, so scale accordingly.
>minimal traction it is gaining
That's normal. Dozens of games are published daily. Mine is not popular either :)
>professional game dev for a year (3d game engine stuff)
You may also look at the engine you develop for more details on time and speed
calculations. Which engine it is, BTW?