Собственно, что я ищу и может кто-то подскажет, где это найти
1. Простые советы по архитектуре и дизайн-паттернам, которые часто используются
2. Репозитории, где можно посмотреть, как это уже делали умные люди
3. Литература, видео, статьи и т.д. (но кажется, с этим плохо)
Комментарий недоступен
Ох, бесценная инфа! Спасибо!
Я еще воспользуюсь моментом и спрошу о том, что писал в другой ветке, что касается уже именно реалтайм сервера. (С авторизацией и метой все более-менее понятно)
Вот например игрок хочет спавнить объекты. И вот это "спавнить объекты" пораждает в моей голове огромное количество вопросов.
1. Игрок спавить сам не может, иначе теряется авторитарность, может только запросить спавн, верно?
2. Где хранятся заспавненные объекты на сервере? Это звучит как другая зона ответственности, не хочется связывать.
3. Как ассоциировать игрока и его объекты? Массив с указателями на них из общего списка?
Идеальный core для отправки UDP со всякими примочками от дядюшки Габена : https://github.com/ValveSoftware/GameNetworkingSockets
Для сериализации данных: https://github.com/fraillt/bitsery, https://github.com/protocolbuffers/protobuf
Для того чтобы не городить велосипед самому : Amazon GameLift
Это все уровнем ниже, на нем у меня как раз LiteNefLib, а вот как выше организовать - не знаю.
Одно из главных на первый взгляд не очевидных моментов это использование UDP помимо TCP для репликации многих параметров, советую посмотреть по какому принципу работает мультиплеер в UnrealEngine и даже не обязательно смотреть исходники. Достаточно понять саму идею и зачем это нужно. Можешь почитать ещё как упаковывать данные перед передачей по сети, как один из и приёмов использовать битовые флаги
Это база, это все есть :)
Я смотрю исходники MLAPI для юнити, код UE читать слишком сложно
Мне нужно уровнем выше.
Вот, например коннектится игрок к серверу. И дальше, он хочет спавнить объекты. И вот это "спавнить объекты" пораждает в моей голове огромное количество вопросов.
1. Игрок спавить сам не может, иначе теряется авторитарность, может только запросить спавн, верно?
2. Где хранятся заспавненные объекты на сервере? Это звучит как другая зона ответственности, не хочется связывать.
3. Как ассоциировать игрока и его объекты? Массив с указателями на них из общего списка?
Поэтому, мне хочется посмотреть пример какой-нибудь архитектуры, которая отвечает на эти вопросы.