Обновить
16K+

Unreal Engine *

Популярный игровой движок

2,95
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Новая игровая индустрия: деньги есть — рынка нет?

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.8K

С 2022 года отечественная игровая индустрия получила, по разным оценкам, около 7–10 млрд рублей государственной поддержки. Цифры могут показаться огромными, но, сравнив их с мировыми, становится не так страшно. Например, разработка GTA V или Cyberpunk 2077 стоила порядка $300 млн — это около 20–25 млрд рублей. То есть весь объём государственной поддержки за несколько лет — это половина бюджета одной крупной игры.

И всё же для российского геймдева это беспрецедентные инвестиции. А ещё создано множество проектов, направленных на поддержку игровой индустрии. Но почему же из всех этих стараний мы видим лишь набор аккуратно собранных, но мёртвых проектов?

Читать далее

Новости

Как рисовать игровые облака для чайников

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.5K

Ты — начинающий художник, который дорвался до Unreal Engine 5 и даже создал по гайду свою первую локацию. Но вот незадача: небо! Оно пустое и совсем не такое, как тебе хочется. А хочется, чтобы всё было «по красоте». Перерыв весь YouTube, ты нашёл кучу плохих роликов и парочку видео, где на протяжении 100 500 часов монотонный хмырь рассказывает художественную базу, от которой уши вянут.

Давай начнём с простого. Открываем Photoshop и создаём сцену 2048 x 2048 (можно и больше, тут стесняться не надо). Дальше нам нужно скачать два набора кистей. Вообще, их можно купить или найти официально, но мы — люди находчивые, поэтому ищем на «зелёном Ютубе под пиратским флагом».

Читать далее

Проклятие WASD: Как перенести консольный комфорт на клаву и мышь

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.2K

Недавняя волна обсуждений, в том числе статья на DTF, показала неприятную тенденцию: ПК-геймеры всё чаще используют геймпады. И причина не в переходе на консоли, а в ощущениях от игры.

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

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

⬇️ ⬇️ ➡️ ➡️ 🅰️

Рефлексия в Unreal Engine или как движок знает о вашем коде всё

Уровень сложностиСложный
Время на прочтение27 мин
Охват и читатели5.1K

UHT сгенерировал 4294 строки кода из одного моего заголовочного файла. Имена свойств, смещения в памяти, флаги сериализации, exec thunks для каждой функции - всё, чтобы движок в runtime знал о классе то, что C++ забывает после компиляции. Это третья и последняя статья в серии про внутренности Unreal Engine: K2Node → Blueprint VM → рефлексия. Разбираем, что внутри этих четырёх тысяч строк, зачем каждая из них, и как ими пользуются Details panel, GC, репликация и сама Blueprint VM.

Читать далее

ProcessEvent на стероидах: сериализуемые вызовы функций в UE5 или как я готовлю материал для статей

Время на прочтение7 мин
Охват и читатели6.1K

В предыдущих двух статьях я разбирал K2Node - как устроены ноды Blueprint изнутри - и Blueprint VM: байткод, опкоды, стековую машину. Следующая на очереди - Reflection: UClass, UFunction, FProperty и вся система метаданных, на которой стоит движок.

Готовясь к ней, я решил, что лучше всего разобраться в теме поможет практика. И тут подвернулся юзкейс: мне нужен был способ сконфигурировать вызов произвольной функции в редакторе и выполнить его в рантайме. Без хардкода, без кодогенерации, без десятка одинаковых обёрток. Так появился FunctionHandler - плагин для UE 5.6, в котором пригодилось всё, о чём я писал раньше: CustomThunk'и, ExpandNode, работа с FFrame и MostRecentProperty.

Эта статья - про то, как всё сошлось в одном плагине, какие решения сработали, и на какие грабли я наступал.

Читать далее

Blueprint VM изнутри: ~80 инструкций, которые двигают вашу игру

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели6.4K

Каждый раз, когда вы соединяете ноды в Blueprint и нажимаете Play, Unreal Engine запускает маленький процессор. У него свои инструкции, свой стек, своя защита от бесконечных циклов. Он написан в ~4000 строках C++ и живёт в одном файле. Через него проходит каждый Event Tick, каждый Event BeginPlay, каждый вызов Blueprint-функции.

