ий автомата для опису поведінки гравця
3.2 Основні алгоритми
ПО Unity є ігровим движком з закритим вихідним кодом, внаслідок чого весь функціонал реалізується за допомогою скриптів. Будь скрипт повинен бути успадкований від класу MonoBehaviour, після чого він може бути призначений конкретному внутріігрового об'єкту. Шаблон скрипта на мові програмування C # представлений у додатку В.
Комп'ютерна гра є складною системою, що складається з окремих підсистем, які розробляються незалежно, а потім інтегруються в єдину програмну архітектуру. У даній роботі проект можна розбити на наступні підсистеми:
система пошуку шляху;
система графічного інтерфейсу користувача;
система взаємодії об'єктів;
і додаткові системи управління додатком.
Розглянемо ці системи по-окремо.
Пошук шляху (англ. Pathfinding) - термін в інформатиці та штучному інтелекті, який означає визначення комп'ютерною програмою найкращого, оптимального маршруту між двома точками. Приклад пошуку шляху представлений на малюнку 3.3.
Малюнок 3.3 - Приклад розрахунку шляху в двовимірному просторі
Існує величезна безліч алгоритмів пошуку шляху. У даній роботі пошук шляху реалізований за допомогою алгоритму навігаційних сіток.
Навігаційна сітка або Navmesh, є абстрактною структурою даних, використовуваної в додатках штучного інтелекту (далі ШІ), щоб дозволити агентам руху знайти шлях через великі геометрично складні тривимірні простору. Об'єкти, які не є статичними перешкодами в навколишньому середовищі, сприймаються ШІ динамічні перешкоди. Це дає додаткову перевагу даному підходу вирішення задачі пошуку шляху в просторі, тому агенти, які мають доступ до навігаційної сітці не розглядатимуть ці перешкоди під час побудови своєї траєкторії руху. Метод навігаційних сіток забезпечує зниження обчислювальних витрат і робить виявлення зіткнень між агентами і динамічними перешкодами менш витратним. Навігаційні сітки зазвичай реалізуються у вигляді графів, відкриваючи їх використання великому числу алгоритмів, визначених на цих структурах.
На відміну від класичних рішень задачі пошуку шляху в навігаційних сітках замість того, щоб представляти простір як ряд з'єднаних точок, створювати більш точне уявлення конфігураційного простору ІІ через зв'язний граф опуклих багатокутників. На кожному вузлі (полігоні) заздалегідь відомо, куди агент руху може переміститися з однієї точки цього вузла до якій іншій точці цього ж вузла через його опуклості. Таким чином, завдання пошуку шляху через граф спрощується до пошуку шляху вздовж зв'язного графа вузлів.
Шлях представляється серією багатокутників, які агент повинен пройти, щоб досягти мети. Замість того щоб перевіряти кожну точку уздовж шляху, ІІ має всю інформацію, пов'язану з інтерфейсом між вузлами навігаційної сітки. Це дозволяє отримати точний і набагато більш природний вигляд руху.
На малюнку 3.4 зображено приклад розрахунку шляху на конфігураційному просторі, представленим навігаційної сіткою.
Малюнок 3.4 - Приклад пошуку шляху на основі навігаційної сітки
Наступна розглянута система - це графічний інтерфейс користувача.
Графічний інтерфейс користувача, графічний користувальницький інтерфейс (англ. Graphical user interface, GUI) - різновид користувальницького інтерфейсу, у якому елементи інтерфейсу (меню, кнопки, значки, списки і т. п.), представлені користувачеві на дисплеї, виконані у вигляді графічних зображень.
На відміну від інтерфейсу командного рядка, в GUI користувач має довільний доступ (за допомогою пристроїв введення - клавіатури, миші, джойстика і т. п.) до всіх видимих ??екранним об'єктам (елементам інтерфейсу) і здійснює безпосереднє маніпулювання ними. Найчастіше елементи інтерфейсу в GUI реалізовані на основі метафор і відображають їх призначення і властивості, що полегшує розуміння й освоєння програм непідготовленими користувачами. Графічний інтерфейс користувача є частиною користувальницького інтерфейсу і визначає взаємодію з користувачем на рівні візуалізованою інформації.
Малюнок 3.5 - Головне меню
На малюнку 3.5 зображено головне меню програми. Графічний інтерфейс користувача є верхнім шаром графічної системи, що дозволяє створювати на його тлі повноцінні тривимірні сцени. На малюнку такою сценою є ланцюжок ДНК.
Одна з найважливіших систем, без яких неможливо уявити ігровий цикл, - це система взаємодії об'єктів.
Взаємодія об'єктів - процес впливу об'єктів один н...