Сетевая часть игры C#, unity

5 000 руб. за проект
22 октября 2019, 13:07 • 2 отклика • 60 просмотров
В рамках создания unity 2019.2 indie игры есть несколько задач:
- доработать udp соединение с сервером - соединение есть, надо начать с ним работать, необходимо связать с системой сериализации/десериализации данных
- доработать websocket соединение с сервером - библиотека и соединение есть, необходимо связать с системой сериализации/десериализации данных
- завести классы "команды" отправляемые и принимаемые на сервер. Каждый класс содержит набор аттрибутов, свойств и признаков - отправлять по reliable соединению ( websocket ) или unreliable ( udp )
- доработать сериализацию/десериализацию классов через messagepack. Библиотеку установлена и настроена - необходимо связать с обработкой сетевых пакетов в обе стороны к серверу
- доработать обвязку для webgl версии игры - сейчас в проект установлен javascript плагин, подменяющий udp на webrtc обвязку, необходимо корректно подменять udp на эту обвязку в webgl билде - написать гибкую систему работы с соединениями
- сделать систему уведомлений для движка обрабатывающего физику и механику тела - эту часть разрабатывают коллеги - необходимо будет скоммуницировать с ними и объяснить как и где можно реагировать на новые данные от сервера
- сделать систему anti ddos - анализ кол-ва соединений с одного ip и т.д. - состав обсудим
- поддержать переключение между reliable / unreliable соединениями, составление метрик для отладки типа RTT, кол-ва теряемых пакетов и т.д.

От кандидата ожидается:
- понимание работы сети - чем udp отличается от tcp, что такое mtu и почему надо применять Messagepack а не гнать все в json по сети
- знание ооп - необходимо сделать гибкий механиз подмены reliable/unreliable соединений через DI исходя из среды сборки - в нативных сборках есть tcp и udp, чего не скажешь о webgl версии
- знание c# - как не аллоцировать лишнюю память, использовать пулы если необходимо, не допускать утечек память и т.д.

Стоимость обсуждается, зависит от вашего опыта - если вы профи и уверенно сделаете все пункты - стоимость часа будет выше, если хотите потренироваться и изучить эту тему - предупредите сразу, скорее всего предпочтение будет отдано тем у кого уже есть опыт