Сегодня мы поговорим об интересном проекте FUE5. Это Factorio, но в 3D! Иногда мечты становятся явью. Это не совсем игра, а, скорее, потрясающее переосмысление её визуальной составляющей. В этой написанной Hurricane статье будет много технических подробностей, так что давайте приступим.
Что такое FUE5?
FUE5 (сокращение от Factorio in Unreal Engine 5) — это экспериментальный проект с простой целью: визуализация 2D-мира Factorio в 3D-пространстве. Он был создан 3D-художником Hurricane и моддером Factorio по имени Nuke за пять месяцев с 10 января 2023 года. Многие творческие люди в сообществе моддеров Factorio создают потрясающие крупномасштабные моды наподобие Space Exploration, модов Bob и Angel, но мы решили пойти немного иным путём. Этот проект — среда 3D-визуализации, способная импортировать базы из игры Factorio и визуально воссоздавать их поведение. Он не содержит геймплея, но пользователь может полетать и рассмотреть свою базу в 3D.
Как это реализовано?
Чтобы хотя бы начать думать о реализации подобного проекта, необходимо было с нуля смоделировать и анимировать на основании спрайтов игры каждый объект Factorio, будь то сборочный автомат или манипулятор. Для 3D-моделирования мы использовали Cinema4D, а для создания текстур — Adobe Photoshop. После завершения моделирования и текстур вся структура экспортировалась из Cinema4D в формат FBX, который затем импортировался в Unreal Engine 5, где применялись соответствующие шейдеры. Такие шейдеры — это обычно материалы наподобие стекла, металла или даже дыма.
Также необходимо было воссоздать множество важных систем, например конвейеров, поездов и систему логистики. Мы создали их при помощи нативной системы нодов блюпринтов UE5. Мы решили создавать всю логику для этих систем, когда процесс 3D-моделирования был практически закончен, так как для правильного размещения подвижных элементов нам нужны были 3D-модели подходящего размера в 3D-пространстве. Важный этап, способствовавший развитию проекта, заключался в гениальной идее экспортировать базы Factorio непосредственно из игры, а затем импортировать их в среду Unreal Engine. Это решение помогло сэкономить кучу времени на построении баз, которое было бы монотонной задачей; к тому же, если бы мы делали всё только в Unreal Engine, то базы выглядели бы неправильно.
1. Система строений
Первый главный компонент FUE5 — это возможность генерации строений аналогично тому, как они выглядят в Factorio. Считывая внутриигровые данные, мы можем получать типы строений, их расположение и соединения кабелей. Эта информация экспортируется в файл JSON при помощи мода экспорта FUE5 напрямую из самой игры. Затем этот файл считывает проект FUE5, и этого достаточно для воссоздания поведения всех зданий и транспорта на настоящей базе.
2. Система конвейеров
Кроме создания 3D-моделей для отдельных конвейеров нам нужно было разобраться в механике перемещения предметов. Мы достигли этого, представив конвейеры в виде сплайнов. При экспорте базы Factorio при помощи мода экспорта FUE5 каждый непрерывный сегмент конвейера (сегмент конвейера, который подключён и заканчивается тоннелем, само по себе или зациклен) считается отдельной системой. При считывании данных FUE5 создаёт сплайн для каждой из этих отдельных систем. Затем эти сплайны направляют предметы по тому же пути, что и в самой игре.
3. Система поездов
Система поездов сильно отличается от системы конвейеров, потому что воссоздание расписаний поездов, сигналов и поиска путей локомотивов было бы очень сложной задачей. Вместо этого мы решили использовать нативную систему поиска маршрутов поездов из Factorio. Чтобы поезд мог появиться и перемещаться в FUE5, необходимо задать конечную точку его назначения и дать ему зелёный свет, а уже потом экспортировать базу. На этом этапе мы можем считывать вычисленный маршрут поезда и использовать его для создания сплайна, определяющего движение поезда в FUE5.
4. Логистическая система
Мы сразу же отказались от создания строительных дронов, потому что на данном этапе создаём здания при помощи нативной системы UE5 Construction Script, и какое-то время не собираемся ничего в этом менять. Вместо этого мы сосредоточились на обеспечении правильности работы логистических ботов, потому что они основа существования любой минимально сложной базы Factorio, и к тому же добавляют визуальной интересности всей картинке. У каждой дронстанции есть вероятность случайного создания кластера логистических дронов; каждый дрон имеет простой мозг для поиска поблизости логистических сундуков и перемещения между ними для визуальной имитации транспортирования ресурсов. После завершения задачи транспортировки ресурсов дрон определяет местоположение ближайшей дронстанции и направляется к ней, чтобы уничтожиться.
Проблемы и оптимизация
Первые серьёзные проблемы стали очевидными, когда на ранних этапах проекта мы начали импортировать в FUE5 крупные базы. FPS существенно упал, а события блюпринтов начали создавать ненадёжные результаты; именно поэтому чтобы проект работал хотя бы на 30-60 FPS, необходимо было провести работы по оптимизации.
Основными целями оптимизации были количество полигонов, разрешение текстур, частицы и количество обновлений, происходящих за один такт. Их необходимо было существенно снизить при помощи оптимизации системы конвейеров, которая на ранних этапах проекта приводила к сильным торможениям. Также мы сильно повысили FPS, настроив и оптимизировав уровень детализации (LOD) анимированных частей зданий, например, вращающихся цилиндров центрифуг, шестерней и поршней на крышах сборочных автоматов.
Также нам нужно было получить разрешение разработчика Factorio Wube Software. Мы спросили о степени законности нашего проекта и разработчики отнеслись к нам с большим пониманием, разрешив выпустить проект при условии, что он не будет использоваться коммерчески.
Самое интересное
Разобравшись за первые два месяца работы с общей идеей и основной частью прототипов, мы достаточно легко смогли воссоздать объекты и системы Factorio. Настало время заняться красотой и созданием главного трейлера релиза, в котором демонстрируются крупномасштабные базы, созданные при помощи экспортера FUE5, а также множество других вещей, которые можно реализовать в среде FUE5.
Для показанных в трейлере крупномасштабных фабрик необходимо было создать множество уникальных объектов. Простая возможность экспорта внутриигровых баз Factorio не позволила бы добиться особо чистых и кинематографических результатов, поэтому мы вручную внесли множество изменений, чтобы в камере всё выглядело красиво! Кроме того, оказалось, что спагетти-базы визуально гораздо более интересны, чем длинные ряды одинаковых зданий, оптимизированных для получения высокого производства науки в минуту (science per minute, SPM).
Как пользоваться FUE5
Этот проект — не игра, в нём нет интерфейса пользователя, а для его использования требуются базовые знания UE5. Однако вы можете найти полное описание процесса на нашей странице GitHub. После установки UE5 и запуска скачанного проекта вам достаточно будет выбрать фрагмент базы, который вы хотите экспортировать, а затем экспортировать его в FUE5, как это описано в подробном руководстве. Один раз поняв процесс, вы сможете очень легко его повторять.
Будущее
Мы хотели поделиться этим проектом, выложив его в опенсорс на GitHub, потому что сообщество Factorio — это крайне увлечённая группа очень творческих людей, и доступ к подобному проекту может позволить её участникам ощутить любимый ими мир в новом измерении. Кроме того, это даст наиболее творческим фанатам возможность создавать то, что раньше было невозможно.
Сейчас мы с Nuke работаем над совершенствованием готовых систем, чтобы их было проще использовать, и чтобы производительность оставалась высокой даже при больших размерах баз. Также мы начали экспериментировать с возможностью добавления в будущем контента из модов.
Фабрика должна расти!
Комментарии (59)
tas
24.08.2023 06:32+12Увлеченные люди, это хорошо! Сделать такое вдвоем за 5 месяцев - это просто невероятно...
semmaxim
24.08.2023 06:32+1Увы, но необходимость ручного создания 3D-моделей сильно расстраивает. Ванильная версия обычно проходится за пару дней. А вот сделать модели всех зданий и предметов хотя бы из тех же Space Explorer и Krastorio...
CptAFK
24.08.2023 06:32+8За пару дней? А что такое прохождение ванилы? Запуск ракеты в лайт режиме без агрёсии жуков? Ну или я очень слаб в этой игре))
semmaxim
24.08.2023 06:32+1Ванила - это базовая игра без модов с настройками по-умолчанию.
Да, если знать что и как и иметь базу шаблонов, то за пару-тройку дней интенсивной игра базовая проходится. Если новичок, то может и неделя уйти, но это всё равно мало. После второго-третьего прохождения "на интерес" уже мало кто играет. Либо бросают, либо выдумывают себе испытания, либо обмазываются модами. Сейчас на Space Exploration + Krastorio 2 (+ещё несколько десятков модов) я уже, наверное, полгода играю потихоньку.
Ozarenie
24.08.2023 06:32+1У меня первое прохождение без модов заняло 40 часов.
Следующая игра уже с кучей модов заняла почти 350 часов.
Так что несколько дней это довольно быстро.
SAWER
24.08.2023 06:32+1А я с бобмодом и космическим играл... Krastorio 2 сильно другой? Его тогда раньше и не было похоже
rutexd
24.08.2023 06:32Красторио это как расширенная винила. И да, вышел он сравнительно позже.
Можно ещё в сторону ангелмодов посмотреть или вообще py....
mayorovp
24.08.2023 06:32Сильно. С одной стороны, ранняя игра в Крастории похоже на раннюю игру в ваниле, только с уменьшенной эффективностью переплавки.
С другой стороны, дальше Крастория уходит в сторону, а появляющиеся в поздней игре технологии полностью меняют правила игры. Это совсем не производственные здания Боба, которое отличаются друг от друга расцветкой и скоростью.
Но ещё сильнее отличаются Space Exploration и Space Extension. 40+ запусков второго не сравнить с необходимостью налаживать логистику между планетами в первом.
javalin
24.08.2023 06:32+2Запуск ракеты на дефолтных настройках. Но просто запустить ракету за 2 дня, это конечно не то, за что мы любим факторио )
hedger
24.08.2023 06:32+1Спидранеры запускают ракету меньше чем за полтора часа. На ванильной игре с дефолтными настройками.
tommyangelo27
24.08.2023 06:32+2На Ютубе есть спидраны на дефолтных настройках, там обычно 2-3 часа плюс-минус уходит.
Но в целом я с вами согласен, раза 3 запускал ракету и обычно не меньше 30 часов уходит, в первый раз вообще около 60 — не разобрался как дронов сделать и всё строил руками и на конвейерах. Я не увлекаюсь шаблонами и расчётами, просто балуюсь в удовольствие.
lgorSL
24.08.2023 06:32Я специально ради ачивки заморочился и смог запустить за 7.5 часов. Сначала прикинул, какой минимум технологий надо исследовать, сколько какой науки потребуется и какая скорость производства банок с наукой будет нужна. Чужие чертежи не брал, заранее подготовил свои для производства каждой науки.
Карту подобрал, чтобы ресурсы были рядом и чтобы на месте базы было не слишком много деревьев. Во время игры не стеснялся ставить на паузу, чтобы подумать что делать дальше.
В конце отключил производство науки и направил все ресурсы на компоненты для ракеты. Что забавно - итоговая база довольно простая и компактная получилось, не сравнить с теми что народ строит при игре по сети.
В итоге полученный опыт и схемы строительства запомнились - наверно, я сейчас за примерно то же время смогу без подготовки запустить, если не быстрее.
Потом уже ради интереса посмотрел как спидраннеры делают - но у них намного более жёсткая и чёткая схема строительства. Я же для удовольствия пробовал, запас по улучшениям ещё очень большой.
mysherocker
24.08.2023 06:32-1Если что, Satisfactory -- это готовый вариант "Factorio 3D"
ksbes
24.08.2023 06:32+8Даже близко - нет. Там и близко нет всей глубины Factorio, а больше сил уходит на то, как эту (несомненно реалистичную) гигантоманию красивенько вписать пейзаж. Т.е. Игра хорошая, но немного в другую направленность - в логистику и креатив.
Spyman
24.08.2023 06:32+1Зато по всем фронтам кроме механики сатисфактори выигрывает - и сюжетно, и особенно в логике создания устройств и технологий. Меня совершенно вымораживало в факторио что для создания новых колбочек для исследования нужно крафтить их из буровой установки, пушки и еще какой-то матери, да потом еще и в лаборатории исследовать это. Понимаю что это условность, но насколько же это тупо)
mayorovp
24.08.2023 06:32Напомните, а из чего крафтится космический лифт в Satisfactory? Это что, имеет больше смысла?
ksbes
24.08.2023 06:32+2Из туевой хучи бетона, проволоки и чего-то железного. Причём, заметим, крафтится не сам лифт, а всего лишь "розетка" к нему. Сам лифт, как и положено, с космоса спускается. Так что да, смысла побольше.
Т.е. в плане логичности рецептов у Сатисфектори действительно лучше, но, естественно, со своими условностями. Да и вообще этакая "реалистичность" - это фишка этой игры. Наклепал, а потом ходишь восхищаешься - отличный игровой цикл!mayorovp
24.08.2023 06:32+1Это не логичность, это абсурд. FICSIT способны спустить из космоса лифт, но экономят на вооружении своих рабов, вынуждая тех отбиваться от фауны в рукопашную.
rPman
24.08.2023 06:32Откуда такое недопонимание, вы живете в 2023 году где ответ на ваш вопрос прямо на виду.
Капитализм требует чтобы люди были заняты какой-либо деятельностью, чтобы 'зарабатывать деньги', необходимые им для существования. А там хоть велосипедный тренажер крути и смотри рекламу в кубе из экранов, где за закрытые глаза тебя оштрафуют (черное зеркало), хоть топай ножками на передовую и мочи зергов лопатой, заодно от лишнего населения избавиться.
Пакистанцы не дадут соврать.
В этом сломанном и искаженном мире (в т.ч. таком как наша реальность) человечество готов делать любую херню, максимально не эффективно, обладая технологиями, которые могут горы свернуть, но не способны договориться с соседом о том чтобы делать дело вместе.
mayorovp
24.08.2023 06:32Про человечество в целом я и не спорю, но тут-то конкретная корпорация, которой нужен конкретный лифт на планете и завод на ней же. Нужен для получения прибыли.
Потеря единственного раба, который это дело строит и обслуживает — это потеря денег, и крупных. Как уже потраченных на лифт, так и будущих прибылей.
SuperFly
24.08.2023 06:32Для меня Факторио про автоматизацию, многопоточность и масштабирование.
А Сатисфактори про красивые летающие заводы
люблю и ту и другую, но Факторио наиграл значительно больше (правда она и вышла раньше)
GLeBaTi
24.08.2023 06:32+6Минус satisfactory в том, что строить от третьего/первого лица такое себе удовольствие. Красиво, но долго
Djeux
24.08.2023 06:32+1Не одна сотня часов в факторио и где-то 70 в satisfactory. К сожалению не дотягивает, очень сырой продукт по сравнению с factorio.
firyst
24.08.2023 06:32Ну я бы не сказал, что Satisfactory прям сырая. Да, игра ещё не в релизе, но тем не менее, после недавних обновлений игра стала заметно оптимизированнее. Мне кажется, эти игры просто разные. У меня, например, обратная ситуация: около 50 часов в Factorio и несколько сотен в Satisfactory, при том, я начал играть, когда она была действительно сырой. В общем - кому что по душе.
SAWER
24.08.2023 06:32Satisfactory как, начал применять редкие находимые ресы, сферу, красный камень, ну и странную руду? Или после плутония и генератора материи так и встал? Очень долго ждал продолжения, но что-то они никак не продолжали, только марафет наводили
firyst
24.08.2023 06:32Ну разработчиков можно понять. Проходят игру (закрывают последний этап космического лифта) несколько процентов игроков от силы. И им намного целесообразнее ввести обновление, скажем так, для всех, нежели вводить новый этап, который будет экспоненциально сложнее предыдущего.
За что мне нравится Satisfactory - везде написано, сколько куда ресурсов нужно. Точно известно, сколько можно выжать с такого-то месторождения, и сколько какой завод потребляет руды. Берешь и считаешь.
mayorovp
24.08.2023 06:32+3В Factorio тоже всё написано (для умеющих считать, естественно). А для неумех и для ленивых есть моды и YAFC.
inkelyad
24.08.2023 06:32Проходят игру (закрывают последний этап космического лифта) несколько процентов игроков от силы.
Только не забываем, что оно специально рассчитано, чтобы так было.
nidalee
24.08.2023 06:32+1Ну я бы не сказал, что Satisfactory прям сырая.
Белты все еще игнорируют столкновения и проходят друг через друга? Тогда сырая. Помню, какой ужас творил на своих заводах.
Oncenweek
24.08.2023 06:32+4Еще есть весьма залипательная Dyson Sphere Program
Djeux
24.08.2023 06:32Очень весьма, после факторио в дайсоне тоже сотню часов убил. И имхо конечная цель как-то интересней факторио даже.
not-allowed-here
24.08.2023 06:32DSP проще, ну пока для себя не откроешь что конвейеры могут в 3D...
unclejocker
24.08.2023 06:32Я сферу строил у другой звезды, у голубого гиганта. А электричество на базовый мир возил кораблями:)
SWaTTT123
24.08.2023 06:32+2Сатисфактори-даже близко не фактории. Сатисфактори игра про неудобную стройку одних и тех же цепочек производства вручную из-за отсутствия автоматизации. Так же она про стройку этих цепочек с неудобной точки обзора, ибо нельзя камеру поднять)
Поэтому, нет, сатисфактори даже близко не факторио и никогда не будет.
asch2022
24.08.2023 06:32Очень круто, думал о том, что было бы здорово походить по своему заводу в 3Д, и можно попробовать заняться этим в качетсве пет-проджекта, а вы уже сделали
Sadler
24.08.2023 06:32+1Основными целями оптимизации были количество полигонов, разрешение текстур, частицы и количество обновлений, происходящих за один такт.
Динамические источники света внутри префабов зданий -- такое себе. Я понимаю, что они малого радиуса, и занимают крайне малую площадь экрана, сам мирюсь с этим злом, но подумываю об использовании в отдельных случаях Lumen Dynamic Global Illumination, потому что каждое пересечение динамических источников на экране чертовски дорого.
Nibelought
24.08.2023 06:32Хотелось бы увидеть интересное исполнение освещения, вплоть до создания мода для оригинальной игры, добавляющего различные источники освещения, что будут иметь реализацию в FUE5 для создания красивейших постеров. Так или иначе, проделана большая работа, вы молодцы!
lexusbondarus
24.08.2023 06:32Надеюсь, что у вас всё получится и мы сможем в ближайшие пару лет поиграть в это чудо. =)
Panzerschrek
24.08.2023 06:32+4Проект интересный, но практического смысла не имеющий.
Factorio потому то имеет простую двумерную графику, потому, что это ультрабыстро и позволяет тратить ресурсы системы не на отрисовку мира, а на игровую логику, что позволяет строить мегабазы.SinsI
24.08.2023 06:32-2Практического смыла нет только пока проект завязан исключительно на импорт баз из Factorio.
Если убрать это ограничение то можно было бы добавить в проектирование базы третье измерение, что радикально улучшит логистику мегабазы.
Tsimur_S
24.08.2023 06:32+1Проект интересный, но практического смысла не имеющий.
А что за абстрактный практический смысл? Какой практический смысл у самого Факторио который не применим к этому проекту?
Factorio потому то имеет простую двумерную графику, потому, что это ультрабыстро и позволяет тратить ресурсы системы не на отрисовку мира, а на игровую логику, что позволяет строить мегабазы.
Отрисовка мира делается на видеокарте и в пределах вьюпорта а игровая логика на процессоре и по всей карте. Это разные ресурсы.
И двумерная она потому что так дешевле было ее делать. Да и в целом, в нише "сделать максимально оптимальный блюпринт производства" 2д сильно выигрывает у 3д. Но это не значит что не существует другой ниши.
Panzerschrek
24.08.2023 06:32Видеокарта не сама по себе рисует. Чтобы дать ей команды на отрисовку, нужно потратить процессорное время. В целом для простой двухмерной графики таких команд меньше, чем для того, что показано в этом проекте.
Плюс есть ещё один фактор. На некоторых ноутбуках видеочип расположен на том же кристалле, что и центральный процессор. Нагрев кристалла из-за рисования сложной графики может вести к снижению частоты процессора и падению общей производительности.
Касательно того, почему там именно двухмерная графика: надо точную мотивацию у разработчиков спрашивать. Вполне возможно, что дешевизна тут не является значащим фактором. Скорее даже наоборот. Спрайты в игре это заранее отрендереные модели. Разработчики потратили время на то, чтобы написать код преобразования этих моделей в спрайты и упаковке этого всего в данные игры. Хотя проще и дешевле было бы просто скормить модели как есть какому-нибудь движку (Unity, Unreal Engine).FreeNickname
24.08.2023 06:32Спрайты в игре это заранее отрендереные модели.
Это разработчики где-то говорили? Если нет, почему Вы уверены, что это не вручную нарисованные спрайты?
Panzerschrek
24.08.2023 06:32+1Читал в блоге Factorio о использовании моделей. Там много спрайтов с анимацией (сборщики, химические заводы, урановые центрифуги), их бы руками было невозможно нарисовать.
FreeNickname
24.08.2023 06:32+1Интересно, спасибо. Да нет, почему невозможно? Люди вон целые полнометражные мультики рисуют уже больше 100 лет. Просто трудоёмко.
trinxery
24.08.2023 06:32Потому что пиксельарт труднее обычной рисовки. Нельзя же просто куда-то кинуть линию, обязательно будет какой-то пиксель выпирать и т.д., а тут ещё и анимация...
FreeNickname
24.08.2023 06:32Ну так опять же, трудоёмко, не невозможно. Анимированный пиксель-арт тоже вполне себе существует. Куча инди (а в былые времена и не инди) 2D платформеров и прочего. А где-то, например, в FEZ есть и то, и другое с органичными переходами из 2D в 3D и наоборот (отдельный предмет гордости создателя), причём 2D – это именно пиксель-арт.
Я же не говорю, что это так должно быть сделано, и не говорю, что это "возможно, следовательно, так они и сделали". Но это возможно.
Andreyul
24.08.2023 06:32https://factorio.com/blog/post/fff-146
Один из разработчиков Factorio детально описывает, как делаются спрайты. 3D модель в Blender, рендерится, дорабатывается в Photoshop. After Effects для автоматизации процесса рендера. В самом конце Python скрипты для экспорта спрайтов в движок игры.
is_cake
24.08.2023 06:32+1Странная статья. Работа проделана нехилая, а в тексте просто банальные отписки: нам нужны были 3D-модели - мы сделали их в Cinema4D, нам нужны были текстуры - мы сделали их в Adobe Photoshop, нам нужны были конвейеры - мы сделали их при помощи блюпринтов, нам нужно было оптимизировать - мы оптимизировали уровень детализации.
0pt1muS
24.08.2023 06:32Вот правда: не знаете, какую игру создать -- просто перенесите существующую 2-2.5D в 3D, не нарушая Copyright, желательно.
И практика, и известность, и донаты -- одни плюсы.
linwer
Выглядит круто. По сути Stonesense как у DF только в разы круче
KReal
DF это dwarf fortress?
Voiddancer
Да
rPman
а я представил как если бы графика уровня UT5 была бы реализована для DF