99629

Изучение игровых движков, создание ролевой и стратегической игры на основе движка

Курсовая

Информатика, кибернетика и программирование

Создать ролевую игру (RPG), реализовав следующие базовые структурные элементы. Создать стратегическую игру в реальном времени (RTS), реализовав следующие базовые структурные элементы...

Русский

2016-10-02

730.5 KB

2 чел.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 3

РАЗДЕЛ 1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 5

1.1. История компьютерных игр 5

1.2. Индустрия компьютерных игр 7

1.3. Игровые движки 8

1.3.1. Construct 2 11

1.3.2. Game Maker 12

1.3.3.Языкпрограммирования GML 14

1.3.4. Unity 3D 16

РАЗДЕЛ 2 ПРАКТИЧЕСКАЯ ЧАСТЬ 17

2.1. Сравнительная характеристика игровых движков 17

2.2. Разработка ролевой игры. 18

2.2.1. Инвентарь 18

2.2.2. Перемещение 19

2.2.3. Фаерболл 19

2.2.4. Предметы восстановления 20

2.2.5. Поведение врагов 20

2.3. Игра в жанре стратегии в реальном времени 21

2.3.1. Выбор юнитов 21

2.3.2. Искусственный интеллект 22

2.3.3. Система атаки и нанесения урона 24

ВЫВОД 25

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 27

ПРИЛОЖЕНИЯ 28

ВВЕДЕНИЕ

Видеоигры сегодня — неотъемлемая часть развлечений. В метро и дома, на отдыхе и на работе всегда можно встретить любителя поиграть: от казуального обывателя до хардкорного геймера. Жанров и категорий, способных удовлетворить вкус любого геймера, создано неимоверное количество. Вне всякого сомнения, видеоигры прошли долгий путь и эволюционируют – от скромного тетриса, и до нынешних мега-блокбастеров. Сегодня существуют интерактивные и информативные способы воспроизведений игр, доступных для самой разной аудитории. Детей, например, подкупает то, что их любимые герои мультфильмов оживают и находятся под управлением ребенка в компьютере.

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

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

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

В ходе выполнения работы мы должны реализовать следующие задачи:

Сравнить игровые движки.

На основе выбора:

а) Создать ролевую игру (RPG), реализовав следующие базовые структурные элементы:

• Перемещение персонажа.

• Инвентарь персонажа.

• Нанесение урона персонажем и персонажу.

• Простейший искусственный интеллект (ИИ) регулирующий поведение неигровых персонажей (NPC).

• Предметы.

б) Создать стратегическую игру в реальном времени (RTS), реализовав следующие базовые структурные элементы:

• Возможность выделения юнитов.

• Управление юнитами.

• Модификаторы урона юнитов.

• Графический интерфейс пользователя (англ. GUI).

• Искусственный интеллект (ИИ) юнитов противника

Объектом исследования являются специализированные программы для создания видеоигр — игровые движки.

Предметом исследования является процесс создание видеоигры, с технологиями и геймплеем уровня 1990 года.

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

РАЗДЕЛ 1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

История компьютерных игр

Фактически первой компьютерной, или видео игрой можно считать Rocket Simulator или Ракетный Симулятор. Ракетный симулятор — развлекательный аппарат на базе электронно-лучевой трубки, имитирующий управление полётом ракеты. Томас Т. Голдсмит-мл. и Эстл Рэй Манн разработали устройство в 1947 году.

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

25 января 1947 года авторы изобретения подали заявку на патент, который был ими получен 14 декабря 1948 года. Однако в массовое производство и продажу аппарат так и не поступил.

Следующее важное событие произошло в 1952 году – была создана первая компьютерная игра, которая выводилась на растровый дисплей и обрабатывалась в вычислителе, а не с помощью аналоговых цепей. Игру назвали OXO (крестики нолики) — компьютерная игра для компьютера EDSAC, представляющая собой крестики-нолики. Разработана в 1952 году А. С. Дугласом как иллюстрация к кандидатской диссертации на тему взаимодействия человека и компьютера.

