История начинается в далёком 2019 году, а может, и немного раньше. Уже два года я благополучно перестал работать на дядю, ибо понял, что много денег не заработаю, а здоровье гробится конкретно. А рабство — это не моё. Хотя для страны, откуда я родом, 2500$ в месяц, из которых 500$ уходило на аренду жилья и еду, — это неплохо. Остальное копи, откладывай, трать по желанию. Не бедствовал.

Осень 2017-ого года. Я увольняюсь и лечу смотреть мир, в далекую Индию (тема целой отдельной статьи). Золотое время до макаронобесия. Тогда у меня был слабенький ноутбук 10"(На Unity я буду разрабатывать, используя настольный PC), который я сменил на acer n3700 cpu году так в 2019-ом. И вот мне пришло в голову разработать свой AI, когда ChatGPT ещё даже не маячил на горизонте и не стал мэйнстримом. Шла разработка на java, языке, который я использовал в своей карьере. Но быстро понял, что java не то, что нужно, особенно для UI визуализации графов данных и графа знаний AI.
Примерно в те же годы и начал развиваться youtube-канал проекта.

Youtube помнит
Youtube помнит

2021.10.24 — официально зарегистрированное начало использования unity 3d.
Причина перехода: изучая кучу всяких библиотек для UI и визуализации на java, понял, что нужно что‑то более мощное. А что лучше всего рисует графику и UI? Правильно — игровые движки. Выбрал я Unity 3d, поддавшись провокациям разводил интернетовских, а также самого веб‑сайта компании-разработчика сего чудо-движка. (Субъективное мнение автора для вас, для меня мое мнение после 13 месяцев мук очень даже объективное, ибо заявления о всемогуществе движка себя не оправдали). 13 месяцев — это длинная история. И тема отдельного поста. И подробно рассказывать не буду. Расскажу, что я подробно изучил c# также в контексте движка и его дебрей, и с каждым месяцем «Дочери Евы» (игра слов, не переводимая на другие языки), я всё больше убеждался, что меня жестоко на Бали(остров такой) отправили, и навязали откровенный шлак, который подходит для создания явно не таких интересных и крупных проектов, как у меня.

youtube помнит переход на Unreal Engine 5
youtube помнит переход на Unreal Engine 5

2022.12.03 я устал и решил сменить движок. Сказать, что меня посетила дикая фрустрация, это не сказать ничего. Осознание того, что огромное число наработок кода, который просто умрёт, потому что я не дошел до уровня выкладывания его на github, угнетало. Через полгода unitek-и сделают глупость со своими тарифами, и я ещё больше уверюсь, что сделал верный выбор.

Все те первые шаги, начиная от отрисовки кубика, первых скриптов на Blueprints, базовое передвижение персонажа, UI, вся базовая архитектура движка, изучение, как реализовать всё то, что я уже реализовал на Unity, это все фрустрировало, потому что по сути всё с нуля.

В результате работы на Unity-движке над своим проектом фокус внимания стал смещаться от AI в сторону 3D, Gaming и VR. Кстати, в далекие годы детства была мечта создать игру свою про космос, классную, как Elite времён ZX‑Spectrum. На Unreal Engine фокус сохранился и стал более общим — VR Constructor общего назначения.

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

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

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

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

VR sandbox, VR OS.
И после раздумий проект получил кодовое имя U3DSBVRGE. Название не окончательное, расшифровывается как Universal 3d SandBox VR Graphics Engine.

Относительно недавно появился сайт, который более-менее рассказывает про проект. Вот ссылка, кому интересно.

Youtube помнит появление сайта. 2024.07.17 website на google.sites
Youtube помнит появление сайта. 2024.07.17 website на google.sites

Даже доменное имя купил, но что-то пошло не так с настройками у провайдера доменных имен, поэтому сайт до сих пор на домене провайдера.
Вам вот сюда, кому интересно:
https://www.u3dsbvrge.cloudns.ch/main-page

