Реалізація багатокористувацької гри засобами рушія Unreal Engine 5
Анотація
Запропоновано новий підхід до реалізації багатокористувацьких ігор, який полягає у використанні засобів Unreal Engine для ефективного передавання даних мережею Інтернет, мінімізації затримки їх передавання та синхронізації станів гравців у спільному ігровому світі. Реалізація гри використовує алгоритми компенсації затримки пакетів, мережевих коливань та втрати пакетів і компенсацію на рівні гри у вигляді схем передбачення позиції. Для проектування кооперативної гри обрано архітектуру listen server, враховуючи дві її ключові переваги – зменшення витрат на підтримку гри внаслідок уникнення потреби оренди ігрових серверів, оскільки самі гравці почергово виступають серверами, та усунення затримки пакетів внаслідок локального розміщення сервера і клієнтів. Для синхронізації ігрових станів використано два механізми: реплікацію з метою постійної підтримки на клієнтах авторитетного стану гри, який відповідає тому, що є на сервері, та RPC (англ. Remote Procedure Calls) для одноразової передачі інформації. Проведено обчислювальний експеримент щодо локального передбачення переміщення персонажа для перевірки якості роботи алгоритмів передбачення. Реалізовано локальну симуляцію для зброї, яка відображає гравцю візуальні ефекти, та фізичну симуляцію для замаскування затримки у мережі. Інтегровано онлайн сервіси від Epic Games для під'єднання до ігрових світів інших гравців мережею Інтернет. Унаслідок тестування встановлено, що реалізована система передбачення руху забезпечила плавність переміщень персонажів і за достатньо великих затримок передавання пакетів даних у мережі (500 мс), і за реально непередбачуваних (1 с). Запропонований підхід має високу точність та ефективність у вирішенні завдань, які виникають у процесі розроблення багатокористувацьких ігор, внаслідок використання повторного відправлення пакетів для уникнення їхньої втрати та локальної симуляції й передбачення для компенсації затримки мережі. Майбутні дослідження полягатимуть в уточненні алгоритму передбачення для забезпечення підтримки плавного ігрового досвіду при використанні складних режимів руху, таких як плавання, скелелазіння, ковзання, рух канатом тощо.
Завантаження
Посилання
Benamer, A. R., Boussetta, K., & Hadj-Alouane, N. B. (2021, December). A genetic algorithm for the placement of latency-sensitive multiplayer game servers in the fog. In 2021 IEEE Global Communications Conference (GLOBECOM) (pp. 1–6). IEEE. https://doi.org/10.1109/GLOBECOM46510.2021.9685952
Duarte, E. P., Pozo, A. T. R., & Beltrani, P. (2020). Smart Reckoning: Reducing the traffic of online multiplayer games using machine learning for movement prediction. Entertainment Computing, 33, 100336. https://doi.org/10.1016/j.entcom.2019.100336
Epic Dev | Home – Epic Online Services. URL: https://dev.epicgames.com/docs/epic-online-services.
Goh, E., Al-Tabbaa, O., & Khan, Z. (2023). Unravelling the complexity of the Video Game Industry: An integrative framework and future research directions. Telematics and Informatics Reports, 12, 100100. https://doi.org/10.1016/j.teler.2023.100100
Grenville Armitage, Mark Claypool, & Philip Branch. (2006, May 18). Networking And Online Games: Understanding And Engineering Multiplayer Internet Games. John Wiley & Sons Inc; 1st Edition, 218 p. URL: https://www.amazon.com/Networking-Online-Games-Understanding-Engineering/dp/0470018577
Halbhuber, D. (2022, November). To Lag or Not to Lag: Understanding and Compensating Latency in Video Games. In Extended Abstracts of the 2022 Annual Symposium on Computer-Human Interaction in Play (pp. 370–373). https://doi.org/10.1145/3505270.3558364
Larsson, E. (2016). Movement prediction algorithms for high latency games: A testing framework for 2 d racing games. URL: https://www.diva-portal.org/smash/record.jsf?pid=diva2%3A952076&dswid=1600
Lee, S. W., & Chang, R. K. (2018, June). Enhancing the experience of multiplayer shooter games via advanced lag compensation. In Proceedings of the 9th ACM Multimedia Systems Conference (pp. 284–293). https://doi.org/10.1145/3204949.3204971
Moll, P., Isak, S., Hellwagner, H., & Burke, J. (2021). A Quadtree-based synchronization protocol for inter-server game state synchronization. Computer Networks, 185, 107723. https://doi.org/10.1016/j.comnet.2020.107723
Motoo, T., Kawasaki, J., Fujihashi, T., Saruwatari, S., & Watanabe, T. (2021). Client-Side network delay compensation for online shooting games. IEEE Access, 9, 125678–125690. https://doi.org/10.1109/access.2021.3111180
Multiplayer network compendium. An Unreal Engine Blog by Cedric Neukirchen. URL: https://cedric-neukirchen.net/docs/category/multiplayer-network-compendium/
Networking overview for unreal engine | unreal engine 5.3 documentation. Epic Developer Community. URL: https://dev.epicgames.com/documentation/en-us/unreal-engine/networking-overview-for-unreal-engine?application_version=5.3
Pantel, L., & Wolf, L. C. (2002, April). On the suitability of dead reckoning schemes for games. In Proceedings of the 1st workshop on Network and system support for games (pp. 79–84). https://doi.org/10.1145/566500.566512
Pantel, L., & Wolf, L. C. (2002, May). On the impact of delay on real-time multiplayer games. In Proceedings of the 12th international workshop on Network and operating systems support for digital audio and video (pp. 23–29). https://doi.org/10.1145/507670.507674
Remote procedure calls in unreal engine | unreal engine 5.3 documentation. Epic Developer Community. URL: https://dev.epicgames.com/documentation/en-us/unreal-engine/remote-procedure-calls-in-unreal-engine?application_version=5.3
Replicate actor properties in unreal engine | unreal engine 5.3 documentation. Epic Developer Community. URL: https://dev.epicgames.com/documentation/en-us/unreal-engine/replicate-actor-properties-in-unreal-engine?application_version=5.3
Understanding networked movement in the character movement component for unreal engine | unreal engine 5.4 documentation. Epic Developer Community. URL: https://dev.epicgames.com/documentation/en-us/unreal-engine/understanding-networked-movement-in-the-character-movement-component-for-unreal-engine
Using network emulation. URL: https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/Networking/NetworkDebugging/NetworkEmulation
Walker, T., Gilhuly, B., Sadeghi, A., Delbosc, M., & Smith, S. L. (2023). Predictive dead reckoning for online peer-to-peer games. IEEE Transactions on Games, 1–12. https://doi.org/10.1109/tg.2023.3237943
Wen, S., Li, D., Yuan, J., Huang, J., & Zhou, L. (2023, September). Design and Implementation of a Game Session Plugin based on Unreal Engine. In Proceedings of the 8th International Conference on Cyber Security and Information Engineering (pp. 142–149). https://doi.org/10.1145/3617184.3623451
Wijayasekara, S. K., Sasithong, P., Hsieh, H. Y., Saengudomlert, P., Chae, C. B., & Wuttisittikulkij, L. (2023). Optimization of packet transmission scheduling and node parent selection for 802.15.4 e time slotted channel hopping (TSCH). ICT Express. https://doi.org/10.1016/j.icte.2023.12.002
Yahyavi, A., & Kemme, B. (2013). Peer-to-peer architectures for massively multiplayer online games. ACM Computing Surveys, 46(1), 1–51. https://doi.org/10.1145/2522968.2522977



