Как я создавал игру. Часть 2. Проба пера.

Всем вновь большой привет! В этой статье я хочу рассказать о следующих этапах разработки моей игры "Dendrite" - создание прообраза своей игры и 3д моделей.

Начну по порядку:
1) Прототип. В предыдущей статье мне писали, что необходимо начинать именно с прототипа игры, а уже потом создавать концепт-арты. Не смею судить о рациональности данного шага, однако прообраз будущей игры я создавал после проработки идеи. Почему? Отвечаю: для грамотного прототипа нужно точно знать, что ты хочешь получить в итоге, ведь прототип ответит на главный вопрос - насколько реально создать задуманное. Тем более я уже имел хоть какой то базис при изучении уроков по Unity3d.
Первым делом необходимо было создать контроллер от 3-го лица. По сути взял базовый fps-контроллер, капсулу сделал невидимой, воткнул туда всем известного персонажа из демо "Angry bots" просто ради тестов. Также создал скрипт, проигрывающий анимацию бега при нажатии соответствующих клавиш:

Как я создавал игру. Часть 2. Проба пера. Unity3D, Игры, Разработка, Длиннопост

И тут я наткнулся на первую проблему: как заставить персонажа опускать и поднимать туловище с оружием при перемещении мыши? Ответ был прост - скрипт вешался на bone в районе поясницы, но с ограничениями по вращению. Получилось, конечно же, не сразу. Но получилось. Стрельба выполнялась аналогично тому, как это было показано в уроке FPS Tutorial, только с большими доработками, поскольку в уроке скрипт был довольно примитивным. Также в сцену я добавил примитивный ИИ в виде кубиков, бегающих за ГГ и пожирающих его.
Самое главное в этом этапе - я понял, что идею можно и нужно реализовывать в полноценный проект. Теперь можно переходить на моделирование.

2) Моделирование.
Как я уже писал в предыдущей статье, чтобы создать концепт-арты локаций и юнитов изначально я проработал на бумаге обобщенный сценарий, без детализации на каждый уровень. Также все локации были поделены на 4 группы, после чего рисовались образы мобов в зависимости от их принадлежности к группе локаций. По концепт-артам создавались сами модели с текстурами, а затем уже риггинг персонажей и анимация:

Как я создавал игру. Часть 2. Проба пера. Unity3D, Игры, Разработка, Длиннопост

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

Как я создавал игру. Часть 2. Проба пера. Unity3D, Игры, Разработка, Длиннопост

В целях экономии времени и сил, такие обыденные элементы экстерьера как бордюры, камни, деревья, асфальт и т.п. были использованы из бесплатных паков с Asset Store. Архитектура была полностью смоделирована с нуля:

Как я создавал игру. Часть 2. Проба пера. Unity3D, Игры, Разработка, Длиннопост

Для главного героя было создано 7 анимаций, из которых 4 впоследствии были дублированы и реверсированы. Для мобов, опять же в целях экономии сил и времени, было выполнено всего по 3 анимации (покой, перемещение, атака):

Как я создавал игру. Часть 2. Проба пера. Unity3D, Игры, Разработка, Длиннопост

Также был создан тестовый уровень, в котором настраивался баланс оружия и параметры ИИ для каждого моба:

Как я создавал игру. Часть 2. Проба пера. Unity3D, Игры, Разработка, Длиннопост

В предыдущей статье я писал о том, что некоторую технику пришлось видоизменить в виду того, что первоначальные варианты оказались несколько неудачными в плане UV-развертки

Как я создавал игру. Часть 2. Проба пера. Unity3D, Игры, Разработка, Длиннопост

А напоследок я скажу о тех мерах, которые помогли мне сильно сократить время моделирования объектов:

а) Использование модульной конструкции. Например, в игре есть всего 8 лицевых частей зданий. Их размеры подобраны таким образом, чтобы можно было переставлять их между собой как угодно и добиваться некой рандомности при частом копипасте.


б) Меньшее количество lod-объектов. Вы наверняка возразите, ведь такая мера не способствует оптимизации игры, но при этом требуется меньше времени на моделирование одного объекта. Хочу сказать, что я держал 30 кадров в секунду на слабых пк за счет снижения дальности прорисовки объектов, травы, тени и т.п., а сами объекты имели относительно небольшое количество полигонов (такое допустимо, если объект практически никогда не находится на переднем плане). Задача создания игры с шикарной графикой не стояла.


в) Создание универсальных скриптов. Например, у меня почти везде один скрипт ИИ, просто меняются параметры и способы атаки.


г) Не усложняйте игру искусственно. В Dendrite катсцены выполнены слайдами. Такой подход избавил меня от дополнительной анимации и сэкономил кучу времени без вреда для основной функции катсцен - повествования сюжета. Дешево и сердито. Лучше сделать упор на геймплей.

д) Используйте свободные 3д-паки для неуникальных объектов (деревья, камни и т.д.).


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

Всем успехов!


Официальная группа по игре:

https://vk.com/dendrite_game


Официальный сайт игры:

http://dendrite-game.ru/

Лига Разработчиков Видеоигр

6.7K поста22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

3
Автор поста оценил этот комментарий

@idesperate , демо не работает. Win 8.1 Pro, x64, dx9. Вываливается при загрузке любого уровня из трёх. Если билд под 11-й директ, то может стоит проверочку сразу вставить в код и упомянуть об этом где-нибудь на сайте?

раскрыть ветку
2
Автор поста оценил этот комментарий

О, парень, а ты молодец. Нет, ну серьезно. У всех есть кучу своих идей для игр, но у меньшенства есть силы себя заставить начать делать. Можешь хоть немного рассказать, как ты начал делать? Что-то аля из личного опыта, ощущений.

Я сейчас снова делаю свою новую игру, и чувствую снова брошу на процентах 30, как всегда. Много, имхо, гениальных идей и не очень, но сил продолжать после 1-2 недельного упорства нет.


P.S. Часто упираюсь в то, что могу рисовать лишь пиксельную графику на любителя и писать код, а хочется большего.

раскрыть ветку
2
Автор поста оценил этот комментарий

в чем текстурировал?

раскрыть ветку
1
Автор поста оценил этот комментарий

Прежде чем рекламить сайт стоит проверить его на нагрузку :) сайт постояно падает, а мажордом.... Лучше просто промолчу про этот хост. Хотел игру скачать посмотреть и не смог :(

Хотя бы на яндекс залейте или на гугл

раскрыть ветку
3
DELETED
Автор поста оценил этот комментарий

Круто, что в наше время любой может создать игру =)

раскрыть ветку