1 pontos por GN⁺ 2023-07-03 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2023-07-03
Comentários no Hacker News
  • Space Exploration, que é brevemente mencionado e renderizado aqui, é um mod enorme de Factorio e foi o jogo mais profundo que já joguei
    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
    • Eu só recomendo Space Exploration se você já terminou o jogo base algumas vezes e quer mais. A sensação é que ele reduz o número de componentes necessários para a base inicial, mas em troca aumenta muito mais a complexidade
      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
    • Pessoalmente, acho melhor desligar totalmente os biters. Eles ainda existem em outros planetas, mas a ansiedade no planeta natal desaparece
    • Estou jogando Space Exploration agora e é realmente grandioso. Mas até Dosh Doshington, YouTuber especializado que eu considero um dos melhores do mundo em Factorio, levou 300 horas para concluir SE com ajuda
      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
    • Se “Factorio interplanetário” é a sua praia, também vale considerar Dyson Sphere Program: https://store.steampowered.com/app/1366540/Dyson_Sphere_Prog...
    • Outro modpack que vale mencionar aqui é pyanodons. Assim como Space Exploration, ele expande bastante o jogo depois do lançamento do foguete, mas também adiciona conteúdo antes disso. Na prática, o lançamento do foguete em si perde bastante importância e, no início, fica mais parecido com uma tecnologia de ciência azul opcional
      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
  • Como desenvolvedor de jogos, o código-fonte original de Factorio é um dos códigos de jogos que eu realmente gostaria de ver
    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”
    • A equipe de Factorio, em geral, é bem tranquila com esse tipo de coisa, e acho que foi por isso que tornou o jogo tão amigável a mods desde o início. A única vez de que me lembro envolvendo medidas legais foi para lidar com coisas como revenda de chaves roubadas. Existe a percepção de que, se a comunidade cria algo legal, isso também é bom para Factorio
      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
    • partes do código-fonte de Factorio no GitHub — https://gist.github.com/Rseding91
      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
    • Factorio tem um excelente blog de desenvolvimento. Ele não mostra o código, mas aborda com bastante profundidade os desafios que precisaram ser resolvidos
      https://www.factorio.com/blog/
    • Ingenuamente, eu tive a pergunta oposta. Por que isso deveria ser ilegal? Por que necessariamente teria que ser um trabalho por amor? O uso da propriedade intelectual de Factorio parece limitado à inspiração visual e à análise de formatos de arquivo, e também parece claramente ser uso transformativo no sentido jurídico
  • Eu ri alto na parte: “Se você não sabe programar, simplesmente conecta os nós; se não funciona, conecta mais ainda, e tudo vai ficando cada vez mais confuso. É suspeitosamente parecido com esse jogo de fábrica que eu ando jogando”
    • Eu também gostei dessa parte. Ainda mais porque, mesmo sabendo programar, você acaba fazendo exatamente a mesma coisa. Só que algumas coisas ficam menos prolixas, e às vezes ainda tem muito espaguete
    • Isso não é nada. LabVIEW tem até um esquema de cores parecido!
      https://physics.highpoint.edu/~bbarlow/courses/phy2100/docum...

Azulejos laranja e também cinza na visualização “GUI”

  • Instalei Factorio 4 vezes e desinstalei 3
    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
    • Peço desculpas antecipadamente por apresentar um risco de arruinar sua vida, mas recomendo fortemente Captain of Industry
      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
    • Se quiser um Factorio com gráficos bonitos, experimente Satisfactory
    • Satisfactory também vale considerar
  • Para ser preciso, isto não é algo como um cliente de Factorio, e sim uma ferramenta de visualização. Ainda assim, é realmente incrível
    • Como o texto também diz, acho que vai ser muito interessante ver o que os criadores da comunidade de Factorio vão hackear e construir com base nisso
      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
  • Isso me lembra as visualizações 3D que dava para ver em Dwarf Fortress. Algumas eram feitas “desenhando”, e outras tentavam atualizar em tempo real
  • Uau, fazer tantos modelos 3D assim em 5 meses é um talento enorme. Fico pensando se as ferramentas de modelagem 3D de hoje também ficaram realmente boas
    • Já modelei algumas máquinas de Factorio para imprimir em 3D como enfeites de mesa, e cada uma levou cerca de 6 horas. Então é totalmente imaginável fazer tudo em alguns meses
      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
    • “O processo de remodelagem foi realmente divertido, mas da próxima vez talvez seja melhor pedir os modelos originais de Factorio para preservar o que resta da minha saúde mental”
      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
  • Ou então é só jogar Satisfactory no novo branch Unreal 5 Experimental
  • Para ser sincero, nem li o texto. Mas, se você quer saber como seria transformar programação em jogo, jogue Factorio. Refatoração, baixo acoplamento e debugging estão todos lá
    Joguei feito louco por 3 semanas e tive que me forçar a largar. É um jogo realmente único
  • Se quiser jogar de fato algo tipo Factorio em 3D, recomendo Satisfactory
    • Satisfactory também pode fazer dias inteiros desaparecerem. É um jogo realmente divertido, como Factorio
    • Ou também existe Dyson Sphere Program