• Как лучше реализовать клиент-серверную игру?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Как я понял: речь про баланс: контроль игрового мира <-> объём передаваемых данных по сети.
    Вопрос хороший.
    Не всегда нужно делать всё на сервере, иначе объём трафика - возрастёт дико во время игры. Но также, нельзя доверять клиентским данным.
    Поэтому, всегда делается аппроксимация: промежуточная визуализация - вычисляется на клиенте, а пришедшие на сервер данные - всегда тщательно проверяются сервером в рамках логики(модели) работы игрового мира. И если отклонения слишком велики - фиксируется "читерство", иначе - по получению новых позиций объектов, клиент плавно, но с ускорением ("параболически") устраняет расхождения с серверным игровым миром: синхронизирует актуальное состояние мира сервера с отображаемым пользователю.
    Это происходит в 99% случаев незаметно для глаз игрока за монитором.

    На сервере и на клиенте - лучше всего дублировать логику механики и синхронизировать каждые N-кадров или принудительно по каким-либо важным игровым событиям.
    Ответ написан
    Комментировать