главная страница web-сайта проекта
главная страница web-сайта проекта

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

Ещё один важный этап: я стал официальным разработчиком на площадке unreal marketplace, которая превратилась в fab.com, где я и успел разместить два плагина, и ещё десяток лежит в незавершенном состоянии у меня на HDD.
https://www.fab.com/sellers/U3DSBVRGE

мой аккаунт на fab.com
мой аккаунт на fab.com

Я не застал Unreal Engine 4-ой версии благодаря тому, что Unity 3d имел мой мозг и мою жизнь, ибо я жил разработкой проекта и ликбезом в области движка. Именно поэтому моё знакомство, так сложилось, началось с 5-ой версии движка ue5.1.0. Если, конечно, копнуть дальше, в год эдак 2012, то я обнаружил на древнем компе мои попытки и установку UDK и Unity. О чем я успел даже забыть. О Unity ничего не помню. Помню, что UDK я запустил, запустил Level shooter, и не понял вообще ничего, даже час не потратил на освоение. Дел, забот хватало тогда, поэтому забылось до лучших времён.

Но вернёмся в 2023-2025 года. Активное изучение ue5 параллельно с попытками писать свой проект. В сентябре 2023 я впервые столкнулся с необходимостью писать C++ плагин, что стало началом вспоминания, а по сути — изучения практически с нуля С++ , и изучения С++ в контексте самого движка и его библиотек. Кому интересно — ORMsqlite С++ exposed to blueprints. Идея и реализация классная, но нужно дорабатывать. Также кандидат в marketplace fab.com

Теперь немного камней в огород «епиков» (официально epic games). Несмотря на 27 лет истории (Unreal Engine был впервые представлен в 1998 году вместе с выходом игры Unreal. На текущий момент, в июне 2025 года, движку исполнилось 27 лет), движок остаётся достаточно сырым во многих вопросах. Но несмотря на это, это лучшее, что можно взять для разработки своего проекта. А после изучения внутренностей двух движков я точно знаю, что ресурсов на написание собственного движка с нуля у меня нет.

Неделю назад, зайдя на unity asset store, я понял, что принял правильное решение. Зайдя на сайт плагинов для godot, поискав самые простые из них, которые реализуют функционал моей песочницы, ничего не найдя, понял, что godot тем более не годится. Мои мысли о том, что, возможно, есть что‑то лучше, это повод задуматься команде Epic Games, что их проект все ещё не идеален. А вообще хочется думать, что я снова не ошибся, ибо с Unreal я уже гораздо больше времени, а усилий потрачено очень много. Годы — это очень большой срок, и хочется надеяться и верить, что не прилетит «черный лебедь» и не придётся начинать проект снова практически с нуля.

Для тех, кто хочет решить, какой движок использовать для более-менее серьезного проекта, берите Unreal Engine. Для игровых мобильных 2D-проектов, как по мне, Unity лишнее, а для 3D есть Unreal. Для простых игр берите готовые конструкторы, с инфраструктурой и чтобы писать код минимально.

Кроссплатформенность у Unreal под вопросом местами, и такие вещи узнаёшь, когда видишь, что официальные плагины в сборке поддерживают только Mac и windows, и могут совсем не поддерживать Linux. Помимо ещё 10 официальных платформ для сборки проекта Unreal, многие сторонние плагины из github или fab также соберутся далеко не под всё. Например, моя попытка использовать AI и микрофон на ubuntu 22.04 провалилась, ибо плагин UE5 для работы с микрофоном не кросплатформенный, а писать свою библиотеку пока нет временного ресурса, да и это не ключевая функциональность.

Что мне понравилось в Unity и чего пока нет в Unreal: USS unity style sheet по аналогии с html css. В Unreal такого нет, и за последние годы Unity Devs преуспели в этом, еще научились делать core build в 16 килобайт.

