Парочка слов о том "Как лучше начать разработку 3D игр"

+170
в блоге Игры
Добрый денёк броняши! Сегодня я хочу затронуть необычную сферу на нашем табуне, касаемую разработке полноценных и качественных 3D проектов. Перечислю основные термины и сферы которые нужно будет знать начиная работать в геймдеве исходя из личного опыта





Если мы хотим с чего-то начать, то нужно знать хотябы минимум того что будет в обязательном порядке необходимо каждому.

Для начала нужно определится с платформой, на которой вы хотите базировать проект.
В моём случае это PC, Linux, Android, Xbox One. Также нужно было определится с внешним видом. В данный момент наиболее технологически развиваемый движок к тому-же бесплатный и с открытыми исходниками, полноценной документацией, огромным количеством уроков и поддержкой VR(Очков виртуальной реальности) является Unreal Engine 4. Он имеет бесподобный рендер совмещающий в себе практически все достижения человечества в плане визуализации, а также поддержку Linux(что для меня наиболее важно)



Теперь когда вы немного узнали об «Unreal Engine 4», прежде всего нужно понимать из чего состоят игры. А вот состоят они из различного рода контента, который вам надо будет описать подробно в виде дизайнерского документа, а диздок в свою очередь является библиотекой технических заданий имеющих специфическое оформление, а также идею вашей игры которую вы можете изложить и подать команде отдельно от ТЗ в диздоке, вот вам ссылка на форму его составления: vk.com/doc223617746_367141097

Он в свою очередь должен описывать то что нужно будет делать в игре:

1)Скрипты
2)Модели
3)Анимации
4)Аудиотреки
5)Текстуры

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

Начнём пожалуй с программной части.
В нашем случае мы уже изначально имеем доступ к библиотекам движка и то как с ними обходится мы можем узнать из документации движка или используя дословный перевод(предназначение большинства функций можно понять имея базовые навыки английского)

В Unreal Engine 4 мы можем работать в двух средах:

1)Использовать Blueprint — Средство визуального программирования игровых ассетов на упрощённой основе(Идеально для новичков в сфере программирования)


2)Использовать C++ — Письменную среду программирования, которую нельзя назвать простой, но всё облегчает прилегающий к движку API(Дедушкин метод, чуть сложнее)


Если вы сделали свой выбор, то думаю вам самое время записать это себе в список дел! Изучение этой области необходимо(Особенно когда делаешь игру один)!



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

Данная сфера включает в себя:
1)HardSurface modelling
2)Retopology
3)Sculpt
4)Model Baking
5)Знание тонкостей форматов моделей(3ds, fbx, obj, mdl, max и т.п.)
6)Умение работать с «копланарным» или изометрическим видом для работы с чертежами (Isometry)
7)Знание инструментов своего 3D редактора, в нашем случае Blender 3D
8)Умение работать с точными размерами.
9)UNW mapping)
10)Умение работать с нормалями.
11)Знание горячих клавиш.
12)Умение рендерить и настраивать материалы(Для демонстраций)
13)Знание понятия Pivot(центр модели) и то как его изменять на плактике.



Без этих навыков увы, сделать «грамотный» контент будет в разы сложнее, в качестве памятки предлагаю ссылку на таблицу быстрых клавиш(изображение слишком большое на табун не лезет :D ) и уроки из своего информационного ресурса(Ссылка снизу поста):


Теперь когда вы сделали себе заметки о программировании, моделировании. То самое время приступать к освоению текстурирования.
Ведь вы же хотите видеть всё в красках, а не в пустышном(сером) оформлении :)

По этой части могу заранее сообщить то что желательно иметь при себе:

1)Умение хорошо рисовать или обрабатывать фотографии.
2)Умение работать по развёртке которая предоставляется от модели.
3)Умение работать со слоями и инструментами 2D редатора.
4)Quixel Suite — Професиональный плагин созданный специально для работы с текстурами при разработке своих игр!

В данном случае у нас это Photoshop CC, По сути это обычный 2D редактор, но его понять не так то просто по началу.
Потому чтобы научится в нём ориентироватся и работать нужно знать опять-же:

1)Форматы и их свойства.
2)Растровый и векторный тип изображений.
3)«Горячие клавиши».
4)Инструменты.
5)Свойство гармонии цветов. Аля спасибо Дэши за знание радуги!

Вот видео пособие работы с Quixel Suite:


В наше время многие дизайнеры работающие в этом редакторе стремятся помочь людям освоить Photoshop CC
Потому оставлю ссылку на один хороший ресурс
И пожалуй памятку по быстрым клавишам:


Ну теперь по поводу анимаций.
Они у нас бывают со своим определённым составом:
1)Модели
2)Кости
3)Модификаторы костей
4)Хелперы

