Ещё интересно, что игровая логика в факторио полностью детерминирована, и это позволяет не синхронизировать весь мир по сети, а просто параллельно симулировать игровой процесс у всех игроков, лишь передавая инпуты юзеров друг другу. В rts такой подход часто используется
но ведь операции с плавающей точкой могут отличаться на разных процессорах, и тем самым накапливаться ошибка умножения, что приведет к рассинхрону положения объектов. Как же тогда синхронизируется?
А ещё это приводит к тому, что у тебя размер мира ограничен тем, что может симулировать только один игрок. И что любой туман войны легко разбивается совершенно элементарно пишущимися читами. И что реакция на любое действие игрока будет далеко не такой быстрой*, потому что перед тем, как его обработать, надо дать время пакету дойти до другого игрока.
* В последних Mortal Kombat делали похожую систему с автоматическим откатом и пере-проигрыванием с учётом действий других игроков которые дошли уже после того, как шаги просимулированы, но это делает всю систему раза в 4 сложнее, чем простой lockstep.
Ещё интересно, что игровая логика в факторио полностью детерминирована, и это позволяет не синхронизировать весь мир по сети, а просто параллельно симулировать игровой процесс у всех игроков, лишь передавая инпуты юзеров друг другу. В rts такой подход часто используется
но ведь операции с плавающей точкой могут отличаться на разных процессорах, и тем самым накапливаться ошибка умножения, что приведет к рассинхрону положения объектов. Как же тогда синхронизируется?
А ещё это приводит к тому, что у тебя размер мира ограничен тем, что может симулировать только один игрок. И что любой туман войны легко разбивается совершенно элементарно пишущимися читами. И что реакция на любое действие игрока будет далеко не такой быстрой*, потому что перед тем, как его обработать, надо дать время пакету дойти до другого игрока.
* В последних Mortal Kombat делали похожую систему с автоматическим откатом и пере-проигрыванием с учётом действий других игроков которые дошли уже после того, как шаги просимулированы, но это делает всю систему раза в 4 сложнее, чем простой lockstep.