Cравнение клиент-серверных решений при разработке многопользовательских онлайн-игр на Unity

Main Article Content

Ильнур Радикович Мухаметханов
Мурад Рустэмович Хафизов
Алексей Витальевич Шубин

Аннотация

В работе представлена критика традиционного подхода, используемого для создания многопользовательской игры в системе разработки интерактивных приложений в реальном времени Unity, особенно в случае большого числа одновременных пользователей. В качестве гипотезы предложен альтернативный вариант, не являющийся распространённым, но решающий многие проблемы предыдущего подхода. Проведено сравнение двух клиент-серверных решений при разработке в Unity многопользовательских онлайн-игр, также описаны преимущества обоих подходов для разных случаев. Предложена архитектура разработки игры при помощи более актуального метода: вместо библиотеки Mirror – стандартного инструментария для Unity-разработки – использованы микросервисы, написанные на языке Golang. Приведены весомые доказательства предпочтительности альтернативного подхода, главное преимущество которого – поддержка современной архитектуры, обеспечивающей высокоскоростную связь между микросервисами, что подкреплено тестами при передаче сообщений на разных платформах.


Полученные результаты тестирования подтверждают выдвинутую гипотезу, и можно сделать вывод, что для многопользовательских видеоигр связка Unity вместе с Golang является более эффективной.


Описаны также основные методы отладки многопоточного приложения на Golang в связке с системой разработки игровых приложений Unity и предложен технологический прием, позволяющий получить быстрый способ передачи данных между клиентом и сервером.

Article Details

Библиографические ссылки

1. Jitendra M.S.N.V., Amiripalli S.S., Surendra T., Rao R.V., Chowdary P.R. A study on game development using unity engine // AIP Conference Proceedings. 2021. Vol. 2375. No. 1. P. 040001-1–040001-13.
2. Polančec D., Mekterović I. Developing MOBA games using the Unity game engine // 40th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). 2017. P. 1510–1515.
3. Sia B.N.C.H., Koh Z.W., Chung M., Chen Z., Chua S.H., Ganesan D.A.L., Kuah M.Y., Tey K.J., Yeoh W.E. Cryptocoinopoly: A Real Time Online Multiplayer Board Game // 14th International Conference on Advanced Computer Theory and Engineering. 2021. P. 27–31.
4. Yasir R.M., Asad M., Galib A.H., Ganguly K.K., Siddik M.S. Godexpo: an automated god structure detection tool for Golang // Proceedings of the 3rd International Workshop on Refactoring. 2019. P. 47–50.
5. Fernando R. Evaluating Performance of REST vs gRPC. 2019. URL: https://medium.com/@EmperorRXF/evaluating-performance-of-rest-vs-grpc-1b8bdf0b22da (дата обращения: 15.07.2022).
6. Protocol Buffers. 2019. URL: https://developers.google.cn/protocol-buffers/docs/overview (дата обращения: 15.07.2022).
7. Effendy F. Taufik, Adhilaksono B. Performance comparison of web backend and database: A case study of node.js, Golang and MySQL, Mongo DB // Recent Advances in Computer Science and Communications. 2021. Vol. 14. No. 6. P. 1955–1961.
8. Козар Б.А., Кугуракова В.В., Сахибгареева Г.Ф. Структуризация сущностей естественного текста с использованием нейронных сетей для генерации трехмерных сцен // Программные продукты и системы. 2022. No. 3. С. 329–339.
9. Кугуракова В.В., Абрамов В.Д., Костюк Д.И., Шараева Р.А., Газизов Р.Р., Хафизов М.Р. Генерация трехмерных синтетических датасетов // Электронные библиотеки. 2021. Т. 24(4). C. 622–652.
10. Сахибгареева Г.Ф., Кугуракова В.В. Практики балансирования компьютерных игр // Программные системы: теория и приложения. 2022. Т. 13. No. 3. C. 255–273.


Наиболее читаемые статьи этого автора (авторов)