C++. Многое в Unreal не вынесено в blueprints, и очень часто не хватает высокоуровневых blueprint nodes, многих С++ функций и классов, которые приходится самому выносить в blueprints. Будь то поиск готовой библиотеки и потом допиливание или написание с нуля. А в общем, доступ к исходникам движка и возможность подключить всё, что может работать с С++, — это большой плюс ))). Unity в этом плане проблемный. Да и вообще запуск движка Unity без интернета работает специфично.

Unreal engine — большая сложная система, многослойная, нужно очень много времени, чтобы разобраться и освоить то, что нужно на практике.

Люблю blueprints за скорость прототипирования и тестирования функциональности, главное, чтобы нужные С++ классы и методы были доступны через blueprints. А когда прототип готов, проверен, можно и на С++ переписать и вынести в отдельные плагины модули функционал.

Движок не умеет проигрывать видео нормально, кросплатформенно, точнее, минимум видеоформатов умеет. А на допиливание, исправление vlc, Ffmpeg Media, сторонних плагинов, пока нет времени.

UI-библиотека бедна на комплексные UI-виджеты.

Сериализация, save/load в рамках single player, standalone работает хорошо. Для создания и сохранения динамических миров нужно писать свое решение поверх базовых UArchive. Третьи (ThridParty) плагины тоже слабоваты.

Voxel terrain runtime — нет из коробки. Только сторонний плагин voxel plugin, сейчас уже 2.0. У меня к нему тоже вопросы. И ещё пару на github.com. Unity, кстати, тоже вокселями не блистает.

Процедурные текстуры, которые занимают минимум места. Это, кстати, моя тема, и плагин есть, мною написанный. В Unreal есть TextureGraph с недавних пор — экспериментальный, но не кроссплатформенный на данный момент.

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

Процедурные Static mesh и Skeletal mesh — такого нет в Unreal, я знаю, что в теории можно сделать, но пока что не добрался до реализации. Assets должны хранить только метаописание и генерироваться по мере необходимости.

Процедурные текстуры, содержащие текст — нет такого функционала.

Работа с mdi‑файлами, sf2 sound fonts из коробки — нет.

Runtime blueprinting editor, Runtime scripting — нет из коробки. Нужно дописывать, адаптировать сторонние третьи решения, плагины.

Полноценная Мод-система — нет из коробки. GameFeatures — слабое решение.

Наборы спецэффектов из коробки, написанные на NiagaraFX — нет.

Вода — есть, но не вся, не зря есть сторонние плагины: Oceanology, FluidFlux и иже с ними.

Для гибкой и настраиваемой погоды также лучшее решение — сторонний плагин.

Лучшие динамические облака я видел в unigine, не в unreal.

PCG — procedural content generation, отличная вещь, но я пока не углублялся.

Tree and foliage generation. Я уже молчу про runtime. Отсутствует из коробки.

Если решите делать модульную архитектуру проекта, чтобы c++ modules ваших плагинов лежали отдельно, а не внутри binary exe, придется научиться собирать unreal engine из исходников.

В какой‑то момент придется учиться писать editor tools, благо в Unreal есть editor utility widgets and editor utility blueprints. Однако добавления в главное и контекстное меню пунктов придется писать на С++. Custom uassets — так же отдельный навык и понимание архитектуры движка.

В 2025 году perplexity.ai улучшил обвязку скриптов вокруг llm, поэтому ваши запросы, включая написание кода на ue5 c++, поможет ускорить разработку и написание того, что не вынесено в blueprints или того, чего вообще нет. Custom C++ modules — это тяжёлые задачи.

Content packs из marketplaces: очень многие содержат неоптимизированные текстуры, 3d-модели, материалы, которые съедают гигабайты в проекте и сборке. Базовых контент-плагинов для прототипирования в unreal engine практически нет, не считая starter content, что капля в море по сравнению с тем, что давно уже нужно было сделать Epic Games.

