Всем привет, недавно начал изучать Rust, и хочется параллельно практиковаться.
Решил попробовать сделать простенькую пошаговую игру с мультиплеером, с сервером на Rust и Клиентом на Unity(C#).
До этого опыта в мультиплеерных решениях вообще не было, максимум web-api простенькое сделать мог на шарпе.
Писать своё решение с полного нуля не сильно хочется, да и знаний на эту тему не много, а от количества библиотек всяких глаза разбегаются.
Саму игру я хотел бы сделать максимально простой, с точки зрения архитектуры. Примерно как в шахматах. Два игрока ходят по очереди, делая один-два хода за раунд.
Хотелось бы получить пару ответов на эти вопросы:
- Какую сетевую библиотеку на Rust было бы лучше всего использовать?(К примеру я видел tokio, но я не знаю хорош ли его async io для сетевой игры на подобии шахмат, где игроки быстро делают ходы по очереди)
- Типом соединения должен же быть сокет ? или как правильно ? Я как то делал всякие чаты на вэбсокетах, как должно всё быть в игровых серверах не шарю ...
- Какой протокол лучше использовать?(tcp для меня вроде самый адекватный вариант, но мало ли есть какие то подводные камни)
- Как лучше сделать обмен сообщениями между клиентом и сервером ? К примеру я хочу, что бы вся игра было только на сервере, а с клиентов поступает только ввод, как лучше сделать общение между ними ? Самое первое, что мне пришло в голову, это json или xml, но по сокету же идёт массив байтов, типа придется каждый раз сериализовать всё, а это всё время, задержки, или всё таки это нормальный вариант ?