Статья:

Виртуальное поле боя и его синхронизация в тренажерном комплексе

Конференция: XIII Международная научно-практическая конференция «Научный форум: технические и физико-математические науки»

Секция: Информатика, вычислительная техника и управление

Выходные данные
Егорова Е.С. Виртуальное поле боя и его синхронизация в тренажерном комплексе // Научный форум: Технические и физико-математические науки: сб. ст. по материалам XIII междунар. науч.-практ. конф. — № 3(13). — М., Изд. «МЦНО», 2018. — С. 25-32.
Конференция завершена
Мне нравится
на печатьскачать .pdfподелиться

Виртуальное поле боя и его синхронизация в тренажерном комплексе

Егорова Елизавета Сергеевна
инженер-программист, Санкт-Петербургский Национальный Исследовательский Университет Информационных технологий, механики и оптики, РФ, г. Санкт-Петербург

 

Virtual Battlefield and its synchronization in the training complex

 

Elizaveta Egorova

engineer programmer Saint-Petersburg National Research University of information technologies, mechanics and optics, Russia, Saint-Petersburg

 

Аннотация. Для разработки тренажерных комплексов и систем, использующих визуальную составляющую, необходимо правильно производить синхронизацию объектов в виртуальном поле боя, для того чтобы все участники обучения видели актуальную информацию о местоположении объектов. В данной работе описана методика разработки алгоритма синхронизации виртуального поля боя в тренажерном комплексе.

Abstract. To develop training complexes and systems using the visual component, it is necessary to correctly synchronize objects in the virtual battlefield in order for all participants to see the current information about objects. In this paper, we describe the methodology for developing an algorithm for synchronizing a virtual battlefield in a training complex.

 

Ключевые слова: тренажерные системы; тренажерный комплекс; синхронизация данных; виртуальная сцена; передача данных по сети. 

Keywords: training simulation system; training complex; synchronization; virtual scene; networking.

 

1.    Введение

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

Тренажерные комплексы военной тематики, применяемые для обучения навыкам вождения и пилотирования, часто используют виртуальное поле боя для визуализации управляемых объектов и сцен.

Это помогает соединять несколько тренажерных комплексов между собой.

Если в тренажерной системе используется виртуальное поле боя, то необходимо производить передачу данных по сети для синхро­низации объектов виртуального поля боя [1].

Это требуется для того чтобы на всех участвующих вычисли­тельных ядрах воспроизводилась актуальная информация о текущем состоянии виртуального поля боя. В связи с этим возникает задача создания алгоритма синхронизации данных в виртуальном поле боя.

2.    Виртуальное поле боя

Виртуальное поле боя – это виртуальная сцена в двух или трех­мерном пространстве с объектами на ней (Рис. 1.).

Оно представляет собой виртуальную сцену с управляемыми объектами на ней, которые могут взаимодействовать между собой. Взаимодействия между объектами могут быть самыми различными, например, логические переходы в другие состояния конечного автомата или физические воздействия на другие объекты [6, 7].

Виртуальная сцена или виртуальное пространство – это абстрактное пространство, в котором имеется своя система координат, а также определенные объекты и атрибуты.

 

Рисунок. 1. Схема виртуального поля боя

 

Виртуальное поле боя является незаменимым атрибутом в трена­жерном комплексе, направленном на получение обучаемым навыков планирования боевых действий, вождения, пилотирования.

Виртуальное поле боя используется для моделирования боевых действий, планирования атак своих войск и войск противника, для обучения работе в команде или для обучения выполнения инструкций командира.

В зависимости от целей обучения в виртуальной сцене могут присутствовать различные объекты. Объектами в виртуальной сцене могут быть:

1) Поверхности (земля, вода)

2) Неподвижные объекты (деревья, камни, здания)

3) Препятствия (столбы, разрушаемые здания и препятствия)

4) Техника или объекты, которыми может управлять обучаемый (транспортные средства, интерфейсы)

5) Объекты, необходимые для выполнения упражнения (блоки, веревки, таблички и т. д.)

6) Автоматически управляемые объекты или искусственный интеллект (люди, машины и т. д.)

7) Невидимые объекты, необходимые для проверок выполнения упражнений и сценариев (точки маршрута, области выполнения упражнения)

8) Объекты, используемые для визуальных эффектов (дождь, снег, солнце, туман, взрывы, дым и т. д.)

9) Виртуальные камеры

Объекты в сцене могут взаимодействовать различными способами в зависимости от поставленных целей и задач при выполнении упражнения. Также на взаимодействие влияет количество различных типов объектов в сцене, потому что чем больше типов, тем сложнее структура их взаимодействия. Пример сложной структуры взаимо­действия представлен на Рис. 2.

 

Рисунок 2. Структура взаимодействия объектов в виртуальном поле боя

 

3.    Синхронизация в виртуальном поле боя

Для синхронизации виртуального поля боя необходимо определить несколько моментов, влияющих на дальнейшую разработку алгоритма:

1)   Какая схема передачи данных будет взята за основу (авторитетная/ неавторитетная)

2)   По какому протоколу будет происходить передача данных

3)   Какие объекты и их атрибуты достаточно синхронизировать для отображения актуальной информации

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

3.1.    Схема передачи данных по сети

Многопользовательское приложение, в котором происходит передача данных по сети, может быть реализовано с применением разных подходов взаимодействия между пользователями – авторитетными и неавторитетными.

Одним из самых популярных авторитетных подходов является клиент-серверное взаимодействие (client-server), при котором имеется авторитетный сервер, который контролирует всю игру и все взаимодействия между пользователями (Рис. 3.).

 