Этот процессор - Blueprint VM (Virtual Machine). И сегодня мы разберём его по винтикам.

Читать далее

Unreal Engine 5.4 + C++ + MacOS Tahoe + Android build = Build Successful

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.5K

Небольшая инструкция для всех, кто работает в Unreal Engine и пишет на C++ или иных языках + компилирует файлы для Андроид.

Читать далее

DEVLOG 6: Диалоговая система встречает счётчик стиля из Devil May Cry

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.8K

Всем привет.
Сегодня будем обсуждать механику счётчика стиля из Devil May Cry, но в диалоговой системе!

Играя в DMC, я заметил, что момент, когда вы открываете счётчик комбо - а мне нравится это делать подкидыванием демонов в воздух - похож на то же ощущение, которое я испытываю при открытии сноски в диалоге. Это даёт ощущение перехода на более сегментированный аспект системы - сперва приёмы в воздухе, потом на земле и снова в воздухе. Или как у меня - диалог, сноска, диалог, сноска, сноска, диалог. Так что я решил попробовать добавить эту систему в свою демку.

Читать далее

Как в Unreal Engine генерируется Hierarchical Z Buffer

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели7.8K

В этой статье разберём, как Unreal Engine строит Hierarchical Z Buffer (HZB).

Покажем, как вычисляются размеры mip-уровней, зачем нужно специальное округление float, как используются функции Gather, батчинг нескольких mip-уровней за один Dispatch, groupshared память, wave-операции и Morton Z Curve.

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

Читать далее

K2Node: магия Blueprint или что на самом деле скрывается за нодами в C++

Уровень сложностиСложный
Время на прочтение25 мин
Охват и читатели5.9K

Каждый, кто имел дело с Unreal Engine после 2014, наверняка слышал про скриптовый язык Blueprint. Но что реально происходит под капотом, когда вы таскаете ноды? Как создать свою ноду (и надо ли это вам вообще?) В данной статье я бы хотел разобрать K2Node

Читать далее

Бюджета нет — но вы держитесь

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.4K

Я сейчас собираю маркетинговую кампанию для своей первой игры. Денег на рекламу — ноль. И это, на самом деле, не редкость: большинство инди на старте живут в режиме «или делаем игру, или делаем маркетинг».

И вот что я понял: маркетинг без бюджета работает. Это дисциплина. Это таблицы. Это упаковка. Это тайминг. И это нормальное количество отказов, которое нужно пережить.

Ниже — система, которую я выстраиваю сам. Это не «универсальная истина», но это точно рабочая логика для тех, у кого нет бюджета, зато есть голова и руки.

Читать далее

Документ, которого не существует: боль тестовых заданий в геймдеве

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8.1K

— Нам нужен дизайн-док. — Какой именно? — Ну...ГДД.

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

Я уже более трёх лет в геймдеве — пусть и как инди-разработчик. У меня своя команда, собранная с нуля. Я учусь в магистратуре по профилю «геймдизайн», прошёл ряд курсов от западных университетов, написал десятки тысяч диалогов, GDD, питч-доков, фич-доков и множество других документов.

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

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

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

Итак, попробуем разобраться.

Читать далее

DEVLOG 5: Система World State

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7K

Всем привет!
Сегодня говорим про систему world state — она позволяет делать вариативность, запоминать решения игрока и делать реплики/ответы на основе флагов.

Читать далее

Ближайшие события

Геймдизайн начинается с двери

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.2K

Вы когда-нибудь задумывались, почему в вашей любимой игре одни двери открываются, а другие - просто декорация? Почему за одной дверью - босс, а за другой - пустая комната? И я сейчас не про техническую реализацию, а про то, как дверь влияет на восприятие мира, на доверие игрока к системам игры и на саму логику игрового пространства. Это так называемая «Проблема дверей», и сегодня мы разберем, почему эта, казалось бы, простая вещь ломает мозг каждому геймдизайнеру.

