Однако возможно сделать их и в виде независимых сервисов (и писать каждый, в том числе на разных языках программирования), но для этого понадобиться реализовать обмен между этими сервисами, где самым быстрым протоколом будет обмен данными через общую память (Shared Memory), но эти два сервиса будут должны находится на одной физической машине для использования такого обмена.
Привет, коллега! Очень интересно читать как ты делаешь ММО, у нас очень разные подходы, поэтому ещё и познавательно) спасибо
Мы с вами обсуждали в комментариях на вашем Youtube канале что пропускная способность != количеству пакетов (команд) которые сервер способен считать с сетевой карты и почему важен CPU . Я написал статью на эту тему более подробно (если вам будет интересно)
https://dtf.ru/gamedev/1899928-sozdanie-servera-dlya-rossiyskih-onlayn-mmo-igr-ch-14-setevaya-karta-i-zaderzhka-kadra-latency-frame-po-rfc-2544-1242
Спасибо Я уже успел посмотреть и ваши ролики на канале
Комментарий недоступен
если и рассматривать node js то из за его socket io из коробки (который можно реализовать). В остальном же там где асинхронность нужна была - это не такие уже и критические моменты, т.к. с критическими нужно работать параллельно на CPU или GPU (видеокарте)
Каждая локация может быть отдельной тачкой. И на каждой локации всегда есть 2 процесса - websocket сервер (что соединение с игроками обрабатывает) и игровой (в котором эти команды обрабатываются каждый кадр) и вот в них нужен обмен в памяти
Да, микросевисы - о чем выше этого абзаца и пишу что сейчас такой архитектуры нет, но ее возможно сделать