Визуализация деловой игры в Unity 3D
Платформа Unity 3D как средство разработки компьютерных деловых игр. Рассмотрение реализации взаимодействия между подсистемой проведения деловых игр и модулем визуализации. Формирование игровых уровней на примере компьютерной игры "Проезд перекрестка".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 22.08.2017 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Одним из ключевых событий игры, с которым предстоит встретиться игроку, будет проезд светофора. Для этого представим в виде схемы само событие. Как видно на рис.3.24 проезд перекрестка состоит из двух возможных состояний светофора: если горит красный светофор или если горит зеленый светофор.
Рисунок 3.24 Возможные состояния светофора
Игрок может подъехать к переезду в любой из двух состояний светофора. И в каждой ситуации ему предстоит принять решение. На рис.3.25 представлено событие, когда горит красный светофор. В таком случае в точке принятия решения игрок может проехать светофор и тогда он совершит ошибку, а если остановится, то сделает все правильно.
Рисунок 3.25 Горит красный свет
На рис.3.26 представлена схема события, когда горит зеленый светофор. На ней видно, что если игрок будет стоять на перекрестке с включенным зеленым светофором, то он совершит ошибку, а в случае если проедет перекресток, совершит правильное действие.
Рисунок 3.26 Горит зеленый свет
3.3.6 Реализация проезда светофора в подсистеме визуализации
Для того чтобы реализовать описанную выше схему возьмем за основу уже созданную пустую дорогу и переименуем ее в tlRoad. Немного изменим внешний вид и создадим еще один пустой объект, который назовем TrafficLight. Он будет включать в себя два света, между которыми будет переключаться. Для того чтобы реализовать переключения света светофора добавим игровому объекту элемент скрипт и назовем его TrafficLight. В этом скрипте будет выполняться переключение между красным и зеленым светом светофора. Для того чтобы хранить информацию о состоянии светофора создадим переменную activeLight, которая будет принимать значение «0», когда горит красный свет и «1», когда светофор горит зеленым светом. Значение этой переменной будем передавать в качестве состояния ресурса «светофор». На рис.3.27 представлен метод, который отвечает за переключение света. Метод ChangeColor будет вызван сначала при появлении светофора в игре, для того чтобы установить тот или иной свет, а потом каждые 10 секунд, чтобы изменить свет на противоположный.
Рисунок 3.27 Скрипт изменения света светофора
Также добавим к игровому объекту элемент BoxCollider2D и пометим его на уровне со светофором. Он будет отслеживать стоит игрок перед светофором или он проехал мимо (рис.3.28).
Рисунок 3.28 Область принятия решения
Область BoxCollider2D и будет выступать в качестве точки принятия решения. Для этого в скрипт TrafficLight добавим два контролера, которые будут реагировать, когда игрок подъедет к светофору и когда проедет мимо. После того как игрок подъедет к светофору будет запущен таймер, который отслеживает, стоит игрок перед светофором или нет. В случае если игрок будет стоять перед светофором дольше половины продолжительности действия сигнала светофора или игрок пересечет светофор, то будет вызван метод, который инициализирует метод tlController в классе GameManager, чтобы отследить принятое игроком решение (рис.3.29). В нем тип строки_взаимодействия приравнивают 1, а состояние ресурса «светофор» становится равно переданному в метод значению, после чего вызывается метод кодирования сообщения.
Рисунок 3.29 Реакция на проезд светофора
3.3.7 Формирование игрового уровня
Для того чтобы формировать дорогу перед игроком будем в классе GameManager создадим массив игровых объектов roadPrefabs, в который добавим пустую дорогу и дорогу со светофором.
Также нам понадобятся два метода. При вызове метода CreateRoad, будет создано указанное количество экземпляров объектов дороги всех видов. Следом, в зависимости от вида дороги эти экземпляры будут добавлены в стек объектов. Такой способ инициализации игровых объектов позволит нам в начале игры создать необходимое количество экземпляров и хранить их внутри игры. Такой затрачивает меньше вычислительных мощностей компьютера в сравнении с созданием каждый раз нового экземпляра игрового объекта (рис.3.30).
Рисунок 3.30 Создание стека дорог
Второй метод SpawnRoad, необходим для непосредственного расположения экземпляров дороги перед игроком (рис.3.31).
Рисунок 3.31 Расположение дорог в игре
Когда игрок будет подъезжать к краю дороги, будет вызван этот метод. В случае если стеки, в которых находятся экземпляры дорог пустые, будет вызван метод, чтобы заполнить их. Если в стеках есть экземпляры дорог, то случайным образом из одного из стеков возьмем экземпляр дороги и расположим его перед игроком.
Для того чтобы было возможно использовать те экземпляры дорог, мимо которых уже проехал игрок, тем самым экономя ресурсы компьютера, добавим в скрипт RoadScript еще один метод, который назовем Recycle (рис.3.32). Этот метод позволит возвращать уже «использованные» экземпляры дорог обратно в стек. Вместо того, чтобы их просто уничтожать объект, сможем постоянно использовать уже созданные ранее экземпляры дорог.
Рисунок 3.32 Повторное использование экземпляров
3.3.8 Отслеживание событий
Так как одной из главных задач работы является возможность реализовать удаленное управление игрой и игровой логикой, то нам необходимо отслеживать действия, которые совершает игрок и реагировать на них не напрямую в игре, а через WCF сервис. Для этого будем использовать строку_взаимодействия с типом «событие».
Для того чтобы отслеживать нажатие игроком какой либо кнопки на клавиатуре либо в игре, создадим метод ButtonDown в классе GameManager. В качестве свойства в него будут передаваться ID нажатой кнопки, после чего будет вызван метод шифрования (рис.3.33).
Рисунок 3.33 Реакция на нажатие клавиши
К примеру, если будет нажата клавиша «Пробел», то ID клавиши будет равно «01», что соответствует «Пробелу». В сервисе в ответ будет отправлено сообщение, которое вызовет метод изменения состояния ресурса «машина». В случае если до этого автомобиль стоял, он поедет или наоборот.
На примере, разработанной в рамках данной главы, деловой игры «Проезд перекреста» демонстрируется работоспособность подсистемы взаимодействия. Подсистема взаимодействия позволяет проводить деловые игры, в подсистеме визуализации используя игровую логику, которая заложена в веб_сервисе. Взаимодействия между двумя частями игры производится посредством строки_взаимодейстия.
Заключение
Подсистема взаимодействия является основным связующим элементом между игроком и разработанными в СКДИ сценариями. Данная система необходима для проведения деловых игр на основе сформированных в СКДИ сценариев. Это позволит вырабатывать у игрока компетенции и впоследствии их измерять.
В ходе работы проведен анализ уже существующих систем визуализации компьютерных и деловых игр, который послужил основой для разработки требований к игре и способу взаимодействия между ее элементами. Была спроектирована подсистема взаимодействия, которая позволяет взаимодействовать логической и визуальной части игры между собой.
В выпускной квалификационной работе была спроектирована и реализована деловая игра «Проезд перекрестка». Она была создана при помощи выделенных средств разработки и с использованием описанных в работе методов взаимодействия. На примере данной деловой игры была проведена апробация подсистемы взаимодействия. Описанные в работе средства взаимодействия СКДИ с визуальной частью могут послужить основой для дальнейшего проектирования и реализации других подсистем студии.
Библиографический список
1. Карауылбаев С.К. Особенности применения учебно-деловых игр в обучении студентов / Мир науки, культуры, образования № 3 (34) 2012.
2. Лаврентьев С.Ю. Интерактивные методы обучения как средство активизации познавательной активности будущих учителей технологии и предпринимательства // Комелина В.А. Современные проблемы науки и образования. - 2011. - №6.; URL: https://www.science-education.ru/ru/article/ view?id=5218 (дата обращения: 10.12.2016).
3. Панина Т.С. Современные способы активизации обучения: Учеб. пособие для студ. высш. учеб. заведений / Т.С. Панина, Л.Н. Вавилова; 4-е изд., Под ред. Т.С. Паниной. - М.: 2008. - 176 с.
4. Webservices In Unity [Электронный ресурс] // URL: http://wiki.unity3d.com/index.php?title=Webservices_In_Unity (дата обращения: 10.12.2016)
5. Maria Bielikova, Marko Divecy, Rudolf Kajan, Peter Jurnecka, L'ubos Omelina (2008) «Automatic generation of adaptive, educational and multimedia computer games» - Springer-Verlag London Limited 2008, pp. 371-384
6. Ulrich Wechselberger «Teaching Me Softly: Experiences and Reflections on Informal Educational Game Design» - Springer-Verlag Berlin Heidelberg 2009, pp.90 - 104
7. Gwo-Jen Hwang, Han-Yu Sung, Chun-Ming Hung, Li-Hsueh Yang and Iwen Huang «A knowledge engineering approach to developing educational computer games for improving students' differentiating knowledge» - British Journal of Educational Technology Vol 44, No. 2, 2013, pp. 183-196.
8. Richard Moss. The state of educational games in the Minecraft era [Электронныйресурс]//URL:http://www.gamasutra.com/view/news/283507/The_state_of_educational_games_in_the__Minecraft_era.php. (дата обращения: 05.12.2016)
9. Карауылбаев С.К. Особенности применения учебно-деловых игр в обучении студентов / Мир науки, культуры, образования № 3 (34) 2012.
10. Занько C.Ф. Игра и учение: теория, практика и перспективы игрового обучения: В 2 ч. - М.: Логос, 1992.
11. Геронимус Ю.В. Игра. Модель. Экономика. - М.: Знание, 1989. - 208 с.
12. Кавтарадзе Д.Н. Обучение и игра: введение в активные методы обучения / Моск. психолого-соц. ин-т. - М.: Флинта, 1998. - 91 с.
13. Викентьева О.Л. Концепция Студии Компетентностных Деловых Игр / Викентьева О.Л., Дерябин А.И., Шестакова Л.В. //Современные проблемы науки и образования. - 2013. - № 2.; URL: https://www.science-education.ru/ru/article/view?id=8746 (дата обращения: 15.02.2017).
14. Язев Ю. ][-обзор: сравниваем топ-6 лучших игровых движков для программиста// Хакер - 2016 - №213.; URL: https://xakep.ru/2016/10/17/top6-game-engines/ (дата обращения: 20.02.2017).
15. Technologies, U. (2017). Unity - Manual: Unity User Manual (5.5). // [Электронный ресурс] Docs.unity3d.com.; URL: https://docs.unity3d.com/Manual/index.html?_ga=1.217506718.980491208.1456416711 (дата обращения: 01.02.2017).
Размещено на Allbest.ru
Подобные документы
Разработка компьютерной игры "Эволюция" с помощью игрового движка Unit. Сравнение критериев игры-аналога и разрабатываемой игры. Разработка графического интерфейса пользователя. Настройки камеры в редакторе Unity. Структура файла сохранения игры.
дипломная работа [3,6 M], добавлен 11.02.2017Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.
дипломная работа [3,3 M], добавлен 18.02.2017Игровой движок Unity, его использование для создания приложений, связанных с архитектурой, обучением, визуализацией данных и электронными книгами. Разработка системы освещения для работы с двухмерными объектами в виде расширения редактора Unity.
дипломная работа [2,5 M], добавлен 11.02.2017Общие сведения и существующие среды реализации компьютерной игры "Лабиринт". Разработка алгоритмов в виде блок-схемы, принципы программной реализации игры. Особенности тестирования разработанного программного продукта. Аспекты эксплуатации продукта.
курсовая работа [1,4 M], добавлен 18.01.2017Обзор методов и средств реализации поставленной задачи. Описание компьютерной игры "Японские кроссворды". Обоснование инструментария разработки программного продукта. Алгоритмический анализ задачи. Графический интерфейс и лингвистическое обеспечение.
курсовая работа [725,4 K], добавлен 27.08.2013Понятие и эволюция игр, анализ их различных жанров и существующих аналогов. Выбор программных средств для реализации игры, написание сюжета и выбор среды разработки игры. Алгоритмы для придания гибкости обучающей игре. Описание программных модулей.
дипломная работа [2,7 M], добавлен 27.10.2017Ознакомление с понятием компьютерных игр и их основными жанрами. Выбор сюжета игры и среды программирования. Отрисовка графики; проведение функционального и интерфейсного тестирования программы. Анализ условий труда в данной компьютерной лаборатории.
дипломная работа [3,2 M], добавлен 13.07.2014Характеристика компьютерных игр и их влияние на формирование навыков Softskills. Геймификация как современный тренд в образовании. Обзор наиболее популярных языков программирования для создания игровых приложений. Техническое задание для приложения.
дипломная работа [928,4 K], добавлен 13.01.2023Особливості Unity у створенні віртуального робочого середовища. Моделювання у віртуальному середовищі навчальних проектів у вигляді лабораторних робіт з фізики, які спрямовані на покращення і спрощення навчального та практичного процесу навчання.
курсовая работа [74,0 K], добавлен 30.08.2014Разработка языка для моделирования реальных бизнес-процессов в рамках "Студии компетентностных деловых игр". Использование DSM-платформа MetaEdit+. Составление требований к разрабатываемому языку программирования. Правила разработки метамодели языка.
курсовая работа [1,6 M], добавлен 05.10.2014