International scientific e-journal

ΛΌГOΣ. ONLINE

16 (December, 2020)

e-ISSN: 2663-4139
КВ №20521-13361Р

ENGINEERING AND IT

UDC 519.6

EOI 10.11232/2663-4139.16.40

СТВОРЕННЯ БАГАТОМОДУЛЬНОГО СЕРЕДОВИЩА ДЛЯ РОЗРОБКИ КОМП’ЮТЕРНИХ ІГОР

ЛИХУШИН Іван В'ячеславович

здобувач вищої освіти факультету інформаційних технологій

Державний вищий навчальний заклад «Приазовський державний технічний університет»

 

НАУКОВИЙ КЕРІВНИК:

 

ОСТАПЕНКО Артем Олексійович

ORCID ID: 0000-0003-3368-8203

канд. техн. наук, ст. викладач кафедри вищої та прикладної математики,

Державний вищий навчальний заклад «Приазовський державний технічний університет»

 

УКРАЇНА


Анотація. В роботі розроблено та виконано пошук оптимальних алгоритмів і моделей для проектування ігрового рушія. За результатом роботи був створений проект фреймворка 2D ігрового рушія здатного обробляти динамічно змінний фізичний світ, в онлайн режимі передавати дані клієнтам про його поточний стан, формувати фізичний світ з однорозмірних частинок, які наділенні різними фізичними властивостями.

Ключові слова: онлайн гра; ігровий рушій; фізика взаємодії частинок; фреймворк; мережевий інтерфейс.

Постановка проблеми. Індустрія комп'ютерних ігор є одним із стабільно зростаючих напрямків, яке вже сформувалося в величезну багатомільйонну галузь. Широке поширення і розвиток комп'ютерних технологій призвело до появи нових видів ігор: навчальних, мобільних, онлайн і т.д., а популярність ігор стимулює, в свою чергу, розвиток техніки і технологій для їх реалізації та вдосконалення. Зростання популярності віртуальних розваг призвело до створення спеціалізованих програм - конструкторів ігор, які значно полегшують процес розробки ігор. Такі програми називають ігровий рушій (game engine) - це її основне ядро, базове програмне забезпечення, на основі якого будуються всі інші складові гри.

Актуальність теми полягає у тому що на даний момент на ігровому ринку існує незначна частка багатокористувацьких комп'ютерних ігор які включали б в себе фізику як геймплейний елемент, і навіть якщо вона є то фізика в таких іграх істотно спрощена в порівнянні з однокористувацький іграми. Обмежена пропускна здатність інтернету робить синхронізацію фізики важко реалізовується завданням. З цієї причини для подібних проектів використовують як правило індивідуальні рішення. Тому знаходження алгоритмів для оптимальної моделі ігрового світу допоможе значно спростити розробку онлайн ігор с нетривіальною моделлю фізики.

Аналіз досліджень і публікацій. На відміну від ігор, популярність яких в основному швидкоплинна, рушії не змінюють один одного так часто. Найбільш відомими є: Unity Engine, Unreal Engine, RAGE, CryEngine, Naughty Dog Game Engine, Avalanche Engine, IW Engine, Anvil Engine, EGO Engine, Geo-Mod Engine, The Dead Engine. Основні елементи game engine включають в себе жорстко фіксовані дані [1-2]: ігрову логіку, фізику взаємодії об'єктів, правила відтворення об'єктів, інструменти створення геймплея в цілому. При цьому фізика взаємодії об'єктів в основному зустрічається в інстальованих програмах, а в онлайн іграх є рідкістю через складність їх розробки.

Стандартний приклад реалізації руйнуючогося тірейна є [3], який дуже складний в обчисленні та в якому навіть не розглядається варіант реалізації фізики по мережі.

Прикладом реалізованої фізики по мережі може служити серія ігор Worms, але в даній серії фізика істотно спрощена і гра є покроковою, що дає суттєву фору рушію. Тому такий алгоритм не дає вирішення поставленої задачі. Подібної до Worms є неперервна гра Cortex Command. Не дивлячись на те, що вона була створена як он-лайн, не мала он-лайн режиму і реалізована лише на одного користувача. Багатокористувацький режим в цій грі є дуже важким завданням [4].

Мета роботи. Мета роботи полягає створенні 2D ігрового рушія, здатного обробляти динамічно змінний фізичний світ і в онлайн режимі передавати дані клієнтам про його поточний стан. Фізичний світ формується з однорозмірних частинок, які за допомогою створених інструментів наділяються різними фізичними властивостями. Рушій дозволяє легко налаштувати систему взаємодії цих частинок між собою. Для реалізації поставленої мети розв’язуються наступні завдання:

  • визначити оптимальну модель передачі даних для оновлення стану світу у клієнтів;

  • оптимізувати ігровий цикл, а саме відтворювати на стороні клієнта якомога більше інформації про світ за один кадр при фіксованому трафіку з сервера, при цьому, не перевантажуючи сервер обчисленнями;

  • описати оптимальну і візуально правдоподібну фізичну модель, яка, з одного боку здійснює фізичні взаємодії об'єктів і в той же час обчислюється за лімітований час;

  • сформувати оптимальний алгоритм стиснення даних, що передаються.

