Комментарии 4
Какие выводы можно сделать из нашего опыта?
Я сделал выводы прямо противоположные вашим. Если в игре подразумевается "матчмейкинг", то одноранговая синхронизация порождает проблемы. Поэтому с самого начала должен быть если не полноценный игровой сервер, то клиент-арбитр, с которым происходит синхронизация в случае её нарушения.
Вначале у нас были довольно жирные запросы между клиентом и сервером, а сейчас мы переходим к ситуации, когда состояние между клиентом и сервером синхронизируется только изменениями между ними, небольшими сжатыми дельтами — это очень серьезно оптимизирует работу с сетью.
Вот в последнее время часто возникают ситуации когда вражеский робот в игре как бы есть, то есть на него наводится прицел, по нему можно стрелять, но урон не проходит, и сам этот робот стоит на одном месте без движения. То есть по сути он afk. Были также ситуации, когда мой робот как бы участвует в игре, бегает, стреляет, но урон не наносит и маяки не захватывает. Видимо здесь какая-то засада в клиент-серверном взаимодействии.
Пример AFK
Как мы развивали бэкенд War Robots, в процессе заDDoSив самих себя — и чему научились после этого