Одно из предлагаемых решений состоит в том, чтобы выполнять как можно больше работы в удаленных центрах обработки данных, оснащенных машинами промышленного класса, а не на потребительских устройствах. Выполнение большей части работы, связанной с виртуальным миром, на устройстве каждого пользователя многим кажется расточительным, поскольку означает, что множество устройств одновременно выполняют одинаковую работу для поддержки одинакового опыта. В то же время сверхмощный сервер, управляемый владельцем виртуального мира, просто отслеживает пользовательские вводы, ретранслирует их и разрешает конфликты в игровом процессе. Он вообще не занимается рендерингом!
Рассмотрим конкретный пример. Когда игрок в Fortnite стреляет из реактивного гранатомета по дереву, эта информация (используемый объект, его атрибуты, траектория движения снаряда) отправляется с устройства игрока на многопользовательский сервер Fortnite, который затем передает эту информацию всем игрокам, которым она нужна. Их локальные устройства обрабатывают эту информацию и действуют в соответствии с ней: показывают взрыв, определяют, пострадали ли их игроки, удаляют дерево с карты, позволяют игрокам проходить по тому месту, где когда-то стояло это дерево, и т.д.
Но на практике игроки могут увидеть этот взрыв по-разному, даже если тот же самый снаряд попал в то же самое дерево в то же самое время и для обработки причины и следствия была применена та же самая логика. Это происходит в результате того, что из-за разного времени задержки устройство может счесть, что выстрел был сделан чуть раньше или чуть позже или с немного другой позиции. Обычно это не имеет значения, но порой более чем имеет. Например, консоль игрока 1 может счесть, что игрок 2 был убит уничтожившим дерево взрывом, тогда как консоль игрока 2 может решить, что игрок 2 получил серьезные, но не смертельные ранения. Обе консоли правы, но очевидно, что игра не может продолжаться с двумя версиями реальности. Поэтому серверу приходится выбирать.