Главная » Хабрахабр » [Из песочницы] Разработка игры и защита диплома или «Как я убил двух зайцев первым блином»

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

Дипломный проект

О создании игр и получении высшего образования обычно говорят как о вещах несовместимых, часто вполне справедливо. Многие известные инди-разработчики бросали универы. Я же расскажу о противоположном опыте. О своём довольно необычном проекте и о том, как удалось совместить приятное с полезным.

И вот, когда пришло время выбрать тему выпускной квалификационной работы, подумал: «Зачем ломать голову над её выбором и писать какую-то левую программу, когда уже есть практически готовый проект: моя первая игра-головоломка».
Дело оставалось за тем, чтобы описать в научном ключе процесс разработки и донести до доцентов и профессоров очень даже абстрактную идею игры. Я учился в РГГУ на прикладной информатике и параллельно занимался своим хобби. Но надо отдать им должное и сказать спасибо, за поддержку нестандартной инициативы. Не обошлось без представлений: делал презентации, видеообзоры, показывал прототип, отчитывался перед научным руководителем, что я ещё жив и в деле.

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

Позже (в соответствии со стандартами ISO/IEC) слово «разработка» заменено на «проектирование», что больше согласуется с текстом работы. Изначально моя тема была «Разработка логической видеоигры на геометрических принципах».

Об игре

Моя игра – не имеющая аналогов комбинаторная головоломка для Android.

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

В игре есть три режима.
В «Режиме преобразований» формы изменяются нажатиями на кнопки.

В «Режиме вращений» имитируются трёхмерные повороты.

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

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

Предпосылки

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

Так выглядели ранние концепт-арты нарисованные в CorelDRAW (ещё не в изометрической проекции) и одна из 3D-моделей в Blender: Навык изображения перекрывающихся граней и натренированное пространственное мышление послужили созданию новых фигур, состоящих из треугольников.

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

Логика

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

Сначала конфигурации взаимосвязаны как вершины 2-куба (квадрата). А графы логики первого игрового режима (преобразований) – гиперкубы. При следующем старте логика уже 3D куб, потом – тессеракт и, наконец, пентеракт с сечением-тессерактом. С каждым прохождением добавляется новое пространство фигур.

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

Реализация

Итак, раскрою секрет, как я программно воплотил геймдизайн. Это можно сформулировать так: сложная система – простая реализация.

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

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

Оптимизация

Учитывая наличие огромного числа анимаций в игре (около 500), остро встал вопрос оптимизации. Специфическое улучшение «кода» в Construct 2 затрагивать не буду, а скажу о более общей оптимизации графической составляющей. Для минимизации потребления системных ресурсов понадобились:

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

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


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

В России приступили к тестированию отечественного нейроинтерфейса «Нейрочат»

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

Зрители не могут отличить нативную картинку 4K от интерполяции

Такие выводы можно сделать из результатов российского исследования, проведённого холдингом «Ромир». Человеческого зрения недостаточно, чтобы отличить настоящее видео 4K от картинки, которую получили из изображения HDTV с помощью интерполяции. Опрошенным показывали на телеэкране фрагменты двух видеороликов и спрашивали о восприятии ...