У меня относительно не малый опыт написания бэкэндов для разного рода бизнес- приложений. Появилась идея и желания написать игру. Если с клиентом проблем нет, то вот привычный способ написания бэкэндов не походит от слова совсем. В игре нужно постоянное общение клиента с сервером и постоянное обновление данных для всех одновременно. Собственно возникает вопрос, как архитектурно строятся real-time backend'ы? В частности желательно на Java или Kotlin. Подойдёт любая помощь, учебные материалы, курсы, статьи. Заранее спасибо.
Есть 3 варианта, позволяющие двухсторонний обмен сервер-клиент:
- WebSockets
- Server-Sent Events
- Long Polling
Есть библиотеки которые являются обёрткой над этими транспортами и выбирают лучший исходя их возможностей клиента. Для .Net это SignalR, для Java и Kotlin не знаю, но можете поискать по ключевым словам.