Разработка игр на unreal engine 4 за 24 часа
Разработка игр на unreal engine 4 за 24 часа
Разработка игр на Unreal Engine 4 за 24 часа
О книге
Разработка игр на Unreal Engine 4 за 24 часа.
Всего за 24 урока, каждый продолжительностью 1 час или меньше.
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считанные часы вы научитесь создавать эффекты, пользоваться визуальным проектированием, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
Пошаговые инструкции познакомят вас с часто встречающимися задачами разработки в Unreal Engine 4.
Практические, реальные примеры продемонстрируют, как применять навыки.
Контрольные вопросы и упражнения помогут вам протестировать свои знания и расширить навыки.
Примечания и советы подскажут комбинации клавиш и решения.
Клинтон Крамплер, главный художник окружающей среды в Microsoft Studio, был художником в компании Battlecry Studios (Bethesda), KIXEYE и Army Game Studio. Он специализируется на артах окружающей среды и разработке шейдеров.
— Организуйте удобное рабочее пространство для создания игры.
— Импортируйте 3D-модели и отредактируйте меши в Static Mesh Editor.
— Вдохните жизнь в персонажей и монстров c Persona Edito.r
— Создайте игровой мир и разделите его на уровни.
— Сгенерируйте ландшафт и растительность c Foliage System.
— Настройте правильные материалы и освещение.
— Добавьте звук с Unreal Sound Cue Editor.
— Настройте идеальную симуляцию физических процессов Unreal.
— Реализуйте адекватное взаимодействие с игроком c UMG UI Designer.
— Спроектируйте событийно-управляемый сценарий c Blueprint.
— Настройте систему спавна акторов.
— Оптимизируйте игру для мобильных устройств.
— Подготовьте игру к развёртыванию.
Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете, как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Linux, Интернета или для всех сразу!
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считаные часы вы научитесь создавать эффекты, использовать приемы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
Разработка игр на Unreal Engine 4 за 24 часа
Новинки раздела
В книге «Идеальная работа. Программирование без прикрас» легендарный Роберт Мартин (Дядюшка Боб) создал исчерпывающее руководство по хорошей работе для каждого программиста. Роберт Мартин объединяет дисциплины, стандарты и вопросы этики, необходимые для. В книге «Идеальная работа. Программирование без прикрас» легендарный Роберт Мартин (Дядюшка Боб) создал исчерпывающее руководство по хорошей работе для каждого программиста. Роберт Мартин объединяет дисциплины, стандарты и вопросы этики, необходимые для быстрой и продуктивной разработки надежного, эффективного кода, позволяющего испытывать гордость за программное обеспечение, которое вы создаете каждый день.
Роберт Мартин, автор бестселлера «Чистый код», начинает с прагматического руководства по пяти основополагающим дисциплинам создания программного обеспечения: разработка через тестирование, рефакторинг, простой дизайн, совместное программирование и тесты. Затем он переходит к стандартам — обрисовывая ожидания «мира» от разработчиков программного обеспечения, рассказывая, как часто различаются эти подходы, и помогает вам устранить несоответствия. Наконец, он обращается к этике программиста, давая десять фундаментальных постулатов, которым должны следовать все разработчики. Скрыть Показать весь текст
Александр Генис (“Довлатов и окрестности”, “Обратный адрес”, “Камасутра книжника”) обратился к новому жанру — календарь, или “святцы культуры”. Дни рождения любимых писателей, художников, режиссеров, а также радио, интернета и айфона он считает личными. Александр Генис (“Довлатов и окрестности”, “Обратный адрес”, “Камасутра книжника”) обратился к новому жанру — календарь, или “святцы культуры”. Дни рождения любимых писателей, художников, режиссеров, а также радио, интернета и айфона он считает личными праздниками и вставляет в список как общепринятых, так и причудливых торжеств.
Генис не соревнуется с «Википедией» и тщательно избегает тривиального, предлагая читателю беглую, но оригинальную мысль, неожиданную метафору, незамусоленную шутку, вскрывающее суть определение. Постепенно из календарной мозаики складывается панно, на котором без воли автора отразились его черты.
Для тех, кто хочет быть лучшим! Оригинальный текст и перевод на страницах одной книги — это эффективный способ усовершенствовать знание английского языка. Фрэнсис Скотт Фицджеральд — американский классик мировой литературы. Писатель, ярко и беспристрастно. Для тех, кто хочет быть лучшим!
Оригинальный текст и перевод на страницах одной книги — это эффективный способ усовершенствовать знание английского языка.
Фрэнсис Скотт Фицджеральд — американский классик мировой литературы. Писатель, ярко и беспристрастно отразивший безумную жизнь 20-х годов. Он и сам был плотью от плоти той легендарной эпохи. Но эксцентричность и внешняя позолота канули в прошлое, и в настоящем остались его бессмертные книги.
«Великий Гэтсби» — самый известный роман Фрэнсиса Фицджеральда, ставший символом «века джаза».
Америка, 1925 г., время «сухого закона» и гангстерских разборок, ярких огней и яркой жизни. Но для Джея Гэтсби воплощение американской мечты обернулось настоящей трагедией. А путь наверх, несмотря на славу и богатство, привел к тотальному крушению. Ведь каждый из нас в первую очередь стремится не к материальным благам, а к любви, истинной и вечной… Скрыть Показать весь текст
Лучшие продажи раздела
Евгений Семенович Штейнер – японист, кандидат филологических наук, доктор искусствоведения. Работал в ГМИИ им. А. С. Пушкина, преподавал и занимался исследовательской работой в университетах Москвы, Иерусалима, Токио, Иокогамы, Нью-Йорка, Манчестера и Лондона. Евгений Семенович Штейнер – японист, кандидат филологических наук, доктор искусствоведения. Работал в ГМИИ им. А. С. Пушкина, преподавал и занимался исследовательской работой в университетах Москвы, Иерусалима, Токио, Иокогамы, Нью-Йорка, Манчестера и Лондона. С 2012 профессор Школы Востоковедения Национального исследовательского университета «Высшая школа экономики» (Москва). Автор 15 книг, которые выходили в России, США, Великобритании и Германии. Книга Е. Штейнера «Манга Хокусая: энциклопедия старой японской жизни в картинках» (Санкт-Петербург: Петербургское востоковедение, 2016, 4 тт.) получила в 2017 году премии «Книга Года» и «Просветитель» (в спецноминации).
Кацусика Хокусай (1760–1849) – один из самых известных японских художников периода Эдо. На протяжении всей своей жизни он выпускал в свет альбомы гравированных рисунков под названием «Манга». В пятнадцати выпусках с четырьмя тысячами фигур и мотивов Хокусай представил энциклопедию старой Японии в картинках – начиная от. Скрыть Показать весь текст
Эта книга Роберта Макки завершает его трилогию, посвященную искусству сторителлинга. После «Истории на миллион долларов» и «Диалога» один из самых авторитетных специалистов по сценарному мастерству рассказывает, как именно следует подходить к созданию. Эта книга Роберта Макки завершает его трилогию, посвященную искусству сторителлинга. После «Истории на миллион долларов» и «Диалога» один из самых авторитетных специалистов по сценарному мастерству рассказывает, как именно следует подходить к созданию персонажа в произведении — будь то роман, пьеса или фильм. Перед читателем—подробное пособие и блистательный мастер-класс, в котором виртуозно соединились теория и практика. Наряду с обращением к классической традиции прошлого, в том числе к древнегреческому театру и поэзии, в книге представлены многочисленные примеры из литературы, драматургии и кинематографа последних лет.
Автор скрупулезно исследует законы создания и разработки персонажей, придания им глубины и объема, сложности и многогранности. На примерах из разных жанров показывает, как главные герои — в рамках ансамбля действующих лиц — взаимодействуют с второстепенными и вспомогательными персонажами.
Творческий процесс индивидуален, и готовых рецептов нет. Но те знания. Скрыть Показать весь текст
Как получить бонусы за отзыв о товаре
Сделайте заказ в интернет-магазине.
Напишите развёрнутый отзыв от 300 символов только на то, что вы купили.
Дождитесь, пока отзыв опубликуют. Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя.
Можно писать неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в первой десятке.
Отзывы 1
Была бы хорошая книга для быстрого старта в UE, если бы не халтура переводчика
В целом книга полезная, особенно новичкам, дает общее очень поверхностное представление об UE.
В наших магазинах
Подписка на новости
2011—2022, ООО «Новый Книжный Центр». Перепечатка материалов сайта возможна только с указанием активной ссылки на сайт «Читай–город».
Разработка игр на Unreal Engine 4 за 24 часа
Посоветуйте книгу друзьям! Друзьям – скидка 10%, вам – рубли
Эта и ещё 2 книги за 199 ₽
Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете, как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Linux, Интернета или для всех сразу!
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считаные часы вы научитесь создавать эффекты, использовать приемы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
С этой книгой читают
Отзывы 3
Книга представляет из себя не учебник, а скорее справочник.
Никакой постепенной подачи информации и её закрепления практикой тут нет, зато описана каждая кнопка и каждая менюшка интерфейса. В процессе чтения вы
узнаёте множество всего, вот только не будете представлять что с этим делать, ибо весь материал подаётся кусками, вырванными из контекста.
Страница 100+:вы узнаете какие типы света есть, как всё это менять, настраивать чтобы … да, осветить ваш единственный куб на сцене, ибо это так важно.
Страница 400+: вы узнаете всё о блюпринтах, каждую функцию, каждую переменную, всё всё всё что только можно, вот только у вас всё ещё будет сцена с кубом по центру и вы всё ещё не будуте представлять как хоть его сдвинуть куданить или повернуть.
Вывод по книге: если хотите чему то научиться с нуля – нет, если уже шарите в UE4 и хотите уточнить какой то момент – да.
Структурированная базовая информация обо всем движке в одной книге!
Это поможет быстрее разобраться в основах движка и после начать глубокое изучение инструмента по официальной документации.
Точно стоит своих денег, для тех, кто хотел бы войти в мир создания игр и не только или продолжить попытки входа – как я. Движок позволяет на много больше, чем просто создание игр, поэтому хочется разобраться в этом всём и начать создавать собственные проекты высочайшего качества! Основная сложность – это придумать «качество», а движок поможет его реализовать причём, любой сложности 🙂
Первый кто предзаказал в РФ и поэтому поводу дали скидку в 25% на покупку следующей из этой серии. Ждал пол года с момента предзаказа когда наконец-то привезут в РФ.
Данная книга скорее представляет из себя (соглашусь с автором выше) справочник не жили руководство на подобие Learning C++ by Creating Games with UE4 от Уильяма Шерифа или же Blueprints Visual Scripting for Unreal Engine: The faster way to build games using UE4 Blueprints от Брендона Сеуеля, но их книги не были когда либо и кем либо как-то переведены на русский.
Но чем хороша книга это тем что если вы решили изучать геймдев с анриала то книга будет как нельзя кстати. Потому что в ней достаточно хорошо и понятно переведены все аспекты что есть. Но на данный момент у книги есть устаревшие инструменты у которых после версий 4.23 уже мало кем используются.
Разработка игр на Unreal Engine 4 за 24 часа
Посоветуйте книгу друзьям! Друзьям – скидка 10%, вам – рубли
Эта и ещё 2 книги за 199 ₽
Отзывы 3
Книга представляет из себя не учебник, а скорее справочник.
Никакой постепенной подачи информации и её закрепления практикой тут нет, зато описана каждая кнопка и каждая менюшка интерфейса. В процессе чтения вы
узнаёте множество всего, вот только не будете представлять что с этим делать, ибо весь материал подаётся кусками, вырванными из контекста.
Страница 100+:вы узнаете какие типы света есть, как всё это менять, настраивать чтобы … да, осветить ваш единственный куб на сцене, ибо это так важно.
Страница 400+: вы узнаете всё о блюпринтах, каждую функцию, каждую переменную, всё всё всё что только можно, вот только у вас всё ещё будет сцена с кубом по центру и вы всё ещё не будуте представлять как хоть его сдвинуть куданить или повернуть.
Вывод по книге: если хотите чему то научиться с нуля – нет, если уже шарите в UE4 и хотите уточнить какой то момент – да.
Структурированная базовая информация обо всем движке в одной книге!
Это поможет быстрее разобраться в основах движка и после начать глубокое изучение инструмента по официальной документации.
Точно стоит своих денег, для тех, кто хотел бы войти в мир создания игр и не только или продолжить попытки входа – как я. Движок позволяет на много больше, чем просто создание игр, поэтому хочется разобраться в этом всём и начать создавать собственные проекты высочайшего качества! Основная сложность – это придумать «качество», а движок поможет его реализовать причём, любой сложности 🙂
Первый кто предзаказал в РФ и поэтому поводу дали скидку в 25% на покупку следующей из этой серии. Ждал пол года с момента предзаказа когда наконец-то привезут в РФ.
Данная книга скорее представляет из себя (соглашусь с автором выше) справочник не жили руководство на подобие Learning C++ by Creating Games with UE4 от Уильяма Шерифа или же Blueprints Visual Scripting for Unreal Engine: The faster way to build games using UE4 Blueprints от Брендона Сеуеля, но их книги не были когда либо и кем либо как-то переведены на русский.
Но чем хороша книга это тем что если вы решили изучать геймдев с анриала то книга будет как нельзя кстати. Потому что в ней достаточно хорошо и понятно переведены все аспекты что есть. Но на данный момент у книги есть устаревшие инструменты у которых после версий 4.23 уже мало кем используются.
Куксон Арам, Даулингсока Райан, Крамплер Клинтон: Разработка игр на Unreal Engine 4 за 24 часа
О товаре
Разработка игр на Unreal Engine 4 за 24 часа.
Всего за 24 урока, каждый продолжительностью 1 час или меньше.
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считанные часы вы научитесь создавать эффекты, пользоваться визуальным проектированием, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
Пошаговые инструкции познакомят вас с часто встречающимися задачами разработки в Unreal Engine 4.
Практические, реальные примеры продемонстрируют, как применять навыки.
Контрольные вопросы и упражнения помогут вам протестировать свои знания и расширить навыки.
Примечания и советы подскажут комбинации клавиш и решения.
Клинтон Крамплер, главный художник окружающей среды в Microsoft Studio, был художником в компании Battlecry Studios (Bethesda), KIXEYE и Army Game Studio. Он специализируется на артах окружающей среды и разработке шейдеров.
— Организуйте удобное рабочее пространство для создания игры.
— Импортируйте 3D-модели и отредактируйте меши в Static Mesh Editor.
— Вдохните жизнь в персонажей и монстров c Persona Edito.r
— Создайте игровой мир и разделите его на уровни.
— Сгенерируйте ландшафт и растительность c Foliage System.
— Настройте правильные материалы и освещение.
— Добавьте звук с Unreal Sound Cue Editor.
— Настройте идеальную симуляцию физических процессов Unreal.
— Реализуйте адекватное взаимодействие с игроком c UMG UI Designer.
— Спроектируйте событийно-управляемый сценарий c Blueprint.
— Настройте систему спавна акторов.
— Оптимизируйте игру для мобильных устройств.
— Подготовьте игру к развёртыванию.
Аннотация
Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете, как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Linux, Интернета или для всех сразу!
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считаные часы вы научитесь создавать эффекты, использовать приемы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
Первое руководство для начинающих по созданию игр на UE 4 на русском языке
Издательство БОМБОРА представляет новую книгу по проектированию игр с помощью движка
Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android и Linux.
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом
Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка.
За считанные часы даже новичок научится создавать эффекты, пользоваться визуальным проектированием, реализовывать физику, в том числе вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
Практические задачи, разобранные в книге:
Ольга Максименкова, к.т.н., научно-учебная лаборатория интеллектуальных систем и структурного анализа факультета компьютерных наук НИУ ВШЭ: «Авторы в сжатой форме самоучителя создали замечательное и емкое пособие для быстрого старта по разработке компьютерных игр в Unreal Engine 4. Уроки подробны, прекрасно иллюстрированы и спроектированы в лучших традициях практикумов, а тематические эксперименты, вопросы и задачи делают книгу настоящей находкой.»
Об авторах
Арам Куксон — профессор кафедры интерактивного дизайна и разработки игр (ITGM, Interactive Design and Game Development) Колледжа арта и дизайна Саванны (SCAD, Savannah College of Art and Design). Он уже 15 лет преподает игровую графику и гейм-дизайн на основе технологии Unreal Engine.
Райан Даулингcока — технический художник франшизы Gears of War, использует Unreal Engine 4 для конструирования систем разрушений, растительности, визуальных эффектов и многого другого.
Клинтон Крамплер работал художником в Battlecry Studios (Bethesda), KIXEYE и Army Game Studio. Он специализируется на артах окружающей среды и разработке шейдеров.
Предзаказ на книгу уже открыт!
Предварительная дата выхода — 24.10.2019
По традиции — эксклюзивный подарок для наших читателей — глава из книги:
«14 ЧАС. Введение в систему визульного программирования блюпринтов»
В России издадут книгу «Разработка игр на Unreal Engine 4 за 24 часа» при поддержке Epic Games Статьи редакции
Перевод руководства увидит свет в 2019 году.
Издательство «Бомбора» (бывшее «Эксмо Нон-фикшен») в 2019 году выпустит на русском языке книгу «Разработка игр на Unreal Engine 4 за 24 часа» (Unreal Engine 4 Game Development in 24 Hours, Sams Teach Yourself).
Партнёром издательства стала компания Epic Games, представители которой вместе с сообществом Unreal Engine помогут перевести оригинал. Часть напечатанного тиража Epic планирует распространять на специализированных выставках и мероприятиях.
Книга почти в 500 страниц поделена на 24 главы-урока, в каждой из которых подробно освещается тот или иной аспект разработки: от работы со сценами, звуком и освещением и до адаптации для мобильных устройств. Оригинал вышел в 2016 году также при поддержке Epic. Содержание по главам и ознакомительный фрагмент доступны на Amazon.
вспомнилась классика почему-то
Я бы лучше почитал что-нить подобное от Беседки. Так как тему они в Фоле 76 раскрыли полностью. Игры которые создаются за 24 часа.
Я думаю, что это будет обновленное издание
Комментарий удален модератором
Нужно только выбрать какую ногу отрезать.
А прикинь, в книге то же самое, что и на форуме 🙂
Какой ещё русский форум анрила оО ты где такой нашел?
Официальный форум только на английском. Есть неофициальный чат в телеграмме русский чат и группа в ВК.
В России издадут книгу «Разработка игр на Unreal Engine 4 за 24 часа» при поддержке Epic Games Статьи редакции
Перевод руководства увидит свет в 2019 году.
Издательство «Бомбора» (бывшее «Эксмо Нон-фикшен») в 2019 году выпустит на русском языке книгу «Разработка игр на Unreal Engine 4 за 24 часа» (Unreal Engine 4 Game Development in 24 Hours, Sams Teach Yourself).
Партнёром издательства стала компания Epic Games, представители которой вместе с сообществом Unreal Engine помогут перевести оригинал. Часть напечатанного тиража Epic планирует распространять на специализированных выставках и мероприятиях.
Книга почти в 500 страниц поделена на 24 главы-урока, в каждой из которых подробно освещается тот или иной аспект разработки: от работы со сценами, звуком и освещением и до адаптации для мобильных устройств. Оригинал вышел в 2016 году также при поддержке Epic. Содержание по главам и ознакомительный фрагмент доступны на Amazon.
вспомнилась классика почему-то
Я бы лучше почитал что-нить подобное от Беседки. Так как тему они в Фоле 76 раскрыли полностью. Игры которые создаются за 24 часа.
Я думаю, что это будет обновленное издание
Комментарий удален модератором
Нужно только выбрать какую ногу отрезать.
А прикинь, в книге то же самое, что и на форуме 🙂
Какой ещё русский форум анрила оО ты где такой нашел?
Официальный форум только на английском. Есть неофициальный чат в телеграмме русский чат и группа в ВК.
🎮 Топ-10 книг по геймдеву и о геймдеве на русском языке
Denver 83
1. Разработка игр на Unity 2018 за 24 часа (Эксмо, 2020 г.)
Автор: Майк Гейг.
Если вы только узнали о Unity и не представляете как его изучать, эта книга для вас. Всего за 24 урока она позволит освоить популярный игровой движок версии 2018. Используя пошаговый подход, автор затрагивает все важные темы: от азов до сложной игровой физики, анимации и методов развертывания на мобильных устройствах. Каждый урок основан на пройденном материале и дает читателю основу для следующих занятий. Книга также содержит практические примеры и тесты с упражнениями для закрепления полученных знаний.
2. Разработка игр на Unreal Engine 4 за 24 часа (Эксмо, 2019 г.)
Авторы: Арам Куксон, Райан Даулингсока, Клинтон Крамплер.
Конечно ни одна книга не позволит изучить Unreal Engine 4 за 24 часа, однако авторы написали отличный обзор движка и дали читателям возможность лучше познакомиться с основами работы с ним. Книга рассказывает об интерфейсе Unreal Engine 4, его рабочих процессах, мощных редакторах и других инструментах. Прочитав ее, вы научитесь создавать эффекты, писать сценарии и реализовывать физику.
3. Unity в действии. Мультиплатформенная разработка на C# (Питер, 2019 г.)
Автор: Джозеф Хокинг.
Книга посвящена взаимодействию платформы Unity и языка программирования C#. Из нее читатели узнают о необходимых инструментах для создания игры и смогут понять базовые концепции ее разработки. Каждый пример освещает определенные функции Unity: по мере прочтения вы приобретете всесторонние навыки для создания 2D- и 3D-проектов.
4. Unity и C#. Геймдев от идеи до реализации (Питер, 2020 г.)
Автор: Джереми Гибсон Бонд.
Книга обобщает практический опыт создания игр с использованием современных методов и инструментов. Она проста для понимания и полезна для начинающих разработчиков. П рофессор Джереми Гибсон Бонд более десяти лет преподавал игровой дизайн и создавал популярные игры. В своей работе он освещает наиболее важные темы: теорию игрового дизайна, быстрое итеративное прототипирование и практическое программирование.
5. Геймдизайн (Альпина Паблишер, 2019 г.)
Автор: Джесси Шелл.
Книга показывает весь процесс проектирования и объясняет фундаментальные принципы правильного игрового дизайна, рассматривая проблемы с максимально возможного количества точек зрения. Автор задает читателю более 100 насущных вопросов, которые нужно будет решить в процессе создания приложения.
6. Изучаем C++ через программирование игр (Питер, 2021 г.)
Автор: Майкл Доусон.
Книга подробно объясняет базовые темы, необходимые для начала работы с С++ с нуля. Автор использует альтернативный подход к изучению программирования: вместо скучных математических задачек он разбирает основы языка на примере разработки игр, делая нелегкий предмет более интересным.
7. Unreal Engine VR для разработчиков (Эксмо, 2019 г.)
Автор: Митч Маккефри.
Известный разработчик объединяет передовой опыт и общие парадигмы взаимодействия Unreal Engine и VR в одной книге. Протестированные им примеры содержат пошаговые инструкции по правильной работе с этим движком. Описанные методы помогут вам овладеть необходимыми в индустрии разработки игр знаниями.
8. Разработка игр и теория развлечений (ДМК, 2018 г.)
Автор: Рэф Костер.
Книга знакомит читателей с основами современных видеоигр. Ветеран геймдизайна Рэф Костер внимательно изучил концепцию развлечений и почему этот элемент – самый важный в любой игре.
9. Повелители DOOM. Как два парня создали культовый шутер и раскачали индустрию видеоигр (Эксмо, 2019 г.)
Автор: Дэвид Кушнер.
Книгу стоит прочесть всем интересующимся ранними этапами развития компьютерных игр.
10. Кровь, пот и пиксели (Эксмо, 2019 г.)
Автор: Джейсон Шреер.
Автор отправляет читателей за кулисы разработки видеоигр, где может трудиться тысяча перегруженных работой аутсайдеров или одинокий гений-компьютерщик. Книга рассказывает о художественных проблемах, технических возможностях и требованиях игрового рынка. Автор показывает, что доведение любой игры до завершения – это чудо.
Книга будет интересна не только потенциальным разработчикам, но и любителям компьютерных игр. Это отличный способ заглянуть по другую сторону монитора и сделать выводы о том, как сложно заставить набор пикселей на экране меняться в задуманном направлении.
Если вы не увидели еще одну достойную книгу по теме в этой десятке, не стесняйтесь рекомендовать ее в комментариях. Если вы читали перечисленные книги, дополните описания – нам важно ваше мнение.
Разработка игр на Unreal Engine 4 за 24 часа
Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете, как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Linux, Интернета или для всех сразу!
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считаные часы вы научитесь создавать эффекты, использовать приёмы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в…
Серия: | Мировой компьютерный бестселлер. Геймдизайн |
Издательство: | Эксмо |
Лучшая подборка с книгой
GameDev
20 апреля 2020 г.
Перевод: Михаил Райтман
Год издания: 2019
Мягкий переплет, 528 стр.
Тираж: 2000 экз. (1-е издание)
Формат: 70х100/16 (163х235 мм)
Разработка игр на Unreal Engine 4 за 24 часа
Может у кого-нибудь имеется в формате PDF/FB2 книга:
«Разработка игр на Unreal Engine 4 за 24 часа» Арам Куксон, Клинтон Крамплер, Райан Даулингсока
m1dn1ght
за кусок дерева с поверхностной информацией ну да совсем не конячий, там вон по 700 целый курс создания перса для игры от хай поли до лоу с примерами файлами 20гигов видео.
Не знаю зачем книги до сих пор печатают с такой лапшой, из книжки только поверхностно можно что то узнать но не как игру создать и продать ее что важнее.
Не ужели на сайте анриала меньше инфомрации в хелпе и без примеров?
Электронная книга «Разработка игр на Unreal Engine 4 за 24 часа»
О книге
Разработка игр на Unreal Engine 4 за 24 часа.
Всего за 24 урока, каждый продолжительностью 1 час или меньше.
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считанные часы вы научитесь создавать эффекты, пользоваться визуальным проектированием, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
Пошаговые инструкции познакомят вас с часто встречающимися задачами разработки в Unreal Engine 4.
Практические, реальные примеры продемонстрируют, как применять навыки.
Контрольные вопросы и упражнения помогут вам протестировать свои знания и расширить навыки.
Примечания и советы подскажут комбинации клавиш и решения.
Клинтон Крамплер, главный художник окружающей среды в Microsoft Studio, был художником в компании Battlecry Studios (Bethesda), KIXEYE и Army Game Studio. Он специализируется на артах окружающей среды и разработке шейдеров.
— Организуйте удобное рабочее пространство для создания игры.
— Импортируйте 3D-модели и отредактируйте меши в Static Mesh Editor.
— Вдохните жизнь в персонажей и монстров c Persona Edito.r
— Создайте игровой мир и разделите его на уровни.
— Сгенерируйте ландшафт и растительность c Foliage System.
— Настройте правильные материалы и освещение.
— Добавьте звук с Unreal Sound Cue Editor.
— Настройте идеальную симуляцию физических процессов Unreal.
— Реализуйте адекватное взаимодействие с игроком c UMG UI Designer.
— Спроектируйте событийно-управляемый сценарий c Blueprint.
— Настройте систему спавна акторов.
— Оптимизируйте игру для мобильных устройств.
— Подготовьте игру к развёртыванию.
Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете, как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Linux, Интернета или для всех сразу!
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считаные часы вы научитесь создавать эффекты, использовать приемы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами.
Относительно комплексная игра на UE4 в одно лицо с нуля до релиза в Steam. Без кода
Всем привет! Я Алексей. Работаю в геймдеве днём и по вечерам делаю свои игры. Раньше нанимал по одному программисту и артисту, платил им, и мы таким образом сделали 2 игры и одно приложение. Люблю UE4, прототипировал потихоньку на блупринтах. Но сам от начала и до релиза до этого игры не делал.
В начале 2021 года я решил провести эксперимент: смогу ли я в свободное время за не более чем 6 месяцев сделать игру водиночку, не привлекая других людей и, что важно, не используя код?
Эксперимент завершился успешно. Игра висит в coming soon на стиме и ждёт запланированного релиза 21 мая 2021 года:
Я точно знаю, что моих скиллов достаточно, чтобы собрать игру по темплейту или сделать гиперказуалку. Но я решил для себя, что эта игра будет:
Так как я решил не нанимать артистов и упростить себе разработку, я использовал немалое количество контента с маркета один плагин.
Все остальное я забирал или покупал на UE4 Marketplace.
Потому что я по неопытности решил, что будет проще все игровые режимы (меню, метагейм между забегами, непосредственно геймплейную фазу) делать на одной карте.
Не делайте так, это сильно усложняет жизнь.
Но для меня такой подход был невозможен. Поэтому на лоуде я не выгружаю из сейва значения статов, а активирую перки и всё пересчитываю заново. С этим было связано какое-то просто исполинское количество багов. Я, по правде, рассчитываю, что не выловил их все. Буду собирать багрепорты от игроков.
Очень интересно было делать скиллы и перки, проблемы были с теми, которые триггерят больше одного эффекта (Shatter, который бьет и снижает броню, мать твою, приветствую тебя).
Как я писал выше, тикет на игру у меня уже был куплен, но там всё было под готовлено под так и не выпущенный в Steam проект. Мы хотели запустить на стим порт одной из моих мобильных игр. Но решили, что это будет попросту неэтично, а переделывать игру под ПК нормально не хотелось, она коммерчески провалилась.
Написал новый реквест в стим, на следующий день они поменяли мне игру на платную. Сделали быстро и без проблем, так как игра еще не зарелижена. В противном случае нужно было бы еще и анонс писать и проходить модерацию. После этого изменения я смог убрать чеклистовую ошибку и игра оказалась готовой к появлению в Steam.
Сейчас нужно выждать две недели в статусе ‘coming soon’ перед тем, как игру можно будет купить.
3 месяца времени. Уложился быстрее, чем запланированные полгода. Делал по вечерам после работы и на выходных.
Профессия Разработчик игр на Unreal Engine 4
Научитесь создавать игры с нуля на Blueprints и C++, разберётесь в командной разработке, ведении документации и добавите 4 игры в портфолио.
Трейлер
На рынке не хватает разработчиков игр на Unreal Engine 4
общий объём игровой индустрии в 2019 году
зарплата начинающего специалиста
Кому подойдёт этот курс
Тем, кто всегда мечтал делать игры
Никогда не писали код? Не страшно, ведь в Unreal Engine 4 большую часть программной логики можно сделать в визуальном редакторе. Когда освоите это, научим хардкорному программированию.
Начинающим программистам в поиске специализации
Создадите несколько игр на движке UE4. Узнаете, как работать с моделями, камерой, анимацией и эффектами, управлением, напишете клиент-серверную часть мультиплеерной игры. Стартуете с позиции middle-разработчика.
Опытным разработчикам, которые хотят уйти в геймдев
Познакомитесь с возможностями движка, освоите C++ в UE4, научитесь программировать игровой AI и другие технически сложные вещи. Поймёте, как работает геймдев-команда.
Чему вы научитесь
Создавать игры от и до
От прототипа до программных спецэффектов, анимации, игровой физики, AI и написания клиент-серверной части.
Программировать на Unreal Engine 4 Blueprints
Создавать программную логику с помощью визуального редактора движка UE4.
Писать на С++ в контексте Unreal Engine 4
Владеть одним из самых актуальных языков программирования, применимого не только в разработке игр.
Понимать клиент-серверное взаимодействие в UE4
Создавать мультиплеерные игровые проекты: кооперативные игры и большие MMO.
Работать с системами контроля версий
Вести проекты в Git/SVN/Perforce и других популярных CVS. Это необходимый навык любого разработчика.
Работать в команде
Понимать регламенты, уметь пользоваться менеджерами задач, эффективно общаться с другими членами команды.
Практическая лаборатория по разработке игр Gamebox
Бесплатно присоединяйтесь к комьюнити лучших студентов геймдев-направления. Вы получите:
• Навыки командной разработки.
• Опыт разработки своих игр и выполнения задач от геймдев-студий.
• Проекты в портфолио.
• Связи с представителями игровой индустрии.
Трудоустроим или вернём деньги
Вас ждёт индивидуальная поддержка HR-специалиста. Вместе вы составите резюме, подготовите портфолио и разработаете карьерный план, который поможет найти работу быстрее. Сможете выбрать привлекательные вакансии и получите приоритет перед другими соискателями.
Если вы не выйдете на работу, мы вернём вам деньги за курс*.
Чем вам поможет Центр карьеры:
Резюме
Проведём онлайн-встречу, где оценим ваши сильные стороны, навыки и профессиональный опыт. Поможем оформить профиль на сайтах с вакансиями и разработать привлекательное резюме, которое точно впечатлит работодателей.
Индивидуальный карьерный план
Проведём онлайн-консультацию, определим ваши цели и расскажем, как их добиться. Сформируем индивидуальный путь вашего развития в профессии. Вы узнаете, где искать работу и какие навыки развивать, чтобы продвинуться в карьере.
Партнерские вакансии
У вас будет доступ к закрытому чату с вакансиями наших партнёров. Вы сможете выбрать подходящие предложения, а консультант поможет написать сопроводительное письмо и подготовиться к собеседованию. Вашу кандидатуру рассмотрят в числе первых.
Оформление портфолио
Расскажем, как создать продающее портфолио. Вместе выберем привлекательные работы и отдадим на ревью эксперту. Поможем оформить проекты так, что их по достоинству оценят работодатели.
Карьерные консультации
Консультанты ответят на ваши вопросы о карьере, подготовят к собеседованиям и соберут обратную связь от работодателей. Вы узнаете, как вести себя на интервью и избежать ошибок при поиске работы. Сможете участвовать в карьерных воркшопах и вебинарах.
Почему мы уверены в вашем трудоустройстве?
Определяем потребности рынка
Мы тщательно анализируем профессии, в которых помогаем с трудоустройством: опрашиваем специалистов, оцениваем вакансии, потребность в кандидатах и доступность профессии для новичков.
Даём качественные знания
Помогаем получить навыки, которые необходимы здесь и сейчас. Все спикеры практикующие специалисты, а их знания востребованы на рынке.
Поддерживаем на старте карьеры
Наши консультанты контролируют каждый шаг на пути к вашей карьере. Они помогают избежать ошибок и спланировать профессиональный путь.
1300 пользователей Skillbox уже трудоустроились в 2021 году
Александр Жигалов 23 года
Светлана Макарова 43 года
Любовь Потапкина 30 лет
Юрист Менеджер проектов
Михаил Булгаков 32 года
Валентина Котельникова 30 лет
Динара Хисметуллова 32 года
Виктория Сержанова 32 года
Люди, которые изменили жизнь благодаря Skillbox
Пользователи Skillbox осваивают новые профессии. Строят карьеру, меняют жизнь и обретают себя. У вас тоже получится.
Отзывы работодателей
Юлия Ильяева
Кандидаты из Skillbox всегда отличаются своей высокой мотивацией, поэтому мы с радостью приглашаем их на стажировки и предлагаем работу. Уже несколько раз мы принимали на junior-позиции участников курса «Профессия Event-менеджер».
Максим Зубцов
Skillbox подбирают кандидатов с горящими глазами и желанием развиваться. Например, руководитель нашего SEO-отдела когда-то был новичком, с которым мы встретились благодаря Центру карьеры.
Роман Горбачёв
Когда нас пригласили спикерами в Skillbox, мы решили: это отличный шанс пополнить команду талантливыми специалистами. Сейчас у нас работают несколько дизайнеров, и мы ими очень довольны.
Ольга Новодворская
Сотрудничество со Skillbox это гарантия, что мы получим будущих сотрудников с определёнными знаниями. Новички, которые пришли к нам, выросли и приблизились к middle-уровню спустя 8 месяцев.
Богдан Пилипенко
Skillbox помогает найти инициативных новичков, которым интересны простые, но ценные задачи. После прохождения курсов ребята выходят со структурированными, свежими знаниями по дисциплинам.
Александр Жигалов
«Профессия Таргетолог с нуля до PRO»
Разобраться в digital-маркетинге и устроиться в Skillbox
Я учусь в РУДН на пиарщика. Но PR — сложная работа. Нет гарантий, что смогу пробиться в интересный проект. Поэтому решил подстраховаться и получить навыки продвижения в интернете.
Увидел анонс интенсива по таргетированной рекламе в Skillbox. Поучаствовал и выиграл 30 тысяч рублей на покупку курса.
Понял, что надо воспользоваться этой возможностью. Записался на «Профессию Таргетолог с нуля до PRO» и курс «Digital-стратегия». Параллельно с программой универа взялся за онлайн-занятия.
Отучился 5 месяцев на таргетолога и решил попробовать себя на практике. Смотрел вакансии в Telegram-канале для пользователей Skillbox и наткнулся на объявление: «Требуется ассистент продюсера маркетингового направления». Посмотрел обязанности, всё устроило. Откликнулся, и меня пригласили.
Проводил исследования по тем направлениям, которые мы будем запускать. Общался со спикерами и занимался документооборотом.
Недавно меня повысили — теперь я продюсер.
Мне комфортно в профессии. Продолжаю искать себя. PR ещё не успел попробовать на деле, совсем отметать его не буду, оставлю как цель.
Светлана Макарова
Уйти из металлургии и стать тестировщицей в диджитал-агентстве
Как-то раз мы с сестрой обсуждали, что происходит в мире. Развитые страны отказываются от угля, идут к альтернативным источникам энергии. А я работала в металлургии. Понимала, что завтра этой сферы может не быть. Поэтому задумалась о смене профессии.
Я всегда интересовалась IT. Оказалось, что в программировании нужны люди, которые будут искать ошибки на сайтах. Такая специальность мне подходит: я дотошная, люблю, когда всё правильно.
Летом неотрывно сидела за компьютером и разбиралась в новой профессии. Преподаватели меня вдохновляли. Особенно Наталья Булаева и Дмитрий Якин.
Идти на первое собеседование было страшно. Я шла посмотреть, как это происходит в IT-сфере. Вышла с мыслью: «Скорее всего, меня не возьмут».
Через два дня они написали, что хотят со мной поработать. Испытала радость и удивление. Смотрела на письмо, думала: «Я сплю?» Так в моей жизни началась новая глава.
Сегодня я работаю тестировщицей в агентстве Beta. И мне безумно интересно всё, чем я занимаюсь.
Любовь Потапкина
Уйти с нелюбимой работы и стать менеджером в контент-агентстве
После голливудского кино об умных и богатых адвокатах я хотела такую же работу: выступать в суде, защищать людей. Но уже в университете поняла, что так, как в фильмах, не будет.
Работать было сложно. Юрист должен долго сидеть на одном месте и кропотливо перебирать документы. Надо быть дотошным, не допускать ошибок. А мне ближе работа с людьми.
Поэтому на самоизоляции я решила освоить новую специальность — и взяла «Профессию Менеджер проектов» в Skillbox.
Когда курс подходил к концу, я поняла, что пора искать вакансии. Каким-то чудом вспомнила, что могу обратиться в карьерный центр Skillbox. Меня проконсультировали и предложили на выбор две стажировки.
Стажировка длилась полтора месяца. Для меня она стала боевым крещением. Я была на подхвате у менеджеров, делала то же, что и они. В итоге устроилась на работу.
Мне нравится работать вместе с командой. Помню момент публикации одного из первых проектов. Внутри у меня было: «Вау! Мы это сделали, и теперь это видят люди». Суперское чувство.
Михаил Булгаков
Пройти курс за полтора месяца и стать SEO-специалистом в веб-студии
Я работал фитнес-тренером. Весной 2020 года началась пандемия, тренажёрные залы закрыли. Посидел дома, отдохнул, закончил накопившиеся дела. Залы не открывались, денег не хватало. Понял, что надо двигаться дальше, учиться чему-то новому.
Вспомнил, что однажды занимался SEO на базовом уровне. Помогал компании 51 ASIC с привлечением трафика. Но в пандемию-2020 понял: никакой я не «специалист». Открываю вакансии, читаю список требований — не узнаю и половины слов. Решил записаться на «Профессию SEO-специалист» от Skillbox.
Смотрел ролики, практиковался, писал конспекты. На занятия уходило от 4 до 8 часов в день. Я понимал: чем быстрее научусь, тем быстрее найду работу и начну зарабатывать. В итоге завершил профессию за полтора месяца.
Устроился в компанию DirectLine. Они продают SEO-услуги и разрабатывают сайты для рынка США. Параллельно мне предложили преподавать SEO в их академии.
Мечтаю стать классным специалистом. Посмотреть мир, возможно, пожить пару месяцев в США или в Дубае.
Валентина Котельникова
Сменить специальность и устроиться UX-дизайнером в «Промсвязьбанк»
Я переводила деловые письма и техническую документацию для нескольких фирм. Оказалось, что в этой профессии можно быстро достигнуть потолка возможностей. Меня это не устроило.
Однажды я познакомилась с одним UX-специалистом. Он пригласил меня на интенсив по дизайну от Skillbox. Мне очень понравилось. Решила записаться на «Профессию UX/UI-дизайнер».
После курса стажировалась в Lamoda. Делала на Tilda клиентские страницы, баннеры с одеждой и другими товарами. Много работала с брендбуками заказчиков, например, с Adidas и Puma.
Находясь там, поняла, что не ошиблась в выборе профессии. Закончила курс и попала в Промсвязьбанк.
Пришлось пройти много тестовых заданий в разных компаниях. Мне отказывали. Связалась с менеджером Центра карьеры Skillbox. Она меня подбодрила. После разговора я улучшила портфолио и продолжила поиски.
В итоге, когда меня пригласили в банк, мою кандидатуру рассматривали ещё три компании. В будущем мечтаю открыть своё дизайн-агентство.
Динара Хисметуллова
«Дизайнер интерьера с нуля до PRO»
Выбрать профессию сердцем и работать на себя
После вуза я устроилась офис-менеджером, а потом кадровым специалистом в «М.Видео» и «О’кей». Участвовала в интересных проектах и получала высокую зарплату по меркам региона.
Всё было как в лучших мечтах, но я чувствовала, что занимаюсь не тем. Хотела перемен, и муж подарил сертификат на курс в Skillbox.
Выбрала дизайн интерьеров — сделала выбор сердцем и положилась на чувства. Наверное, повлияла недавняя стройка собственного дома и его обустройство.
Освоение профессии далось легко. Кураторы принимали работы и ставили их в пример другим пользователям платформы.
Веду свой блог, там меня находят первые клиенты. Сейчас во многих компаниях работодатели смотрят соцсети будущего сотрудника и прикидывают, насколько он им подходит. Так же и с дизайнерами интерьеров на фрилансе.
В далёкой перспективе мечтаю открыть свою студию. Компетенций в менеджменте и управлении проектами у меня достаточно — осталось только набраться опыта в дизайне.
Виктория Сержанова
Стать веб-разработчиком «Ингосстраха» за 10 месяцев
Я занималась «мокрой» биологией 10 лет. Работать было тяжело: в отрасли постоянно не хватало денег. К 30 годам осознала, что больше так не хочу. Решила сменить работу.
Год изучала биоинформатику. Оказалось, что программирование мне нравится в отрыве от биологии.
Взяла на Skillbox «Профессию Frontend-разработчик». Очень понравилось заниматься вёрсткой. Поняла, что бэкенд — не моя тема.
Сотрудники Центра карьеры помогли с резюме. Я разместила его на HeadHunter в феврале 2021 года. Рассчитывала к лету отыскать работу, но в течение недели написал HR «Ингосстраха». В результате меня взяли на вакансию с целым списком требований — например, от трёх лет опыта работы frontend-разработчиком. Сама бы я на такое точно не откликнулась!
Я пришла как верстальщик, но работодатель рассчитывает, что буду двигаться к полноценной frontend-разработке. Так что учусь мастерству сейчас одновременно в Skillbox и на работе.
Уроки по Unreal Engine (книга по UE4 на русском, а также видео)
Только что вышла книга (и её доставили мне): Разработка игр на Unreal Engine 4 за 24 часа
Автор: Куксон Арам Даулингсока Райан Крамплер Клинтон
https://book24.ru/product/razrabotka-igr-na-unreal-engine-4-za-24… hasa-5400972/
«Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Интернета, Linux — или для всех сразу!
Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считанные часы вы научитесь создавать эффекты, использовать приемы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами».
Также, навскидку приведу пару он-лайн курсов по UE4, если кому пригодится:
И, разумеется, официальные курсы от самих Эпиков (Unreal Engine Online Learning).
Как создать простую игру в Unreal Engine 4
В этом уроке по Unreal Engine 4 вы создадите небольшую игру от первого лица, а также узнаете, как генерировать случайные события, создавать препятствия и перезапускать игру.
Если вы только начинаете учиться разработке игр, то лучше всего начать с чего-то простого. Обычно новичкам советуют попробовать свои силы в создании простой игры с несложной механикой, для того чтобы лучше понять, как объекты могут взаимодействовать друг с другом.
В этом уроке вам предстоит создать бесконечную игру от первого лица. Вы также узнаете:
В конечном итоге у вас получится игра, которая будет выглядеть так:
Обратите внимание: вы будете использовать Blueprints и UMG в этом уроке. Если вам необходимо освежить знания об этих инструментах, пожалуйста, вернитесь к предыдущим частям руководства прежде чем продолжить.
Это занятие является частью серии, которая состоит из 10 уроков, посвященных Unreal Engine:
Начало работы
В первую очередь вам необходимо скачать и разархивировать стартовый проект и все материалы, необходимые для работы.
После этого перейдите в папку проекта и откройте InfiniteMatrix.uproject.
Находясь в редакторе нажмите Play, чтобы проверить элементы управления движением. Смотрите, вы можете перемещаться по вертикали и горизонтали, используя при этом мышь:
Движение игрока вперед
Для того, чтобы персонаж мог перемещаться вперед, вам необходимо добавить функцию движения для каждого кадра. Для этого перейдите в папку Blueprints и откройте BP_Player.
Во-первых, вам нужно создать переменную для определения скорости движения игрока вперед. Создайте новую переменную Float с именем ForwardSpeed и установите ее значение по умолчанию = 2000.
Убедитесь, что вы находитесь в Event Graph и найдите узел «Event Tick». Свяжите узлы так, как показано на рисунке:
Умножив ForwardSpeed на Delta Seconds, вы получите результат, который не будет зависеть от частоты кадров.
Примечание: Если вы не знаете, как зависит значение переменной от частоты кадров изображения, то мы рекомендуем вам ознакомиться с предыдущими частями самоучителя, в частности с разделом, посвященном изучению возможностей Blueprints.
Движение по одной оси
Чтобы переместить игрока, вам нужно создать узел AddActorWorldOffset. Установите значение Sweep = true, щелкнув левой кнопкой мыши по квадратику рядом с ним:
Если сейчас вы попробуете подключить полученный результат Float к входу Delta Location, редактор Unreal автоматически преобразует его в вектор.
Однако это поместит значение Float на X, Y и Z вектора, но в этой игре движение вперед должно быть только вдоль оси X. Чтобы это исправить нужно разделить вектор на три компонента Float.
Выход Delta Location узла AddActorWorldOffset не должен быть ни с чем соединен. Нажмите правой кнопкой мыши на контакт Delta Location и выберите в сплывающем меню Split Struct Pin:
Соедините узлы следующим образом:
Нажмите кнопку Compile, чтобы сохранить результат и вернитесь в главный редактор. Если вы нажмете Play, то вы сможете двигаться вперед через туннель.
Вы всегда можете воспользоваться возможностями Blueprint, чтобы автоматически создавать и размещать туннели.
Создание Tunnel Spawner
Для продолжения вам нужно перейти в Content Browser и найти папку Blueprints. Теперь создайте новый класс Blueprint с Actor в качестве основного, назовите его BP_TunnelSpawner и откройте.
Поскольку в игре будут постоянно появляться туннели, рекомендуется создать функцию под названием «spawning ». Для этого перейдите на панель My Blueprint и создайте новую функцию с именем SpawnTunnel. Целью этой функции будет создание туннеля в указанном месте.
Чтобы передать местоположение функции, ей нужно присвоить входной параметр:
Кроме того, на узле функции также будет находиться и выходной канал:
Убедитесь, что вы находитесь на графике для функции SpawnTunnel и выберите узел «Entry». Теперь вам нужно перейти на панель «Details» и нажать знак «+» рядом с разделом «Inputs».
Переименуйте входной параметр в SpawnLocation и измените его тип на Vector:
Чтобы создать функцию spawn для вашего туннеля, необходимо добавьте узел Spawn Actor From Class. Щелкните раскрывающийся список, расположенный справа от вывода класса, и выберите команду BP_Tunnel:
Чтобы назначить место появления, щелкните правой кнопкой мыши по полю Spawn Transform и выберите Split Struct Pin. Затем свяжите узел Spawn Actor From Class с узлом Entry следующим образом:
Теперь всякий раз при вызове функции SpawnTunnel, она будет создавать новый экземпляр BP_Tunnel в указанном вами месте.
Тестирование Tunnel Spawner
Для того, чтобы опробовать новые возможности, переключитесь на график событий и найдите узел Event BeginPlay. Теперь вам необходимо добавить узел SpawnTunnel и подключить его к узлу Event BeginPlay.
На узле SpawnTunnel установите координаты Spawn Location в положение: (2000, 0, 500):
Теперь, в начале игры появится туннель немного в стороне от игрока. Для сохранения результата нажмите Compile и вернитесь в главный редактор.
Вам необходимо удалить с вашего уровня BP_Tunnel. Сделайте это, щелкнув левой кнопкой мыши на BP_Tunnel в World Outliner и после этого нажмите клавишу Delete.
Теперь перейдите в Content Browser и при помощи мыши перетащите BP_TunnelSpawner в область просмотра (Viewport). Таким образом у вас появится этого уровня. Если вы нажмете Play, игра покажет вам расположение туннеля в стороне от игрока.
Как только вы закончите тестирование, вернитесь к BP_TunnelSpawner. Укажите теперь координаты Spawn Location узла SpawnTunnel = (0, 0, 0).
После этого снова нажмите Compile и затем вернитесь в главный редактор.
Настройки Blueprint для туннеля
BP_Tunnel будет отвечать за две вещи:
Первое – определять, когда в игре будет появляться новый туннель. Для этого вам будет нужно создать специальную триггерную зону. После запуска игры BP_Tunnel отправит команду BP_TunnelSpawner создать новый туннель. Таким образом можно создать иллюзию бесконечного туннеля.
Во-вторых, он определяет месторасположение точки появления тоннеля. BP_TunnelSpawner будет использовать эту точку в качестве следующей локации spawn.
Создание триггерной зоны
Вам нужно открыть BP_Tunnel и перейти к панели «Components». Добавьте компонент Box Collision и назовите его TriggerZone.
Чтобы увеличить площадь столкновения необходимо перейти на панель «Details» в раздел «Shape» и установить для свойства Box Extent значение (32, 500, 500).
Теперь установите для свойства Location значение (2532, 0, 0), чтобы TriggerZone расположилось непосредственно в конце туннельной сетки. Это будет значить, что новый туннель появится только тогда, когда игрок достигнет конца старого туннеля.
Создание Spawn Point
Чтобы определить местоположение точки появления игрока в локации, вы можете использовать компонент Scene. Этот компонент идеально подходят для определения местоположений того или иного объекта, потому что он содержит только значение Transform. Кроме того, эта функция отображается в окне Viewport, что позволяет визуально определять точку появления игрока.
Перейдите на панель «Components» предварительно убедившись, что у вас не выбран ни один элемент и добавьте компонент Scene, переименовав его в SpawnPoint.
Туннельная сетка имеет длину 2500 единиц по оси X, поэтому она должна иметь точку состыковки. Перейдите на панель «Details» и установите для свойства Location значение (2500, 0, 0).
Spawning Tunnels в точке появления
Для сохранения результата нажмите Compile и затем переключитесь на BP_TunnelSpawner.
Следующий BP_Tunnel должен появиться в SpawnPoint самого отдаленного туннеля, чтобы создать эффект бесконечности.
Поскольку самый дальний туннель всегда является последним созданным туннелем, вы можете всегда легко получить ссылку на него.
Для этого откройте график SpawnTunnel и щелкните правой кнопкой мыши на значке «Return Value» узла «Spawn Actor From Class». Вам нужно выбрать команду Promote to Variable и переименовать новую переменную в NewestTunnel.
Теперь у вас всегда будет под рукой ссылка на самый дальний туннель.
Создайте новую функцию и назовите ее SpawnTunnelAtSpawnPoint, разместите ее в рабочей области таким образом:
Эта функция создаст новый туннель вместе с расположением его компонента SpawnPoint, и разместит его в указанном месте.
Чтобы BP_Tunnel связывался с BP_TunnelSpawner, ему нужна ссылка. Без связи BP_TunnelSpawner не будет знать, когда нужно создавать следующий туннель.
Создание ссылки для Tunnel Spawner
Нажмите Compile и затем закройте график SpawnTunnelAtSpawnPoint. После этого переключитесь на BP_Tunnel. Добавьте новую переменную и назовите ее TunnelSpawner. Установите его тип переменной в BP_TunnelSpawner\Object Reference.
Нажмите Compile, а затем переключитесь обратно на BP_TunnelSpawner.
Теперь вам нужно открыть график SpawnTunnel и добавить следующие узлы:
Таким образом, каждый туннель будет иметь ссылку на BP_TunnelSpawner.
Сценарий триггерной зоны
Не забудьте нажать Compile и затем переключитесь на BP_Tunnel.
Перейдите на панель «Components» и щелкните правой кнопкой мыши TriggerZone. В меню выберите команду Add Event\Add OnComponentBeginOverlap. Это добавит следующий узел в ваш график событий:
Этот узел будет выполняться всякий раз, когда персонаж или какой-либо объект пересечет TriggerZone.
В первую очередь необходимо дать программе установку проверить, является ли этот объект игроком. Для этого переместите в свободное место при помощи мыши значок Other Actor и выберете из меню пункт «Cast to BP_Player».
Примечание: Поскольку новый туннель каждый раз появляется в конце другого туннеля, то автоматически запускается TriggerZone этого туннеля.
Подключение к BP_Player будет препятствовать выполнению любых других узлов, если Other Actor является туннелем.
Затем добавьте новые узлы, соединив их с Cast to BP_Player как на изображении:
Давайте еще раз пройдемся по шагам:
Нажмите Compile, вернитесь в главный редактор и нажмите Play для воспроизведения игры. Как вы заметили, при достижении конца туннеля, в игре появляется новый.
Не смотря на то, что в игре бесконечно появляются туннели, она не выглядит бесконечной. Вы можете изменить это, имея несколько видимых туннелей. Позже, когда вы объедините их с препятствиями, то переходы между тоннелями не будут так бросаться в глаза.
Соединение большего количества туннелей
Первое, что вам нужно сделать, это создать функцию, которая будет создавать определенное количество туннелей.
Для этого откройте BP_TunnelSpawner и создайте новую функцию под названием SpawnInitialTunnels.
Чтобы создать нужное количество туннелей, вы можете использовать узел ForLoop и подключите его к узлу Entry. Этот узел будет выполнять команды подключенных к нему узлов указанное количество раз.
Чтобы узел For Loop выполнялся n количество раз, вам нужно установить для Last Index значение n = 1.
В этом уроке вам нужно создать три туннеля. Для выполнения трех циклов установите значение последнего индекса = 2.
Примечание: Если вы не установите значения для полей «First Index» или «Last Index», то по умолчанию они будут равны 0.
Во время старта игры, персонаж должен находиться в туннеле, для этого можно разместить первый туннель на месте игрока.
Размещение первого туннеля
Чтобы определить, появился первый туннель в нужном месте или нет, вам нужно проверить, установлен ли NewestTunnel. Если он не установлен, это означает, что первый туннель не был создан. Параметр NewestTunnel устанавливается только после того, как игра создает новый туннель.
Выполняя эту проверку, разместите узел IsValid (узел со значком вопросительного знака) после узла ForLoop. Теперь вам нужно получить ссылку на NewestTunnel и подключить ее к выходу Input Object узла IsValid.
Если NewestTunnel не установлен, вывод Is Not Valid будет благополучно выполняться, и наоборот.
Теперь создайте новый узел, как на изображении и подключите его к выводу Is Not Valid узла IsValid:
Это заставит туннель появиться в том месте, где находится игрок.
Создание следующих туннелей
Добавьте узел SpawnTunnelAtSpawnPoint и подключите его к выводу Is Valid узла IsValid:
Вот как должен теперь выглядеть ваш график:
Затем перейдите к меню Event Graph и удалите узел SpawnTunnel. После этого добавьте узел SpawnInitialTunnels и разместите его после события BeginPlay.
Теперь, во время старта игры появится три туннеля. Нажмите Compile, вернитесь в главный редактор и нажмите Play. Туннель стал намного длиннее!
Создание препятствий
Перед вами трафареты, которые вы будете использовать в качестве препятствий:
Откройте BP_Tunnel и перейдите на панель «Components». Добавьте компонент Static Mesh и назовите его WallMesh.
Теперь перейдите на панель «Details» и измените свойство статической сетки на SM_Hole_01.
Вам также необходимо установить параметр Location в координаты (2470, 0, 0). Это поместит препятствие в конец туннеля.
Чтобы игра была более интересной, лучше, чтобы препятствия вращались. Для этого добавьте новую переменную Float и назовите ее RotateSpeed. Установите значение по умолчанию = 30.
Далее переключитесь на График событий и найдите узел Event Tick. Создайте следующую последовательность:
Это заставит WallMesh вращать каждый кадр с изображением ваших трафаретов с указанной скоростью.
Нажмите Compile и затем вернитесь в главный редактор. Нажмите Play, чтобы увидеть, как происходит вращение.
Создание разных вариантов препятствий
Вместо создания нового Blueprint для каждого трафарета, вы можете просто рандомизировать WallMesh. Для этого вам необходимо открыть BP_Tunnel и создать новую функцию с именем RandomizeWall. Разместите график следующим образом:
Узел Set Static Mesh установит WallMesh на в нужное вам место. Чтобы составить список статических сеток, вы можете использовать узел Select. Для этого при помощи мышки переместите значок «New Mesh» в рабочее поле и добавьте новый узел.
Узел Select позволит вам установить список необходимых опций, а вход Index определит, какую именно опцию выбирает узел Select.
Поскольку сейчас у вас имеется четыре разных трафарета, то вам потребуется создать еще две дополнительные опции для них. Вы можете сделать это, щелкнув правой кнопкой мыши узел Select и выбрав Add Option Pin. Проделайте эту манипуляцию еще несколько раз, пока у вас не появится четыре варианта выбора опций.
Затем пропишите каждый параметр следующим образом:
Вариант 0: SM_Hole_01
Вариант 1: SM_Hole_02
Вариант 2: SM_Hole_03
Вариант 3: SM_Hole_04
Рандомизация препятствий
Вы можете использовать Random Integer в узле Range, чтобы получить случайное значение. Этот узел возвращает значение, которое > = Min и
Теперь установите максимальное значение = 3. Это даст вам четыре возможных числа: 0, 1, 2 и 3.
Чтобы создать немного больше рандомизации, давайте добавим случайное вращение в WallMesh. Для этого вам нужно добавить следующие значения, которые будут находиться после узла Set Static Mesh:
Это добавит случайное вращение с диапазоном между 0 и 360 градусами в WallMesh.
Вот как теперь должен выглядеть ваш график:
Резюмируем:
Нажмите Compile и закройте график RandomizeWall.
Переключитесь на BP_TunnelSpawner и откройте график SpawnTunnel. Добавьте выделенный на изображении узел:
Теперь, когда появляется новый туннель, у него будет случайное препятствие.
Закройте график SpawnTunnel и нажмите «Compile». Вернитесь в главный редактор и нажмите Play, чтобы увидеть результат вашей работы!
Сейчас, если вы врежетесь в стену, то просто перестанете двигаться вперед. Следующий шагом является отключение движения вперед, когда игрок сталкивается со стеной.
Установка действий при столкновении
Чтобы включить или отключить движение вперед, вы можете использовать функцию Boolean variable, которая имеет всего два значения true и false.
Вам нужно открыть BP_Player и создать новую логическую переменную (Boolean variable) с именем IsDead. Теперь перейдите к узлу Event Tick и создайте еще один узел Branch. Получите ссылку на IsDead и подключите ее к выводу Condition узла Branch.
Теперь подключите узел Event Tick к узлу Branch и контакт False узла Branch к узлу AddActorWorldOffset:
Теперь, когда для IsDead установлено значение true, игрок перестает двигаться вперед.
Настройки для переменной IsDead
Нажмите Compile и затем переключитесь на BP_Tunnel. На панели «Components» щелкните правой кнопкой мыши WallMesh и выберите «Add Event\Add OnComponentHit». Это добавит следующий узел в ваш график событий:
Этот узел будет выполняться всякий раз, когда какой-либо объект будет сталкивается с WallMesh.
Теперь необходимо сделать так, чтобы система проверяла является ли объект, столкнувшийся с WallMesh, игроком. Для этого поместите значок Other Actor в рабочую область и выберите «Cast to BP_Player» из меню.
Переместите выход BP_Player узла Cast к выходу BP_Player и добавьте рядом новый узел Set Is Dead с положением флажка true, как показано на изображении ниже:
Нажмите Compile и вернитесь в главный редактор. Нажмите Play и попробуйте теперь врезаться в стену. Посмотрите, игрок больше не может продолжать движение, после столкновения с прептствием.
Отображение кнопки перезапуска
Виджет, который вы будете использовать, называется WBP_Restart. Вы можете найти его в папке с материалами, которую скачали в начале урока. Вот как выглядит кнопка:
Для того чтобы отобразить или скрыть виджет, вам нужна ссылка на него. Откройте BP_Player и затем создайте новую переменную с именем RestartWidget. Измените тип переменной на WBP_Restart\Object Reference.
Затем перейдите на графике событий найдите узел Event BeginPlay и добавьте рядом с ним узел Create Widget, со значением Class в WBP_Restart. Также вам необходимо добавить узел Set Restart Widget, а затем подключить все следующим образом:
Теперь, когда игрок появляется в начале игры, программа создает экземпляр WBP_Restart. Следующим шагом является создание функции, которая будет отображаться этим экземпляром.
Создание функции отображения
Создайте новую функцию и назовите ее DisplayRestart. Сделав это, составьте следующий график:
Резюмируя:
Вызов дисплея функций
Закройте график DisplayRestart и нажмите «Compile», а затем переключитесь на BP_Tunnel и найдите узел On Component Hit (WallMesh). Добавьте узел DisplayRestart в самый конец цепочки всех ваших узлов.
Нажмите Compile, закройте BP_Tunnel и вернитесь в главный редактор. Нажмите «Play», чтобы увидеть результат своих стараний. Теперь, если вы врежетесь в стену, появится кнопка перезагрузки.
Перезапуск игры
При перезапуске игра должна сделать две вещи:
Перезагрузка плеера
Откройте BP_Player, а затем создайте новую функцию с именем RestartGame. Создайте следующую последовательность:
Резюмируя:
Перезапуск туннелей
Нажмите Compile, закройте BP_Player и откройте BP_TunnelSpawner. Убедитесь, что вы находитесь в графе SpawnInitialTunnels.
Во-первых, вам нужно удалить существующие туннели, прежде чем создавать новые. Для этого добавьте узел Sequence после узла Entry и подключите контакт «То 1» к узлу ForLoop.
Примечание: Узел Sequence выполняет свою функцию в последовательном порядке. Это отличный способ организовать ваш график по вертикали, тем более что цепочки узлов могут быть очень длинными.
Далее создайте следующие узлы:
Эта настройка получит информацию о всех существующих туннелях и удалит их из игры.
Далее вам нужно подключить вывод «0» узла «Sequence» к узлу «Get All Actors of Class». Это обеспечит удаление туннелей перед их дублированием.
Вот как теперь должен выглядеть ваш график:
Обновление кнопок
Нажмите Compile, а затем закройте BP_TunnelSpawner. Вам нужно перейти в Content Browser и там найти папку пользовательского интерфейса. Дважды щелкните WBP_Restart, чтобы открыть его в редакторе.
Выберите RestartButton и перейдите на панель «Details». Перейдите в раздел «Events» и нажмите кнопку рядом с OnClicked.
Это создаст новый узел On Clicked (RestartButton), который будет выполняться, когда игрок нажмет кнопку RestartButton:
Резюмируя:
Снова нажмите «Compile», а затем закройте редактор Blueprint. Нажмите Play, чтобы проверить работу кнопки перезапуска!
Что делать дальше?
Теперь, когда у вас есть простая игра, вы можете работать с ее основой для освоения более сложных функций.
Основываясь на знания, полученные из предыдущих уроков, попробуйте добавить счетчик очков, который увеличивается, когда игрок проходит через отверстия лабиринта.
Кроме того, ваших знаний достаточно чтобы создать такие простые игры как пинг понг или даже тетрис!
В следующем занятии вы узнаете, как анимировать персонажей в вашей игре с помощью Blueprints.
Разработка игр на Unreal Engine 4 за 24 часа
Описание книги
Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Интернета, Linux — или для всех сразу! Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считанные часы вы научитесь создавать эффекты, использовать приемы скрипти.
Всего за 24 урока, каждый продолжительностью 1 час или меньше, вы узнаете как начать проектировать великолепные игры с помощью движка Unreal Engine 4 под Windows, Mac, PS4, Xbox One, iOS, Android, Интернета, Linux — или для всех сразу! Пошаговый подход к обучению, представленный в книге, покажет, как работать с интерфейсом Unreal Engine 4, продемонстрирует рабочие процессы и самые мощные редакторы и инструменты движка. За считанные часы вы научитесь создавать эффекты, использовать приемы скриптинга, реализовывать физику и даже вести разработку для мобильных устройств и HUD-интерфейсов. Каждый урок дополняет знания, полученные вами в предыдущих, создавая крепкий фундамент для успешной работы с реальными задачами. Книга «Разработка игр на Unreal Engine 4 за 24 часа» авторов Куксон Арам, Даулингсока Райан, Крамплер Клинтон оценена посетителями КнигоГид, и её читательский рейтинг составил 0.00 из 10.
Для бесплатного просмотра предоставляются: аннотация, публикация, отзывы, а также файлы для скачивания.
Твой первый игровой объект: Unreal Engine 4 туториал
В этом уроке по Unreal Engine вы узнаете, как установить движок, перемещаться по интерфейсу и создать свой первый игровой объект.
Unreal Engine 4 – инструментарий для GameDev: это разработка и мобильных игр 2D, и компьютерных игр с высоким бюджетом. Движок стоит за именами: «Королевство Сердец III», «ARK: Survival Evolved» и «Железный Кулак 7».
Геймдев в Unreal Engine 4 легко даётся новичкам, ведь благодаря Blueprints вы сделаете игру без единой строки кода! В связке с простым в использовании интерфейсом быстро получите и запустите прототип.
Вы узнаете об установке движка, импорте ресурсов, добавлении материалов и объектов с базовой функциональностью на примере вращающегося стола для демонстрации банана.
Устанавливаем Unreal Engine 4
Перейдите на сайт Unreal Engine и кликните по кнопке Get Unreal справа сверху.
Для загрузки лаунчера создайте аккаунт. Выберите вашу операционную систему.
Когда откроете установленный лаунчер, увидите:
Введите данные, которые использовали при скачивании лаунчера, и после входа откроется:
Слева сверху нажмите кнопку Install Engine, и появится экран с выбором компонентов для установки:
Обратите внимание, что из-за регулярных обновлений версия вашего движка будет отличаться от этой.
Оставьте отмеченные по умолчанию пункты, и вот почему:
В списке увидите также платформы. Отключите ненужные:
После выбора компонентов кликните Install. Когда движок установился, переходим к делу.
Создайте проект
После нажатия любой кнопки Launch запустится диспетчер проектов. Перейдите на вкладку New Project.
Во вкладке Blueprint выберите шаблон Blank, потому что начинаете с чистого листа.
Посмотрите, что вы настраиваете в дополнение:
Теперь указывайте путь к директории проекта и название:
Для изменения расположения используйте кнопку с тремя точками.
По поводу имени проекта не волнуйтесь: это не название игры. Вы измените его на любой стадии разработки игры. Наберите BananaTurntable в поле Name.
В завершение кликните Create Project.
Перемещаемся по интерфейсу
Дальше появится редактор с такими панелями:
Импортируем ресурсы
Зачем нужен вращающийся стол, когда пусто? Загрузите модель банана или используйте собственную.
Для импорта файлов перейдите в контент-диспетчер и нажмите Import.
Выберите папку с загруженными файлами и откройте их, выделив оба и нажав Open.
Перед вами окно с настройками импорта. Проверьте, чтобы не стояла галочка возле пункта Import Materials, поскольку вы сами займётесь материалами. Другие настройки не интересуют.
После нажатия кнопки Import вы увидите оба файла:
Импорт файлов не означает их сохранение в проекте. Воспользуйтесь контекстным меню для явного сохранения или выберите массовую операцию File/Save All, чтобы сэкономить время.
Кстати, модели в этом движке называют мешами. Меш для банана готов, осталось разметить его в уровне.
Включаем меш в уровень
Щёлкните левой кнопкой мыши и перетащите модель банана из Content Browser во Viewport. Меш добавится, как только вы бросите кнопку.
Для перемещения объекта используйте W на клавиатуре, для вращения – E, масштабирования – R. С последующим применением манипулятора:
Разбираемся с материалами
Взгляните на объект: он серый, а не жёлтый!
Поэтому создадим материал для придания ему желтизны и деталей.
Вот составляющие материала:
Взгляните, что получится, если по очереди накрутить максимум металлизации, блеска и шероховатости, оставляя нули для остальных свойств:
Создаём материал
В диспетчере контента кликните Add New и увидите меню со списком доступных ресурсов. Нас интересует Material.
Введите название Banana_Material и сделайте двойной клик по файлу для открытия редактора.
Рассмотрим редактор материалов
Здесь четыре главные панели:
Определяем узел
Узлы – основа материала со всевозможной функциональностью. Слева увидите входные точки, а справа – точки-выходы в виде кружков со стрелкой.
К примеру, добавим в текстуру жёлтый цвет с помощью узлов Constant3Vector и Multiply:
Итоговый вид каждого материала определяет узел Result.
Добавляем текстуру
Для окраски и детализации модели нужна текстура, обыкновенное 2D-изображение, которое накладывается на 3D-модели.
Возьмите узел TextureSample из Palette и перетащите в рабочую зону, удерживая левую кнопку мыши.
Выделив узел TextureSample, переключитесь на панель Details и откройте выпадающий список справа от Texture.
Увидите меню со всеми текстурами, кликните по банановой.
Подключите текстуру к узлу Result для её отображения на меш-превью. С помощью удержания левой кнопки мыши возьмите выход узла TextureSample белого цвета и перетащите на вход с названием Base Color узла Result.
Viewport покажет текстуру на меш-превью. Для поворота и рассматривания деталей удерживайте левую кнопку мыши и перетаскивайте.
Не забудьте нажать Apply на панели Toolbar, чтобы применить изменения материала, и закройте редактор.
Используем материалы
Перейдите в Content Browser и откройте материал двойным кликом по Banana_Model. Откроется окно:
Во вкладке Details ищите секцию Materials. Кликните по выпадающему списку рядом с картинкой и выберите Banana_Material.
Возвращайтесь в главный редактор и заметите, какой текстурный стал банан. Ура, вы готовый дизайнер игровых уровней!
Смущает степень освещённости? Перейдите во World Outliner и щёлкните по Light Source. Поменяйте показатель Intensity на панели Details.
Изучаем Blueprints
Вдохновились бананом? Представьте, как круто он будет смотреться на вращающемся столе. Нам помогут Blueprints.
Blueprint отражает «сущность»: материальную – вращающийся стол или абстрактную – систему здравоохранения. С использованием Blueprints вы задаёте кастомное поведение объектов.
Задумали спроектировать несущийся автомобиль? Делайте Blueprint. Или летающего слона? Понадобятся Blueprints. А что вы думаете по поводу котика, который взрывается при столкновении? Blueprints.
Blueprints основываются на узлах, как материалы. Поэтому кодить не придётся – создали узлы и связали!
При лёгкости использования Blueprints проигрывают по скорости коду на C ++. Поэтому для ресурсоёмких вычислений выбирайте C ++.
А вот в чём выигрывают Blueprints:
Создавайте объекты с использованием Blueprints. Если станет вопрос производительности, переходите на С++.
Создаём Blueprint
В контент-диспетчере кликните Add New и найдите Blueprint Class.
Прочитайте информацию в окне выбора родительского класса, ведь Blueprint унаследует все свойства и атрибуты от родителя.
Классы Pawn и Character также относятся к Actors.
Вращающийся стол стоит в одной точке, поэтому выберите класс Actor и дайте файлу название Banana_Blueprint.
Откройте созданный Blueprint двойным щелчком и кликните Open Full Blueprint Editor, если увидите такое окно:
Знакомимся с редактором Blueprint
Откройте вкладку Event Graph в редакторе Blueprint.
Разберёмся с главными панелями:
Создаём вращающийся стол
Для этого понадобится основа и столешница, сделать которые помогут компоненты.
Вникаем в Component
Если Blueprint – машина, то компоненты – двигатель, коробка передач, руль и остальные составляющие авто.
Компоненты также выходят за рамки материальных объектов.
Чтобы машина ехала, создайте двигательный компонент, для полёта – летательный.
Добавляем компоненты
Перейдите на Viewport для отображения компонентов:
DefaultSceneRoot видно исключительно в редакторе.
Для вращающегося стола понадобится:
Добавьте основу через панель компонентов, нажав Add Component и выбрав Cylinder.
Нажмите R, чтобы вызвать манипулятор масштаба и уменьшить размер основы.
Прежде чем добавить меш, вернитесь в Components и снимите выделение с цилиндра, кликнув левой кнопкой мыши по пустому пространству, чтобы избежать привязки компонентов друг к другу.
В противном случае масштабирование цилиндра отразится и на меше.
Повторите операцию добавления для Static Mesh.
Выделите Static Mesh и перейдите во вкладку деталей для отображения банана. Откройте выпадающий список правее Static Mesh и выберите банановую модель.
Переместите банан в правильную позицию с помощью соответствующего манипулятора, который вызывается клавишей W.
Знакомимся с узлами Blueprint
Без них стол не будет вращаться.
Узлы Blueprint отличаются от собратьев особенными точками под названием Execution. Слева – входы, а справа – выходы. У каждого узла как минимум одна точка.
Без соединения входной точки узел не выполняется. Отсутствие подключения узла отключает идущие после него.
Соединение входных точек у Node A и Node B говорит, что узлы выполняются. В Node C подключения нет, а, значит, он и Node D не сработают.
Поворачиваем вращающийся стол
На панели компонентов обратите внимание, что перед DefaultSceneRoot отсутствует отступ, в противоположность Static Mesh и Cylinder.
Из-за привязки к DefaultSceneRoot компоненты Static Mesh и Cylinder вращаются, масштабируются и меняют положение вместе.
Создаём узел
Переключитесь на Event Graph для написания сценариев.
Для поворота стола нужен единственный узел. Вызовите меню щелчком правой кнопки мыши на пустом месте графика. Добавьте узел AddLocalRotation для DefaultSceneRoot, чтобы вращались все компоненты.
Нет такого узла? Снимите галочку с Context Sensitive справа сверху.
После добавления вход Target автоматически соединится с выбранным компонентом.
Для вращения установите значение 1.0 для Z на входе Delta Rotation. Чем выше показатель, тем быстрее поворачивается стол вокруг оси Z.
Для непрерывного вращения стола понадобится узел Event Tick, чтобы AddLocalRotation выполнялся в каждом кадре. Если узел не появился на графике, то создайте его уже знакомым методом.
Захватите выходную точку узла Event Tick и соедините со входом AddLocalRotation.
Это упрощённый подход, и вращение будет зависеть от скорости смены кадров, поэтому замедлится на некоторых компьютерах.
Обновите Blueprint, нажав Compile на панели Toolbar, и закройте этот редактор.
Добавляем Blueprints в уровень
Сначала удалите банановую модель: во Viewport выделите модель и кликните Edit/Delete или нажмите Delete на клавиатуре.
Аналогично добавлению меша удерживайте левую кнопку мыши на файле и перетаскивайте Blueprint во Viewport.
Нажмите Play в Toolbar и насладитесь результатами труда!
Выскочила ошибка о смене освещения? Значит, забыли удалить первоначальную модель объекта. Удалите, и будет вам счастье. Или скачайте проект.
Мультиплеер в Unreal Engine: Подключение и Хостинг
Введение
В этом цикле статей я планирую раскрыть механику работы мультиплеера в UE 4 и 5. Хочу начать с подключения, а далее уже буду отталкиваться от ваших желаний и вашей поддержки.
На просторах интернета я находил разные гайды по тому, как писать подключение, и почти нигде, даже на англоязычном сегменте не было полного и (относительно) правильного гайда, который в свое время пытался найти я.
Основная часть
1. Описание
В гайде не будет настройки OnlineSubsystemSteam, т.к руководств по этой теме множество.
Очень советую ознакомиться с хеддером GameSession.h по адресу GameFramework/GameSession.h для полного понимания механизмов работы данного класса.
Рис. 2. Методы класса AGameSession для присоединения игрока.
В итоге эти два класса должны работать в синергии чтобы получить качественный продукт.
2. Подключение к серверу
Теперь разберемся с тем, каков пайплайн подключения игрока к серверу. Под сервером мы будем понимать как другой клиент, так и dedicated-сервер.
Присоединение к сессии.
Выход из сессии.
Теперь подробно о каждом пункте:
Поиск. Все найденые сессии нужно где-то хранить и как-то искать. Создадим поле в нашем кастомном классе и функцию поиска:
Непосредственно сам поиск:
Когда поиск сессий окончится, нам надо об этом узнать.
Создадим несколько делегатов и функций для этого:
Теперь привяжем их к функциям:
Как только поиск окончится, можно оповестить игрока об этом, убрав экран загрузки или любой другой логотип, заспавненный на время. В нашем случае вывод дебага на экран скажут об этом.
Присоединение к сессии.
Обработаем вызов делегата:
После выполнения сих действий должен произойти сам travel.
Если вы залезете в функцию ClientTravel, то обнаружите, что это не более чем просто OpenLevel с нужным URL и несколькими настройками.
Выход из сессии.
Поскольку мы находимся на сервере, у нас нет доступа к GameSession и все действия необходимо выполнять сугубо с помощью контроллера и subsystem.
Где нибудь в контроллере или, как сделал я, в
UCPP_ClientTravelSubsystem : public UGameInstanceSubsystem
*Я не буду разбирать что из себя представляют другие Subsystem, т.к это выходит далеко за рамки этого гайда. Вы можете использовать любой другой объект, которым владеет клиент (GameInstance или PlayerController)
Добавим функцию DestroyClientSession()
Обработаем наш Destroy:
В итоге хотелось бы уточнить: интерфейс сессии создается и у сервера, и у клиента когда тот создает или подключается к сессии.
3. Хостинг
У хостинга следующий пайплайн:
Теперь рассмотрим, как должен действовать сервер, если хочет позволить другим игрокам к себе подключиться.
Перейдем к реализации:
Тут уже попроще. При последнем вызове делегата просто вызовется OnStartOnlineGameComplete();
Заключение
Вот пожалуй и все. Гайд получился очень громоздким и, вероятно, тяжелым для новичков.
Я легко мог допустить какие либо опечатки или неточности, поэтому пишите комментарии, дополнения и пожелания, с радостью на них отвечу.
В чем заключается разработка игр на Unreal Engine?
Планирую в будущем создавать игры, сейчас пытаюсь понять и разведать что и как (для того что бы определится с тем, что надо осваивать и изучать, каких единомышленников искать, и т.д). Процесс создания игры полностью мне не ясен, и хотелось бы узнать из чего он состоит.
Из каких этапов состоит создание игр? Можете их описать? С чего все начинается и чем заканчивается? Какие подводные камни могут ждать?
Я понимаю что создание игр достаточно обширная сфера, и разработка под разные платформы(и разные игры) может отличаться. Но мне хотелось бы услышать хотя бы общие моменты, что бы знать от чего отталкиваться и к чему стремится.
Изначально я ориентируюсь на разработку компьютерных игр, с последующем размещением в Steam. В качестве движка я выбрал UE, он мне кажется более комфортным (сам движок и политика компании), а в качестве языка программирования я изучаю с++ (который как раз используется в UE). Возможно изначально я буду создавать игры для мобильных устройств, для того что бы освоится в UE и в разработке в целом. (Хотя для мобильных игр конечно лучше использовать Unity, но не вижу смысла использовать его, если в дальнейшем все равно буду использовать UE)
Пишете сами себе ТЗ. Если за месяц и меньше сумели собрать прототип игры с большей частью фич из ТЗ(как правило основная идея игры, ее изюминка) то продолжайте разработку. Сами поймете какие темы надо подтягивать и штудировать.
Пытаться что то делать сразу для мобилок очень плохой вариант т.к. это на порядок сложнее.
UE4 или любой другой двиг в связке с С++ вообще ошибочный вариант, 95% что забьете на это очень быстро. Лучше начинайте с какого нибудь FPS\RPG\GAME Maker или тучи других движков которые больше ориентируются на визуальную часть и простейшие языки типа бейсика, есть еще неплохой «Лаборатория игр Kodu» от MS.
С++ язык который изучают несколько лет, потом лет 5 набивают шишки в проектах на коленке которые продал знакомым и еще пару лет работы в окружении профессионалов. Порог вхождения для правильного написания кода в этом языке очень большой, лучше не заморачиваться с ним и сразу учить Java\С#\Swift т.к. они в разы легче для понимания и сильно схожи друг с другом.
Вопрос о замене C++ другим языком не рассматриваю т.к этот язык мне будет нужен в любом случае.
1. Его мне препадают в вузе (Объясняют хорошо) и на нем должна быть реализована курсовая.
2. Планирую так же заняться, в качестве хобби, программированием микроконтроллеров (умный дом, роботы и т.д).
А учить несколько языков, направленных на решение одной проблемы, считаю нецелесообразным. И так предстоит изучать слишком много всего (вуз, работа и личные потребности).
Разработка игр на Unreal Engine 4 за 24 часа
Новинки раздела
В книге «Идеальная работа. Программирование без прикрас» легендарный Роберт Мартин (Дядюшка Боб) создал исчерпывающее руководство по хорошей работе для каждого программиста. Роберт Мартин объединяет дисциплины, стандарты и вопросы этики, необходимые для. В книге «Идеальная работа. Программирование без прикрас» легендарный Роберт Мартин (Дядюшка Боб) создал исчерпывающее руководство по хорошей работе для каждого программиста. Роберт Мартин объединяет дисциплины, стандарты и вопросы этики, необходимые для быстрой и продуктивной разработки надежного, эффективного кода, позволяющего испытывать гордость за программное обеспечение, которое вы создаете каждый день.
Роберт Мартин, автор бестселлера «Чистый код», начинает с прагматического руководства по пяти основополагающим дисциплинам создания программного обеспечения: разработка через тестирование, рефакторинг, простой дизайн, совместное программирование и тесты. Затем он переходит к стандартам — обрисовывая ожидания «мира» от разработчиков программного обеспечения, рассказывая, как часто различаются эти подходы, и помогает вам устранить несоответствия. Наконец, он обращается к этике программиста, давая десять фундаментальных постулатов, которым должны следовать все разработчики. Скрыть Показать весь текст
Александр Генис (“Довлатов и окрестности”, “Обратный адрес”, “Камасутра книжника”) обратился к новому жанру — календарь, или “святцы культуры”. Дни рождения любимых писателей, художников, режиссеров, а также радио, интернета и айфона он считает личными. Александр Генис (“Довлатов и окрестности”, “Обратный адрес”, “Камасутра книжника”) обратился к новому жанру — календарь, или “святцы культуры”. Дни рождения любимых писателей, художников, режиссеров, а также радио, интернета и айфона он считает личными праздниками и вставляет в список как общепринятых, так и причудливых торжеств.
Генис не соревнуется с «Википедией» и тщательно избегает тривиального, предлагая читателю беглую, но оригинальную мысль, неожиданную метафору, незамусоленную шутку, вскрывающее суть определение. Постепенно из календарной мозаики складывается панно, на котором без воли автора отразились его черты.
Для тех, кто хочет быть лучшим! Оригинальный текст и перевод на страницах одной книги — это эффективный способ усовершенствовать знание английского языка. Фрэнсис Скотт Фицджеральд — американский классик мировой литературы. Писатель, ярко и беспристрастно. Для тех, кто хочет быть лучшим!
Оригинальный текст и перевод на страницах одной книги — это эффективный способ усовершенствовать знание английского языка.
Фрэнсис Скотт Фицджеральд — американский классик мировой литературы. Писатель, ярко и беспристрастно отразивший безумную жизнь 20-х годов. Он и сам был плотью от плоти той легендарной эпохи. Но эксцентричность и внешняя позолота канули в прошлое, и в настоящем остались его бессмертные книги.
«Великий Гэтсби» — самый известный роман Фрэнсиса Фицджеральда, ставший символом «века джаза».
Америка, 1925 г., время «сухого закона» и гангстерских разборок, ярких огней и яркой жизни. Но для Джея Гэтсби воплощение американской мечты обернулось настоящей трагедией. А путь наверх, несмотря на славу и богатство, привел к тотальному крушению. Ведь каждый из нас в первую очередь стремится не к материальным благам, а к любви, истинной и вечной… Скрыть Показать весь текст
Лучшие продажи раздела
Евгений Семенович Штейнер – японист, кандидат филологических наук, доктор искусствоведения. Работал в ГМИИ им. А. С. Пушкина, преподавал и занимался исследовательской работой в университетах Москвы, Иерусалима, Токио, Иокогамы, Нью-Йорка, Манчестера и Лондона. Евгений Семенович Штейнер – японист, кандидат филологических наук, доктор искусствоведения. Работал в ГМИИ им. А. С. Пушкина, преподавал и занимался исследовательской работой в университетах Москвы, Иерусалима, Токио, Иокогамы, Нью-Йорка, Манчестера и Лондона. С 2012 профессор Школы Востоковедения Национального исследовательского университета «Высшая школа экономики» (Москва). Автор 15 книг, которые выходили в России, США, Великобритании и Германии. Книга Е. Штейнера «Манга Хокусая: энциклопедия старой японской жизни в картинках» (Санкт-Петербург: Петербургское востоковедение, 2016, 4 тт.) получила в 2017 году премии «Книга Года» и «Просветитель» (в спецноминации).
Кацусика Хокусай (1760–1849) – один из самых известных японских художников периода Эдо. На протяжении всей своей жизни он выпускал в свет альбомы гравированных рисунков под названием «Манга». В пятнадцати выпусках с четырьмя тысячами фигур и мотивов Хокусай представил энциклопедию старой Японии в картинках – начиная от. Скрыть Показать весь текст
Эта книга Роберта Макки завершает его трилогию, посвященную искусству сторителлинга. После «Истории на миллион долларов» и «Диалога» один из самых авторитетных специалистов по сценарному мастерству рассказывает, как именно следует подходить к созданию. Эта книга Роберта Макки завершает его трилогию, посвященную искусству сторителлинга. После «Истории на миллион долларов» и «Диалога» один из самых авторитетных специалистов по сценарному мастерству рассказывает, как именно следует подходить к созданию персонажа в произведении — будь то роман, пьеса или фильм. Перед читателем—подробное пособие и блистательный мастер-класс, в котором виртуозно соединились теория и практика. Наряду с обращением к классической традиции прошлого, в том числе к древнегреческому театру и поэзии, в книге представлены многочисленные примеры из литературы, драматургии и кинематографа последних лет.
Автор скрупулезно исследует законы создания и разработки персонажей, придания им глубины и объема, сложности и многогранности. На примерах из разных жанров показывает, как главные герои — в рамках ансамбля действующих лиц — взаимодействуют с второстепенными и вспомогательными персонажами.
Творческий процесс индивидуален, и готовых рецептов нет. Но те знания. Скрыть Показать весь текст
Как получить бонусы за отзыв о товаре
Сделайте заказ в интернет-магазине.
Напишите развёрнутый отзыв от 300 символов только на то, что вы купили.
Дождитесь, пока отзыв опубликуют. Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя.
Можно писать неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в первой десятке.
Отзывы 1
Была бы хорошая книга для быстрого старта в UE, если бы не халтура переводчика
В целом книга полезная, особенно новичкам, дает общее очень поверхностное представление об UE.
В наших магазинах
Подписка на новости
2011—2022, ООО «Новый Книжный Центр». Перепечатка материалов сайта возможна только с указанием активной ссылки на сайт «Читай–город».
“Хочу развиваться именно в геймдеве”
Игровые проекты в портфолио учащихся Школы дизайна НИУ ВШЭ нередко становятся популярными за пределами вуза и в дальнейшем эволюционируют в полноценные игры. Студентка 2-го курса направления “Гейм-дизайн и виртуальная реальность”— Юлия Муравьева — с детства мечтала стать инди-разработчиком. Ради достижения этой цели ей пришлось сменить учебное заведение, освоить Unreal Engine 4 с нуля и заняться разработкой собственных проектов, один из которых был трижды номинирован на Indie Cup W’21.
Увлечение, определившее путь
Любовь к компьютерным играм Юлии привил старший двоюродный брат. Он часто приходил в гости, устанавливал на ПК известные в прошлом стратегии (Heroes of Might and Magic, Stronghold, “Казаки” и т.д.) и играл в них, а его сестра очень любила наблюдать за процессом. Для пятилетней девочки виртуальный мир казался чем-то удивительным и неизведанным. C 10 лет Юлия уже сама играла в различные тайм-менеджменты, головоломки и квесты. Родители не покупали ей 3D-игры, поэтому зрелищные бродилки и шутеры от первого лица прошли мимо нее. Но со временем, даже играя в казуалки, ребенок начал понимать, что игры не всегда бывают хорошими и качественными. Особенно, когда речь шла о Flash-играх.
В более зрелом возрасте Юлия стала больше обращать внимания на инди-игры. Ей нравилась их самобытность и оригинальный подход. Девушка все больше стала задумываться о том, что через игру можно донести до человека какую-то историю и собственное видение. Но можно ли рассматривать эту деятельность в качестве будущей профессии? Истории успеха некоторых проектов доказывали, что независимые разработчики вполне могут достичь каких-то высот. Да и сама сфера геймдева перестала быть недосягаемой. Главное — освоить необходимые навыки.
Как ошибка помогла сделать выбор
Юлия решила стать программистом, чтобы в дальнейшем заниматься разработкой игр. Но первый вуз оказался не самым лучшим вариантом для будущей профессии. После первого семестра обучения по специальности “Прикладная математика”, стало ясно что учебный план нацелен преимущественно на банковскую IT-сферу, и в дальнейшем переквалифицироваться в разработку игр будет сложно. Девушка была равнодушна к цифрам и больше предпочитала творчество, поэтому забрала документы из вуза и решила поступить в другой. В любом случае, время было потрачено не зря, так как после первого курса у Юлии появился небольшой опыт программирования на C#. Теперь перед ней стоял выбор: поступать во ВГИК на режиссера-аниматора или в Вышку на геймдизайнера.
Юлия Муравьева: «В последний момент я поняла, что хочу развиваться именно в геймдеве и доносить свои мысли до большего количества людей. Если я стану аниматором или режиссером авторских фильмов, максимум, чего добьюсь — показ собственной киноленты на каком-нибудь закрытом фестивале с ограниченным количеством мест. В авторском кино все происходит именно так.»
Дистанционное обучение основам движка
К изучению Unreal Engine в НИУ ВШЭ приступают только в конце первого курса. Учебный план проработан так, что первый модуль сфокусирован на создании настольной игры. На втором и третьем модуле студенты работают с 2D-анимацией и постепенно погружаются в основы 3D-моделирования. На четвертом модуле начинается изучение движка и разработка первого игрового прототипа.
Обстоятельства сложились таким образом, что с наступлением пандемии студенты перешли на дистанционное обучение, и этот период совпал с изучением UE4. Юлия признается, что осваивать движок на карантине, без постоянного контакта с преподавателем, нелегко. Особенно первокурснику, для которого в новой программе все кажется сложным и недосягаемым.
Юлия Муравьева: «Когда запускаешь редактор UE4 в первый раз — видишь миллион иконок, вкладок, ничего не понимаешь и закрываешь. Но, после получения определенных знаний, осознаешь, что движок не такой сложный, как кажется на первый взгляд, и интерфейс не пугает как раньше.»
Основы Unreal Engine геймдизайнерам-первокурсникам преподавал Вячеслав Бушуев (Scream School), приглашенный вузом в качестве эксперта по движку. Помимо теории, немало внимания уделялось практическим заданиям. Одно из них заключалось в том, что у каждого студента был проект с одинаковыми ассетами, в котором следовало доработать базовую логику, настроить персонажей, сделать примитивный AI и т. д. Преподаватель отслеживал прогресс студентов по работам и давал фидбек. Таким образом, учащиеся постепенно знакомились с функционалом движка.
Юлия Муравьева: «Я восхищена тем, как легко и просто Слава доносит информацию. Когда мы отправляли работы на проверку и получали рекомендации, я понимала, какие аспекты у меня получаются хорошо, а над какими еще стоит поработать. И хотя мы с преподавателем не часто общались тет-а-тет, я многое почерпнула из его лекций и поверила в себя. Когда на втором курсе у нас началось повторение основ UE4, стало ясно, что знаний, которые я получила на первом курсе достаточно для разработки простых игр. Конечно, приходилось самостоятельно изучать какие-то вещи, в том числе туториалы, но, в целом, самый первый курс от Славы Бушуева оказался очень полезным.»
Первый прототип и дальнейшие успехи
Базовых знаний в области движка студентке было достаточно, чтобы подготовить к концу 4 модуля 1-го курса свой первый проект — “Дотла́”: приключенческую игру с survival и roguelike-элементами. По сюжету Солнце внезапно исчезло и наступила тьма, от которой лес стал медленно умирать. Главный герой — отважный зайчонок — решил отыскать Солнце и вновь зажечь его с помощью спичек. Спички стали важным элементом гейм-дизайна и не просто придают загадочную атмосферу. С их помощью игрок может ориентироваться в темноте и, в случае необходимости, поджигать окружение.
Изначально “Дотла́” собиралась на Unity. Обстоятельства сложились так, что у одной из сокурсниц Юлии не было технической возможности работать на UE4. В качестве солидарности, Юлия решила параллельно изучить Unity и собрать проект на этом движке. В дальнейшем выяснилось, что освоение нового редактора потребует немало времени и студентка вернулась к работе в UE4. Вскоре был оперативно собран первый билд, соответствующий требованиям для итогового просмотра.
После презентации, Юлия продолжила развивать прототип “Дотла́” и выпускала к нему небольшие патчи. Несмотря на то, что студентка считала свой первый проект достаточно неуклюжим, людям понравилась атмосфера билда. В дальнейшем он получил теплый прием на itch.io и даже привлек внимание одного из летсплееров. Стали приходить позитивные отзывы от геймеров, которые случайно находили демо на портале. Игроки интересовались будущим игры, но на тот момент Юлия ничего не могла обещать: наступил новый учебный год, а вместе с ним и новые задания от кураторов.
Постсоветская безысходность в спрайтах
На первом модуле второго курса студенты работали над созданием платформера. За основу концепции новой игры Юлия взяла образ мрачной промзоны на постсоветском пространстве, где ощущаются явные проблемы с экологией. В 2D-платформере с элементами тайм-менеджмента “Норильск’ 93” маленькая птичка Киви берет на себя миссию по озеленению крыш города. Совмещая тучи, игрок обеспечивает полив растений в горшках. При этом необходимо соблюдать полярность: в случае объединения “положительного” облака с “отрицательным” начинается гроза и молния из тучи может погубить росток.
Прототип “Норильска’ 93” сделан целиком на блупринтах UE4. Весь мир игры состоит из 2D-спрайтов. Благодаря тому, что вид в игре не ортогональный, а перспективный, нарисованные бумажки создают псевдо-3D эффект. Юлия признается, что на Unreal Engine 4 очень сложно делать 2D-игры. Возможно, это связано с тем, что движок нацелен преимущественно на масштабные 3D-проекты.
Юлия Муравьева: «Я очень люблю 2D-анимацию, и мне грустно осознавать, что UE4 при всех его неограниченных возможностях в области 3D-графики работает с 2D очень слабо. Нет инструментов, как в том же Unity, например, скелетной анимации для спрайтов. Еще очень напрягает вес билдов. В UE4 минимальный размер готовой игры составляет 100(+-10) Мб. Добавляем к этому текстуры, звук и все остальное — в итоге размер билда достигает каких-то огромных размеров, что критично для простой 2D-игры. Все дело в том, что любой проект собирается с учетом базового функционала, который рассчитан под 3D-графику, поэтому условные 100 Мб набегают в любом случае, независимо от того, какой проект в итоге будет. Я столкнулась с этим на следующем модуле, когда мы делали мобильные проекты. Первая игра у меня получилась объемом 130 Мб, а вторая — 250 Мб. А ведь это всего лишь базовые прототипы, не предназначенные для закачки на Google Play.»
Начинающий геймдизайнер надеется, что в дальнейшем инструмент улучшат для работы с 2D и оптимизируют размеры билдов. Юлия очень любит работать с 2D-анимацией в качестве хобби. Со временем удалось полюбить и 3D-графику, однако девушка считает, что именно в 2D можно добиться более выразительного эффекта даже на плоском экране. В любом случае, смена движка не входит в планы студентки.
Разработка “Норильск ’93” заняла 2 месяца. На итоговом просмотре куратор Дмитрий Качков высказал предположение, что такой проект вряд ли заинтересует широкую аудиторию, так как на сегодняшний день постсоветская романтика мало кому интересна. Такой отзыв огорчил Юлию, но она понимала, что платформер в подобной стилистике оценят немногие игроки.
Участие в конкурсе и первые успехи
В начале этого года стартовал 10-й сезон кубка независимых разработчиков — Indie Cup W’21. Инди-разработчик, с которым Юлия познакомилась на одном из хакатонов, рассказал ей, что собирается принять участие в конкурсе. На тот момент у студентки были рабочие демо, и Indie Cup казался отличным шансом продемонстрировать их жюри и получить фидбек. Так как “Дотла́” все еще требовала доработки, Юлия решила отправить билд “Норильск ‘93”.
Платформер неплохо вписывался в формат конкурса: небольшой камерный проект со своей особенной атмосферой и антуражем, не требующий сбора команды, двух лет разработки и каких-то особых усилий, кроме исправления некоторых критичных багов. Как только все недочеты были устранены, “Норильск ’93” отправился на Indie Cup. В итоге платформеру удалось получить три номинации: “Best Unreal Engine Game”, “Critic’s Choice” и “Rising Star”. Для студенческого проекта — весьма впечатляющий результат.
Юлия Муравьева: «“Норильск ’93” не победил ни в одной номинации, но я не расстроилась. Это не значит, что у меня не было надежды на победу, просто я понимаю, что моя игра оказалась в одном ряду с более сильными проектами, уже готовыми к релизу. В любом случае, это был интересный опыт. Надеюсь, что когда-нибудь у меня получится отправить на конкурс что-то еще.»
Сейчас платформер заморожен. Возможно, Юлия вернется к нему в будущем, когда в движке исправят вышеозвученные проблемы с 2D. А пока “Норильск ’93” стал своеобразным “трофеем” в студенческом портфолио.
Возвращение к первому проекту
Помимо участия в конкурсе, Юлия вернулась к разработке “Дотлы” в свободное время от учебы. После позитивного фидбека от пользователей itch.io, студентке захотелось доделать игру, но в этот раз подойти к процессу более осознанно. Когда Юлия открыла первый билд в редакторе и оценила его свежим взглядом, сразу поняла, что из-за обилия “костылей” не было смысла что-то исправлять. Игру пришлось переделать фактически с нуля.
Сейчас основной упор в разработке идет на сюжет и отработку нелинейных моментов, связанных с roguelike-элементами, в частности генерации карты леса. Также большое внимание уделяется визуалу, особенно динамическому освещению и погодным эффектам, которые передают загадочную атмосферу игры.
Юлия Муравьева: «В “Дотле” геймплей не изменится, так как он уже отработан на плейтестерах. Мне кажется, что в моем проекте атмосфера — одна из самых сильных сторон и ей нужно уделить больше всего внимания. Код игры и баланс также нуждается в корректировке. Но основная ставка сделана именно на атмосферу. Я много времени тестировала, как работает динамическое освещение и звук. Возможно, в каком-то смысле мой подход схож с видением авторов Journey: Thatgamecompany вносили немало поправок в визуал и атмосферу игры, а затем тестировали, как эти аспекты влияют на симулятор ходьбы.»
Кураторы направления гейм-дизайна постоянно напоминают студентам о необходимости доносить свое творчество широкой публике. Это значит, что работы нужно выкладывать на различных порталах и в соцсетях (Twitter, Reddit и т.д.), чтобы заинтересовать потенциальную аудиторию. Именно она поддержит разработчика в тяжелые времена и купит его игру. Независимо от того, сколько геймеров привлечет “Дотла́”, после завершения работы над проектом, Юлия выпустит его в Steam. Для начинающего геймдизайнера довести свою первую игру до логического финала стало делом принципа, независимо от результатов продаж. Даже если что-то пойдет не так, лучше совершить ошибку в период студенчества, пока есть “отсрочка” от взрослой жизни.
В любом случае, пока учеба остается в приоритете. Совсем недавно Юлия закончила работу над шутером от третьего лица Echoes — итоговым проектом 3-го модуля. В заключительном модуле второго курса студенты работают над играми в сформированных группах. Юлии отведена роль дизайнера и художника по персонажам.
Как и многие студенты направления гейм-дизайна, Юлия мечтает стать независимым разработчиком, собрать команду и открыть собственную студию. Но с другой стороны, девушка понимает, что в современном мире не все так просто, и в дальнейшем придется подстраиваться под определенные жизненные обстоятельства. Ради получения нового опыта Юлия готова в будущем попробовать себя в другой компании в качестве 3D-моделлера, концепт-художника или геймдизайнера. В одном она уверена точно: как бы не изменилась жизнь после окончания вуза, главное для начинающего инди-разработчика — не утратить самобытность и доносить свои идеи до широких масс в будущих проектах.
Разработка игр на Unreal Engine 4 за 24 часа
Может у кого-нибудь имеется в формате PDF/FB2 книга:
«Разработка игр на Unreal Engine 4 за 24 часа» Арам Куксон, Клинтон Крамплер, Райан Даулингсока
m1dn1ght
за кусок дерева с поверхностной информацией ну да совсем не конячий, там вон по 700 целый курс создания перса для игры от хай поли до лоу с примерами файлами 20гигов видео.
Не знаю зачем книги до сих пор печатают с такой лапшой, из книжки только поверхностно можно что то узнать но не как игру создать и продать ее что важнее.
Не ужели на сайте анриала меньше инфомрации в хелпе и без примеров?
Как сделать простое «главное меню» для игры в Unreal Engine 4. Часть 1
Этот туториал – моя первая «статья» по Unreal Engine 4. Сам я относительно недавно начал осваивать данный движок и разработку игр в общем и сейчас работаю над созданием более-менее простой игры. Недавно закончил базовую версию меню для своего проекта и решил описать свой опыт в этой статье.
Данная статья не требует каких-либо специальных навыков и вам нужно лишь установить сам движок. Я буду использовать последнюю на сей день стабильную версию: 4.16.2.
Что мы будем делать?
Это меню я сделал для игры над которой сейчас работаю. В результате туториала мы сделаем нечто похожее. (Сама игра не включена в туториал).
0. Создаём проект
Возьмём за основу шаблон для First Person Shooter. Вы можете взять любой другой или вообще ипользовать пустой (Blank) шаблон – для данной статьи это не имеет значения.
Я буду использовать Blueprint-шаблон, т.к. в любом случае меню удобнее создавать через UMG виджеты и визуальные скрипты, а работать с UMG из C++ не очень удобно (впрочем, зависит от сложности и предпочтений – в упомянутом мной выше проекте я использую смешанный подход).
После запуска Unreal Engine вы увидите экран создания проекта:
После запуска Unreal Engine вы увидите примерно следующее:
1. Главное меню – первый экран игры
Самый простой способ сделать главное меню – создать новый пустой уровень для меню и запускать игру именно с него.
Итак, создадим новый уровень!
Слева в Content Browser открываем папку Maps
Здесь на пустом месте вызываем контекстное меню и выбираем пункт Level
Делаем двойной клик на уровне и видим, что уровень представляет из себя ничего – просто чёрный viewport.
В данном случае, именно ничего нам и нужно!
В правом верхнем углу вьюпорта есть настройки отображения (влияют только на то, как вы видите виджет в редакторе, но не в игре). Для себя я поставлю разрешение 1080p и отцентрирую вьюпорт, чтобы всю полезную площадь занимал сам виджет
И нажмём кнопку Save в панели инструментов.
UE4 любит неожиданно вылетать, а в случае вылета все несохранённые изменения вы потеряете.
Добавленный текст будет названием нашей игры. С помощью «ромашки» отцентрируем его по-горизонтали и на высоте 20% от верхнего края экрана. «Ромашка» позволяет выравнивать виджеты и привязывать их к нужным точкам, очень удобно при необходимости делать интерфейсы, которые будут работать на разных разрешениях экрана.
Если вы не видите «ромашку» – выберите наш текстовый элемент, кликнув на него левой кнопкой мыши.
Например, значение X 0.5 Y 0.0 задаёт точку посередине элемента по-горизонтали и на верхней границе элемента по вертикали.
В этой же панели Details установим размер шрифта побольше, например 60 единиц.
Создание самого меню
Для меню UE4 предлагает удобный элемент Vertical Box – он позволяет автоматически выравнивать несколько дочерних элементов; в нашем случае это будут кнопки ( Button ).
Установим для него точку привязки примерно посередине экрана, можно чуть выше.
У текстового элемента можно поставить размер шрифта побольше, например, 35 единиц. А сам текст поменяйте на » Начать Игру «.
Картинку, как это сделать, вставлять не буду, изменение размера шрифта мы уже проходили чуть ранее, при добавлении заголовка.
На данном этапе меню должно выглядеть примерно так:
Отображение меню в игре
Перейдём на основную вкладку UE4, где у нас открыт пустой уровень с чёрным вьюпортом.
Blueprints – мощный язык программирования, несмотря на то, что здесь вы не пишете код, а составляете его из блоков (нод). «Под капотом» там всё равно работает C++, но многие вещи намного проще и удобнее делать именно через Blueprints, вместо того, чтобы писать непосредственно код «вручную». Впрочем, верно и обратное: многие другие вещи удобнее/проще делать в коде. Поэтому при создании игры моя рекомендация – использовать комбинированный подход, а не зацикливаться на чём-то одном.
По аналогии с BeginPlay создадим рядом ноду Create Widget :
У нод событий (эвентов, events) обычно только один исходящий коннектор-пин – exec pin (от «execute»), пин выполнения. У других нод могут быть ещё пины параметров и пины результата. Цвета пинов параметров и результатов показывают тип значения (boolean, int, string и т.д., очень много всевозможных вариантов).
В ноде Create Widget в параметре Class выберем наш виджет MainMenu
Теперь при запуске игры виджет будет создан, но мы ничего не увидим, т.к. его ещё надо отобразить. А также – передать управление от самой игры к интерфейсу.
Если всё было сделано правильно, то вы должны увидеть меню на чёрном фоне. Однако, есть проблема: курсор оказывается невидим. Ок, в панели инструментов нажимаем Stop (или просто Esc на клавиатуре).
Hint: Колесом мыши можно менять зум блюпринта.
Создание обработчиков кнопок
Так как статья получается длинной, в этой части мы сделаем только кнопки » Начать игру » и » Выход «. А другие кнопки, пока что, отключим.
В редакторе внешне ничего не изменится, но если вы снова запустите игру, то кнопки будут серыми и неактивными.
Создание обработчика ButtonExit оставляю на домашнее задание – оно даже проще: нужно просто использовать ноду Quit Game с дефолтными параметрами. Чтобы из блюпринта виджета вернуться в редактор UI можно воспользоваться переключателем справа вверху.
Разработка мультиплеера на Blueprints. Часть 1
В русскоязычном коммьюнити (да и в любом другом) очень мало информации по разработке мультиплеерных игр на UE4. Хочу поделиться с читателями не только выработанными приемами, но и ошибками, которые совершил во время работы с сетью.
Статья рассчитана на людей, начинающих свой путь в создании мультиплеерных проектов, но уже овладевших базой блюпринтов. Весь материал взят из моего пока что невыпущенного проекта — Greed.
С чего начать?
Сразу определим важнейшую догму геймдева: порядок — в основе всего. Прежде, чем открывать движок, обязательно распишите концепт-док, не поленитесь зайти в Trello и создать список того, что вы вообще собираетесь делать. Пропустив этот шаг, вы рискуете нарваться на кучу переработок и переосмыслений своего детища в ближайшем будущем.
Организация папок
Допустим, все из вышеперечисленного у нас есть. Теперь начинается самое веселье — открываем движок. Плохим тоном считается закидывание пустого проекта всякого рода папками. Это моментально создает хаос в контент браузере из-за различающейся иерархии наборов.
Чтобы не упасть в грязь лицом на самом старте, посмотрим, какие существуют типы структуризации файлов.
Родственный
Все файлы, относящиеся к абстрактному объекту, хранятся в общей папке. Например, мы создали папку под персонажа. Скелет, текстуры, материалы, блюпринты и другие ассеты будут храниться в его личной директории.
Категориальный
Файлы определенного типа хранятся в созданной для этого директории. Например, мы поместили все блюпринты в одну папку. Загвоздка в том, что существует множество классов, которые нужно логически разделить на подкатегории.
Что же выбрать?
Выбирайте, исходя из обстановки. Если вы работаете в одиночку, первый вариант, скорее всего, больше придется по душе. Для работы в команде предпочтителен второй в силу своей понятности.
Какие папки делать-то?
Я всегда придерживаюсь категориальной структуры:
Когда мы навели порядок и определили, где и что будет находиться, приступаем к осознанию того, в каком ключе нам придется работать с мультиплеером в UE4.
Морально готовимся к мультиплееру
В документации к UE4 есть отличная статья, покрывающая все аспекты работы с сетью. К сожалению, не каждый начинающий поймет, о чем там вообще говорится (к тому же на примерах C++). Поэтому я постараюсь изложить ее как можно проще в блюпринтовом варианте.
Итак, игровая логика разделяется на две сущности:
Клиент — машина игрока, визуализирующая графику игры и рассчитывающая не важные для геймплея вещи. Например, проигрывание анимации: чтобы не нагружать сеть пакетами, все движения костей просчитываются на машине игрока; сервер же только передает ссылку на нужную анимацию.
Сервер — машина, в которой существует наша игра. На сервере должны выполняться важные для геймплея куски кода, которые по необходимости сообщают какую-то информацию клиенту или вовсе скрывают ее от глаз игрока. У клиента не должно быть доступа к серверным переменным, иначе он сможет читерить. Например, просчет оставшихся патронов должен рассчитываться только на сервере, чтобы игрок не мог наплодить себе миллиард снарядов и получить преимущество над оппонентами.
Все сказанное, разумеется, предполагает условности. Если вам, например, необходимо отобразить ragdoll у всех клиентов одинаково — просчитайте его на сервере, никто не запрещает. Это ваше право как разработчика решать, что и где происходит.
Система на пальцах
Unreal Engine 4 предлагает разработчику систему RPC (Remote Procedure Calls), которая позволяет клиенту и серверу общаться друг с другом через ивенты.
По совместительству с этой системой существует другой тип общения — репликация переменных — передача данных происходит только с сервера на клиент. Сервер делится со всеми игроками тем, что он у себя посчитал.
Также мы можем реплицировать любой объект на сцене. Когда эктор реплицируется, он существует в двух копиях: на клиенте и на сервере. Если к серверу подключены два игрока, в игре уже две клиентские копии и одна серверная.
Пример
Мы подключились к сессии CS:GO и играем за террориста, в другой же команде — один спецназовец. Получается, сейчас в игре три копии террориста и три копии спецназовца. У каждого из персонажей собственный owner — владелец — у которого есть явное преимущество в управлении своим персонажем.
Но! Спецназовец все-таки видит наши перемещения. Как же это происходит? Обдумав наш запрос, сервер может послать ответ только нам, а может и всем клиентам, как в случае с перемещением.
Переходим к коду
Как же выглядят эти запросы в коде? Логически все происходит так же, как и в примере с CS:GO, только с наложением некоторых условий.
Теперь рассмотрим эти самые условия, которые выражены в виде RPC. Это типы ивентов, которые позволяют разработчику настраивать «тоннели», через которые игроки будут отправлять запросы серверу, а сервер — свои ответы игрокам.
Чтобы превратить обычный ивент в RPC, нам достаточно кликнуть по вкладке “Replicates” в деталях ивента и выбрать тип передачи данных.
Далее стоит учесть, каким образом мы будем вызывать ивент. У каждого RPC ивента есть условие, только выполнив которое мы продолжим выполнение кода.
Теперь рассмотрим, в чем особенность каждого RPC и какие нюансы скрывает от нас движок.
Run on owning client
Run on server
Ивент вызывается с клиента, но выполняется на сервере. Например, мы хотим проиграть анимацию атаки и не хотим нагружать сервер, поэтому все разрешения и типы атак просчитываем на клиенте.
Так или иначе, монтаж захочет подвинуть персонажа вперед, что потребует вмешательство сервера. Стоит знать, что единственно «правильная» копия персонажа находится на сервере, поэтому ему мы передаем только монтаж, который надо проиграть. Что же произойдет дальше — посмотрим в следующем в виде RPC.
Multicast
Вызывается на сервере и исполняется на всех клиентах. Мы запросили у сервера проигрыш монтажа и он дал добро всем клиентским копиям. Получается, каждый игрок увидит, как мы перемещаемся, да еще и проигрываем монтаж атаки.
Что за “Reliable”?
Так получилось, что сервер — не всемогущ. Иногда пакеты, которые игрок отправляет на сервер, или сервер — игрокам, могут затеряться в бесконечных просторах сети. Особенно часто это происходит, когда на сервере свыше десятка клиентов.
Чтобы мы убедились в том, что ивент точно произойдет и никто не потеряет свою часть пакетов, можно выставить галочку на Reliable в настройках ивента. Движок насильно протолкнет пакеты через сеть и получит ответ от клиента, что данные получены. Если нет — пересылка произойдет еще раз.
Когда использовать “Reliable”?
Разделяем логику
Чтобы лишний раз не создавать RPC ивенты, мы можем просто разделить уже имеющуюся логику.
Следуем по цепочке: if Dead == True then… О боже! Неизвестная нам нода!
Спокойно! Эта функция очень проста — Switch Has Authority позволяет нам разделить логику на то, что происходит на сервере, и на то, что происходит на клиенте. Authority = сервер, Remote = клиент.
Получается, что вся техническая байда пойдет по ветке Authority, т.к. она геймплейно важна для нас; а вся визуальная (в нашем случае — включение рэгдолла на скелете) — по ветке Remote. Это сделано для того, чтобы сократить код и не возлагать на клиента или на сервер то, чем он заниматься не должен.
Реплицируемые переменные
Еще одной деталью при общении сервера и клиента являются переменные. Здесь все гораздо проще: переменная идет только с одного конца в другой — с сервера на клиент.
Если переменная реплицированная, это значит, что единственно верное ее значение содержится только на сервере и только сервер может его изменить, что приведет к перезаписи значения и на клиенте. Не доверяем игрокам!
Настройки репликации у Экторов
Чтобы сервер знал, каких экторов ему надо обновлять, выставим настройки репликации в Class Defaults нужного нам класса.
Рассмотрим каждый из параметров по убыванию важности:
Replicates — основной параметр репликации.
Включен — сервер знает об этом экторе и периодически его обновляет.
Выключен — эктор существует только на клиентах. RPC на нереплицируемом экторе работать не будет.
Net Priority — показывает главенство эктора над другими при одновременном обновлении.
Значение — чем выше значение, тем больше вероятность того, что эктор обновится на клиентах.
Net Update Frequency — обозначает, сколько раз в секунду эктор будет обновляться на клиентах.
Значение — чем выше значение, тем чаще объект обновится за одну секунду. Стандартные 100 раз — нереальное (в прямом смысле) число. Максимум эктор обновится 10 раз, и то это будет много. Выбирайте число, исходя из важности этого эктора для сетевой игры.
Always Relevant — в любой ситуации эктор будет реплицироваться ВСЕМ клиентам.
Включен — всем игрокам доступны реплицируемые переменные и ивенты этого эктора. Перезаписывает Only Relevant to Owner, если на том стоит галочка.
Выключен — актуализирует параметр Net Cull Distance Squared, отвечающий за репликацию переменных экторам, находящимся в радиусе его действия.
Only Relevant to Owner — эктор реплицируется только своему владельцу.
Включен — все переменные и ивенты доступны только владельцу этого эктора.
Выключен — эктор полностью реплицируется всем клиентам.
Net Use Owner Relevancy — эктор копирует приоритет сети у своего владельца.
Включен — проверяет, доступен ли сети владелец (если таковой имеется) и копипастит себе его Net Priority.
Выключен — эктор пользуется своими настройками сети.
Replicate Movement — отправляет на клиент все перемещения объекта, выполняемые на сервере. За частоту обновления позиции отвечает Net Update Frequency.
Включен — все движковые ивенты, привязанные к Movement Component, будут вызываться на сервере и запускаться на клиентах.
Выключен — Movement Component не будет работать в сетевой игре.
Net Load on Client — определяет, загрузить ли объект на клиентах.
Включен — загружает объекты на клиентах на Begin Play.
Выключен — объект будет существовать на сервере, но не на клиентах.
Net Cull Distance Squared — показывает квадрат расстояния от клиента до эктора, за которым эктор перестанет реплицироваться. По умолчанию дистанция проверяется раз в 5 секунд.
Значение — чем выше значение, тем дальше от начала координат убежит ваш эктор, прежде чем он перестанет реплицироваться.
Дебаггинг
Не чурайтесь использовать инструменты отладки. Поверьте, они сэкономят вам кучу времени, а их освоение занимает от силы 10 минут (как оказалось, для многих это страшная цифра!).
Print String
Что может быть проще старого доброго Принт Стринга? Эта штука делается в два клика и позволяет увидеть значения, находящиеся и на клиенте, и на сервере.
Breakpoints
Брейкпоинты — более крутая штука. С помощью них можно отследить цепочку из блюпринтов от ее начала до конца. Все, что нужно сделать — выбрать ноду, нажать F9, запустить игру и выполнить прописанное в коде действие.
Туториал по Unreal Engine. Часть 4: UI
Разработчики видеоигр используют графику и текст для отображения необходимой информации, например, здоровья или очков. Это называется интерфейсом пользователя (user interface, UI).
UI в Unreal Engine 4 создаётся с помощью Unreal Motion Graphics (UMG). UMG позволяет удобно выстраивать UI, перетаскивая элементы UI, такие как кнопки и текстовые метки.
В этой части туториала вы научитесь следующему:
Примечание: эта статья является одной из восьми частей туториала по Unreal Engine:
Приступаем к работе
Скачайте заготовку проекта и распакуйте её. Перейдите в папку проекта и откройте GeometryCatcher.uproject.
Примечание: если откроется окно, сообщающее, что проект создан в более ранней версии Unreal editor, то всё в порядке (движок часто обновляется). Можно или выбрать опцию создания копии, или опцию преобразования самого проекта.
Нажмите на Play, чтобы начать управлять белым кубом и попробуйте ловить падающие фигуры. Куб можно перемещать горизонтально с помощью мыши. Через десять секунд фигуры перестают создаваться.
Первое, что нужно сделать — создать HUD-дисплей, отображающий две вещи:
О виджетах
Виджет (widget) — это элемент UI, предоставляющий UI визуальные функции. Например, виджет Button предоставляет объект, который пользователь может видеть и нажимать на него.
Сам виджет необязательно должен быть видимым. Например, виджет Grid Panel равномерно разделяет своё пространство между его содержимым. Пользователь не может увидеть Grid Panel, но видит его воздействие.
Кроме того, виджеты могут содержать другие виджеты. Вот пример виджета, содержащего виджет Text (метка Name) и виджет Text Box:
Можно даже создать виджет, являющийся целым интерфейсом, например, экраном меню. Ниже представлен пример виджета, созданного так, чтобы он выглядел как начальный экран игры. Все элементы UI тоже являются виджетами и содержатся внутри виджета начального экрана.
Итак, мы узнали, что такое виджеты. Теперь можно создать виджет для HUD.
Создание виджета
Перейдите в Content Browser и найдите папку UI. Нажмите на кнопку Add New и выберите User Interface\Widget Blueprint. Переименуйте новый ассет в WBP_HUD.
Дважды нажмите на WBP_HUD, чтобы открыть его в UMG UI Designer.
UMG UI Designer
UMG UI Designer состоит из семи основных элементов:
Создание виджета Text
Виджеты Text отлично подходят для отображения числовой информации, например, счётчика и таймера.
Перейдите в панель Palette и найдите виджет Text. Добавьте виджет, перетащив его мышью в панель Designer.
Содержание текста нас пока не интересует, мы изменим его позже.
Переименуйте виджет в CounterText. Это можно сделать, выбрав виджет Text и перейдя в панель Details. Введите CounterText в текстовое поле в верхней части.
Виджеты можно двигать, перетаскивая их левой клавишей мыши в панели Designer.
Также можно изменять размер виджетов, перетаскивая левой клавишей мыши границы. Изменение размера позволяет задать границы виджета. Unreal не будет ничего рендерить за пределами границ.
Или же можно задать положение и размер изменением значений в панели Details. Задайте следующие свойства и значения для CounterText:
На данный момент текст занимает только небольшую часть поля.
Можно увеличить размер шрифта, перейдя в панель Details и к разделу Appearance. Справа от свойства Font есть текстовое поле для задания размера шрифта.
Введите размер 68.
Давайте сделаем счётчик красивее, добавив к нему значок.
Создание виджета Image
Виджеты Image — это простой способ отображения графики в UI, например, значков.
Создайте виджет Image и назовите его CounterIcon. Задайте Position X значение 75, а Position Y — значение 50. Виджет разместится рядом с CounterText.
Чтобы задать изображение, перейдите в панель Details и зайдите в раздел Appearance. Разверните свойство Brush, а затем нажмите на раскрывающемся списке рядом с Image. Выберите T_Counter.
Изображение будет выглядеть растянутым, потому что размер виджета отличается от размера изображения.
Вместо изменения размера виджета мы можем использовать опцию Size To Content. Эта опция автоматически изменяет размер виджета под размер его содержимого.
Находясь в панели Details, перейдите в раздел Slot (Canvas Panel Slot). Поставьте флажок рядом с Size To Content.
Виджет сам подгонит свой размер под изображение.
Если игра будет запускаться с разными размерами экрана, то UI должен соответствующим образом перемещать виджеты. Чтобы сохранить компоновку UI, нужно использовать привязки.
Привязки
Точка привязки задаёт место, относительно которого определяется положение виджета. По умолчанию виджеты привязаны к верхнему левому углу своего родительского элемента. Поэтому когда мы задаём положение виджета, мы на самом деле указывает положение относительно этой точки привязки.
В примере ниже каждое изображение привязано к одной точке (к ближайшему углу).
Заметьте, что каждое изображение сохраняет положение относительно своей привязки. Благодаря привязкам UI будет иметь одинаковое расположение при разных размерах экрана.
Также можно использовать привязки для автоматического изменения размера виджетов. В случае привязки к двум или более точкам виджет будет менять свой размер для сохранения относительного размера.
В примере ниже индикатор привязан к верхнему левому и верхнему правому углам.
Вертикально индикатор перемещается, но не меняет размера, потому что на оси Y есть только одна привязка (сверху). Однако горизонтально индикатор меняет размер, потому что имеет две точки привязки по оси X.
Anchor Medallion отображает расположение привязки. Он появляется при выборе виджета.
Привязки CounterText и CounterIcon уже находятся в нужном месте, поэтому задавать их не нужно.
Теперь мы создадим ещё по одному виджету Text и Image для таймера. Однако на этот раз мы поместим их справа.
Создание таймера
Создайте виджет Text и назовите его TimerText. Задайте следующие свойства:
Теперь мы хотим задать привязку в правом верхнем углу. Это можно сделать, перетащив мышью круг в Anchor Medallion. Переместите Anchor Medallion в правый верхний угол.
Заметьте, как обновляется положение относительно привязки.
Создайте виджет Image и назовите его TimerIcon. Задайте следующие свойства:
Вместо задания привязки с помощью Anchor Medallion, можно воспользоваться предустановленными значениями. Перейдите в панель Details и нажмите на раскрывающийся список рядом с Anchors, чтобы открыть предустановленные значения. Выберите третью схему (с квадратом в правом верхнем углу).
Создание схемы UI на этом завершено. Можно убедиться в том, что привязки работают, эмулируя различные размеры экрана. Перейдите в панель Designer и нажмите на раскрывающийся список Screen Size.
Выбор опции изменит размер WBP_HUD для соответствия опции. Ниже показано, как HUD будет выглядеть на iPad Air. Заметьте, что виджеты стали ближе друг к другу.
В следующем разделе мы узнаем, как отображать виджет WBP_HUD.
Отображение HUD
Нажмите на Compile, а затем вернитесь в основной редактор. Перейдите в папку Blueprints и дважды щёлкните на BP_GameManager, чтобы открыть его.
HUD должен становиться видимым после запуска игры. Для этого можно использовать нод Event BeginPlay.
Найдите нод Event BeginPlay и добавьте нод Create Widget в конец цепочки нодов. Этот нод создаёт экземпляр указанного виджета.
Нажмите на раскрывающийся список рядом с Class и выберите WBP_HUD.
Чтобы отобразить HUD, необходимо использовать нод Add to Viewport. Перетащите левой клавишей мыши контакт Return Value нода Create Widget. Отпустите левую клавишу мыши в пустом пространстве, чтобы открыть контекстное меню. Добавьте нод Add to Viewport.
Давайте разберёмся с порядком событий:
Чтобы отобразить значения счётчика и таймера, нам нужны переменные для хранения этой информации. Эти переменные можно найти в BP_GameManager.
Чтобы использовать эти переменные. нам нужен способ получения доступа к BP_GameManager из WBP_HUD. Для этого можно применить переменную-ссылку.
Переменные-ссылки
Хранить ссылки полезно, потому что они позволяют удобно получать доступ к экземплярам.
Представьте, что у вас есть одна коробка, в которой лежит мяч. Если нам нужно найти и изучить мяч, то это будет просто, потому что у нас есть всего одна коробка.
А теперь представьте, что у нас сотня коробок, но мяч есть только в одной. Нам нужно будет проверять каждую коробку, пока мы не найдём коробку с мячом.
Каждый раз, когда нам нужно будет изучить мяч, придётся выполнять эту операцию. Это быстро приведёт к проблемам с производительностью.
Благодаря ссылкам можно отслеживать коробку с мячом. Таким образом, нам не придётся проверять каждую коробку.
Создание переменной-ссылки
Откройте WBP_HUD и переключитесь в режим Graph, перейдя в Editor Mode и выбрав Graph.
Перейдите на вкладку My Blueprint и создайте новую переменную GameManager.
Перейдите в панель Details и нажмите на раскрывающийся список рядом с Variable Type. Найдите BP_GameManager и выберите BP Game Manager\Object Reference.
Задание переменной-ссылки
Нажмите на Compile и откройте BP_GameManager.
Найдите нод Create Widget и перетащите левой клавишей мыши контакт Return Value. Отпустите левую клавишу на пустом пространстве и выберите из меню Set Game Manager.
Затем соедините нод Add to Viewport с нодом Set Game Manager.
Примечание: можно перенаправлять «провода», дважды щёлкая на них для создания нода Reroute. Перетащите левой клавишей мыши нод Reroute, чтобы перенаправить «провод».
Затем создайте нод Self и соедините его с левым контактом нода Set Game Manager. Нод Self будет указан в списке как Get a reference to self.
Теперь, когда WBP_HUD уже создан, у нас будет ссылка на BP_GameManager.
В следующем разделе мы узнаем, как обновлять виджет с помощью функций.
Функции
Функции в Blueprints — это графы, похожие на Event Graph. В отличие от Event Graph функции можно вызывать с помощью нодов. Зачем же это может понадобиться?
Упорядоченность
Одна из причин для использования функций — упорядоченность. Благодаря функциям можно соединить несколько нодов в один.
Посмотрите на раздел Event BeginPlay в BP_GameManager. Здесь есть две функции: Restart и SetUpCamera.
Вот как будет выглядеть этот раздел без функций:
Как вы видите, благодаря функциям он выглядит гораздо чище.
Повторное использование
Ещё одна причина для применения функций — повторное использование. Например, если вам нужно сбросить счётчик и таймер, то это можно запросто сделать с помощью функции Restart.
Это позволяет сэкономить время на воссоздание нодов каждый раз, когда вам нужно сбросить эти переменные.
Мы познакомились с функциями и теперь можем использовать их для обновления виджета CounterText.
Обновление виджета
При создании виджета также автоматически создаётся и переменная-ссылка на этот виджет. Однако по умолчанию виджеты Text не имеют переменных-ссылок. Это значит, что мы не сможем задавать их свойство Text. К счастью, это легко исправить.
Нажмите на Compile и откройте WBP_HUD. Переключитесь в режим Designer.
Выберите CounterText, а затем перейдите в панель Details. Убедитесь, что в самом верху есть флажок Is Variable.
Теперь мы сможем обновлять CounterText. Следующим шагом будет создание функции для обновления текста.
Создание функции обновления
Переключитесь обратно в режим Graph и перейдите во вкладку My Blueprint. Нажмите на значок + справа от раздела Functions.
При этом будет создана новая функция и вы перейдёте к её графу. Переименуйте функцию в UpdateCounterText.
По умолчанию граф будет содержать нод Entry. При выполнении функции она будет начинать с этого нода.
Чтобы CounterText отображал переменную ShapesCollected, нам нужно соединить их.
Перетащите в граф переменную GameManager. Перетащите левой клавишей мыши его контакт и отпустите на пустом пространстве. В меню выберите Get Shapes Collected.
Чтобы задать текст, нужно будет использовать нод SetText (Text). Перетащите переменную CounterText в граф. Перетащите левой клавишей мыши её контакт и отпустите на пустом пространстве. В меню добавьте нод SetText (Text).
SetText (Text) может получать входные данные типа Text. Однако переменная ShapesCollected имеет тип Integer. К счастью, Unreal автоматически выполняет преобразование при подключении Integer ко входу Text.
Соедините переменную ShapesCollected с контактом In Text нода Set Text (Text). Unreal автоматически создаст нод ToText (int).
Чтобы доделать функцию, соедините нод Entry с нодом Set Text (Text).
Вызов функции обновления
Лучше всего вызывать UpdateCounterText сразу после того, как игра увеличивает значение ShapesCollected. Я создал функцию IncrementShapesCollected, которая выполняет инкремент счётчика. Фигуры вызывают эту функцию, когда сталкиваются с игроком.
Нажмите на Compile и вернитесь в BP_GameManager.
Прежде чем вызвать UpdateCounterText, нам нужна ссылка на WBP_HUD. Попробуйте создать переменную-ссылку самостоятельно!
После создания переменной измените её имя на HUDWidget.
Затем перетащите правый контакт нода Set HUDWidget и отпустите на пустом пространстве. Добавьте нод UpdateCounterText. Благодаря этому CounterText будет отображать значение ShapesCollected при запуске игры.
Затем перейдите в панель My Blueprint и зайдите в раздел Functions. Дважды щёлкните на IncrementShapesCollected, чтобы открыть его граф.
Перетащите переменную HUDWidget в граф. Перетащите его контакт и отпустите на пустом пространстве. Добавьте нод UpdateCounterText и соедините его следующим образом:
Теперь при выполнении IncrementShapesCollected она будет увеличивать ShapesCollected, а затем вызывать UpdateCounterText. Эта функция затем обновит CounterText значением ShapesCollected.
Нажмите на Compile и закройте BP_GameManager. Нажмите на Play и соберите несколько фигур, чтобы увидеть, как обновляется виджет CounterText.
Теперь нам нужно научиться обновлять виджет TimerText, только другим способом, который называется привязкой.
Bindings
Привязки позволяют автоматически обновлять определённые свойства виджетов. Чтобы иметь возможность привязки, свойство должно обладать раскрывающимся списком Bind.
Можно привязывать свойства к функции или к переменной, хранящейся внутри виджета. Привязка постоянно получает значение от функции или переменной и присваивает привязанному свойству это значение.
Вы, наверно, задаётесь вопросом, почему же нельзя постоянно использовать привязки. Привязки неэффективны, потому что постоянно обновляются. Это значит, что игра тратит время на обновление свойства, даже если нет никакой новой информации. Сравните это с предыдущим способом, при котором виджет обновлялся только при необходимости.
С учётом этого привязки хорошо подходят для часто изменяющихся элементов, таких как таймеры. Давайте создадим привязку для TimerText.
Создание привязки
Откройте WBP_HUD и переключитесь в режим Designer.
Выберите TimerText, а затем перейдите в раздел Content панели Details. Вы увидите, что свойство Text имеет возможность привязки. Нажмите на раскрывающийся список Bind и выберите Create Binding.
При этом создастся новая функция и выполнится переход к её графу. Переименуйте функцию в UpdateTimerText.
Функция будет иметь нод Return с контактом Return Value типа Text. TimerText будет отображать любой текст, который вы подключите к этому контакту.
Перетащите GameManager на граф и получите из него переменную TimeRemaining.
Соедините переменную TimeRemaining с Return Value нода Return. Как и в прошлый раз, Unreal автоматически добавит нод преобразования.
Куда двигаться дальше?
Готовый проект можно скачать здесь.
Теперь вы знаете основы UMG и достаточно просто можете создавать более сложные интерфейсы. Попробуйте поэкспериментировать с другими виджетами и виджетами панелей.
Если вы хотите узнать, что делают другие виджеты, то прочитайте страницу Widget Type Reference в документации Unreal Engine.
Чтобы продолжить изучение, прочитайте следующий пост туториала, в котором я покажу вам, как соединить всё вместе для создания простой игры!
Бесплатные вебинары Skillbox: пишем игры на PHP, Unity и Unreal Engine
Делимся с вами подборкой вебинаров на тему разработки игр. Вы узнаете, как сделать простую консольную игру на PHP, 3D-арканоид на движке Unreal Engine 4, космическую аркаду и AR-приложение на Unity. Заходите под кат – будет интересно.
Знакомство с PHP: пишем простую консольную игру
На вебинаре вы познакомитесь с базовой информацией o PHP, где и как часто этот язык применяется. Узнаете об основных конструкциях, синтаксисе и операторах + расскажем, почему PHP лучше начать изучать именно на консольных приложениях.
Создаём игру на Unity
В этом видео мы будем учиться писать простой скролл-шутер: создавать сцены, управлять камерой и космическим кораблем. Напишем пару скриптов на C# и разберёмся с ассетами: моделями, текстурами и эффектами. Но начнём мы со знакомства с Unity – одним из самых популярных игровых движков.
Собираем настоящий космос
Вторая часть вебинара про создание игр на Unity. В предыдущем видео мы научили корабль двигаться, теперь нужно добавить ему противников и препятствия, а также набросать пару взрывов. Также мы добавим звуки в игру и организуем подсчёт очков.
Создаём приложение дополненной реальности
На вебинаре мы будем осваивать Unity в разрезе создания AR-приложения: рассмотрим базовые инструменты, разместим объекты в сцене и познакомимся с компонентами.
Библиотека 8th wall для приложений дополненной реальности
Второй мастер-класс посвящён работе с библиотекой 8th wall для приложений дополненной реальности. Мы познакомимся с набором инструментов и библиотек, рассмотрим примеры их использования и займёмся удалённой отладкой приложения на мобильном устройстве.
Разработка игры на Unreal Engine 4
На вебинаре мы научимся создавать персонажа, разберёмся с настройкой управления скорости объекта, спроектируем окружение и его реакцию на действия игрока. Но, как обычно, начнём со знакомства с редактором Unreal Engine 4.
Собираем проект
В следующей части мастер-класса мы продолжим развивать персонажа и создадим движущуюся платформу. Научимся спавнить новый объект, добавим условия для его уничтожения и возможность проиграть. Также будем работать со звуком и соберём проект в готовую игру.
Создание мультиплеерной RTS на Unreal Engine — опыт авторов The Maestros Статьи редакции
Организация передачи данных для стабильной игры.
Автор RTS The Maestros Эндрю Эрридж в блоге на сайте Gamasutra рассказал о том, с какими трудностями он столкнулся при создании многопользовательской стратегии на движке Unreal, не приспособленном для такого рода игр. Мы выбрали из материала главное.
Unreal Engine построен вокруг элементов, необходимых для создания шутеров. В частности, это касается и сетевого кода движка. По умолчанию он использует модель клиент-сервер, схожую с той, что применялась в Tribes. Эрридж отмечает, что такой способ сетевого взаимодействия — это «чистый лист», поэтому его можно использовать для создания чего угодно.
Модель работает следующим образом: пользователь посылает на команды на центральный сервер, а тот, обработав их, отправляет обратно клиенту данные о состоянии игрового мира через заданные временные интервалы. Обновление происходит не менее 20 раз в секунду, а в промежутках игра «предсказывает» события, чтобы не возникало задержек.
Чем дольше клиенту приходится ждать ответа от сервера, тем выше вероятность того, что «предсказание» окажется неверным. Лаги же возникают из-за того, что игра ошибочно предположила, что вы, например, продолжите двигаться вперёд, в то время как вы решили свернуть, а, получив ответ от сервера, отправила вас туда, куда вы на самом деле отправлялись.
Сетевая модель Unreal не поддерживает большого количества персонажей, ведь данные о каждом из них отправляются отдельно, а это нагружает соединение. Поэтому в RTS вроде Age of Empires, Starcraft, Warcraft или Total Annihilation используется другой подход.
В классических стратегиях применятся модель peer-to-peer. В этом случае данные каждого игрока отправляются другим игрокам. С одной стороны, в таком случае не нужны выделенные сервера, а с другой разница в пользовательском «железе» и соединении может стать препятствием для стабильной игры. Вся система будет настолько отзывчивой, насколько отзывчива игра на стороне пользователя с самой высокой задержкой.
Кроме того, некоторые домашние файерволлы препятствуют прямому подключению пользователей друг к другу. Для обхода этой проблемы в некоторых современных RTS вроде Age of Empires II HD используется прокси, однако это повышает задержку.
В такой модели клиенты передают друг другу лишь вводимые пользователями команды, а состояние мира симулируется самой игрой так, чтобы оно было идентичным для всех участников. Такая модель мультиплеера называется детерминированной. Клиентам приходится ждать ввода команд от каждого игрока, прежде чем исполнить их, а отсюда появляется задержка ввода. К счастью, в RTS такая задержка не слишком ощутима из-за непрямого управления.
Авторы The Maestros посчитали, что частоты обновления, доступной по умолчанию в Unreal Engine, должно им хватить. По словам Эрриджа, разработчики не планировали делать игру, в которой в битве сходились бы сотни или тысячи юнитов, поэтому пропускная способность каждого отдельного игрока не обязательно должна быть очень высокой.
Лимит войск рассчитывался исходя из средней скорости соединения пользователей. Создатели игры посчитали, что если обмен данными с сервером будет происходить со скоростью 30 раз в секунду, а положение и направление каждого отдельного персонажа будет содержаться в пакетах размером в четыре байта, то каждую секунду игра будет посылать на сервер данные объемом 720 байт каждую секунду.
Скорость в один мегабит предполагает, передачу 131072 байта в секунду. Разделив второе значение на первое, разработчики пришли к выводу, что если на карте будут находится от 150 до 200 юнитов одновременно, то лагов и задержек не будет.
В Unreal есть два основных способа передачи данных между клиентом и сервером: репликация переменных и отправка RPC. В первом случае, информация отправляется на сервер, как только она меняется. RPC — это функции, которые клиент «просит» сервер изменить. Разработчики The Maestros выбрали второй способ для передачи данных о командах, отдаваемых юнитам.
Первым делом клиент отправляет серверу JSON-текст, в котором содержится ID юнита и его координаты. Команда движения выглядит следующим образом.
В этом примере 131 знак, то есть при отправке этот пакет данных будет весить около 131 байта. Вместе с информацией, которую добавляет движок, его вес увеличивается до 260 байт. Тесты показали, что каждый раз игроки будут отправлять примерно 8 тысяч байт в секунду. Разработчики оказались довольны такими результатами, так как пропускная способность интернета большинства игроков выше этого значения.
Впрочем, если в одном матче встречались более двух пользователей, производительность падала. Поэтому авторы The Maestros стали оптимизировать пакеты данных. Например, они приняли решение избавиться от информации о названии команды, «освободив» четыре байта.
Unreal Engine не приспособлен, чтобы хорошо «запаковывать» данные для передачи по сети. Однако движок может использовать данные типа 3float и vector, которые намного «дешевле» сериализовать и десериализовать. Авторы игры создали объект FastEvent, содержащий в себе простые данные и позволивший снизить вес отправляемых пактов до 110 байт. Таким образом, каждую секунду игроки уже отправляли не 8 тысяч байт, а лишь 2 тысячи. И это в том случае, если очень активно кликать мышью.
Из-за ограничений RPC, разработчики были вынуждены отправлять данные в виде строк и примитивов. Массивы пришлось писать вручную как структуры.
У каждой команды был свой объект, который имплементировал простой интерфейс с методом «перевода» команды в FastEvent. После перевода разработчики могли вручную распаковать каждую переменную в функцию, чтобы отсеять нулевые. Всё это позднее снова собирается воедино и снова переводится в определённый тип команды.
Создание редактора квестов и диалогов для Unreal engine: Часть 1 описание плагина
Здравствуйте меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби.
На определенной стадии создания вашей игры, возникает необходимость написать диалоги и квесты. К сожалению Unreal engine не имеет встроенного инструмента для решения этой задачи. Поэтому я написал плагин для редактирования квестов и диалогов. Как всегда все исходники будут предоставлены в конце статьи.
Я решил разделить статью на две части в первой части я опишу сам плагин и расскажу как им пользоваться. А во второй части я расскажу про технически аспекты.
Поэтому я перейду сразу к рассказу о самом плагине. Для начала нужно создать ассет StoryGraph. На панели справа вы создаете сюжетные объекты это могут быть:
1)Quest — Это ваши квесты после создания этого объекта появляется возможность добавить стартовую ноду квеста(поддерживается drag and drop) к которой можно уже привязывать фазы квеста.
2) Character — Персонаж это объект который содержит внутри себя ещё один граф, это редактор диалогов этого персонажа. Кроме того объект персонаж имеет внешнюю ссылку на объект ACharecter_StoryGraph это производный объект от ACharecter. Персонаж имеет несколько состояний это Alive (живой) и Dead (мертвый) эти состояния можно считать (об этом далее). В эти состояния его как-раз и переключает ACharecter_StoryGraph. Персонаж может получать сообщения от главного графа.
3) PlaceTrigger — Триггер это итерактивный объект который можно встретить на карте. Тоже имеет внешние ссылки на объект APlaceTrigger_StoryGraph который является производным от AActor. Триггер как и персонаж имеет внутри себя редактор сообщений за счет котрого можно с ним взаимодействовать.
Триггер имеет всего два состояния активен и неактивен. Кроме того он имеет несколько режимов работы:
UnInteractive — Триггер неактивен а переключение его состояний вы должны реализовать сами при помощи Blueprint функции ChangeState.
Interactive — Триггер активен, когда вы подходите к нему достаточно нажать клавишу e и он перейдет в Активное состояние.
AdvanceInteractive — Когда вы подходите к нему и нажимаете e то открывается окно взаимодействия с сообщениями которые определены в редакторе сообщений.
Также триггер как и персонаж может получать сообщения от главного графа.
4) DialogTrigger — Объект введеный мной для взаимодействия диалогов и сообщений с главным графом. Тоже имею два состояния (Активен, неактивен). Переключаются в редакторе диалогов персонажа и редакторе сообщений триггера.
5) InventoryItem — Сюжетный предмет инвентаря. Может иметь несколько состояний котрые задаются в свойствах. Эти состояния приблвляются к уже существующим (неактивен, на уровне и в инвентаре). Состояния меняются вопервых путем подбора предмета и кроме того их можно задавать в редакторе диалогов персонажа и редакторе сообщений триггера как и состояния DialogTrigger. Предмет инвентаря тоже может получать сообщения.
6) Others — Предметы которые не относятся к выше перечисленным но участвуют в развитии сюжета. Эти предметы не имеют состояний но могут принимать сообщения и в зависимости от них изменятся.
Хочу заметить что благодаря тому что квестовые объекты и объекты которые находятся на карте это разные объекты. То можно работать параллельно. Например вы создаете сюжет а ваш друг создает карту. И когда все буде готово можно их объединить.
После создания сюжетных предметов можно уже начинать создавать квесты. Тут нужно уточнить что все ноды делятся на два вида, это независимые ноды которые можно размещать когда захочешь, и зависимые ноды которые появятся только после создания объектов которые от них зависят. Кроме того плагин поддерживает технологию drag and drop поэтому если вы перетащите объект на поле графа то вам предложат создать все ноды которые зависят от данного объекта.
Все ноды имеют два типа связей это вертикальные связи и горизонтальные. Вертикальное дерево это основа вашего квеста именно оно определяет его структура и порядок выполнения. Горизонтальные ноды это модификаторы конкретной фазы квеста (нода фазы имеет как вертикальные так и горизотальные связи). Они могут добавить какие-то объекты на радар или отправить сообщение объекту, все это произойдет когда активируется конкретная фаза квеста.
Итак давайте опробуем что-то создать. Сначала создаем квест. После этого можно разместить стартовую ноду квеста. К этой ноде можно прикреплять ноды трех видов:
1) AddQuestPhase — Нода добавляет в квест новую фазу когда активируется.
2) GetObjectState — Эта нода активируется когда конкретный сюжетный объект переходит в конкретную стадию, указанную в свойствах ноды. Если нода активировалась то она активирует ноды расположенные за ней. Представте себе трубопровод который берет начало от стартовой ноды, тогда нода GetObjectState будет вентилем который до определенного времени закрыт и не пропускает воду дальше но если он откроется то вода дальше пойдет.
3) GameOver — Из названия понятно что как только эта нода активируется происходит завершение игры.
После того как вы создали «вертикальное» дерево. К нему можно добавлять горизонтальные ноды вот их описание:
1) Activate/deactivate dialog(message) — Активирует или де активирует ветвь диалога или сообщения.
2) Active/deactive object — Активирует или де активирует объект. Имеется ввиду что при де активации, объект просто пропадет из игры. Например вам уже не нужен какой-то объект от него можно избавится, или наоборот объект понадобится на каком-то этапе игры и что-бы персонаж не нашел его раньше времени его тоже можно де активировать.
3) Cancel quest — Отменить квест, например если квесты противоречат друг другу и персонаж начал выполнять один из них то другой можно отменить.
4) Send Message — Послать сообщение сюжетному предмету чтобы он както изменился. Само изменение определяется в Blueprinte у всех внешних объектов имеется event GetMessegeFromStoryGraph который срабатывает при активации этой ноды.
5) Add Screen Message — Вывести на экран сообщение которое увидит игрок.
6) Add to radar — Добавить объект на радар. Объект будет выводится на радаре до тех пор пока фаза квеста к которой прикреплена нода будет активна.
7) Print quest phase on screen — Вывести содержимое конкретной фазы квеста на экран. Может быть полезно ну например в начале игры показат персонажу что вы от него хотите.
8) Send message to level blueprint — Тоже самое что Send Message но посылает сообщение в blueprin уровня. Чтобы эта нода заработала нужно сменить базовый класс для level blueprint с ALevelScriptActor на ALevelScriptActor_StoryGraph.
Кстати чтобы новые уровни создавались с нужным level blueprint можно изменить настройки проекта: ProgectSettings → GeneralSettings → LevelScriptActorClass.
9) Print string — эта нода стоит особняком, поскольку она имеет как вертикальные связи так и горизонтальные. Она выводит отладочное сообщение чтобы вы могли протестировать ваш сценарий.
Кроме главного редактора в котором создаются квесты, имеются ещё и вспомогательные. Это редактор диалогов для персонажа и редактор сообщений для триггера. Вот описание нод используемых в данных редакторах. Поскольку они сходны я приведу описание для них обоих.
1) New dialog (message) brunch — Создать новую ветвь диалога или новое сообщение. Каждый диалог должен начинаться с этой ноды. Она может быть активна и тогда эта ветвь будет отображаться сразу или неактивна и тогда её нужно будет с начала активировать.
2) Dialog (message) node — Ноды из которых состоит ветвь диалога имеет один вход и несколько выходов (в зависимости от количества ответов).
3) Dialog (message) end — Если после того как ветвь диалога прошла до конца она больше не нужна. Постав те в конце эту ноду, ветвь де активируется и больше не появится.
4) Dialog (message) exit — Осуществляет выход из окна диалога.
5) Set dialog trigger — Устанавливает значение триггера диалога.
6) Activate trigger — Нода присутствует только в редакторе сообщений триггера. Она как можно догадаться активирует сам триггер.
После того как все будет сделано, вы запустите игру и ничего не произойдет, что бы сюжет начал работать нужно перетащить объект StoryGraph на уровень или воспользоваться соответствующим пунктом контекстного меню.
Я хочу заметить что на уровне можно разместить несколько разных объектов StoryGraph. Скажем в одни поместить все основные квесты, а в другой все дополнительные или даже каждый квест поместить в отдельный объект.
В следующей статье я расскажу про технические аспекты, и про проблемы которые у меня возникли при создании плагина.
А если вы хотите просто поиграть в демку (её сюжет можно видеть на первой картинке), то скачать её можно здесь.
Управление в игре стандартное:
P.S. Немного не очевидный момент: квест становится активным когда в него добавляется первая фаза. А если выполнение доходит до конца одной из ветвей, тогда квест считается выполненным.
P.P.S В проект добавлена возможность сохранения и загрузки (клавиши [ — сохранить, ] — загрузить).
Обновление: Добавлен экспорт в XML файл и импорт из XML.
Уроки Unreal Engine 4
Видеоурок
Особенности Unreal Engine 4
Игровой движок Unreal Engine является профессиональным инструментом для разработки полноценных 2D и 3D проектов. При разработке игр на Unreal Engine вы сходу получаете набор отличной графики и настроек дизайна, а также хорошо оптимизированный код чтобы игры запускались без торможения.
Ниже приведено несколько крупных игр, которые были созданы при помощи движка:
Игровой движок создает максимально реалистичные картинки игрового процесса. В играх созданных на Unreal Engine имеется отлично проработанная физика объектов в частности деревьев, ветра, воды и многого другого.
При разработке на Unreal не нужно задумываться над созданием красивой воды или над эффектом колыхались деревьев. Всё это уже будет предусмотрено в самом движке и вам останется лишь использовать готовые эффекты.
В отличии от Unity движок Unreal больше предназначен для крупных проектов, хотя небольшие красивые инди игры также можно создавать.
План курса
За курс мы разработаем игру на основе движка Unreal Engine. За время разработки мы изучим интерфейс программы, изучим построение различных эффектов в игре, а также познакомимся с различными базовыми шаблонными проектами.
Разработка мультиплеера на Blueprints. Часть 2
Типы серверов
Существуют два типа серверов: listen и dedicated. У каждого из них свои особенности запуска и существования в сетевом пространстве. Стоит запомнить, что вся серверная логика вычисляется только на центральном процессоре (CPU), в то время как визуализацией занимается графический процессор (GPU).
Listen-сервер
Когда клиент запускает у себя на машине и игру и сервер в виде одного процесса — это и есть listen. Все подключенные клиенты отсылают ему запросы, машина их «обдумывает» и возвращает соответствующий вердикт.
Но дела с самой машиной, на которой хостится сервер, обстоят куда интереснее. Получается, что у хост-игрока есть доступ и к клиенту, и к серверу, а это значит, что он… Может читерить!
Все верно. Именно поэтому в кибер-спортивных дисциплинах никогда не используется этот тип серверов: он слишком простой и неконтролируемый. К тому же, если хост-игрок случайно выйдет из игры, весь прогресс вместе с ним уйдет в небытие.
Чтобы активировать listen-сервер в редакторе, достаточно выставить двух игроков в настройках запуска. Первое запущенное окно и будет нашим серверо-клиентом.
В своей игре я использую dedicated сервер, поэтому, если вам интересен именно listen-тип, вы можете изучить эту тему по туториалу на канале Epic Games.
Dedicated-сервер
Dedicated — он же выделенный сервер — запускается как отдельный от игры процесс. Запустить его можно как на клиентском компьютере, так и на специально выделенной для этого машине.
Проще всего представить выделенный сервер в виде консоли, в которой отображается все происходящие внутри события (иначе говоря — логи) и с которой мы можем взаимодействовать вне игры. Т.е. выделенный сервер может прекрасно жить и без подключенных к нему игроков.
Чтобы включить выделенный сервер внутри редактора, достаточно поставить галочку в соответствующем окошке.
С выделенным сервером дела обстоят куда серьезнее. Внутри редактора он будет работать по нажатии одной кнопки, но вот чтобы сервер работал в упакованной игре — это совсем другой разговор. Для этого нам придется сделать три вещи:
Какой тип сервера использовать?
Опять же — все зависит от целей. Если вы планируете делать сюжетный кооператив — однозначно используйте listen. Если ваша цель — создать сессионный шутер или целую киберспортивную дисциплину — используйте dedicated.
Теперь, когда мы изучили основы работы с сетью, можно подступиться к детальной разработке.
Весь дальнейший код предполагает использование dedicated-сервера.
Закладываем фундамент
Game Mode
Начнем с главного — Game Mode. Это сердце нашей игры и, по совместительству, сервера. И существует он только на сервере, поэтому все данные и функции, которые мы там храним, надежно защищены от любопытных игроков.
Все базовые манипуляции по типу спавна и выбора стартовых персонажей, паузы, перехода между уровнями и хранения данных о количестве игроков мы должны проводить через Гейм Мод.
Game State
Так как Гейм Мод существует только на сервере, нашим посредником в общении с ним является Game State, который реплицируется на все клиенты. В Гейм Стейте принято хранить любые данные, изменяющиеся в течение игры. Например: подсчет очков команды, таймеры начала и конца раунда, распределение по командам — все то, что мы можем без всяких зазрений совести показать игрокам.
Параллельно создадим персонажа и настроим ему репликацию.
Даем Гейм Моду знать, какие базовые классы ему использовать.
Player Controller
Этот класс является первым инструментом игрока для связи с сервером. Он существует и на сервере, и на клиенте, поэтому между ними всегда будет открытый канал, по которому можно общаться. Также из Плеер Контроллера мы можем спокойно связаться с Гейм Стейтом, а через Гейм Стейт — с Гейм Модом.
Например, через Контроллер мы можем сообщить Гейм Стейту о нашей готовности к игре.
И, когда у нас наберется достаточно таких «подписей», через Гейм Стейт мы можем сообщить Гейм Моду о начале раунда.
Player State
Плеер Стейт предназначен больше для геймплейных манипуляций. В этом классе выгодно хранить информацию о набранных очках и состоянии персонажа (жив / мертв).
Через Плеер Стейт мы так же, как и в Контроллере, можем оповещать сервер о присутствии игрока.
Теперь, когда у нас есть база, мы можем приступить к созданию конкретных геймплейных фич.
Разрабатываем фичи
Боевая система
Разберемся сперва с межсетевой боевкой. Т.к. наш персонаж может сражаться только с ботами, придумывать каких-то хитросплетений в получении урона не придется. Принцип нанесения урона даже по AI примерно такой же, как и с игроками.
Посмотрим, как происходит сама атака. Безусловно, она должна выполняться через монтаж, а в монтаже должны содержаться нотифаи, которые и сообщают оружию, когда надо совершать проверку на попадание.
Я предпочел не использовать встроенные функции нанесения урона, а создал свою с помощью Blueprint Interface.
Боты — довольно простая тема. Они всегда управляются сервером и реплицируются на клиенты, поэтому «плохая связь = тупящие боты».
Помните, что бот существует и на клиенте. Поэтому смело пользуйтесь Switch Has Authority и следите за тем, на какой сущности выполняется код.
3D карта мира
Самой сложной частью разработки Greed стал 3D-интерфейс карты, с помощью которого второй персонаж влияет на реальную карту мира.
Здесь я совершил огромную ошибку, не продумав, как будет проходить коммуникация между «реальным» и «виртуальным». Во-первых, репликация быть должна — и быть должна она только на клиенте, владеющем картой. Это значит, что она релевантна только своему владельцу.
Благодаря этому мы можем понизить нагрузку на другие клиенты, т.к. серверу не придется «раздавать» информацию на все копии реплицируемого объекта. Всякие конструкции и эффекты на карте будут исполняться только на копии владельца.
Не забудем, что карта должна уметь спавнить объекты. Мы подошли к важному правилу мультиплеера — спавнит объекты только сервер.
Также карта должна знать, какие функциональные объекты ей черпать из реальной локации. Для этого объекты, изменяющиеся с течением игры, должны быть реплицируемые. Если мы спавним статичную колонну, то и репликация ей, скорее всего, не понадобится.
Так сложилось, что в моей игре коммуникация второго персонажа с реальной локацией проходит в два этапа: с игрового интерфейса на 3D карту и с 3D карты на реальную. Второй этап мы только что обсудили, поэтому сейчас мы перейдем к первому и рассмотрим, как с помощью виджетов отправлять запросы на сервер.
Репликация Виджетов
Я выделил виджеты в отдельную тему, потому что у меня ушло несколько месяцев на осознание того, что… Репликации виджетов не существует. Да, эти, казалось бы, примитивные объекты имеет муторную систему коммуникации с сервером, потому что существуют они только на клиенте.
Для общения виджетов с сервером нам нужен посредник. И так получилось, что на момент появления на экране виджет знает только своего владельца. Ага! Это тот, кто нам нужен!
Вместо персонажа рекомендуется брать посредником именно его контроллер. В этом случае, если персонаж уничтожится, виджеты продолжат существовать вместе с контроллером.
Теперь необходимо создать нужный ивент на персонаже и, закастовав к владельцу, вызвать этот ивент прямо в виджете.
Есть и второй вариант — во время создания виджета получить ссылку на другого посредника. Например, 3D карту.
При выборе посредника не забудьте, что его класс должен быть реплицируем.
Сетевая оптимизация
Т.к. эту тему мы уже затрагивали, предлагаю вывести набор правил, которых стоит придерживаться во время всей разработки:
На хабре есть статья, посвященная сетевой оптимизации. Обязательно уделите ей внимание, особенно, если вы работаете на C++.
Бонус
Один из разработчиков Mail.ru собрал актуальный вопросник по работе с сетью, который упоминается в этой статье. Мы попробуем ответить на некоторые из представленных вопросов. Заодно читатели проверят полученные из этой статьи знания, а я — достоверность знаний, которые вам преподал 🙂
Вопрос: как PlayerState‘ы реплицируются на клиенты? Каков жизненный цикл PlayerController‘а и PlayerState‘ов при переподключении игрока?
Ответ: сервер отправляет значения переменных на все клиенты. Все все знают друг о друге. Контроллер и Стейт уничтожаются при отключении игрока или его переходе на новый уровень, поэтому при переподключении под игрока будут созданы новые Контроллер и Стейт.
Вопрос: как реплицируются массивы? И как реплицируются вложенные свойства (реплицируемое поле является структурой)?
Ответ: обновление всех элементов массива происходит одновременно при добавлении / удалении / перемещении одного из элементов. Структуры же реплицируют только измененный элемент. Эта фишка была добавлена в UE4, до этого в третьей версии движка структура реплицировалась как эктор, т.е. все и сразу.
ForceNetUpdate вызывает моментальное обновление эктора на всех клиентах. Особенно это полезно, когда вы используете низкую частоту обновления.
Заключение
Старайтесь не думать о сети как о чем-то отличном от обычного кода. Принцип работы остается таким же — вся информация течет последовательно сквозь ноды и через какое-то время достигает места своей реализации. Мультиплеер лишь накладывает такие условия, как выбор сущности, на которой исполняется код; частота синхронизации; типизация сервера и множество других аспектов, которые мы обсудили.
Самое главное — не бойтесь экспериментировать — UE4 предоставляет вам весь необходимый для этого инструментарий.
Как лучше начать изучение Unreal Engine в 2022 году?
книжки-учебники стоит юзать только как украшение на полке. мол, литература!
Большинство фундаментальных вещей с 4.21 не изменились и в 4.27. Так что книгу вполне можно использовать.
Сейчас я бы сразу использовал 5 версию. Книга и для неё подойдет по большей части, хотя почитать чем глобально отличается пятерка стоит.
Держать за четверку нет смысла.
По работе имею дело с четверкой, но свои все проекты на пятерке уже.
5 имхо еще сырая и для нее плагинов почти нету
Лезут ошибки в неожиданных местах.
А так по сути да, отличий от 4 почти нету в базовых вещах. А основные фишки больше маркетинг, мало кто их будет использовать, особенно инди.
Если комп тянет пятую версию то почему бы и не нырнуть.И если уверен что оно тебе пригодится.
Что нравится у Эпиков, так то что фундаментально в движке ничего не меняется. Пока доделываем все на 4ке. Смысла прям счас переходить на 5ку для студии не вижу. Но уверен к следующему году будем там. Самое позднее. И да. Самое важное. Старый проект на 4.25 запустился на 5ке. На ошибки не проверяли особо, да и проект Pet. Но сам факт сильно радует.
Отвечая на вопрос, книжку читай. Основа та же. Если прям начинаешь, то можно сразу на 5ку. Просто меньше потом переносить.
DeckerTH
> Сейчас я бы сразу использовал 5 версию.
Почему? В чем преимущество 5-й перед 4-й?
0xBADCODE
> Почему? В чем преимущество 5-й перед 4-й?
А Эпики не могут положить хрен на 4-ую версию (перестать фиксить баги и все такое) из-за выхода 5-ой версии?
MikeNew
> А Эпики не могут положить хрен на 4-ую версию (перестать фиксить баги и все
> такое) из-за выхода 5-ой версии?
Ну сейчас баги в релизе, это в порядке вещей. Могут, конечно.
0xBADCODE
> Почему? В чем преимущество 5-й перед 4-й?
Чтобы не завязываться на depricated функциональность.
Плюс большое количество крутых плюшек.
Я не говорю про Нанит и Люмен, которые некст ген. Но даже тот же метасаунд уже стоит того.
Santos
> В чем преимущество 5-й перед 4-й?
В люмен и нанит.
Представь ты берешь и делаешь в Блендере высокополигональную модель, без всяких нормалей.
Посредственно обмазываешь её текстурами и как есть кидаешь в UE5, переводишь в нанит. Больше с ней ничего делать не нужно, ни каких лодов, ни каких дополнительных действий. Некстген модель готова для создания чего угодно при том что в ней могут быть миллионы поликов.
Затем ты накидываешь таких моделек и тебе не нужно запекать свет, на обсчет которого можно было потратить часы, а просто видишь отличную картинку, и чисто настраиваешь постпроцессы.
Ты занимаешься разработкой, а не борешься с рендером и оптимизацией.
Картинка лучше, а гемороя меньше. Сейчас только остро будет стоять вопрос с топовым железом, т.к. разработчику нужен комп гораздо мощнее чем тем кто играет, и вот тут не у всех всё будет в порядке и многие будут «срать кирпичами».
563
> накидываешь таких моделек
И размер игры разрастается до размеров что далеко не у каждого найдется тупо место для вашей игры. Фиг с мощностью, когда размер игры будет измеряться сотнями гб. Сейчас на старых технологиях игры весят 100+гб, а тут вообще плачевно выглядит.
drbass
Примерно 150% от лоупольки с набором качественных текстур.
Было 100 гигов, стало 150.
DeckerTH
Устроиться в компанию, которая делает на Анриле что-то нереальное с нереальными требованиями и сроками. Чтобы каждая задача это блокер.
«Создание игр Unreal Engine 4» (базовый уровень)
Программа » Создание игр Unreal Engine 4 (базовый) учит создавать трехмерные игры. За один год обучения вы узнаете, как пользоваться Unreal Engine 4, создавать трёхмерную игровую сцену, сможете сами создать 3D модели.
преподаватели
Содержание программы
1. Организационная информация.
Введение в 3D графику. Обзор игровой индустрии.
2. Введение в unreal engine 4.
3. Изучение системы gameplay framework.
4. Координаты, преобразования. единицы измерения и организация.
5. Работа с актерами статичных мешей.
6. Применение освещения и рендеринга.
7. Использование материалов.
8. Использование элементов аудиосистемы.
9. Создание ландшафтов и растительности.
10. Создание мира.
11. Эффекты воспроизводства в системах частиц.
12. Использование актеров скелетных мешей.
13. Matinee и синематика.
14. Изучение работы с физикой.
15. Введение в систему визуального программирования блюпринтов.
16. Работа с блюпринтами уровней.
17. Работа с блюпринт-классами.
18. Использование редактируемых переменных и скрипта конструирования.
19. Создание актеров и вводимых с клавиатуры событий.
20. Создание экшен-столкновения.
21. Создание аркадного шутера: системы ввода и аватары.
22. Создание аркадного шутера: препятствия и бонусы.
23. Работа с UMG 24. Создание исполняемого файла.
25. Работа с мобильными устройствами.
26. Проект своей игровой сцены.
Цели программы
Цель: создать условия для успешного использования учащимися компьютерных технологий в учебной деятельности, обучить созданию трёхмерных игровых сцен, обучить созданию программ на блюпринтах (графическое программирование) способствовать формированию развитию технического мышления.
Результат программы
Дети научатся пользоваться игровым редактором «UNREAL ENGINE 4», смогут сами создавать трёхмерную игровую сцену. Научаться графическому программированию. Разовьют логическое мышление.
Особые условия проведения
Желание развиваться в направлении современного технического творчества.
Место проведения занятий: ДЮЦ п. Октябрьский, ул. Советская, д. 30.
Материально-техническая база
Компьютер с 64 разрядной операционной системой.
Разработка игр на Unreal Engine 4 за 24 часа
Новинки раздела
В книге «Идеальная работа. Программирование без прикрас» легендарный Роберт Мартин (Дядюшка Боб) создал исчерпывающее руководство по хорошей работе для каждого программиста. Роберт Мартин объединяет дисциплины, стандарты и вопросы этики, необходимые для. В книге «Идеальная работа. Программирование без прикрас» легендарный Роберт Мартин (Дядюшка Боб) создал исчерпывающее руководство по хорошей работе для каждого программиста. Роберт Мартин объединяет дисциплины, стандарты и вопросы этики, необходимые для быстрой и продуктивной разработки надежного, эффективного кода, позволяющего испытывать гордость за программное обеспечение, которое вы создаете каждый день.
Роберт Мартин, автор бестселлера «Чистый код», начинает с прагматического руководства по пяти основополагающим дисциплинам создания программного обеспечения: разработка через тестирование, рефакторинг, простой дизайн, совместное программирование и тесты. Затем он переходит к стандартам — обрисовывая ожидания «мира» от разработчиков программного обеспечения, рассказывая, как часто различаются эти подходы, и помогает вам устранить несоответствия. Наконец, он обращается к этике программиста, давая десять фундаментальных постулатов, которым должны следовать все разработчики. Скрыть Показать весь текст
Александр Генис (“Довлатов и окрестности”, “Обратный адрес”, “Камасутра книжника”) обратился к новому жанру — календарь, или “святцы культуры”. Дни рождения любимых писателей, художников, режиссеров, а также радио, интернета и айфона он считает личными. Александр Генис (“Довлатов и окрестности”, “Обратный адрес”, “Камасутра книжника”) обратился к новому жанру — календарь, или “святцы культуры”. Дни рождения любимых писателей, художников, режиссеров, а также радио, интернета и айфона он считает личными праздниками и вставляет в список как общепринятых, так и причудливых торжеств.
Генис не соревнуется с «Википедией» и тщательно избегает тривиального, предлагая читателю беглую, но оригинальную мысль, неожиданную метафору, незамусоленную шутку, вскрывающее суть определение. Постепенно из календарной мозаики складывается панно, на котором без воли автора отразились его черты.
Для тех, кто хочет быть лучшим! Оригинальный текст и перевод на страницах одной книги — это эффективный способ усовершенствовать знание английского языка. Фрэнсис Скотт Фицджеральд — американский классик мировой литературы. Писатель, ярко и беспристрастно. Для тех, кто хочет быть лучшим!
Оригинальный текст и перевод на страницах одной книги — это эффективный способ усовершенствовать знание английского языка.
Фрэнсис Скотт Фицджеральд — американский классик мировой литературы. Писатель, ярко и беспристрастно отразивший безумную жизнь 20-х годов. Он и сам был плотью от плоти той легендарной эпохи. Но эксцентричность и внешняя позолота канули в прошлое, и в настоящем остались его бессмертные книги.
«Великий Гэтсби» — самый известный роман Фрэнсиса Фицджеральда, ставший символом «века джаза».
Америка, 1925 г., время «сухого закона» и гангстерских разборок, ярких огней и яркой жизни. Но для Джея Гэтсби воплощение американской мечты обернулось настоящей трагедией. А путь наверх, несмотря на славу и богатство, привел к тотальному крушению. Ведь каждый из нас в первую очередь стремится не к материальным благам, а к любви, истинной и вечной… Скрыть Показать весь текст
Лучшие продажи раздела
Евгений Семенович Штейнер – японист, кандидат филологических наук, доктор искусствоведения. Работал в ГМИИ им. А. С. Пушкина, преподавал и занимался исследовательской работой в университетах Москвы, Иерусалима, Токио, Иокогамы, Нью-Йорка, Манчестера и Лондона. Евгений Семенович Штейнер – японист, кандидат филологических наук, доктор искусствоведения. Работал в ГМИИ им. А. С. Пушкина, преподавал и занимался исследовательской работой в университетах Москвы, Иерусалима, Токио, Иокогамы, Нью-Йорка, Манчестера и Лондона. С 2012 профессор Школы Востоковедения Национального исследовательского университета «Высшая школа экономики» (Москва). Автор 15 книг, которые выходили в России, США, Великобритании и Германии. Книга Е. Штейнера «Манга Хокусая: энциклопедия старой японской жизни в картинках» (Санкт-Петербург: Петербургское востоковедение, 2016, 4 тт.) получила в 2017 году премии «Книга Года» и «Просветитель» (в спецноминации).
Кацусика Хокусай (1760–1849) – один из самых известных японских художников периода Эдо. На протяжении всей своей жизни он выпускал в свет альбомы гравированных рисунков под названием «Манга». В пятнадцати выпусках с четырьмя тысячами фигур и мотивов Хокусай представил энциклопедию старой Японии в картинках – начиная от. Скрыть Показать весь текст
Эта книга Роберта Макки завершает его трилогию, посвященную искусству сторителлинга. После «Истории на миллион долларов» и «Диалога» один из самых авторитетных специалистов по сценарному мастерству рассказывает, как именно следует подходить к созданию. Эта книга Роберта Макки завершает его трилогию, посвященную искусству сторителлинга. После «Истории на миллион долларов» и «Диалога» один из самых авторитетных специалистов по сценарному мастерству рассказывает, как именно следует подходить к созданию персонажа в произведении — будь то роман, пьеса или фильм. Перед читателем—подробное пособие и блистательный мастер-класс, в котором виртуозно соединились теория и практика. Наряду с обращением к классической традиции прошлого, в том числе к древнегреческому театру и поэзии, в книге представлены многочисленные примеры из литературы, драматургии и кинематографа последних лет.
Автор скрупулезно исследует законы создания и разработки персонажей, придания им глубины и объема, сложности и многогранности. На примерах из разных жанров показывает, как главные герои — в рамках ансамбля действующих лиц — взаимодействуют с второстепенными и вспомогательными персонажами.
Творческий процесс индивидуален, и готовых рецептов нет. Но те знания. Скрыть Показать весь текст
Как получить бонусы за отзыв о товаре
Сделайте заказ в интернет-магазине.
Напишите развёрнутый отзыв от 300 символов только на то, что вы купили.
Дождитесь, пока отзыв опубликуют. Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя.
Можно писать неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в первой десятке.
Отзывы 1
Была бы хорошая книга для быстрого старта в UE, если бы не халтура переводчика
В целом книга полезная, особенно новичкам, дает общее очень поверхностное представление об UE.
В наших магазинах
Подписка на новости
2011—2022, ООО «Новый Книжный Центр». Перепечатка материалов сайта возможна только с указанием активной ссылки на сайт «Читай–город».
Разработка игр на Unreal Engine 4 за 24 часа
Смотреть 4 фото
Цена в интернет-магазине может отличаться от цены в магазинах сети. Оформление книги может отличаться от представленного на сайте.
Дизайн персонажей. Концепт-арт для комиксов, видеоигр и анимации 3dtotal Publishing
Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. 5-е изд. Никсон
World of Warcraft. Полная иллюстрированная энциклопедия Плит К., Стикни Э.
Культ LEGO. История LEGO в людях и кубиках Бейчтэл Д., Мено Д.
Javascript и jQuery. Интерактивная веб-разработка Дакетт Д.
К сожалению, по данному товару ещё нет отзывов, станьте первым комментатором.
Сообщите пожалуйста нам и мы устраним её в ближайшее время.
Источники:
- http://www.chitai-gorod.ru/catalog/book/1221761/
- http://www.litres.ru/aram-kukson/razrabotka-igr-na-unreal-engine-4-za-24-chasa-48420932/
- http://www.litres.ru/aram-kukson/razrabotka-igr-na-unreal-engine-4-za-24-chasa-48420932/otzivi/
- http://book24.ru/product/razrabotka-igr-na-unreal-engine-4-za-24-chasa-5400972/
- http://ue4daily.com/blog/ue4-in-24hours-book
- http://dtf.ru/gamedev/32352-v-rossii-izdadut-knigu-razrabotka-igr-na-unreal-engine-4-za-24-chasa-pri-podderzhke-epic-games
- http://dtf.ru/gamedev/32352-v-rossii-izdadut-knigu-razrabotka-igr-na-unreal-engine-4-za-24-chasa-pri-podderzhke-epic-games?from=rss
- http://proglib.io/p/top-10-knig-po-geymdevu-i-o-geymdeve-na-russkom-yazyke-2021-05-10
- http://www.livelib.ru/book/1004714968-razrabotka-igr-na-unreal-engine-4-za-24-chasa-aram-kukson
- http://3ddd.ru/forum/thread/show/razrabotka_igr_na_unreal_engine_4_za_24_chasa
- http://eksmo.ru/ebook/razrabotka-igr-na-unreal-engine-4-za-24-chasa-ITD965340/
- http://dtf.ru/u/239279-alexey-uslavtsev/731200-otnositelno-kompleksnaya-igra-na-ue4-v-odno-lico-s-nulya-do-reliza-v-steam-bez-koda
- http://skillbox.ru/course/profession-unreal-engine-4/
- http://gamedev.ru/unreal/forum/?id=248145
- http://stdpub.com/unrealengine/kak-sozdat-prostuyu-igru-v-unreal-engine-4
- http://knigogid.ru/books/1447534-razrabotka-igr-na-unreal-engine-4-za-24-chasa
- http://proglib.io/p/tvoy-pervyy-igrovoy-obekt-unreal-engine-4-tutorial-2019-10-25
- http://habr.com/ru/post/599581/
- http://qna.habr.com/q/319017
- http://www.chitai-gorod.ru/catalog/book/1221761/?yadclid=9174588&yadordid=19595906
- http://ue4daily.com/blog/norilsk
- http://3ddd.ru/forum/thread/show/razrabotka_igr_na_unreal_engine_4_za_24_chasa?scroll_end=1
- http://habr.com/ru/post/334426/
- http://ue4daily.com/blog/multiplayer-on-blueprints-1
- http://habr.com/ru/post/344600/
- http://habr.com/ru/company/skillbox/blog/501522/
- http://dtf.ru/gamedev/29943-sozdanie-multipleernoy-rts-na-unreal-engine-opyt-avtorov-the-maestros
- http://habr.com/ru/post/318366/
- http://itproger.com/course/unreal-engine
- http://ue4daily.com/blog/multiplayer-on-blueprints-2
- http://gamedev.ru/unreal/forum/?id=268359
- http://dop29.ru/program/5142-sozdanie-igr-unreal-engine-4-bazovyi-uroven
- http://www.chitai-gorod.ru/catalog/book/1221761/?watch_fromlist=%D0%9A%D0%BD%D0%B8%D0%B3%D0%B8
- http://chitaina.ru/catalog/tekhnicheskie-nauki/razrabotka-igr-na-unreal-engine-4-za-24-chasa