Рисунок 3. Клиент-серверное взаимодействие

 

Каждый клиент получает данные от сервера и формирует локальное представление игры. Если клиент производит какое-либо действия, информация о них передается на сервер, который уже обрабатывает полученные данные и формирует результирующее значение [4].

Все изменения в игре, которые формируются на сервере, передаются всем подключенным клиентам. За счёт этого на клиентах всегда отображается одинаковая и актуальная информация.

В неавторитетных подходах отсутствует связующий сервер, который контролирует все взаимодействия, поэтому каждый пользователь сам контролирует свое игровое состояние. В качестве неавторитетного алгоритма взаимодействия чаще всего используется пиринговый подход (peer-to-peer).

 

Рисунок 4. Неавторитетный подход взаимодействия по сети

 

В данном подходе каждый клиент контролирует только свои игровые объекты и отправляет другим участникам положение и состояние этих объектов [3]. Игровые объекты противника симули­руются в соответствии с информацией, полученной от противника.

В данном подходе не исключена возможность жульничества противников, поскольку нет централизованной обработки данных.

3.2.    Протокол передачи данных

Существует два основных протокола транспортного уровня, которые можно применять для передачи данных в многопользо­вательском приложении – Transmission Control Protocol (TCP, протокол управления передачей) и User Datagram Protocol (UDP — протокол пользовательских дейтаграмм) [2].

TCP-протокол передает поток данных, предварительно установив соединение.

Если данные по какой-то причине потерялись, осуществляется повторный запрос данных.

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

UDP-протокол передает пользовательские дейтаграммы без предварительного установления соединения.

Это снижает надежность целостной передачи данных, потому что дейтаграммы могут прийти не по порядку, дублироваться, либо совсем не прийти [5]. Но данный протокол передачи данных позволяет улучшить работоспособность систем, где не так важна надежность, как скорость передачи данных.

Это применимо к системам реального времени.

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

3.3.    Синхронизация объектов

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

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

В первую очередь необходимо производить синхронизацию положения динамических объектов в пространстве.

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

Если при выполнении упражнения меняется не только положение объектов в пространстве, но и изменяется форма поверхностей (например, изменение грунтов, водной поверхности), которая влияет на дальнейшей выполнение упражнения, то также необходимо синхронизировать изменение этой поверхности.

Часто также требуется синхронизировать не только положение объектов в пространстве, но и дополнительные присущие им атрибуты, например, их активность, жизненная сила и т. п.

Для этого необходимо создавать отдельный тип передаваемых сообщений.

После того как выявлены те данные, которые требуют синхро­низации, можно приступать к дальнейшей разработке алгоритма.

4.    Интеграция полученного алгоритма в тренажерный комплекс

Тренажерный комплекс, в который необходимо было интегри­ровать алгоритм синхронизации данных, представляет собой симулятор танковой техники.

Тренажер состоит из нескольких вычислительных ядер, на которых происходит визуализация с разных камер виртуального поля боя. Синхронизацию данных необходимо было проводить между этими вычислительными ядрами.

При разработке алгоритма синхронизации необходимо было учитывать следующие факторы:

1)   Сложные проводимые расчеты физики

2)   Недетерминированные состояния объектов

3)   Большое количество клиентов (игроков)

В результате анализа существующих решений и методов синхрони­зации объектов был выбран клиент-серверный подход взаимодействия между клиентами по UDP-протоколу.

Синхронизация производилась для динамических объектов (позиция и углы вращения).

В ходе выполнения данной работы были выявлено, что для создания алгоритма синхронизации данных виртуального поля боя в тренажерном комплексе необходимо:

1)   Четко выявить цели и задачи тренажера;

2)   Определить данные, которые необходимо синхронизировать, для того чтобы избежать избыточной передачи данных;

3)   Оценить вычислительные способности вычислительных ядер и пропускную способность сети;

После оценки данных критериев можно приступать к созданию алгоритма синхронизации данных в виртуальном поле боя.

5.    Заключение

В результате выполнения данной работы были выявлены критерии, которые необходимо оценить для создания алгоритма синхронизации данных в виртуальном поле боя в тренажерном комплексе.

На основе этих данных был создан и интегрирован в тренажерный комплекс алгоритм синхронизации данных.

 

Список литературы:
1. Ferretti S. Interactivity maintenance for event synchronization in massive multiplayer online games, PhD thesis, University of Bologna, 2005.
2. Stevens W.R., Fenner B. и Rudoff A.M. UNIX Network Programming: The sockets networking API, Addison-Wesley Professional, 2004.
3. Bevilacqua Fernando Building a Peer-to-Peer Multiplayer Networked Game. – 2013 г. - https://gamedevelopment.tutsplus.com/tutorials/building-a-peer-to-peer-multiplayer-networked-game--gamedev-10074.
4. Design for client-server synchronisation. – 2017 г. - https://softwareengineering.stackexchange.com/questions/361222/design-for-client-server-synchronisation.
5. Object synchronization (for physics based games). – 2011 г. - https://www.gamedev.net/forums/topic/617184-object-synchronization-for-physics-based-games.
6. Виртуальное поле боя. – 2015 г. - http://war-tundra.livejournal.com/3295644.html.
7. Группа «Кронштадт»: единое виртуальное поле боя – будущее боевой подготовки сегодня! – 2016 г. - http://kronshtadt.ru/2016/09/06/gruppa-kronshtadt-edinoe-virtual-noe-pole-boya-budushhee-boevoj-podgotovki-segodnya.