Введение 2
1. Цель работы 4
2. Сюжет игры 5
3. Структура приложения 6
4. Создание игровых объектов и графики 13
5. Компоновка приложения 16
6. Использование приложения 17
Заключение 24
Литература 26
Приложение 27
Первые интерактивные электронные устройства, предназначенные специально для игр, и первые игровые программы для компьютеров были разработаны в США после Второй мировой войны. В 1948 году американские физики Томас Голдсмит-младший и Эстл Рей Манн запатентовали «развлекательное устройство» на основе электронно-лучевой трубки, представлявшее собой электронный тир. Более совершенным устройством был Tennis for Two (1958) — симулятор тенниса, созданный Уильямом Хигинботамом, сотрудником Брукхейвенской национальной лаборатории на базе осциллографа. Игровые программы создавались для первых компьютеров, изначально предназначенных для других целей: так, программа OXO (1952), имитирующая игру «крестики-нолики», была составлена для компьютера EDSAC британским ученым Александером Дугласом как часть его докторской диссертации в Кембриджском Университете. Претендующая на звание первой компьютерной игры программа Spacewar! (1962) была написана Стивом Расселом и двумя другими студентами Массачусетского технологического института для мини-компьютера PDP-1. Впоследствии разработка игр начала набирать популярность и появилась целая промышленная отрасль - игровая индустрия. Игры стали классифицировать по: жанрам (экшен, стратегия и др.), количеству игроков и их взаимодействию (однопользовательская, многопользовательская), визуальному представлению (2D, 3D, стилистика и т.д.), платформе (игра написана для ПК, Playstation, Android, IOS и т.д.). Игры сформировали огромную аудиторию потребителей и стали востребованы во всех странах мира. Такой большой спрос создал в мире субкультуру - геймеры. Это люди, которые значительную часть своего свободного времени тратят на прохождение различных игр. Игры не только стали способом развлечения, но и явились большим стимулом для развития информационных технологий в области проектирования более мощных портативных систем, способов и качества визуализации цифрового контента, алгоритмов оптимизации работы системы, и способствовали созданию новых технологий, таких как устройства дополненной или виртуальной реальности.
Существуют различные подходы для создания игрового контента. Один из подходов предусматривает создание игрового контента вручную дизайнером. Такой способ лучше всего использовать для создания игр с глубоким сюжетом и историей, где необходимо передать игроку нужные эмоции. Второй подход появился совсем недавно и заключается в сканировании окружающего мира и использовании его, как игрового контента. Такой подход сейчас применяется для игровых приставок X-box, Playstation и др. Третий подход заключается в программной генерации контента игры без использования дизайнера. Такой подход позволяет не только сэкономить на дизайнерах проекта, но и является большим плюсом для игр главной особенностью которых является реиграбельность (повторное прохождение игры пользователем без потери интереса). Такой подход получил название процедурной генерации [1]. Этот способ был использован в данной работе.
Результатом моей дипломной работы является законченное программное приложение, представляющая собой компьютерную игру. Для разработки понадобилось создать алгоритм генерации уровней игры, который подходит в данной игровой концепции. Данный алгоритм использует необходимые для генерации объектов встроенные методы Unity3D. Процесс генерации связан с процессом сохранения данных. Вся необходимая информация записывается сразу после процесса генерации, причём сохранение этих данных выборочное. Это приводит к тому, что нет необходимости хранить некоторую ненужную информацию о сцене. Такой подход значительно сокращает время сохранения и загрузки данных.
Разработаны алгоритмы реального времени для взаимодействия и движения игровых объектов. Трудность алгоритмов заключается в нахождении ошибок в связи с работой в реальном времени. Возможны многократные обращения к одним и тем же переменным, возможна потеря данных при выполнении кода. Возникали проблемы обнаружения столкновений и их обработки, для обеспечения корректного игрового процесса. Все трудности были преодолены продумыванием и планированием последовательности выполнения алгоритмов.
Также было необходимо описать адекватное поведение компьютерных соперников. В описании поведения соперников главной проблемой являлось написать алгоритм реального времени. Необходимо было корректно оценить маршруты движения врагов, обнаружение целей, их движение за целями, стрельбу по целям и спокойное поведение.
Важным элементом данного проекта является пользовательский интерфейс. Он должен был быть прост, понятен и удобен в использовании, а также связан со всем игровым процессом и контролем игрового цикла. Эта задача также выполнена.
Наконец, главным шагом в создании проекта было проектирование основного игрового цикла. Необходимо было задать условие для победы и поражения игрока в условиях реального времени. В данной ситуации нужно было хорошо продумать поочередность выполнения каждого созданного объекта. Любое несвоевременное создание и активация игровых объектов могли бы привести к выполнению двух параллельных частей кода и вызвать серьёзные ошибки.
Таким образом, задание выполнено, разработана компьютерная игра, которая протестирована при различных размерах мира (количество уровней мира выбиралось от 3 до 99). Игру можно легко конвертировать на различные платформы: PC, Linux, Playstation 3(4), X-box 360(one), Android, IOS и др.
1. Иэн Гриффитс Программирование на C# 5.0/ Издательство Эксмо 2014, ISBN: 978-5-699-69313-9. - 1136 с.
2. V. Valtchanov, and J.A. Brown. Evolving Dungeon Crawler Levels With Relative Placement. In Proceedings of the C* Conference on Computer Science and Engineering 2012 (C3S2E12). - pp. 27-35. - 2012.
3. URL: https: //unity3 d. com/ru
4. Торн А. Искусство создания сценариев в UNITY Издательство ДМК, ISBN: 978-5-97060-381-9. - 368 с.
5. Thorn A. Unity Animation Essentials Packt Publishing 2015, ISBN 139781782174813. - 200 р.
6. URL: https://www.blender.org/
7. Прахов А. Blender 3D-моделирование и анимация. Руководство для начинающих/ Библиотека ГНУ/ Линуксцентра/ Издательство БХВ- Петербург 2009, ISBN 978-5-9775-0393-8 .- 266 c.
8. URL: http://gimp.ru/
9. Browne C. Evolutionary Game Design IEEE Transactions on Computational Intelligence and AI in Games.- Volume: 2, Issue: 1, March 2010.
10. Шульгин А. В. Разработка игровой среды на основе клеточного автомата с элементами эволюционных алгоритмов// Сб. научных трудов по итогам международной научно-практической конференции «Технические науки: научные приоритеты ученых», секция «Информационные технологии».- Выпуск 1.- Пермь, 2016.- С. 100-103.