и могут использовать различные технологии анимаций:

1)Статичная кинематика(Static Kinemation | SK)
2)Инверсивная кинематика(Inversive Kinemation | IK)

Теперь к списку вещей необходимых познанию перед тем как приступать к анимациям:

1)Умение работать с картой весов, и использовать её для «крепления» костей
2)Заблаговременно делать на модели хорошую ретопологию для более реалестичного вида анимаций на подвижных частях тела.
3)Умение создавать контроллеры для создания реалестичной анимации.

Могу сразу сказать что времена когда использовали статичную кинематику уже давно прошли, потому можно её сразу бросить чтобы не наступать на мои грабли ;) вот по этой причине:

Статичная кинематика позволяла делать анимации двигая каждую кость отдельно, в игре любая анимация могла бы пропихнуть конечности через стены, ступеньки(Пример: Fallout 3).

И вот чтобы этот недуг исправить придумали инверсивную кинематику. Благодоря инверсивной кинематики, теперь не обязательно править каждую кость. Можно потянуть за одну, а за ней потянутся другие, что добавило как-раз таки удобства.
Также не менее важной деталью инверсивной кинематики в геймдеве являются «хелперы»
Они являются координирующими пустышками которые помогают нам после написания IK контроллера цеплятся конечностями за определённые предметы без проникновения внутрь модели, а также прицеплять различное обмундирование нашему персонажу(хотя обмундировку персонажа лучше крепить к костям)

Вот немного вам небольшая линейка уроков по этой части:




И краткая статейка по созданию персонажа для тех кто этого никогда не делал:
habrahabr.ru/post/230081/

Так как я со звуком работаю не очень хорошо, советую об этом спросить наших местных брони исполнителей :)
(Вы же надеюсь знаете их, на табуне много талантов)

Всё сразу вам никто не покажет(Просто невозможно всё показать в пределах даже 2 часов), потому я оставил вам заметки на английском для быстрого поиска пособий по отдельности, на Youtube.

Но так как я в данный момент CG специалист(cо стажем работы в 4 года), веду разработку над грядущим проектами: «StarWars: Republic Comando 2»,«Blow it»,«This Gray World»,«Equestrian Mainline Project»,«Milfin 3.0». Передо-мной возникла такая вот задача, буквально с самого начала. Большая часть людей которых принимали в команды, имели лишь начальный опыт. Для того чтобы им помочь освоить многие сферы в геймдеве, я создал место в которое собрал множество уроков и пособий по:

1)Unreal Engine 4
2)Unreal Engine 4 — Blueprint
3)C++
4)Blender 3D
5)ZBrush

67 комментариев

Кат поставь :)
Еслиб я знал что это :D
<cut name="Читать дальше">

Перед первой картинкой, например.
Спасибо!
Тыж разработчик игр! Моделинг и скриптинг для тебя как семечки щелкать. Ты чего?
Форум территория мною не ведомая до нынешнего дня :)
Хм, неплохой гайд, спасибо.
И тебе спасибо!
До того как я стал разработчиком игр

