Окей, поясню, под расчитыванием на клиенте я имел в виду дублирование расчетов и на сервере. Расчет на клиенте для того, чтобы лишний раз не гонять данные. Ну и результаты игры естественно считается на сервере, поэтому читеров тут быть не может :) Но тут появляются проблемы с рассинхронизацией
WebSockets используются, setTimeout для передвижений элементов, они не зависят от каких-то событий, просто какие-то элементы идут, плывут, летят, передвигаются все время на определенное расстояние и это надо отразить на клиенте
В setTimeout(....., 30); 30 просто для примера, показать суть работы