Главная » 2016 » Март » 3 » Unreal Engine 4. Разработка 3D / VR Игр №0.
06:41
Unreal Engine 4. Разработка 3D / VR Игр №0.
Этот пост является простым описанием того, что нам понадобится и неким обоснованием почему. В конце будет маленькая история того, как же я попал в эту сферу. Я ни в коем случае не претендую и не говорю, что являюсь каким то невероятным специалистом в этой области, но я в ней работаю и решил поделиться некоторой интересной информацией, которой в рунете либо нет, либо она очень скудна, к тем более, что люди проявили интерес. Ну что ж, начнем.
Как будут строиться посты и проект.

Будет серия постов по работе с UE4. Проект будет комбинацией из Blueprint (Это визуальный скриптинг в UE4. Далее BP) и C++, потому что все же надо показать как это все делается кодом. От BP, в случае с UE, никуда не деться. В итоге он будет использоваться для настроек параметров у того же оружия, написанного на C++ или чего то другого, где без этого не обойтись, например анимаций движения.

Ранее в комментариях я уже писал, что мало информации в рунете по работе с этим движком, нет описания работы с чем то серьезным (ИИ, мультиплеер и т.д.) и практически нет ничего по работе с движком на C++. Ну может я просто плохо искал, тем не менее ни на один вопрос ответов в рунете я не нашел, а все, что находил уже на англоязычных форумах, по большей части, было для BP.

Про BP, что он дает и что в нем удобно или нет, я расскажу в первом посте-уроке.

Мы создадим проект с первого урока и будем с каждым разом его дополнять. Код и контент я буду выкладывать в гуглодиск (возможно еще будет репозиторий в гите). Соответственно, т.к. постов будет много, чтобы не забивать контентом гуглодиск, копия проекта на нем будет всегда от самой последней версии. В исходниках проекта я буду помечать комментариями что делалось в каком посте.

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

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

Нечто важное по работе и требования к системе.
Вам нужен движок Unreal Engine 4.10 + и Visual Studio 2015.

По это ссылке можно получить Visual studio. Выбирайте Community 2015.
Движок можно получить вот ТУТ.
Жмите на «Get Unreal», регистрируйтесь и скачивайте лаунчер. В нем переходите на вкладкуUnreal Engine -> Library и жмите на «Add Version», выберите там 4.10 и нажмитеInstall.

Такая последовательность ссылок не спроста. На некоторых версиях Windows бывает так, что если установить Visual studio после загрузки движка, он может ее не увидеть.

Движок вполне может запуститься на 4 гб ОЗУ DDR2 типа и процессорах времен 775 сокета intel (Core 2 Quad, Core 2 Duo). Скажу сразу, что, в случае C++ и UE4, с таким железом вы познаете муки :) 4 гб маловато, желательно иметь 8. Почему? Посудите сами. Вам нужно использовать одновременно ОС, UE4 и Visual Studio...

Почему я написал, что с тем железом вы познаете муки? Дело в том, что у C++ довольно медлительный компилятор (кстати, еще один плюсик в копилочку Unity, использующего C#, только разводить холивары по теме «Unreal - Unity» давайте не будем :) ), соответственно, чем брутальнее у вас будет процессор, шустрее оперативная память и больше ее в объеме, тем вам будет комфортнее работать. Хорошая видеокарта вам уже понадобится, когда вы будете настраивать графику и собирать уровни, раскидывая разные объекты и системы частиц. Кстати, BP компилируется довольно шустро, но об этом позже. Для запуска уже готовых игр вам достаточно иметь менее мощное железо, чем при их разработке. Вот такие вот пироги…

(Маленькое отступление) Скажем так, у меня был компьютер с Core 2 Quad, GTX 950 (покупалась чтобы можно было иногда протестировать дома интеграцию с Oculus Rift, переехала в новый системник) и 8гб DDR2. Графика, естественно, работала отменно, но вот компиляция проекта в некоторых случаях могла занимать по 10-20 минут (антирекорд 40 минут), а сборка проекта в .exe файл у меня как то раз заняла 2 часа 40 минут, еще и закончилась ошибкой в итоге… Молчу про компиляцию шейдеров. В некоторых случаях, увидев подобную надпись на компьютере со старым железом, можете сходить сварить пельменей на кухню и поесть, а когда вернетесь, эта надпись еще не пропадет :)

В общем, желательно иметь железо где то уровня Core i3 4 (+ - ) поколения и выше. Лучший вариант по цене/производительности - это Core i5 4-5 или 6 поколения. ОЗУ желательно иметь не ниже 8 гб и не ниже DDR3 (кстати, купил на днях 6-го поколения i5 и DDR4, счастья полные штаны, только вот кошелек схуднул…).

По поводу жесткого диска. При запуске проекта в движке, подгрузке текстур, компиляции шейдеров и прочих вещах, желательно иметь SSD (HDD тоже пойдет, но будет не так быстро), он хорошенько так поднимет производительность движка и общую производительность системы в целом.

