Создание Survival Horror в стиле RE2 на Unreal Engine и С++. Базовая настройка и импорт ассетов

Начинаем создавать что-то вроде Survival Horror в стиле Resident Evil 2 Remake, используя Unreal Engine 4 и С++.
Пользователь

Начинаем создавать что-то вроде Survival Horror в стиле Resident Evil 2 Remake, используя Unreal Engine 4 и С++.

Во время разработки на Unreal Engine могут возникнуть задачи, которые требуют автоматизации, повторяемых действий или пакетной обработки. Эти задачи могут варьироваться от компиляции Blueprint'ов до упаковки игры на удаленном сервере. В таких случаях на помощь приходят Commandlet'ы.
Я на них наткнулся случайно, когда при запаковке проекта было много ошибок и было нужно пройтись по всем Blueprint — классам в проекте чтобы проверить, правильно ли они компилируются после изменений в C++. В данной статье хотелось бы поделиться опытом своего знакомства с ними.

Локализация — один из ключевых, но часто недооценённых аспектов разработки игр. По мере роста глобальной аудитории игроки ожидают видеть игры на своём родном языке, и локализация становится не роскошью, а необходимостью. Однако локализация — это не просто перевод текста. Она включает в себя решение технических задач, учёт культурных особенностей и оптимизацию рабочего процесса, чтобы обеспечить плавный и комфортный игровой опыт на нескольких языках.
В этой статье я расскажу о сложностях локализации в Unreal Engine, опираясь на свой опыт работы над Wizard of Legend 2. Мы разберём сбор и управление текстом, а также проблемы с форматированием, гендерно‑зависимым языком и обработкой шрифтов. Также я расскажу о ключевых аспектах, которые могут вызвать задержки, и о том, как их минимизировать.

В свое время релиз GTA III перевернул игровую индустрию, задав новый стандарт для игровой индустрии. Естественно, успех был настолько большим, что нашлось много студий, которые решили, что могут точно так же.
Ведь на первый взгляд у ранних частей 3D-вселенной GTA достаточно простая формула: нужен город, машины, NPC, которых можно убивать, и, главное, сюжет про криминал, который подается через миссии примерно одного и того же формата «доедь до места/убей врагов/доедь до места за определенное время/итп».
Понимание (ошибочное) простоты этой формулы породило целый пласт игр, которые со временем стали называть «клоны GTA», хотя номинально это были просто экшен-адвенчеры в открытом мире, но флер серии Rockstar и обидное клеймо потопило много подобных проектов, а иногда и целые студии. Насколько это заслуженно? Разберемся на нескольких примерах.

Всем привет! Меня зовут Григорий Дядиченко, я уже что-то разрабатываю на Unity десять лет. Давно ничего не писал, и тут собрался с силами и решил, что хочу написать про компьютерную графику. А точнее пройтись по её базе в контексте Unity. Если интересуетесь темой — добро пожаловать под кат!

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

Я уже делал серию постов об истории flash-игр (раз, два, три), а сейчас пришла пора рассказать как я сам оказался в этой индустрии.
Ещё после поступления в ИТМО я решил, что не мешало бы поизучать какую-то модную на тот момент технологию, и купил в переходе диск “Самоучитель по Flash MX”. А когда уже сносно программировал - захотелось сделать и свою игру. Писать какие-то аркады было не интересно, и я замахнулся аж на целый авиасимулятор (да, в программе для создания 2D анимаций). Но в целом у меня получилось! Геймплей был ужасен, графика ещё хуже, но были и воздушные бои, и даже миссии по уничтожению наземки. Игра была показана друзьям и заброшена на полку, но через пару месяцев я узнал про Newgrounds - это тогда была самая большая тусовка флешеров, куда все кому не лень выкладывали свои игры и мульты.

