- Não é uma ferramenta para jogar uma nova base de Factorio, mas sim um projeto experimental para explorar o funcionamento de uma base 2D existente em um espaço 3D no UE5
- A produção dos assets foi feita com base nos sprites do jogo, na sequência de modelagem no Cinema4D, texturas no Photoshop, exportação em FBX e aplicação de shaders no UE5
- Quando o mod FUE5 exporter exporta os dados internos do Factorio em JSON, o FUE5 lê o tipo de construção, direção e conexões de cabos para reconstruir visualmente a base
- Esteiras, trens e robôs logísticos usam Blueprints do UE5 e splines, e os trens se movem importando rotas pré-calculadas pelo Factorio
- Em bases grandes, houve queda de FPS e instabilidade em eventos de Blueprint, então o projeto foi otimizado reduzindo polígonos, texturas, partículas, atualizações on-tick e LOD para buscar 30~60 FPS
Objetivo do FUE5
- FUE5 significa Factorio in Unreal Engine 5 e é um projeto experimental para visualizar o mundo 2D de Factorio em um espaço 3D
- Foi criado pelo artista 3D Hurricane e pelo modder de Factorio Nuke ao longo de cerca de 5 meses, a partir de 10 de janeiro de 2023
- É um ambiente de visualização 3D que importa bases de Factorio e reproduz visualmente seu funcionamento, sem incluir gameplay
- O usuário pode voar pelo espaço 3D ao redor da própria base e explorá-la
Criação de assets e integração com o UE5
- Assets de Factorio, como máquinas de montagem e inserters, precisaram ter modelos 3D e animações recriados com base nos sprites do jogo
- O pipeline de produção foi estruturado na seguinte ordem
- Modelagem 3D no Cinema4D
- Criação de texturas no Adobe Photoshop
- Exportação do Cinema4D em formato FBX
- Importação no Unreal Engine 5 e aplicação de shaders como vidro, metal e fumaça de chaminé
- Lógicas centrais como esteiras, trens e sistema logístico foram implementadas com o sistema padrão de nós de Blueprint do UE5
- Para alinhar corretamente trens em movimento e itens sobre as esteiras, eram necessários modelos 3D com dimensões exatas, então a lógica dos sistemas foi criada depois de concluir a maior parte da modelagem
- Ao exportar uma base diretamente do jogo para o ambiente do Unreal Engine, o tempo gasto montando a base manualmente dentro do UE5 foi bastante reduzido
Como os dados de Factorio são importados para o FUE5
- O sistema de estruturas gera construções de forma parecida com o método de posicionamento de edifícios dentro do Factorio
- O mod FUE5 exporter lê os dados internos do jogo e os exporta em um arquivo JSON
- tipo de construção
- direção da construção
- conexões de cabos
- O FUE5 lê esse arquivo JSON e replica visualmente a estrutura da base real e o funcionamento dos veículos
Esteiras, trens e sistema logístico
-
Esteiras transportadoras
- Não bastava apenas o modelo 3D de cada esteira transportadora; também era necessário o mecanismo que faz os itens se moverem ao longo dela
- As esteiras transportadoras são representadas por splines
- Quando o FUE5 exporter exporta a base, trechos contínuos de esteiras conectadas que terminam em túneis, terminam por conta própria ou formam loops são tratados cada um como sistemas independentes
- O FUE5 cria uma spline para cada trecho, e os itens se movem pelo mesmo caminho do jogo real
-
Trens
- Como era difícil replicar diretamente a programação de trens, os sinais e a busca de rota das locomotivas, foi usado o sistema padrão de pathfinding do Factorio
- Para que um trem fosse gerado e se movesse no FUE5, era necessário definir um destino e dar sinal verde antes de exportar a base
- Depois disso, a rota do trem pré-calculada pelo Factorio é lida, transformada em spline e usada para controlar o movimento do trem dentro do FUE5
-
Robôs logísticos
- Robôs de construção foram excluídos, e a geração de construções foi tratada com o sistema padrão de Construction Script do UE5
- Em vez disso, o foco foi implementar os robôs logísticos, um elemento visual importante em bases de Factorio parcialmente desenvolvidas
- Cada roboport gera aleatoriamente clusters de robôs logísticos com determinada probabilidade
- Cada robô procura caixas logísticas próximas e voa entre elas para reproduzir visualmente o transporte de recursos
- Quando a tarefa de transporte termina, ele vai até o roboport mais próximo e então desaparece
Problemas de desempenho e otimização
- Ao importar bases grandes para o FUE5, houve forte queda de FPS e os resultados de eventos de Blueprint ficaram instáveis
- Para rodar a 30~60 FPS, foi necessário otimizar reduzindo os seguintes elementos
- quantidade de polígonos
- resolução de texturas
- partículas
- número de atualizações on-tick
- Muitos dos travamentos iniciais vinham do sistema de esteiras transportadoras, e o desempenho foi melhorado reduzindo a carga dessa parte
- Partes animadas das estruturas tiveram o LOD ajustado para ganhar FPS adicional
- Ex.: cilindro giratório da centrífuga
- Ex.: engrenagens e pistões no teto da máquina de montagem
- Também foi necessária a aprovação da desenvolvedora de Factorio, a Wube Software, e a divulgação do projeto foi permitida sob a condição de uso apenas não comercial
Trailer e direção visual
- Depois que a ideia básica e a maior parte da prototipagem foram organizadas nos dois primeiros meses de produção, ficou mais fácil replicar vários assets e sistemas de Factorio
- Depois disso, o foco mudou para o acabamento visual geral e para a produção do trailer principal de lançamento
- O trailer mostra uma base de grande escala criada com o FUE5 exporter e vários elementos possíveis dentro do ambiente do FUE5
- Como apenas exportar a base do jogo não gerava um resultado limpo e cinematográfico, muitas partes foram ajustadas manualmente para funcionar melhor com a câmera
- Em vez de estruturas com um único prédio disposto em linhas longas para alto SPM, uma base espaguete visualmente intrincada era mais interessante de ver
Condições de uso e planos de publicação
- O FUE5 não é um jogo e não tem interface de usuário, então é necessário ter conhecimento básico de UE5 para usá-lo
- O modo de uso está organizado na página do GitHub
- O procedimento básico consiste em instalar o UE5, executar o projeto e selecionar os chunks da base a serem exportados para o FUE5
- O procedimento detalhado pode ser visto no how-to guide
- O projeto foi compartilhado como open source via GitHub, com o objetivo de permitir que a comunidade de Factorio experimente um mundo familiar em uma nova dimensão e crie novos resultados
- Está em andamento um trabalho para tornar o sistema existente mais fácil de usar e capaz de funcionar bem também em bases grandes, e a adição de conteúdo de mods no futuro também está sendo considerada
1 comentários
Comentários no Hacker News
Em Factorio, você vence ao lançar um foguete, mas Space Exploration continua a partir daí. Você cria bases em vários planetas do sistema solar, usa os recursos únicos de cada planeta para desenvolver o sistema solar e depois se expande para o espaço interestelar e outros sistemas solares
Há uma tela de vitória no “ponto de um quarto” no meio do caminho, mas também há outra tela de vitória, explorando um mistério que abrange todo o universo conhecido e que exige bastante conhecimento de matemática. É uma jogatina de centenas de horas e também é muito bem-acabada
Ele transformou o jogo usando mapas de estrelas e sistemas solares para permitir viajar de nave entre planetas, e no geral funciona muito bem. Só que é melhor reduzir bastante os biters. O mod exige paciência, e a intensidade do combate não combina muito com esse ritmo; o próprio mod também mostra um pop-up no início recomendando reduzir os biters
O número de fábricas e linhas de produção que você precisa construir para avançar ao próximo estágio continua aumentando. Acho que só por volta de quase 100 horas cheguei ao ponto de trazer de outro planeta duas linhas de produtos necessárias para o próximo nível de ciência
Como dica adicional, recomendo aumentar o custo da ciência. As expansões para o próximo estágio levam horas, e é fácil ficar sem pesquisas antes disso; na prática, a fábrica muitas vezes acabava sem nada para fazer, como se tivesse parado
SE é excelente, mas é um enorme sugador de tempo. Tenho mais de 3500 horas de Factorio, então acho que há algo errado
Ainda assim, ver Factorio em 3D foi realmente muito legal e impressionante
pyanodons adiciona cadeias de processamento de minério muito realistas, processos petroquímicos, mecanismos de geração de energia, uma reformulação dos componentes eletrônicos e elementos agrícolas, incluindo plantas e animais. O principal desenvolvedor, pyanodon, é engenheiro químico na vida real
Uma jogada completa de py passa facilmente de 1500 horas. Pode não ser especialmente divertido para a maioria dos jogadores de vanilla, mas, se você gostou de mods como Space Exploration ou Nullius, pode encontrar diversão nele
[0]: https://mods.factorio.com/user/pyanodon
E, para quem pensou primeiro “como isso é legal?”, cito: “Ao perguntar sobre a legalidade deste trabalho, a equipe de Factorio demonstrou grande compreensão e permitiu a publicação do projeto, desde que não fosse usado para fins comerciais”
Falando como alguém que viu o código-fonte original, o código é relativamente ok, mas não é particularmente maravilhoso. É C++ com herança múltipla, os objetos do jogo chamam métodos uns dos outros ao longo de várias camadas, e há bastante código do tipo “talvez não seja o melhor, mas funciona e não vamos mudar agora”
O que faz tudo isso funcionar bem são testes automatizados abrangentes e uma cultura em que, se alguém abre um PR com código menos otimizado, o Rseding corrige na hora. A parte interessante são os algoritmos, e isso é abordado no Friday Facts
E https://old.reddit.com/r/factorio/comments/13bsf3s/technical... também é uma leitura muito interessante. Aparecem coisas como o uso de listas duplamente encadeadas e herança múltipla
https://www.factorio.com/blog/
https://physics.highpoint.edu/~bbarlow/courses/phy2100/docum...
Azulejos laranja e também cinza na visualização “GUI”
A lentidão do começo e os gráficos 2D isométricos um tanto sem vida não combinaram muito comigo. Mas os posts do blog eram interessantes e as pessoas continuavam elogiando muito, então, na 4ª instalação, decidi insistir e avançar de verdade um pouco
Hoje considero um dos melhores jogos de todos os tempos. Tecnicamente é absurdamente impressionante, e mesmo bases gigantescas cheias de trens, esteiras, robôs, inserters etc. rodam a 60 FPS. Não trava, é incrivelmente divertido e altamente viciante. Os mods são excelentes e a comunidade também
Estou realmente ansioso pela expansão. Acho que dá para presumir que ela virá tão polida quanto Factorio desde o início
O começo é mais rápido, lida com processos do mundo real, tem alteração de terreno e, na minha opinião, é melhor que Factorio em todos os aspectos. Acho que Factorio foi o jogo que definiu o gênero, e Satisfactory e Dyson Sphere Program também chegaram muito perto de superá-lo, mas, por serem 3D, os quebra-cabeças ficam mais fáceis de resolver
Captain of Industry tem mais dimensões, mas consegue deixar os quebra-cabeças tão difíceis quanto Factorio, e há muito mais recursos para gerenciar
Parece que vai surgir algum tipo de sistema de combate no estilo Factorio em UE5
Imagine um jogo em que você precisa operar e fazer a manutenção de uma fábrica. Ao mesmo tempo, jogadores de FPS PvP correm pela fábrica lutando e sabotando constantemente as linhas de suprimento, e você precisa consertá-las. Você pode entrar na equipe de manutenção da fábrica ou ser um jogador PvP, varrendo os inimigos e, ao mesmo tempo, destruindo as linhas de suprimento da fábrica do time adversário
Claro que modelos para impressão 3D não precisam de UV mapping nem texturização decentes, então é verdade que meu trabalho era bem mais fácil
Algumas ferramentas ficaram muito melhores. Por exemplo, Substance 3D para texturização ajuda bastante, especialmente quando o UV automático entrega resultados aproveitáveis. Mas as ferramentas básicas de modelagem 3D em si não mudaram fundamentalmente tanto assim em relação ao passado
Os modelos nas capturas de tela também parecem ter uma topologia densa, então deve ter dado bastante trabalho
Joguei feito louco por 3 semanas e tive que me forçar a largar. É um jogo realmente único