В OXO человек играл против компьютера, выставляя крестик или нолик в нужную клетку поля с помощью дискового номеронабирателя. Вывод осуществлялся на растровый дисплей размерностью 35 на 16 точек. Символ и очередность хода выбирались игроком до начала игры.

OXO не получила широкого распространения, так как EDSAC был уникальным компьютером, находящимся в библиотеке Кембриджского университета.

Первым сетевым шутером является Empire (рус. Империя) — компьютерная игра для системы PLATO, созданная в 1973 году Джоном Далеске. Игра с большой долей вероятности является первой в жанре сетевого многопользовательского шутера, а также одним из первых сетевых экшенов. Хотя терминалы PLATO имели тач-панели для ввода данных, у них отсутствовал манипулятор, поэтому управление в игре осуществлялось путём набора текста. Команды для смены курса или стрельбы вводились в градусах: 0 означал правую сторону, 90 — верх, 270 — низ. Кнопки также могли использоваться со «стрелками». К терминалам были подключены монохромные дисплеи с разрешением 512x512 пикселов; для отображения графики можно было загружать специальный набор символов.

Первым 3D шутером можно считать Maze War — видеоигра 1973 года, изначально созданная для Imlac PDS-1 Стивом Колли в Исследовательском центре Эймса NASA. Наряду с Empire и Spasim стала одной из прародительниц современных шутеров от первого лица, а также первой игрой с режимом deathmatch.

В Maze War игроки перемещаются по лабиринту; доступна возможность перемещения вперёд, назад, поворачиваться направо и налево (каждый раз на 90°), а также заглядывать в дверные проёмы. В игре используется простая тайловая графика — таким образом, игрок перемещается по невидимым квадратам. Другие участники игры представлены на экране в виде глазных яблок. При появлении соперника на экране, игрок может стрелять в него. За каждое убийство начисляются очки, а за каждую смерть — снимаются. В некоторых версиях Maze War (например, портированная версия для X11) были внедрены чит-коды, которые позволяли видеть местоположение других игроков. Также в некоторых версиях в лабиринте могла иногда появиться утка

Индустрия компьютерных игр

Индустрия компьютерных игр зародилась в середине 1970-х годов как движение энтузиастов и за несколько десятилетий выросла из небольшого рынка в мейнстрим с годовой прибылью в 9,5 миллиардов долларов в США в 2007 году и 11,7 миллиардов в 2008 году (согласно ежегодным отчётам ESA). На рынке работают как крупные игроки, так и небольшие фирмы и стартапы, а также независимые разработчики и сообщества .

Современные персональные компьютеры дали множество новшеств игровой индустрии. К числу самых значимых относят звуковые и графические карты, CD- и DVD-приводы, Unix и центральные процессоры.

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

Графические карты, которые на заре компьютерной эпохи, эволюционировали в направлении увеличения количества поддерживаемых цветов, позже стали развиваться для аппаратной поддержки графических интерфейсов пользователя (англ. GUI) и игр. Для GUI требовалось увеличение разрешения экрана, а для игр — ускорение трёхмерной графики.

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

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

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

Игровые движки

Игры усложнялись и это привело к тому, что стали появляться игровые движки – структуры облегчающие разработку игр. Инструментарий, называемый игровыми движками, создан для упрощения и ускорения разработки игр, чтобы не писать всё «с нуля». В данном контексте будет фигурировать несколько понятий движков, но чаще всего это игровые и графические. Важно понимать разницу между графическим движком, игровым движком и вспомогательной библиотекой игрового движка. Игровой движок — это тот модуль игры, который включает в себя игровую логику. Например, игра Pac-Man, кроме всего остального, содержит код, который вырисовывает частично заполненный желтый круг — главного героя (относится к графическому движку); и код, который увеличивает баллы, когда игрок съедает охотника-призрака, жёлтые точки, бонусы и другое (относится к игровому движку). 1979 год – «ZIL» Первый в мире игровой движок разработанный компанией Infocom.