Я занимаюсь разработкой уже 10 лет, большую часть времен... Так, это из прошлой статьи. Давайте заново.
Я играю в игры уже 27 лет, большую часть времени играю один, но пару раз в неделю собираюсь играть с друзьями и каждый раз, чтобы собраться, нужно пройти 10 круг опросов: кто, когда, во сколько, на сколько, во что и 1001 другой вопрос. В какой-то момент я понял, что больше так жить нельзя и решил использовать свои навыки программиста, чтобы решить эту проблему.

В 2025 году российской игровой журналистике исполнилось 30 лет. За это время она прошла длинный путь: от культовых печатных журналов до независимых YouTube-каналов, Telegram-дайджестов и подкастов. Больше нет прилавков с журналами, нет традиции «отложить свежий номер», зато есть ностальгия, архивы в цифре и крепкое сообщество фанатов старой школы. Эпоха бумаги ушла окончательно — теперь даже «Навигатор игрового мира», долго державшийся на плаву, выходит уже раз в 7-8 месяцев и, скорее всего, вот вот закроется как печатное издание.
Оригинальная версия этого текста была написана ещё в 2020 году, но с тех пор мало что изменилось. «Гик-журналистика» окончательно заняла место чисто игровой, а прежние границы тем стерлись. Журналы, конечно же, не воскресли, а из-за событий 2022 года из России ушли многие правообладатели, которые поддерживали разные издания рекламой. Сейчас их нет, из-за чего игровая журналистика в сети на непродолжительное время ушла в кому, но всё же не исчезла. Она сменила не только формат, но и саму суть. Сегодня традиционные обзоры и рецензии вытеснены стримами, шортсами, блогами, ютюб-каналами и постами в соцсетях. Игровые порталы и медиа теперь пишут не только о видеоиграх, но и о кино, культуре, технологиях, мемах и даже политике.
Но этот текст больше про старый игрожур — тот самый, что продавался в ларьках с дисками, который мы запоем читали и искренне уважали авторов статей. У этой индустрии богатое прошлое, о котором до сих пор никто не рассказал во всей полноте. Я решили восполнить этот пробел и рассказать историю отечественной игровой журналистики: от первых журналов и культовых телепередач до становления интернет-ресурсов и YouTube-эпохи. В процессе пообщался с ключевыми участниками событий и собрал множество малоизвестных фактов, которые ещё не звучали публично.

Очки дополненной реальности Xreal One Pro — обновление линейки Xreal с новым дисплеем, фирменным чипом X1 и встроенным звуком от Bose. Устройство стоит $649 и предлагает более широкий функционал по сравнению с предыдущими моделями. В этом материале разбираемся, что умеют One Pro, как они устроены и чем отличаются от Xreal Air, которые я уже подробно разбирал в одной из своих статей.

В прошлой части мы вспоминали наиболее ранние анекдоты о программистах, появлявшиеся с момента основания Анекдот.ру осенью 1995 года по конец 1998 года. Продолжим наше погружение в мир олдового айтишного юмора конца 90-х годов, запечатлённое в самом старом действующем архиве анекдотов Рунета. С 1999 года всё больше заметны изменения по сравнению с недавним прошлым. В Интернете теперь сидят не только программисты, но и их жёны, дети и всё более многочисленные обычные юзеры — тогда как совсем дикие ламеры понемногу превращаются в исчезающую натуру. Появляются самоироничные чек-листы завсегдатая сети, уже далеко не всегда связанные с программированием, некоторые погружаются в неё настолько, что перестают замечать оффлайн. Обсуждается «проблема 2000 года», пугающая офисы, работа которых стремительно компьютеризируется. Одно остаётся стабильным: непростые отношения компьютерщиков с женщинами, и их большая «любовь» к Windows, теперь ещё и 98-й с 2000-й.

