Статья:

МЕХАНИЗМЫ ВЗАИМОДЕЙСТВИЯ КЛИЕНТА И СЕРВЕРА В ИГРЕ «LABYRINTH OF HORROR» НА UNITY

Конференция: CCXCVI Студенческая международная научно-практическая конференция «Молодежный научный форум»

Секция: Технические науки

Выходные данные
Никитина П.А. МЕХАНИЗМЫ ВЗАИМОДЕЙСТВИЯ КЛИЕНТА И СЕРВЕРА В ИГРЕ «LABYRINTH OF HORROR» НА UNITY // Молодежный научный форум: электр. сб. ст. по мат. CCXCVI междунар. студ. науч.-практ. конф. № 17(296). URL: https://nauchforum.ru/archive/MNF_interdisciplinarity/17(296).pdf (дата обращения: 12.06.2025)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

МЕХАНИЗМЫ ВЗАИМОДЕЙСТВИЯ КЛИЕНТА И СЕРВЕРА В ИГРЕ «LABYRINTH OF HORROR» НА UNITY

Никитина Полина Андреевна
студент, Гомельский государственный технический университет имени П.О. Сухого, Республика Беларусь, г. Гомель
Комракова Евгения Владимировна
научный руководитель, старший преподаватель, Гомельский государственный технический универ-ситет имени П.О. Сухого, Республика Беларусь, г. Гомель

 

Одной из ключевых задач при создании многопользовательской игры на Unity является реализация стабильного и эффективного взаимодействия между клиентом и сервером. В проекте «Labyrinth of Horror» сетевое взаимодействие было построено с применением классической клиент-серверной архитектуры, реализованной на базе TCP-протокола.

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

Компоненты сетевого взаимодействия реализованы через стандартные TCP-сокеты .NET, что обеспечивает низкоуровневый контроль над соединениями и даёт гибкость в передаче информации. Серверная часть создаёт прослушивающий сокет, принимает подключения и создаёт для каждого клиента отдельный поток обработки. Благодаря этому обеспечивается возможность параллельной работы с несколькими клиентами. В клиентском классе реализована логика подключения к серверу по IP и порту, передача сообщений в текстовом формате, а также асинхронное получение ответов.

Для упрощения работы с игровыми объектами в Unity используются компоненты NetworkBehaviour, которые наследуются от базового класса MonoBehaviour и обеспечивают встроенную поддержку сетевых функций. Эти скрипты тесно связаны с компонентом NetworkIdentity, обеспечивающим уникальную идентификацию объектов в сети. С помощью NetworkBehaviour реализованы синхронизируемые переменные (SyncVar), команды сервера ([Command]), клиентские RPC-вызовы ([ClientRpc]), а также событийные обратные вызовы.

На рисунке 1 представлена архитектура сетевого взаимодействия, отражающая, как клиенты взаимодействуют с сервером, какие данные передаются, и как происходит синхронизация объектов на сцене.

 

Рисунок 1. Архитектура сетевого взаимодействия

 

Каждый игровой объект, участвующий в сетевом обмене (например, игроки, предметы, враги), содержит компонент NetworkIdentity и управляется через скрипт NetworkBehaviour. Например, при поднятии сундука игроком, команда на открытие сундука передаётся на сервер, сервер вызывает RPC-функцию на всех клиентах, и сундук анимированно открывается у каждого игрока, обеспечивая сетевую консистентность.

Также используется система HLAPI (High-Level API), которая включает сериализацию состояний, автоматическую синхронизацию объектов и управление подключениями. HLAPI позволяет сократить объём кода, делая реализацию многопользовательского взаимодействия проще и быстрее в разработке.

Таким образом, клиент-серверная архитектура проекта основана на надёжной TCP-коммуникации и инструментах Unity, предназначенных для многопользовательских игр. Это обеспечивает не только стабильное соединение, но и корректную синхронизацию игрового состояния между всеми игроками в реальном времени, создавая полноценное и погружающее мультиплеерное взаимодействие.

 

Список литературы:
1. Делаем прототип клиент-серверной стратегии на Unity [Электронный ресурс] // Oleg Knyazev. – 2018. – Режим доступа: https://oleg-knyazev.com/blog/2018/06/making-a-strategic-game-prototype/ (дата обраще-ния: 29.04.2025).
2. Основы Unity + Mirror [Электронный ресурс] // Habr. – 2022. – Режим доступа: https://habr.com/ru/articles/549018/ (дата обращения: 29.04.2025).
3. Smith J. Multiplayer Game Programming. – Addison-Wesley, 2020. – 352 p.