1987 год – Freescape Первый 3-D движок разработанный компанией Interactive Software.

Многие движки создавались для одной единственной игры, что делало невозможным использовать этот движок в дальнейшем. Такое положение было убыточным, однако в 1998 году компания Epic Games выпускает движок ставший основой для сотен игр, и при всей простоте был невероятно мощной средой разработки. Написанный на языке C++, движок позволяет создавать игры для большинства операционных систем и платформ: Microsoft Windows, Linux, Mac OS и Mac OS X; консолей Xbox, Xbox 360, PlayStation 2, PlayStation 3, PSP, PS Vita, Wii, Dreamcast, GameCube и других, а также на различных портативных устройствах, например, устройствах Apple (iPad, iPhone), управляемых системой iOS и прочих. (Впервые работа с iOS была представлена в 2009 году, в 2010 году продемонстрирована работа движка на устройстве с системой webOS).

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

Таблица 1.1.

Год

Название

Описание

Примеры игр

1998

Unreal Engine

Один из популярных движков для игр (в основном жанра 3D-шутер). Последняя версия — Unreal Engine 3.5, которая, несмотря на цену больше $350 000[3], является одним из самых популярных движков. В данный момент появилась возможность создавать игры на Unreal Engine 3 бесплатно (Unreal Development Kit).

Серия игр Unreal, Deus Ex, Gears of War, Mass Effect

2007

Construct 2

конструктор двухмерных игр для Windows, разрабатываемый компанией Scirra. Является второй улучшенной версией программы Construct Classic, вышедшей в 2007 году.

Некоммерческие проекты

2007

Unity3D

то инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows, OS X

Slender: The Eight Pages, Slender: The Arrival, Surgeon Simulator 2013,

2007

X-Ray

Игровой движок, разработанный GSC Game World. Очень технологичен, поддерживает рендеринг с использованием Direct3D8, Direct3D9, Direct3D10, Direct3D10.1, Direct3D 11.

Серия игр S.T.A.L.K.E.R.

2010

4A Engine

Игровой движок, разработанный украинской студией 4A Games. Поддерживает рендеринг с использованием Direct3D9, Direct3D10, Direct3D10.1, Direct3D 11.

Метро 2033, Metro: Last Light

2011

Game Maker Studio

один из самых известных конструкторов игр. Написан на Delphi. Доступен для ОС Windows, 7-я версия программы также существовала в версии для Mac.

Некоммерческие проекты

Для анализа и сравнения были выбраны Construct 2, Game Maker Studio, Unity3D.

Construct 2

Construct 2 позволяет каждому желающему создавать 2D-игры любой сложности и любого жанра, даже не имея навыков программирования[1]. Игры, сделанные на нем, легко портируются на все основные платформы — PC, Mac, Linux, браузеры с поддержкой HTML5, Android, iOS, Windows Phone, Blackberry 10, Amazon Appstore, Chrome Web Store, Facebook и прочие, iOS и Android осуществляется благодаря технологиям CocoonJS от Ludei и directCanvas от appMobi, которые используют аппаратное ускорение для увеличения производительности HTML5 игр в 5-10 раз.

Интерфейс программы интуитивно понятен и прост в освоении, благодаря визуальному WYSIWYG-редактору от человека не требуется знаний программирования и опыта в разработке игр, в ней может разобраться даже ребенок. Логика игр в Construct 2 создается с помощью системы событий (англ. events) и связанных с ними действий (англ. actions).

Для овладения Construct 2 требуется лишь базовый опыт работы с ПК и немного усилий. Вдобавок, постоянные обновления[5] делают использование программы достаточно безопасным.

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