Для вывода необходимо принять не принятую (пока) научным сообществом парадигму физики. Эта парадигма не основана на законах Ньютона и ОТО. В её основе философия Эмпедокла. Конечно, не рассматривается земля, вода, воздух и огонь в качестве первичных материй. Но механическая, кинетическая, электрическая и облачная материи рассматриваются. Эта парадигма включает в себя с самого начала всё, что необходимо для вычислений с большими скоростями и критическими массами, а также всё, что необходимо для вычислений в электродинамике и квантовой механике. Как и у Эйнштейна здесь нет неконтактных сил, — на орбитальные объекты силы не действуют. В качестве основных единиц измерения применяются только длина и скорость. Материальный объект всегда имеет объём.
Несколько лет я не видел в этой парадигме ничего, что бы могло быть полезным в науке и технике, или хотя бы существенно иначе описывало какие-то реальные процессы. Воспринимал работу над этой парадигмой, как развлечение. Но в какой-то момент было обнаружено, что на основе этой парадигмы удалось объяснить наблюдаемую закономерность скоростей звёзд в галактике, а также «создать» нейтрино - подобный объект обладающий исчезающе малой массой, спином равным ± 1/2 и скоростью близкой к скорости света.
Поэтому уберите пожалуйста тапки и помидоры, которые вы уже приготовили для того чтобы бросать в меня. Просто попытайтесь вникнуть. Да это не просто. Груз авторитетов преодолеть трудно. Но кривая вращения галактик совпадает с наблюдениями, а нейтрино — подобный объект с настоящей нейтрино. Да и заслуги авторитетов от науки никто не умаляет. Если бы не они, описание этой парадигмы потребовало бы не одного десятилетия.

В этой статье я хочу показать, что из себя представляет System Design. На примере простого и очень популярного на собеседованиях сервиса «Сокращатель ссылок», мы рассмотрим стадии System Design и в конце у нас будет готова схема системы со всеми расчетами.
Одним из механизмов статического анализа является аннотирование методов популярных библиотек. Аннотации позволяют обладать большей информацией при диагностировании ошибок в коде. Впечатляющий свободный проект на С++ CARLA помог нам внедрить этот механизм. Впоследствии симулятор стал целью для проверки улучшенным статанализатором PVS-Studio.


I needed to create a category panel for placeable items in the UI — like the ones you see in city-building games. As a legacy, I inherited a ready-made UENUM, which may be modified in the future.
Naturally, I didn’t want to manually create and tweak every single widget — especially knowing that the list of categories might change later. I wanted something simple and reusable: just run a For each loop, generate everything on the fly, and ideally make it work for any enum, not just this one.
And there was a way! When you define a UENUM, Unreal automatically generates all the metadata and creates a corresponding UEnum object, which is a UObject. All you have to do is use that data properly.

Недавно передо мной встала интересная задача: организовать удалённый запуск сценариев в приложении на Unreal Engine с мобильного устройства.
Представим упрощённую ситуацию: на компьютере запущено приложение на Unreal Engine (назовём это инсталляцией), а у нас есть мобильное устройство, с которого необходимо передавать команды на эту инсталляцию. Это может быть как сложная мультимедийная инсталляция уровня змейка на фасаде здания, так и более простой пример — управление игровым персонажем с телефона, как с геймпада.

Рано или поздно разработчик на Unreal Engine почти наверняка сталкивается с необходимостью использовать плагин Gameplay Ability System. И если он не был знаком с этим плагином, то он также столкнется с необходимостью освоить огромное количеством информации, требуемой для работы с ним, на изучение которой может уйти не одна неделя. Эта статья для таких людей, а также для тех, кто работает с Unreal Engine и до сих пор с этой системой не знаком, но хочет познакомиться.
Ознакомившись с ней вы узнаете что вообще за Gameplay Ability System. Где, как и, главное, зачем его использовать. Познакомитесь с основными сущностями, которые необходимы для работы с плагином. А также получите возможность пронаблюдать его использование на небольшом примере. Приятного чтения!

Не так давно в официальной группе UE4 в vk я спрашивал, какие темы были бы интересны сообществу, чтобы о них рассказать :) Одним из популярных запросов стала работа с сетью на движке.
В начале я не планировал как-то раскрывать или упоминать эту тему, но потом подумал, что оформить "Best Practices" было бы неплохо даже для себя и своей команды.
Так что, если вам интересно, как мы делали сеть для нашей Armored Warfare: Assault, добро пожаловать под кат.


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