Как я создавал игру. Часть 2. Проба пера.
Всем вновь большой привет! В этой статье я хочу рассказать о следующих этапах разработки моей игры "Dendrite" - создание прообраза своей игры и 3д моделей.
Начну по порядку:
1) Прототип. В предыдущей статье мне писали, что необходимо начинать именно с прототипа игры, а уже потом создавать концепт-арты. Не смею судить о рациональности данного шага, однако прообраз будущей игры я создавал после проработки идеи. Почему? Отвечаю: для грамотного прототипа нужно точно знать, что ты хочешь получить в итоге, ведь прототип ответит на главный вопрос - насколько реально создать задуманное. Тем более я уже имел хоть какой то базис при изучении уроков по Unity3d.
Первым делом необходимо было создать контроллер от 3-го лица. По сути взял базовый fps-контроллер, капсулу сделал невидимой, воткнул туда всем известного персонажа из демо "Angry bots" просто ради тестов. Также создал скрипт, проигрывающий анимацию бега при нажатии соответствующих клавиш:
И тут я наткнулся на первую проблему: как заставить персонажа опускать и поднимать туловище с оружием при перемещении мыши? Ответ был прост - скрипт вешался на bone в районе поясницы, но с ограничениями по вращению. Получилось, конечно же, не сразу. Но получилось. Стрельба выполнялась аналогично тому, как это было показано в уроке FPS Tutorial, только с большими доработками, поскольку в уроке скрипт был довольно примитивным. Также в сцену я добавил примитивный ИИ в виде кубиков, бегающих за ГГ и пожирающих его.
Самое главное в этом этапе - я понял, что идею можно и нужно реализовывать в полноценный проект. Теперь можно переходить на моделирование.
2) Моделирование.
Как я уже писал в предыдущей статье, чтобы создать концепт-арты локаций и юнитов изначально я проработал на бумаге обобщенный сценарий, без детализации на каждый уровень. Также все локации были поделены на 4 группы, после чего рисовались образы мобов в зависимости от их принадлежности к группе локаций. По концепт-артам создавались сами модели с текстурами, а затем уже риггинг персонажей и анимация:
Необходимо подчеркнуть, что при создании пробных локаций стало очевидно, что графика получается, мягко говоря, "фекально". Поэтому было принято решение полностью переработать элементы локаций с некоторым отклонением от первоначального дизайна:
В целях экономии времени и сил, такие обыденные элементы экстерьера как бордюры, камни, деревья, асфальт и т.п. были использованы из бесплатных паков с Asset Store. Архитектура была полностью смоделирована с нуля:
Для главного героя было создано 7 анимаций, из которых 4 впоследствии были дублированы и реверсированы. Для мобов, опять же в целях экономии сил и времени, было выполнено всего по 3 анимации (покой, перемещение, атака):
Также был создан тестовый уровень, в котором настраивался баланс оружия и параметры ИИ для каждого моба:
В предыдущей статье я писал о том, что некоторую технику пришлось видоизменить в виду того, что первоначальные варианты оказались несколько неудачными в плане UV-развертки
А напоследок я скажу о тех мерах, которые помогли мне сильно сократить время моделирования объектов:
а) Использование модульной конструкции. Например, в игре есть всего 8 лицевых частей зданий. Их размеры подобраны таким образом, чтобы можно было переставлять их между собой как угодно и добиваться некой рандомности при частом копипасте.
б) Меньшее количество lod-объектов. Вы наверняка возразите, ведь такая мера не способствует оптимизации игры, но при этом требуется меньше времени на моделирование одного объекта. Хочу сказать, что я держал 30 кадров в секунду на слабых пк за счет снижения дальности прорисовки объектов, травы, тени и т.п., а сами объекты имели относительно небольшое количество полигонов (такое допустимо, если объект практически никогда не находится на переднем плане). Задача создания игры с шикарной графикой не стояла.
в) Создание универсальных скриптов. Например, у меня почти везде один скрипт ИИ, просто меняются параметры и способы атаки.
г) Не усложняйте игру искусственно. В Dendrite катсцены выполнены слайдами. Такой подход избавил меня от дополнительной анимации и сэкономил кучу времени без вреда для основной функции катсцен - повествования сюжета. Дешево и сердито. Лучше сделать упор на геймплей.
д) Используйте свободные 3д-паки для неуникальных объектов (деревья, камни и т.д.).
В следущей статье речь пойдет о детализации сюжета, проработке геймплея и построении игровых уровней. Уверен, каждый найдет в данной статье что-то для себя.
Всем успехов!
Официальная группа по игре:
Официальный сайт игры:
@idesperate , демо не работает. Win 8.1 Pro, x64, dx9. Вываливается при загрузке любого уровня из трёх. Если билд под 11-й директ, то может стоит проверочку сразу вставить в код и упомянуть об этом где-нибудь на сайте?
О, парень, а ты молодец. Нет, ну серьезно. У всех есть кучу своих идей для игр, но у меньшенства есть силы себя заставить начать делать. Можешь хоть немного рассказать, как ты начал делать? Что-то аля из личного опыта, ощущений.
Я сейчас снова делаю свою новую игру, и чувствую снова брошу на процентах 30, как всегда. Много, имхо, гениальных идей и не очень, но сил продолжать после 1-2 недельного упорства нет.
P.S. Часто упираюсь в то, что могу рисовать лишь пиксельную графику на любителя и писать код, а хочется большего.
в чем текстурировал?
Прежде чем рекламить сайт стоит проверить его на нагрузку :) сайт постояно падает, а мажордом.... Лучше просто промолчу про этот хост. Хотел игру скачать посмотреть и не смог :(
Хотя бы на яндекс залейте или на гугл
Круто, что в наше время любой может создать игру =)