Game Maker

Game Maker: Studio — один из самых известных конструкторов игр. Написан на Delphi. Доступен для ОС Windows, 7-я версия программы также существовала в версии для Mac. Ведущий разработчик — Марк Овермарс

Система рассчитана в основном на создание двухмерных (2D) игр любых жанров. Также подойдёт для создания различных презентаций и т. п. Начиная с 6-й версии появилась ограниченная возможность работать с 3D.

Может быть рекомендован для изучения программирования. Будучи профессором утрехтского университета Марк Овермарс начал разрабатывать Game Maker как учебное пособие для своих студентов.

Game Maker распространяется на условиях Shareware, бесплатная версия ограничена в функциональности, а при запуске откомпилированных в ней игр показывается логотип программы.

Однако Game Maker Studio после регистрации и обновления до Standart версии (Бесплатно) почти не имеет ограничений и не показывает логотип студии при запуске игры.

Создание игры в Game Maker не требует предварительного знакомства с каким либо из языков программирования.

Интерфейс Game Maker объединяет в себе редакторы спрайтов, объектов, комнат, скриптов, а также тайм-лайнов (последовательностей действий с привязкой по времени) и путей (маршрутов) движения.

Игра в Game Maker строится как набор игровых объектов. За их внешний вид отвечают спрайты, а поведение задаётся путём описания реакций на события. Для этого можно использовать графическое представление программ (близкое к блок-схемам) в виде последовательности иконок-действий. Программирование с помощью действий происходит в режиме drag-n-drop. Например, для того чтобы начать условный оператор, нужно перетащить на панель действий восьмиугольник с иконкой, обозначающей тип проверки, а затем, возможно, ввести какие-либо значения в появившуюся форму. Для более продвинутых пользователей имеется скриптовый язык GML похожий на JavaScript, имеется возможность создания собственных библиотек действий, используя Library Maker.

Понятие объекта в Game Maker в основном соответствует понятию класса в объектно-ориентированном программировании, объекты могут наследовать друг от друга. Экземпляры объектов могут быть размещены в игровом пространстве с помощью редактора комнат, или же созданы динамически. Если в текущей комнате существует только один экземпляр объекта, к нему можно обращаться, используя родовое имя объекта, класса, если же таких экземпляров несколько, для обращения к конкретному экземпляру мы должны знать его числовой идентификатор, используя его в качестве ссылки на объект.

Язык GML включает в себя средства загрузки и использования внешних динамических библиотек, что позволяет расширять Game Maker процедурами и функциями, написанными на других языках. Внешние DLL, вместе с gml обвязкой могут быть собраны в пакет расширения Game Maker.

У данного движка есть целый ряд достоинств и недостатков:

+ кроссплатформенность;

+ гибкая ценовая категория, базовая версия Game Maker: Studio абсолютно бесплатна;

+ собственный упрощенный язык программирования Game Maker Language (GML);

+ интеграция со Steam;

+ поддержка множества интернет-площадок «из коробки» (Developer Services Portal);

- плохо оптимизирован для больших игр;

- несмотря на возможность работы с 3D, в Game Maker она крайне неудобна;

- сам Game Maker Language (GML) имеет ряд заметных недостатков, что, тем не менее, не помешает начинающим разработчикам.

Язык программирования GML

Game Maker Language (GML) — это интерпретируемый язык программирования, разработанный для использования вместе с программой для разработки компьютерных игр называемой Game Maker. Изначально поддержка языка была внедрена в Game Maker Марком Овермарсом для дополнения системы кнопочных событий, однако, в последних версиях программы, все кнопочные события были включены в GML, позволяя программисту избежать использования кнопочных функций. GML очень сильно связан со средой Game Maker. Game Maker организован так, чтобы не было необходимости программирования вручную таких вещей, как управление событиями, дизайн уровней и настройка объектов. Существует заблуждение, что GML поддерживает вставки фрагментов кода на других языках, таких как Pascal, Assembler или C++. Заблуждение возникло из-за частичной схожести синтаксиса GML с Pascal и C++. (Например, оператор «&&» может быть заменён на «and»).

