Разработка Игры И Защита Дипломной Работы Или «Как Я Убил Двух Зайцев»



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

Многие известные инди-разработчики бросили университеты.

Я расскажу вам об обратном опыте.

О моем довольно необычном проекте и о том, как мне удалось совместить приятное с полезным.

Я изучал прикладную информатику в Российском государственном гуманитарном университете и одновременно занимался своим хобби.

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

».

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

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

Но надо отдать им должное и сказать спасибо за поддержку этой нестандартной инициативы.

В итоге материала, полученного при разработке, хватило для написания уникальной дипломной работы (0% плагиата) целиком из головы и моего опыта.

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

Позднее (в соответствии со стандартами ISO/IEC) слово «разработка» было заменено на «проектирование», что более соответствует тексту работы.



Об игре

Моя игра — уникальная комбинаторная головоломка для Android.

Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

Цель игры — трансформировать одну деталь так, чтобы она стала точно такой же, как вторая.

В игре есть три режима.

В режиме трансформации формы изменяются нажатием кнопок.



Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

«Режим вращения» имитирует трехмерное вращение.



Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

Сложный «Спортивный режим» сочетает в себе два предыдущих и предназначен для игр с большим количеством очков.



Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

Также имеется интерактивная коллекция фигурок, которая растет по мере вашего продвижения.



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

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

От зарисовок на полях блокнота я пришел к более сложным формам.

Последние рисунки от руки, вот эти фракталы:

Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

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

Вот как выглядел ранний концепт-арт, нарисованный в CorelDRAW (пока не в изометрической проекции) и одна из 3D-моделей в Blender:

Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

Позже я отказался от 3D-графики в пользу векторной анимации в Anime Studio Pro. На основе составленной иерархии фигур и анимации переходов между ними было решено сделать пазл.



Логика

Логика игры связана с несколькими интересными геометрическими фигурами.

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



Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

А логические графы первого режима игры (преобразования) представляют собой гиперкубы.

Во-первых, конфигурации связаны между собой, как вершины 2-куба (квадрата).

С каждым прохождением добавляется новое пространство фигур.

При следующем запуске логика — это уже 3D-куб, затем тессеракт и, наконец, пентеракт с участком тессеракта.



Разработка игры и защита дипломной работы или «Как я убил двух зайцев»

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



Разработка игры и защита дипломной работы или «Как я убил двух зайцев»



Выполнение

Итак, открою вам секрет, как я реализовал дизайн игры программно.

Ее можно сформулировать так: сложная система – простая реализация.

Простая реализация подразумевает использование для проектирования 2D-игрового дизайнера Construct 2. В моем случае его использование хоть и имеет некоторые недостатки, тем не менее позволило мне сэкономить время и больше сосредоточиться на творчестве.

Описанную выше «гиперлогику» я представил в виде леса полных бинарных деревьев и реализовал ее линейно в конструкторе с использованием вложенных событий.

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



Оптимизация

Учитывая наличие в игре огромного количества анимаций (около 500), встал вопрос оптимизации.

Я не буду касаться конкретного улучшения «кода» в Construct 2, а расскажу о более общей оптимизации графической составляющей.

Для минимизации потребления системных ресурсов необходимо было следующее:

  • композиция спрайтов (благодаря симметрии фигуры можно разрезать на части и собирать из копий экземпляров спрайтов, как мозаику);
  • обрезка пустых краев изображений (это актуально при большом количестве изображений);
  • обратная анимация (вместо создания отдельной анимации с обратным порядком кадров лучше перевернуть существующую);
  • снижение частоты кадров до 12 кадров в секунду и уменьшение разрешения промежуточных кадров анимации;
  • использование 8-битных цветов (такая глубина цвета абсолютно незаметна из-за особенностей палитры игры).

Картинки: тессеракт, пентеракт, звездчатый кубооктаэдр взяты из Википедии.

Теги: #Разработка игр #Разработка для Android #Разработка мобильных приложений #Дизайн игр #разработчик игр #дизайн игр #разработка приложений #разработка для Android #мобильные игры

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.