Пробовал работать на MacBook Pro, там все довольно не плохо (ну кроме графики, естественно). Проверено, одобряю, XCode работает очень и очень достойно, что иногда не скажешь про Visual Studio, когда дело доходит до UE. Mac - это хорошо, конечно, но все же «гробы», которые можно проапгрейдить в любой момент - лучший выбор. Множество интересных плагинов, технологий и прочего делаются для работы с Windows (да тот же VR), ну и как бы дешевле выходит, хоть и железо нужно мощнее, чем для mac os.

Дорого? Да… Курс не радует, но что только не сделаешь для комфортной работы…
Ну, чтобы пост был интереснее, я расскажу историю про то, как же я попал в эту сферу.

В одно время я увлекся разработкой игр. Стало интересно что и как там происходит, начал пытаться что то делать в Unity, смотрел разные уроки, но что то не пошло. Отсутствовала идея, и я вообще не знал с чего нужно начинать. В итоге я осознал, что тут нужно больше знаний, чем у меня было на тот момент, да и нужна команда, ибо 3D-моделлер / аниматор / гейм дизайнер из меня такой себе). В итоге на длительное время ушел в разработку мобильных приложений, где не плохо поднял общий навык программирования и узнал очень много чего, что не освещали в рамках программы университета.

Гулял как то по городу, и заметил вывеску, что вечером того дня будет проходить конференция разработчиков игр по куче интересующих меня вопросов. Ну, чем черт не шутит, дождался и пошел. Познакомился с множеством интересных людей, позадавал вопросы, послушал лекции из программы той конференции, интерес к разработке игр снова проявился. В лекциях рассказывали про различные профессии в сфере разработки игр и как строится процесс в целом. Рассказывали о том, как правильно ставить задачи сотрудникам, которые отвечают за тот или иной тип деятельности в команде (охх, некоторым заказчикам бы на ту конференцию…). Встретил одного человека, который собирал команду разработчиков игр и хотел попробовать что то сделать. Он сказал, что скоро должен приехать ген. дир. одной фирмы, которая как раз работает с VR. Тем временем, пока шла конференция, у нас постепенно набиралась маленькая команда.

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

(К слову, мне тогда еще пришлось заниматься звуковым сопровождением проекта, т.е. я писал различные звуковые эффекты и саундтреки. Урок по работе со звуком в UE тоже будет.)

Через пару дней нам провели экскурсию, показали что и как происходит, разную интересную технику, атракционы и дали прокатиться. В общем, весело провели время и пообщались между собой. Где то через неделю мы получили тему нашего проекта и начали ее с нашим гейм дизайнером всячески развивать. Обдумывали в какой стилистике будет игра, какая будет механика, какие будут противники и т.д. и т.п, короче говоря, составляли дизайн документ. Пока шла разработка, мы успели обкатать несколько разных VR-шлемов, прикручивая их к нашему проекту, что еще сильнее подогревало интерес к этой отрасли. Было много различных споров и очень много разных моментов, вспоминая которые сейчас, можно только посмеяться, ведь решение было прямо перед глазами)

Со временем нам выделили офис в центре города и постепенно мы начали перемещаться туда. Когда начали поджимать сроки, началось самое интересное время. Тогда мы несколько раз оставались в офисе до ночи, решая ту или иную важную проблему. И вот, в день сдачи проекта, я уже сидел в офисе с самого утра и в поте лица прикручивал проект к VR-шлему, делая универсальный вариант элементов интерфейса под обычный и VR-режим игры. Настраивал освещение так, чтобы в шлеме все было хорошо видно. Проект был закончен за 40 минут до назначенного времени встречи для сдачи. Получилась игра, которую мы командной работой полностью написали и нарисовали сами с нуля, при этом еще и с использованием VR-шлема. Наш прожект лид направился в главный офис на демонстрацию, вернулся через несколько часов с хорошими новостями. Проект угодил начальству, получилось довольно не плохо. Позже нас объединили со второй командой стажеров и выдали новый и более сложный проект, но уже в штате.

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

Это та самая работа, где ты и работаешь, и играешь! Чтобы что то отладить или как то сбалансировать сложность того или иного момента в игре, что то настроить или расставить на уровне, тебе нужно играть :) Решаемые проблемы довольно интересны, требуют тех самых знаний физики, алгебры и мат. анализа, про которые многие на начальных курсах обучения в университете говорили что то вроде: «да мне все-равно это никогда не пригодится». Нужно осуществлять различные расчеты векторов в трехмерном пространстве или некоторой плоскости, рассчитывать как правильно должно стрелять оружие того или иного типа, чтобы попадать в зону прицеливания игрока и т.д. и т.п.

В общем, работа занимательная и во многом интересная.

Надеюсь, что серия постов многим прийдется по вкусу.

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

Спасибо за внимание :)
Автор: 
Mealtris 
Категория: Другие новости | Просмотров: 852 | Добавил: XemorDio | Рейтинг: 0.0/0
Всего комментариев: 0
avatar