В Game Maker совокупность кнопочных событий образует библиотеку. В интерфейсе программы библиотеки отображаются как закладки, в которых находятся различные иконки событий. Каждое такое событие — это GML-скрипт или функция, которую пользователь может использовать в игре. В поставку Game Maker входят несколько стандартных библиотек, которые содержат основные события, используемые в большинстве игр; Так же существует возможность создавать свои собственные библиотеки, используя Library Maker. GML структурно похож на язык С своими блоками кода, вызовами функций, присваиванием переменных, синтаксисом операторов и так далее. GML различает операторы и выражения. Game Maker содержит обширную библиотеку встроенных функций для обеспечения основной функциональности. Программист может создавать свои собственные скрипты, которые вызываются точно таким же способом, как и функции. Функции рисования в Game Maker используют Direct3D API. В Game Maker так же есть функции для использования внешних DLL. Любая возможность, которой нет в Game Maker может быть добавлена посредством DLL. В GML есть функции для создания и редактирования структур данных шести типов. Эти функции доступны только в Pro-версии Game Maker. Доступные структуры данных: стек, очередь, список, отображение, очередь с приоритетами и решётка (которая представляет собой эффективную замену массивам). Ради упрощения GML, в нём есть только два типа переменных. Каждая переменная может быть любого типа без какого-либо определения оного. Строки — набор символов любой длины. Размер ограничен только размером доступной памяти. Числа с плавающей точкой — знаковые числа с плавающей точкой. Начиная с версии 6.1, Game Maker может обрабатывать числа, заданные в шестнадцатеричном представлении (начинающиеся со знака «$»). В 6-ой версии в управлении такими числами есть ошибка, из-за которой теряется точность вычислений (что приводит к неверным результатам при вычислении больших чисел). Эта ошибка все ещё присутствует в седьмой версии, но она была смягчена увеличением точности в общем. Так как в GML нет булевского типа, выражения, в которых используются такие значения, например «if», определяют значения большие 0.5 как true, а все остальное как false. Константы true и false могут быть использованы вместо 1 и 0 соответственно. Game Maker не поддерживает использования указателей на память, поэтому каждый ресурс имеет уникальный идентификатор, который служит для определения конкретного ресурса или образца объекта. Эти идентификаторы могут быть использованы скриптами или функциями для указания необходимого ресурса. Так как создание ресурсов непосредственно в Game Maker подразумевает указание имени, то это имя служит константой, содержащей идентификатор ресурса (для объектов это идентификатор первого образца). Идентификатор конкретного образца хранится в локальной переменной «id». При динамическом создании ресурсов, всегда возвращается идентификатор созданного ресурса, который может быть использован в дальнейшем.

1.3.4. Unity 3D

Unity — это инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows, OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux[1], а также на игровых приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One. Есть возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player), а также с помощью реализации технологии WebGL. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL. Активно движок используется как крупными разработчиками (Blizzard[4], EA, QuartSoft, Ubisoft[5]), так и разработчиками Indie-игр. вижок поддерживает три сценарных языка: C#, JavaScript (модификация), Boo (диалект Python). Boo убран в 5ой версии. Расчёты физики производит физический движок PhysX от NVIDIA.

РАЗДЕЛ 2 ПРАКТИЧЕСКАЯ ЧАСТЬ

Сравнительная характеристика игровых движков

В ходе поиска оптимальной среды разработки я сравнил несколько игровых движков описанных ранее: Construct 2, Game Maker Studio, Unity3D.

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

Таблица 2.1.

Параметр

Construct 2

Game Maker

Unity3D

Программирование

-

+

+

Бесплатность

-

+

+

Встроенные шаблоны