Представьте: вы делаете свою первую игру. Вы добавляете дверь. Казалось бы, что может быть проще? Но тут же возникает куча вопросов.

Можно ли открыть эту дверь? Если да - как? Ключом, кнопкой, после выполнения квеста? А если нет - почему она вообще здесь? Является ли она просто частью декорации? Но тогда как игрок поймет, что одни двери - интерактивны, а другие - нет? Ведь если половина дверей в мире нерабочая, а другая - функциональная, но визуально они неотличимы, вы создаете фрустрацию, а не загадку.

А что, если дверь открывается только с одной стороны? Игрок проходит через неё, оборачивается - и видит, что обратно пройти нельзя. Это намеренное ограничение? Или баг? Как вы донесете до игрока, что это часть замысла, а не недоделка?

Или вот ещё: дверь закрывается за спиной. Это должно вызывать напряжение - как в Resident Evil. Но если игрок не был готов к этому, он может подумать, что застрял. Где тут грань между атмосферой и плохим UX?

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

Читать далее

DEVLOG 4: сноски. Часть 2: нарративные трюки

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.2K

Всем привет! Сегодня снова говорим про ключевую фичу проекта — сноски Дэвида Фостера Уоллеса. В этот раз без технической части.

Читать далее

Игра Сапёр на Unreal Engine > UMG > только C++ > Никаких Блупринтов

Время на прочтение5 мин
Охват и читатели11K

Захотелось мне как-то написать что-нибудь на UMG в Unreal Engine 5 и исключительно на С++ (без использования блупринтов). Заодно было любопытно краем глаза взглянуть на QT. “Пахнет небольшим проектом”, - подумал я и избрал для вдохновения игру “Сапёр” из сего репозитория -> https://github.com/Bollos00/LibreMines. Моё почтение автору той репы!

Началось всё с бездумного и медитативного переписывания… простите, портирования структуры и логики на анриловский UMG и параллельного просмотра любимых шоу на ютьюбе. Чудесное было время! Далее чуть подрефачил код, упростил его, убрал ненужное, и получилось то, что получилось. 

А ну-ка...

Одиночное и групповое движение NPC по произвольной кривой

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели7.5K

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

— А по точкам вот прям вообще не подойдет?
— Не, ну, конечно, на крайняк подойдет, но хочу чтобы было по кривой. Да и на прошлой игре где я работал такое было, почему у нас нет?

И вот вы одновременно рады за его предыдущую команду, но в то же время и сами понимаете, что по кривой будет и красивее и гибче, но с какой стороны подойти к задаче — вопрос не праздный. Если вы оказались в такой или подобной ситуации, то эта статья для вас.

Читать далее

DEVLOG 3: Сноски

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.4K

Всем привет!
Этот пост будет предновогодним и потому мы обсудим самую мякотку.

Сегодня обсудим ключевую фичу проекта - сноски Дэвида Фостера Уоллеса! Это автор с уникальным подходом к написанию - как понятно из названия, там что-то любопытное придумал Уоллес со сносками. Его открытие: Сноски могут быть самостоятельным сюжетным битом, ироничным и харизматичным замечанием, они могут быть большие и огромные - некоторые его сноски достигают размера целой главы и создают ощущение бесконечного текста*(это сноска, листайте в конец чтобы оценить задумку).

Читать далее

DEVLOG 2: Кубы и анимация броска

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.3K

Всем привет!
Сегодня поговорим о том как выглядит бросок кубика и как он работает.

Кубики бывают разные (СКРИН_1).
Они нужны чтобы ролевая система могла обрабатывать геймплей - бросок кубика направляет историю, делает ее непредсказуемой (или умеренно предсказуемой) и в целом является тем что оживляет характеристики персонажа, позволяет играть в игру.

Читать далее

DEVLOG 1: Работа с ARTICY

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7K

Приветствую всех в новом сообществе, где я буду делиться ходом разработки!
Сегодня говорим о том где вообще записываются диалоги игры.

Если вы достаточно информированный фанат, то знаете что Дискач делали с помощью ARTICY, что у них были такие большие деревья диалогов, что программа буквально крашилась.

Читать далее
1
23 ...