Виклад основного матеріалу.

Результатом роботи є фреймворк для створення багатокористувацьких додатків з фізичною моделлю світу, який дозволить легко створювати онлайн ігри. Структура фреймворка включає в себе блоки:

  • ігрового циклу;

  • рендерингу сцени;

  • мережевого інтерфейсу;

  • обробки введення даних і подій вікна;

  • фізичних моделей.

Оновлення фізики на сервері відбувається в кілька етапів:

  • створення оновлень;

  • застосування оновлень;

  • аналіз оновлень;

  • активація частинок;

  • деактивація частинок;

  • видалення частинок.

Мережевий алгоритму складається із наступних етапів:

  • Після оновлення фізики сервер упаковує дані про сектор клітин і передає цю інформацію клієнту. Упаковка залежить від формату частинок налаштованого в проекті.

  • У разі, якщо клієнт відображає всі прийняті клітини однаково, то сервер пакує побайтово довжину сегментів сітки, записуючи в кожен байт кількість заповнених клітин, в наступний байт кількість порожніх і т.д.

  • У разі якщо клієнту потрібна інформація про те, як відображати частинки, упаковка даних йде блоками. В них вказується тип частинки, початок її сегмента і, аналогічно попередньому кроку, байти заповнення і пропуску клітин. Один і той же тип частинок записується в різні блоки в разі, якщо між її сегментами більше 255 клітин пропуску.

  • На стороні клієнта додаток постійно перевіряє надходження даних від сервера. В разі появи таких відбувається розпакування прийнятого повідомлення і оновлення сітку, в результаті чого виводить зображення.

На основі розробленого фреймворку реалізована тестова задача взаємодії твердих частинок в гравітаційному полі. Початковий стан системи - 3000 частинок, які знаходяться в стані спокою (зображені зеленим кольором). У блок частинок потрапляє важка частка (червоний колір), яка передає імпульс іншим. Колір частинок, що володіють не нульовий швидкістю - синій. Частинки набувають імпульс згідно з формулою:

Де u1, u2 – швидкість першої і другої частки до зіткнення,

u1’, u2 – швидкість першої і другої частки після зіткнення,

m1, m2 – маса першої і другої частки,

k – коефіцієнт відновлення, k[0,1].

 

Фізика заснована на переміщенні по регулярної розрахункової сітці системи частинок таким чином, щоб в одній комірці містилося не більше однієї частинки. Таке припущення значно полегшує задачу знаходження найближчих сусідів частинки і суттєво не впливає на результат відображення (рис. 1). Виходячи зі специфіки простору світу представленого у вигляді сітки, результуючі значення швидкостей і позицій випливають з безлічі подальших перетворень результатів формул (1). Включено застигання частинок при швидкості меншої за швидкість загасання.

Рис. 1. Візуалізація взаємодії частинок

 

Висновки.

В результаті написання тестової програми, без додаткової оптимізації, вдалося домогтися стабільного відновлення фізики частотою 30 тіків в секунду і середнього обсягу трафіку на одного клієнта в 45 кб в секунду.


СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ:

 

  • Bywalec, B. &  Bourg, D.M. (2013) Physics for Game Developers. USA, Sebastol: O'Reilly Media.

  • Конгер Д. (2010) Физика для разработчиков компьютерных игр. М.: Бином. Лаборатория знаний.

  • Ritzhaupt, A. D. (2009) Creating a Game Development Course with Limited Resources: An Evaluation Study. ACM Transactions on Computing Education, 9(1), art. №3. https://doi.org/10.1145/1513593.1513596

  • Adams, E. & Rollings, A. (2006). Game Design and Development: Fundamentals of Game Design. NJ: Pearson Prentice Hall.


CREATION OF A MULTIMODULAR ENVIRONMENT FOR THE COMPUTER GAMES DEVELOPMENT

LYKHUSHYN I.,
Student of the Faculty of Information Technologies
Pryazovskyi State Technical University

SCIENTIFIC ADVISER:

OSTAPENKO A.,
PhD (Technical Sciences), Senior Teacher of the Department of High and Applied Mathematics
Pryazovskyi State Technical University
UKRAINE

Abstract.
In this paper the optimal algorithms and models for game engine designing were searching developed. As a result, a 2D game engine framework was created capable of processing a dynamically changing physical world, transmitting data to customers about its current state online, and forming a physical world from one-dimensional particles endowed with various physical properties.


Keywords: online game; game engine; particle interaction physics; framework; network interface.

© Лихушин І.В., 2020

© Lykhushyn I., 2020

 

This work is licensed under a Creative Commons Attribution 4.0 International License.

PUBLISHED : 11.12.2020