+

+

-

Оптимизация

+

-

+

Богатство пользовательского контента

-

+

-

Настройка искусственного интелекта

-

+

+

Объектные системы программирования

(Drag'n'drop)

+

+

-

Выбор параметров производился самостоятельно, на основе анализа процесса работы специалистов по разработке игр. Таким образом, наиболее оптимальным и удовлетворяющим требованиям разработки игр в рамках проекта является Game Maker Studio.

Разработка ролевой игры.

Разрабатываемый мною проект принадлежит к разряду action RPG, но по факту это заготовка для большей игры, прохождение которой должно занять не менее часа. Текущая версия игры проекта оценивается мною как базис, то есть имеется все необходимые элементы для создания игры, и всё, что остаётся – это наполнить игру контентом. Для данного жанра характерны следующие параметры: открытый мир, наличие показателей здоровья и маны, модификация урона путём приобретения нового вида оружия, Торговля, Инвентарь, наличие враждебных персонажей, разнообразные задания выполняемые героем. Герой должен выполнять следующие действия: атака враждебных персонажей, использование особых способностей, сбор предметов и отыгрыш выбранного типа персонажа (вор, воин, маг, друид и др.).

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

Инвентарь

Инвентарь оформляется не напрямую, а через связку – «событие – клавиша «i» нажата» - «действие – исполнить скрипт». Для него используется фрагмент кода.:

Команда «global.» в данном случае служит для обращения сразу ко всем объектам. Строка – «menu=show_message_ext('Оружие:

'+string(global.oruzhie)+'#Уровень: '+string(global.level)+'#Опыт:

'+string(global.xp)+'#Есть:'+string(dub)+string(kin)» - служит для отображения опыта. «oruzh» - это задаваемый оператор, в данном случае ответственный за количество наносимого урона героем, в зависимости от значений данного оператора, которые изменяются после определённого события, в данном случае наличия одного из предметов в инвентаре.

Перемещение

Перемещение осуществляется следующим образом – даётся событие щелчок ЛКМ и происходит действие – создание объекта «way», а затем привязка вектора движения к данному объекту. Для этого используется фрагмент кода представленный на Рис. 2.2.:

Рис. 2.2.

То есть герою задаётся движение к объекту - «way». Если герой находится на расстоянии меньше 5едениц, то объект разрушается. Для этого используется следующий фрагмент кода:

Рис. 2.3.

По факту направление задаёт следующей частью скрипта: «image_angle=direction» то есть изображение и есть направление движения.

Фаерболл

В данном случае задействованы 3 объекта – герой, враг и сам фаерболл. Для каждого из 3-х объектов действует свой скрипт, срабатывающий по принципу «событие – клавиша «ПКМ» нажата» - «действие – исполнить скрипт».

Рис. 2.4.

Что примечательно – в языке GML уже встроено понятие маны и его не нужно расписывать. Действие «instance_create» - является стандартным и может служить событием.

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

3-м объектом становится враг. Для него событием, по той же цепочке, становится столкновение с объектом фаерболла, действием будет мгновенное уничтожение объекта фаерболла и изменение показателя “heal”на 50 единиц. В язык уже встроен данный показатель наряду с его синонимами.

Предметы восстановления

Сами объекты достаточно просто работают по схеме «событие-действие». В данном случае событием становится столкновение с героем и последующие действие направленное на объект «герой». Для восстановления здоровья объекта скрипт выглядит вот так: «health+=40; instance_destroy()»; для восстановления манны аналогично, лишь с изменением «health» на «mana».

Поведение врагов

Поведение врагов описано достаточно просто – если расстояние до объекта меньше 300 ед. то начать двигаться к нему. Если происходит событие – столкновение героя, то исполнить скрипт: «health-=1; other.speed=0», где показатель «health» - это урон наносимый врагом герою, а «speed» - это скорость нанесения урона, в данном случае показатель «0» означает, что за 1 одну секунду действие будет выполнено 1 раз, то есть постепенно.

Если герой совершает событие – нажата ЛКМ на враге, и герой находится на расстоянии менее 5 единиц, то врагу будет наносится урон. Действие представлено на Рис. 2.5.

Рис. 2.5.

Игра в жанре стратегии в реальном времени

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

Выбор юнитов

В данном случае используется алгоритм основанный на постоянной проверке состояния нажатия левой кнопки мыши. Если кнопка мыши нажата, то необходимо выделить область, координаты которой равны координатам курсора мыши. Для этого используется фрагмент кода представленный на Рис. 2.6.:

Рис. 2.6.

Искусственный интеллект

Искусственный интеллект основан на логике выбора состояния в зависимости от действий игрока. Всего 2 состояния - защита и агрессия.

Рис. 2.7.

Данный выбор делается путём поиска объектов для атаки. Если тип атаки, или расположение объекта не совпадает с аналогичными показателями у искусственного интеллекта, то искусственный интеллект не атакует и прерывает действие. Для этого используется следующий фрагмент кода:

Рис. 2.8.

После поиска доступных искусственным интеллектом целей он выбирает среди них наиболее предпочтительные на основании расстояния до цели и типа атаки цели (Рис. 2.9.).

Рис. 2.9.

В конечном итоге искусственный интеллект получает свою цель, используя фрагмент кода представленный на Рис. 2.10.:

Рис. 2.10.

Система атаки и нанесения урона

Система практически аналогична используемой в первой игре. Отличие заключается в том, что существует ещё и показатель снижения урона в зависимости от брони цели, показатель брони индивидуален и задается к каждому объекту по отдельности. Урон может быть нанесён создаваемым в процессе игры объектом, при этом его урон задаётся по такому же алгоритму.

Рис. 2.11.

ВЫВОД

В своей работе я рассмотрел несколько игровых движков, таких как Unity3D, Construct2, Game Maker Studio. Было обработано и проанализировано большое количество источников по данной теме. В процессе работы над исследованием были получены навыки написания скриптов, работы со спрайтовой графикой, программирования с использованием языка GML, навыки дизайна уровней и открытого мира и работы с кодом. В результате анализа и сравнительной характеристики перечисленных выше движков было выявлено, что Game Maker Studio является наиболее подходящим для реализации поставленных задач, а именно:

создание игры в жанре RPG, в которой были реализованы следующие базовые структурные элементы:

• Перемещение персонажа

• Инвентарь персонажа

• Нанесение урона персонажем и персонажу

• Простейший ИИ регулирующий поведение NPC

• Предметы

создание игры в жанре RTS, где были реализованы следующие структурные элементы:

• Возможность выделения юнитов

• Управление юнитами

• Модификаторы урона юнитов

• HUD

• Искусственный Интеллект юнитов противника

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

Созданные игры отличаются оптимизацией кода путём сокращения его количества за счёт замены на уже прописанные внутри программные алгоритмы.

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

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Яблоков К. М. Исторические компьютерные игры как способ моделирования исторической информации // История и математика: Анализ и моделирование социально-исторических процессов. М.:КомКнига, 2007.С.170-204.

Jacob Habgood, Mark Overmars. The Game Maker's Apprentice: Game Development for Beginners. — Apress, 2006. — 336 p

Деникин А. А. Могут ли видеоигры быть искусством? // Международный журнал исследований культуры, № 2(11), 2013. — М.: Эйдос, 2013, с. 90-96

ИНТЕРНЕТ ИСТОЧНИКИ

[Электронный ресурс] Режим доступа: https://ru.wikipedia.org/wiki

Игровой движок Unreal Engine [Электронный ресурс] Режим доступа: http://www.unrealtechnology.com/

Игровой движок Unity3D [Электронный ресурс] Режим доступа: http://unity3d.com/ru/unity/

Теоретические и практические материалы для создания игр с помощью Game Maker Studio [Электронный ресурс] Режим доступа: http://gmakers.ru/

Теоретические материалы для создания игр с помощью Game Maker Studio [Электронный ресурс] Режим доступа: http://www.yoyogames.com/studio

ПРИЛОЖЕНИЯ

Приложение А

Инвентарь

Перемещение

Приложение Б

Фаерболл

Предметы восстановления

Приложение Б

Поведение врагов

Выбор юнитов

Приложение Г

Искусственный интеллект


 

А также другие работы, которые могут Вас заинтересовать

18186. ГЕНЕЗИС ОДАРЕННОСТИ 38 KB
  Материал к теме 3 ГЕНЕЗИС ОДАРЕННОСТИ Существует три подхода в отношении генезиса одаренности: 1 генетический отводящий основную роль в детерминации психических свойств наследственности; 2 средовой представители которого считают решающим фактором развити
18187. ВИДЫ ОДАРЕННОСТИ 122 KB
  ВИДЫ ОДАРЕННОСТИ Понятия о видах одаренности. Теория множественности видов интеллекта Ховарда Гарднера. Общая интеллектуальная и академическая одаренность. Художественная одаренность. Творческая одаренность. Лидерская одаренность. Практическая одаренно...
18188. Диагностика одаренности. Наиболее популярные тесты диагностики творческой одаренности 524 KB
  Материалы к теме Диагностика одаренности. Наиболее популярные тесты диагностики творческой одаренности. К числу наиболее популярных тестов направленных на выявление творческой одаренности можно отнести следующие: тесты креативности для детей разработанн
18189. ДІАГНОСТИКА ОБДАРОВАНОСТІ 167.5 KB
  PAGE MERGEFORMAT 21 Тема 5. ДІАГНОСТИКА ОБДАРОВАНОСТІ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них знання основних підходів до визначення етапів принципів методів та факторів достовірності психодіагностики обдар
18190. ПОНЯТТЯ ПРО ОБДАРОВАНІСТЬ 156.5 KB
  Тема 1. ПОНЯТТЯ ПРО ОБДАРОВАНІСТЬ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них загальні уявлення про обдарованість та обдаровану дитину знання основних теоретичних та практичних підходів до виз
18191. ГЕНЕЗИС ОБДАРОВАНОСТІ 105.5 KB
  Тема 2. ГЕНЕЗИС ОБДАРОВАНОСТІ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них знання основних підходів до визначення ґенезу обдарованості диференціації та зв’язку явищ обдарованості та талану інтелекту та креативності впливу чи
18192. ВИДИ ОБДАРОВАНОСТІ 147.5 KB
  Тема 3. ВИДИ ОБДАРОВАНОСТІ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них знання основних критеріїв систематизації видів обдарованості підходів до визначення окремих видів обдарованості та їх головні характеристики. Тема 3. ВИДИ
18193. ІНДИВІДУАЛЬНО-ПСИХОЛОГІЧНІ ОСОБЛИВОСТІ ОБДАРОВАНИХ ДІТЕЙ 164 KB
  Тема 4. ІНДИВІДУАЛЬНОПСИХОЛОГІЧНІ ОСОБЛИВОСТІ ОБДАРОВАНИХ ДІТЕЙ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них знання класифікації типів особистості обдарованих дітей особливості обдарованих д...
18194. ПСИХОЛОГО-ПЕДАГОГІЧНА РОБОТА З ОБДАРОВАНИМИ ДІТЬМИ 172 KB
  Тема 6. ПСИХОЛОГОПЕДАГОГІЧНА РОБОТА З ОБДАРОВАНИМИ ДІТЬМИ Мета: Опанування матеріалів лекції студентами слухачами має сформувати у них знання основних підходів до визначення принципів мети змісту методів форм навчання обдарованих дітей та шляхів підготовк