<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">ellibs</journal-id><journal-title-group><journal-title xml:lang="ru">Электронные библиотеки</journal-title><trans-title-group xml:lang="en"><trans-title>Russian Digital Libraries Journal</trans-title></trans-title-group></journal-title-group><issn pub-type="epub">1562-5419</issn><publisher><publisher-name>Казанский (Приволжский) федеральный университет</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.26907/1562-5419-2022-25-5-472-488</article-id><article-id custom-type="elpub" pub-id-type="custom">ellibs-340</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Статьи</subject></subj-group></article-categories><title-group><article-title>Cравнение клиент-серверных решений при разработке многопользовательских онлайн-игр на Unity</article-title><trans-title-group xml:lang="en"><trans-title>Comparison of Client-Server Solutions in the Development of Massively Multiplayer Online Games on Unity</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Мухаметханов</surname><given-names>И. Р.</given-names></name><name name-style="western" xml:lang="en"><surname>Mukhametkhanov</surname><given-names>I. R.</given-names></name></name-alternatives><email xlink:type="simple">ilnurhamay@mail.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Хафизов</surname><given-names>М. Р.</given-names></name><name name-style="western" xml:lang="en"><surname>Khafizov</surname><given-names>M. R.</given-names></name></name-alternatives><email xlink:type="simple">murkorp@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Шубин</surname><given-names>А. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Shubin</surname><given-names>A. V.</given-names></name></name-alternatives><email xlink:type="simple">shubin.aleksey.kpfu@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Казанский (Приволжский) Федеральный университет</institution></aff><aff xml:lang="en"><institution>Kazan (Volga region) Federal University</institution></aff></aff-alternatives><pub-date pub-type="collection"><year>2022</year></pub-date><pub-date pub-type="epub"><day>28</day><month>10</month><year>2022</year></pub-date><volume>25</volume><issue>5</issue><fpage>472</fpage><lpage>488</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Мухаметханов И.Р., Хафизов М.Р., Шубин А.В., 2022</copyright-statement><copyright-year>2022</copyright-year><copyright-holder xml:lang="ru">Мухаметханов И.Р., Хафизов М.Р., Шубин А.В.</copyright-holder><copyright-holder xml:lang="en">Mukhametkhanov I.R., Khafizov M.R., Shubin A.V.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://ellibs.elpub.ru/jour/article/view/340">https://ellibs.elpub.ru/jour/article/view/340</self-uri><abstract><p>В работе представлена критика традиционного подхода, используемого для создания многопользовательской игры в системе разработки интерактивных приложений в реальном времени Unity, особенно в случае большого числа одновременных пользователей. В качестве гипотезы предложен альтернативный вариант, не являющийся распространённым, но решающий многие проблемы предыдущего подхода. Проведено сравнение двух клиент-серверных решений при разработке в Unity многопользовательских онлайн-игр, также описаны преимущества обоих подходов для разных случаев. Предложена архитектура разработки игры при помощи более актуального метода: вместо библиотеки Mirror – стандартного инструментария для Unity-разработки – использованы микросервисы, написанные на языке Golang. Приведены весомые доказательства предпочтительности альтернативного подхода, главное преимущество которого – поддержка современной архитектуры, обеспечивающей высокоскоростную связь между микросервисами, что подкреплено тестами при передаче сообщений на разных платформах.
&#13;

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

Описаны также основные методы отладки многопоточного приложения на Golang в связке с системой разработки игровых приложений Unity и предложен технологический прием, позволяющий получить быстрый способ передачи данных между клиентом и сервером.
</p></abstract><trans-abstract xml:lang="en"><p>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.
&#13;

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.
&#13;

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.
</p></trans-abstract><kwd-group xml:lang="ru"><kwd>игровой движок</kwd><kwd>микросервисы</kwd><kwd>видеоигра</kwd><kwd>мультиплеер</kwd></kwd-group><kwd-group xml:lang="en"><kwd>Unity</kwd><kwd>Golang</kwd><kwd>Mirror</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">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.</mixed-citation><mixed-citation xml:lang="en">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.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">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.</mixed-citation><mixed-citation xml:lang="en">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.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">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.</mixed-citation><mixed-citation xml:lang="en">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.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">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.</mixed-citation><mixed-citation xml:lang="en">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.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Fernando R. Evaluating Performance of REST vs gRPC. 2019. URL: https://medium.com/@EmperorRXF/evaluating-performance-of-rest-vs-grpc-1b8bdf0b22da (дата обращения: 15.07.2022).</mixed-citation><mixed-citation xml:lang="en">Fernando R. Evaluating Performance of REST vs gRPC. 2019. URL: https://medium.com/@EmperorRXF/evaluating-performance-of-rest-vs-grpc-1b8bdf0b22da (дата обращения: 15.07.2022).</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Protocol Buffers. 2019. URL: https://developers.google.cn/protocol-buffers/docs/overview (дата обращения: 15.07.2022).</mixed-citation><mixed-citation xml:lang="en">Protocol Buffers. 2019. URL: https://developers.google.cn/protocol-buffers/docs/overview (дата обращения: 15.07.2022).</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">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.</mixed-citation><mixed-citation xml:lang="en">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.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Козар Б.А., Кугуракова В.В., Сахибгареева Г.Ф. Структуризация сущностей естественного текста с использованием нейронных сетей для генерации трехмерных сцен // Программные продукты и системы. 2022. No. 3. С. 329–339.</mixed-citation><mixed-citation xml:lang="en">Козар Б.А., Кугуракова В.В., Сахибгареева Г.Ф. Структуризация сущностей естественного текста с использованием нейронных сетей для генерации трехмерных сцен // Программные продукты и системы. 2022. No. 3. С. 329–339.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Кугуракова В.В., Абрамов В.Д., Костюк Д.И., Шараева Р.А., Газизов Р.Р., Хафизов М.Р. Генерация трехмерных синтетических датасетов // Электронные библиотеки. 2021. Т. 24(4). C. 622–652.</mixed-citation><mixed-citation xml:lang="en">Кугуракова В.В., Абрамов В.Д., Костюк Д.И., Шараева Р.А., Газизов Р.Р., Хафизов М.Р. Генерация трехмерных синтетических датасетов // Электронные библиотеки. 2021. Т. 24(4). C. 622–652.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Сахибгареева Г.Ф., Кугуракова В.В. Практики балансирования компьютерных игр // Программные системы: теория и приложения. 2022. Т. 13. No. 3. C. 255–273.</mixed-citation><mixed-citation xml:lang="en">Сахибгареева Г.Ф., Кугуракова В.В. Практики балансирования компьютерных игр // Программные системы: теория и приложения. 2022. Т. 13. No. 3. C. 255–273.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