Плагины базовых основных механик в играх — нет ничего из коробки. Сложно назвать такой движок игровым. В защиту скажу, что движок не одинок: Unity и Godot такие же голые на ассеты из коробки.

На данный момент реализую мод-систему и init core, в процессе проверяю, как работает движок и, надеюсь, не уткнусь в стену. По мод-системе очень много вопросов.

Runtime Editor в unreal engine — отсутствует из коробки. Сторонний плагин Quiet runtime editor — есть вопросы к его архитектуре. Нужно перепиливать или на базе плагина писать свой.

Клиент сервер — он есть, для базовых сценариев работает, уже хорошо, но MMORPG из коробки нет решения.

Процедурные генерируемые анимации runtime — нет решения из коробки.

Spore system — нет из коробки — будет прекрасно иметь такое решение в движке.

Движок развивается, в версии 5.6 preview завезли metahuman и lipsync voice.
Вообще завозят много чего, и это радует. Заявление о 6-й версии — что там будет также радует.

Не хватает поддержки multi gpu в движке.

Убрали поддержку compiled blueprints, была хорошая вещь. Blueprints to С++ нет из коробки, точнее, С++ header file view есть. Но вроде как есть платные плагины, но я их ещё не проверял.

Мне говорили, «что ты можешь в одиночку». Если вам говорят подобное, не слушайте. Знайте, если вы разрабатываете свой проект на Unreal Engine — вы не одни. Большое сообщество разрабатывает плагины, адаптирует C, C++ библиотеки, создаёт content packs, как платные, так и бесплатные, есть github. Многое, что работает в 4-й версии, можно допиливать под 5-ую версию. Как минимум 500 разработчиков трудятся над самим Unreal Engine внутри компании Epic games и ещё часть сотрудников пишут плагины и модули, дописывают, улучшают по мере возможности.

Миллионы специалистов пишут код на С, C++, JS, Python, Lua, и все это можно использовать внутри проекта на Unreal Engine. Так что когда вы кушаете, отсыпаетесь, иногда сомневаетесь, в то же самое время мир разработчиков, content artists создаёт то, что вы сможете использовать в своих проектах.

Я благодарен мировому сообществу талантливых людей, энтузиастов, альтруистам, делящимся своими наработками, благодаря чему я могу создавать и развивать свой проект, который также внесёт свой вклад в развитие человечества и, надеюсь, позволит удешевить, улучшить, ускорить, оптимизировать, упростить многие процессы в жизни миллиардов людей на планете Земля и упростить разработку проектов на Unreal Engine платформе.

Для тех, кто дочитал до конца, одна из «Заметок разработчика».

Плагин архитектура: ModularGameFeatures (странная вещь), но специфичная реализация (работает только с Content).

Стандартная загрузка content-плагинов из pak-файла. (Можно подгружать динамически выборочно).

Еще есть .ucas + .utoc — тоже специфичная вещь (не нашел, как их подгружать динамически выборочно)

Динамическая загрузка модулей (С++ plugins из коробки). Начались приключения.

Добрался до компиляции проекта с модульной архитектурой. По умолчанию все бинарники запаковывает в exe‑файл монолит. Добавил в project.target.cs строку «LinkType = TargetLinkType.Modular;». Но эта штука не смогла собрать проект, потому что нужны модули, скомпилированные отдельно (в моем случае linux, поэтому *.so). Этого нет в стандартной поставке движка, скачиваемого у Epic games. Нужно собирать проект из исходников.

Скачал 5.5.4, скомпилировал. Начал запускать проект, столкнулся с тем, что модуль UE5 не компилируется, пришлось залезть в код модуля build.cs, поменять строку кода. Странно, но сработала link‑система и собрало нужную библиотеку движка для моего проекта (зависимости, понятное дело). Но не смогло запустить, ругнулось на версию.