А что за игры то?
Внизу написаны :)
А, все, увидел.
Извиняюсь.
Автор, спасибище же за поднятие такой темы. Прям душа радуется, когда вижу подобное. :3
*Аж слеза прошла*
Отличный гайд, но, конечно же, для полноты картины не хватает альтернатив используемых программ(например, Photoshop — Gimp, Unreal — Unity и тд). Новичкам было бы полезно знать =)
Соглашусь
Для новичком самое то будет создание игр на Source (на этом движе построены: вся линейка HL2, CS, Portal и сотни других игр). Среда разработки там очень понятная и разобраться можно быстро. Графика будет на такая фотореалистичная как на UE4, но вполне возможно создать полноценную игру под свои идеи, как с изучением UE4 нужно огого повозиться.
Всё проще чем можно подумать сперва :)
Я UE4 поставил неделю назад, голова уже вот такая 6_9 И продвинулся не далеко. А с Source Engine, с основами, я разобрался за 3 дня и через полгода знаю почти все тонкости. UE4 круче, конечно, лишь бы хватило на него терпения… очень он мудрённый.
Главное что бы были интересные и новые идеи а то еще одни потоки говна в виде пародий на Dayz, тот же кубичиский майнкрафт, slender и т.д. я лично не выдержу.
Пост конечно не раскрывает всех необходимых аспектов, но он хотя бы дает новичкам понять, что нигде нет кнопки«Сделать все хорошо».Пост помогает осознать всю колоссальность работы, которую в одиночку очень трудно выполнить.
На это и на целен :)
+ метки из него на инглише спокойно можно юзать как теги для поиска учебного материала
Сколько божественной ахинеи.
А почитать комментарии, так мудрец, провидец, новый Платон и Сократ, еще и дополняют.
Автор, а вы знаете как цепится цикличная анимация к свободной анимации в игровых движках? Например бег (цикл), потом персонаж вдруг падает (ручная анимация). Ведь пивот у моделей разный (он же мастер). В майке конечно я много раз видел что никто мастер не анимирует, но тогда как всё это сшивается в единую анимацию?
Создаётся скрипт сдвигающий модель относительно её физических параметров, иначе говоря контроллер, в нём ты уже можешь сам завать настройки воспроизведения анимаций, смешивать их или зацикливать. BP и C++ это сделать вполне позволяют(Для игр). В твоём случае проще юзать трековые пути в виде кривых(Для фильма).
А ну если привести аналогию с моушн клипами, то да понимаю. Это наверное легко, ведь в движках это уже реализовано в виде гуя. Понятно.
Красава
Всегда мечтал заняться геймдевом. Проблема в том, что я ничего не умею. Могу только в сценарий и геймдизайн.
А что всех так тянет в геймдэв мне интересно? Почему не анимация?
Потому, что игры — это сразу всё вместе взятое. Там может быть зрелищность от анимации и кинематографа, шикарнейший сюжет от литературы, музыка, само собой. А кроме того, это, пожалуй, самый захватывающий жанр искусства, и он единственный обеспечивает максимальное погружение.
Все перечисленные параметры, особенно погружение в игру — зависят от качества игры
Ну, как-бы ВСЁ зависит от качества. И литература, и анимация.
Тем не менее если от качества литературы/музыки/рисунка зависит мнение о данном творении, то в игре пунктов для оценки качества — много. И их совокупность выражается, как пример, в погружении в игрвой процесс.
И поэтому геймдев — просто охренеть как сложно. Иначе я бы давно попробовал себя в этом деле. Мне хотя бы писать и рисовать нормально научиться.
Мне бы нормально писать скрипты и рисовать текстуры — был бы геймдевом.
Я из программирования знаю только то, что с его помощью можно заставить картинки бегать, сайты работать, а музыку прогружаться. Рисую я пока только месяц-два, так что сценарий и постановка — это единственное, что мне можно доверить.
Скачай кумир и ты поймешь, что значит программировать
#суровость
Кого-чего?
Да, я например, не могу вспомнить ни одной игры, которая бы меня зацепила бы точно также, как недавно прочитанный мною рассказ. Наверное у всех разное восприятие =) А по поводу гэймдэва, тут ведь всё равно придётся заняться чем-то одним, вон например, кто-то вообще всю свою жизнь ригу посвятил =)
тут ведь всё равно придётся заняться чем-то одним
Ну да. Именно поэтому так мало одиночных действительно классных проектов. Это командная работа.
Да, я например, не могу вспомнить ни одной игры, которая бы меня зацепила бы точно также, как недавно прочитанный мною рассказ.
У всех действительно разное восприятие, но здесь зависит также какой рассказ вы прочитали, и какие игры ему противопоставляете. Не всё можно сравнивать. К примеру, Антропология для меня — абсолютный шедевр, но и Dishonored для меня шедевр. Но я даже не могу чётко определить критерии сравнения. Это совсем разные вещи.

