Одно из главных на первый взгляд не очевидных моментов это использование UDP помимо TCP для репликации многих параметров, советую посмотреть по какому принципу работает мультиплеер в UnrealEngine и даже не обязательно смотреть исходники. Достаточно понять саму идею и зачем это нужно. Можешь почитать ещё как упаковывать данные перед передачей по сети, как один из и приёмов использовать битовые флаги
Вот, например коннектится игрок к серверу. И дальше, он хочет спавнить объекты. И вот это "спавнить объекты" пораждает в моей голове огромное количество вопросов.
1. Игрок спавить сам не может, иначе теряется авторитарность, может только запросить спавн, верно? 2. Где хранятся заспавненные объекты на сервере? Это звучит как другая зона ответственности, не хочется связывать. 3. Как ассоциировать игрока и его объекты? Массив с указателями на них из общего списка?
Поэтому, мне хочется посмотреть пример какой-нибудь архитектуры, которая отвечает на эти вопросы.
Одно из главных на первый взгляд не очевидных моментов это использование UDP помимо TCP для репликации многих параметров, советую посмотреть по какому принципу работает мультиплеер в UnrealEngine и даже не обязательно смотреть исходники. Достаточно понять саму идею и зачем это нужно. Можешь почитать ещё как упаковывать данные перед передачей по сети, как один из и приёмов использовать битовые флаги
Это база, это все есть :)
Я смотрю исходники MLAPI для юнити, код UE читать слишком сложно
Мне нужно уровнем выше.
Вот, например коннектится игрок к серверу. И дальше, он хочет спавнить объекты. И вот это "спавнить объекты" пораждает в моей голове огромное количество вопросов.
1. Игрок спавить сам не может, иначе теряется авторитарность, может только запросить спавн, верно?
2. Где хранятся заспавненные объекты на сервере? Это звучит как другая зона ответственности, не хочется связывать.
3. Как ассоциировать игрока и его объекты? Массив с указателями на них из общего списка?
Поэтому, мне хочется посмотреть пример какой-нибудь архитектуры, которая отвечает на эти вопросы.