Удалил Опцию «EngineAssociation»: «5.5» в.uproject и проект перестал ругаться на версию, стал ругаться на Vulkan. Установил самую последнюю версию Vulkan, Nvidia drivers и Vulkan SDK. Не помогло, все ещё ругается. Судя по логам, Unreal Engine 5.5.4 успешно находит Vulkan SDK и запускает проверку профиля Vulkan, но сообщает, что Vulkan‑драйвер не поддерживает необходимые расширения и функции, например VK_EXT_mesh_shader, и в итоге выдаёт ошибку: «Vulkan Driver is required to run the engine». Возможно придётся пересобрать UE5.5.4 с уже установленным vulkan SDK, возможно, соберет как‑то по--другому. Надо глянуть, есть ли исходники в самих source UE5. Выяснил, что это связано с Shader Model версий SM5 и SM6. Последние нужны для Lumen, Nanite и, возможно, чего‑то ещё. Или собирать проект на SM5 (с ограниченными возможностями на движках старше 5.5.3) или более современную видеокарту в комп и для конечного пользователя тоже. На SM5 не переключал тестовый проект. 5.5.4 пушит использование нового Vulkanи SM6.

Скачал UE5.6 build preview посмотреть. Из коробки завезли MetaHuman, Meta body, lips sync generation runtime и ещё много всякого.

Завтра попробую переключиться на SM5 в проекте, проверить, проблема ли в видеокарте старой для UE5.5.4+ и всех новомодных возможностей. Переключился на SM5, и оно заработало.

Итог: монолит собрать из коробки — не проблема. Модульный расширяемый проект — проблема. Content plugin mods из коробки тоже нет (нужно писать обертку, вместе с UI). SM5 смог запустить проект, нужно менять видеокарту для всех новых возможностей, пока сижу без lumen и nanite. Отлично, смог запаковать проект, где каждый плагин и его binaries лежат в отдельной директории.

Продолжение следует...

Комментарии (8)


  1. Apoheliy
    11.06.2025 15:28

    Пардонь-те, Автор! Вы зачем это написали? Какая-то цель было? Или просто реклама то ли домена, то ли ещё что?

    По сути:

    Статья - это какой-то странный полёт мысли. Со странными ассоциациями.

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

    • чем плох unity? То, что он не может в какие-то фичи - ну это может не всем нужно.

    • границы UnrealEngine Blueprints? Да, интернеты говорят, что это только для простых проектов, а сложные нужно однозначно в программирование. А граница где?

    • UnrealEngine и работа со звуком. Что есть, чего нет? Как-бы работа со звуком это вообще-то отдельная тема со своими трудностями (типа, если у вас просядет fps, то играть вы сможете, и даже возможно хорошо; если у вас будет звук выводиться с просадками - то вы такую игру выкинете сразу).

    В остальном же можно написать статью-тьюториал, из разряда: вот есть UnrealEngine, я хочу сделать такую-то штуку - вот путь и обход проблемных мест. Может это будет полезнее.


    1. Jijiki
      11.06.2025 15:28

      что-то подсказывает границ у Анриала нету, если в нём есть возможность дописать что-то

      звук надо начинать с обзора openal и с загрузки простой демосцены, потомучто пишут что он сооружен таким образом что может там что-то эмулировать, проверить легко пишем свой звуковой проигрыватель смотрим на диспетчер задач в момент проигрывания

      тоесть звук будет либо плоский если всё равно как, либо движок с навесом на 3д, вообще по движковому звуковому типо openal надо только понять как делить большой трек на кусочки и проигрывать их с наименьшими накладными расходами, тоесть распаковали посчитали поделили

      ну а есть готовые типо fmod слышал/видел но его не использовал

      вообще openal это чудеса те еще, звук который получается просто шок(в хорошем смысле)

      сила src течет в нём как и в анриале, но анриал убежал далеко ) оставляя 2005 и 95 года позади, щас он просто большой