Не знаю, как разница в восприятии, но я рекомендую вам такой проект, как Octavia in the underworld cello. Пиксельный двухмерный квест от одного разработчика, но по-моему он вполне может претендовать на звание если не Игра года, то что-то схожее. К сожалению, сейчас доступна только демо-версия 2.0, но разработка идёт.
Да, я немного погорячился, если так подумать, в тех же Космических Рейнджерах есть куча классных мини рассказиков (если конечно так можно назвать квесты =)).
К слову, меня несказанно радует, что сейчас в разработке столько масштабных поняшных игропроектов. Когда они все выйдут престиж фандома значительно вырастет. Как там дела с TGW?
Продвигаются замечательно, игра приобретает необычайный вид!
Радует. На UE4 переходить не собираетесь? Прямо говоря, демка была жуткой. Сколько хотя бы примерно ждать? Полгода? Год? До 2017 успеете?
До РБК, там увидите локацию пустыни с рабочем инвентарем и прочими плюшками. Могу лишь один кадрик показать :)
i.imgur.com/nnc7p33.jpg
Увы я в EquGames человек последний. Хотя по опыту и большинство обгоняю.
Интересно. Ну, удачи. Надеюсь, проект выйдет на высшем уровне. От себя могу только выразить пожелание хорошей длительности. Чем больше часов — тем лучше.
Замечательная статья.
Но есть замечание. Начинать предлагается с достаточно сложных и комплексных сред. UE4 да и Unity — это не игрушки. Полагаю, даже их разработчики не знают всех их возможностей, не говоря уже и о пользователях.
Это я к тому веду, что, на мой взгляд, выбор таких сред в качестве инструмента для обучения может показаться новичку сложным и порядочно деморализовать. Было бы неплохо дополнить повествование примерами более простых движков, которые будут пусть и в меньшей степени, но тоже раскрывать перечисленные в статье темы, такие как кодинг, моделирование и.т.п.
Ну если подумать. Данный софт на самом деле достаточно прост. Мне лично хватило 1 дня чтобы понять все его детали. Думаю и остальным тоже. Документация по движку просто наилучшая из всех что можно представить. Каждая деталь, функция, нод. Описаны. А на форумах скрываются шикарные плагины
>Мне лично хватило 1 дня чтобы понять все его детали
Очень слабо верится. Такие колоссальные продукты нереально изучить за один день. Конечно, если ты — не великий гений. Впрочем, не факт, что даже в таком случае.
Это если _действительно_ подумать.
Впрочем, если речь идет о гуишных функциях редактора — я могу допустить, что по аналогии с другими подобными средами, ты действительно схватил все быстро.
Но гайд-то ты делаешь для новичков в этой сфере. Судить их потенциальные успехи по своим собственным — не самое лучшее дело.
Так что я бы все же добавил краткие описания более простых альтернатив.
Кстати по поводу ретополгии, в принципе, про неё можно забыть. Объясняю. В зебре (ZBrush) есть автоматическая ретопология, я ею постоянно пользуюсь, отличная вещь. В последней версии научилась НЕ делать спиральки! Это ребят, будущее мать её.
При запекании нормалей, или создании анимаций. Лучше вручную ретоположить. Будет более грамотно и не будет лишних сгибов и скосов при сгибании конечностей. Грамотность в сеточке, как для программиста порядок в коде
Ну я даже не знаю что и сказать, мне сеточки у зебры нравятся, особых проблем не припомню. Может размер поликов чудить на сжатиях, это да. Можно и подправить в ручную. Но полностью в ручную ретопить да ну нафиг.
Тык не по полигону-же xD
Да не ладно, я не настаиваю. Свои риги не собирал (ну почти). Всё шо я делал из анимаций, это морфы =)) А там как сам понимаешь, ограничения только на полигонаж =)
:)
Да ладно тебе. Я по полигону всегда ретоп делаю, если нужен зеркальный кольцевой лоу-поли.
В последней версии научилась НЕ делать спиральки!
В предыдущих версиях zRemesher-кистью можно было обозначить места, где нужно кольцо, а не спираль. И только к 4R7 они смогли уладить это дело?

Хотя, казалось бы, там же тупо проджекшн идёт на геометрию. Почему сразу нельзя было кольцами всё ложить.
Контент, контент… И нигде нет даже пары предложений о разработке/планировании, собственно, геймплея. Гейм-дизайнер в моем лице негодует)
А упоминание то есть, хоть и мелкое :D
СпойлерОднако вдохновляющий пост, благодарю.

буду пытаться сделать кьютимарку игродела! :D
Но так как я в данный момент CG специалист(cо стажем работы в 4 года), веду разработку над грядущим проектами: «StarWars: Republic Comando 2»


Таки его собираются делать? Серьезно? Было бы здорово.
Да его разрабатывает команда Nightlight Games. Могу скинуть ссылки на наши оффициальные ресурсы

Группа проекта:
vk.com/swrcommando_2

Группа команды
vk.com/nightlight_games

Сайт команды в разработке (пока не кем не юзается кроме меня xD )
nlg-develop.zz.vc/
Что ж, отлично. Будем ждать.
Хотя концепцию не понял.
Спасибо. Замотивировал. Сам тоже занимаюсь CG, но в мажорных прогах — Майка, Мадбокс, Зебра, Гудини. Блендер установлен, но к Майке так сильно привык, что переучиваться тяжело — руки уже на уровне рефлексов привыкли к комбинациям клавиш и к мел-скриптам.

Раньше тоже думал, что создать игру — не сложнее, чем запилить full-cg-сцену. Сейчас понимаю, что чисто технически создать игру гораздо сложнее, чем спецэффекты для фильма. Очень много возни с ригом и анимацией. Очень много скриптовой писанины. Запекание текстур, грамотно порезать UV-шки. Кошмар же. Даром, что сегодня за топологию можно особо не беспокоиться, дижок схавает всё, переварив в треугольники на автомате. Движки-процедурники типа Эйфории и Эндорфина помогают с анимацией, но… Свои «но» тоже есть :)
Эх… А я вот раздумывал переходить как-раз на Maya… Но после передумал, ибо всё что мне нужно уже было в Blender :)
Парень ты прост лучший! Такая подробная статья, давно хотел найти чтото такое и тут ты! Спасибо, ты сделал просто, очень крутую статью!
Благодарю
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.