Comparison of Client-Server Solutions in the Development of Massively Multiplayer Online Games on Unity

Main Article Content

Abstract

This paper presents a critique of the traditional approach used to create a multiplayer game in the Unity real-time interactive application development system, especially in the case of a large number of concurrent users. As a hypothesis, an alternative option, which is not common, but which solves many of the problems of the previous approach, is proposed. Two client-server solutions have been compared for developing multiplayer online games in Unity, and the advantages of both approaches have been described for different cases. A game development architecture using a more up-to-date method is proposed: instead of the Mirror library, a standard toolkit for Unity development, microservices written in Golang are used. We present solid proofs of the preference of the alternative approach, the main advantage of which is the support of modern architecture providing high-speed communication between microservices, supported tests on messaging on different platforms.


The test results confirm the hypothesis put forth, and we can conclude that the Unity bundle with Golang is more effective for multiplayer video games.


The article also contains basic methods for debugging multi-threaded application in Golang bundled with Unity game development system and suggests a technological method that allows to get a fast way of data transfer between the client and the server.

Article Details

References

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.