Turian 1.0: de volta para casa no C#
Comecei o Turian em C#. Depois passei seis meses reconstruindo o motor em Zig. Agora trago o nome Turian de volta ao C# e lanço o Turian 1.0.0.
Se parece uma grande mudança de direção, é porque foi. O motor em Zig deu certo. Ele ganhou renderizador, cenas, prefabs, pipeline de assets e editor. Não me arrependo desse trabalho. Ele também me mostrou como quero que seja o dia a dia de quem cria um jogo com Turian.
Por que voltei
Gostei de escrever Zig, especialmente de comptime e do controle sobre a memória. Mas o Studio precisa descobrir componentes do jogo e mostrar seus campos enquanto ele roda. Em Zig, eu continuava acrescentando metadados e registros para isso funcionar. Criar um jogo também exigia compilar o motor junto com ele. Quando usei o motor para fazer um jogo, esse trabalho extra ficou difícil de ignorar.
Ao mesmo tempo, eu ainda escrevia C# em outros projetos e gostava disso. Um fim de semana atualizando o Guinevere me levou de volta ao código original do Turian. Passei o mês seguinte modernizando-o para .NET 10 e trazendo ideias da versão em Zig, entre elas o formato Open Asset Package e partes do fluxo do editor. Tudo o que mostro na versão 1.0 foi moldado por essa troca entre os dois motores. Uma ideia surgia em um, encontrava problemas reais no outro e voltava melhor.
Escrevi mais sobre a decisão, inclusive sobre o que gostei em Zig, no post The 180° Turn do blog da MASS4.
Dois motores, dois nomes
O motor em Zig agora se chama TurianZ. Vou preservá-lo para quem quiser usá-lo, fazer um fork ou continuar seu desenvolvimento. Os posts anteriores deste site descrevem o TurianZ. A página Turian e TurianZ explica a separação.
Escolhi 1.0.0 para o motor em C# porque um projeto TurianZ não pode simplesmente ser aberto nele. Chamar esta versão de 4.0.0 sugeriria um caminho de atualização que não existe. Se você tem um projeto TurianZ, continue usando o TurianZ. Para um projeto novo, comece com o Turian 1.0. Daqui em diante, seguirei a política de lançamentos: versões pequenas e frequentes, com uma nova versão principal quando uma mudança puder quebrar projetos.
O que dá para fazer na versão 1.0

Cena Bistro do conjunto de dados Amazon Lumberyard Bistro, CC BY 4.0.
O Turian Studio reúne cenas, assets e componentes em C#. Ele tem árvore de cena, Inspector, navegador de assets, visualizações de cena e jogo, abas de documentos, temas, paleta de comandos e atalhos remapeáveis. O Studio roda como plugin do Gaya e usa o Guinevere na interface.
Escreva um componente em C# e ajuste seus campos no Inspector. Os scripts podem ser recompilados e substituídos enquanto o Studio roda. O Play Mode testa uma cópia da cena para que os experimentos não alterem o que você está editando. Build & Run abre o jogo em sua própria janela. Para distribuí-lo, exporte um executável autocontido que dispensa a instalação do .NET pelos jogadores.
O motor tem um renderizador Vulkan 1.3 com materiais PBR e importa glTF 2.0, FBX e OBJ. Também inclui data assets, prefabs, mapas de ações de entrada, localização e interface de jogo feita com documentos .ui e folhas de estilo .uss.

Se você prefere o terminal, o turian-cli cria, compila, executa, inspeciona e exporta projetos. Há também uma imagem de contêiner para CI. O tutorial vai de um projeto novo a um jogo exportado.
O Turian é uma parte do MEGA4. O Guinevere cuida da interface e o Gaya hospeda o editor. Agora vou começar o desenvolvimento de MYSTERY como prova de conceito da pilha inteira. Quero criar um jogo real com essas ferramentas, encontrar os problemas por conta própria e deixar essa experiência orientar os próximos passos.
Experimente
A [página de lançamentos]({{< param releases >}}) tem instalador para Windows, pacotes para Debian e Ubuntu e um zip para outras distribuições Linux. Instale o SDK do .NET 10 e execute:
turian-cli new MeuJogo
turian-studio --project MeuJogo
A documentação foi reescrita para o motor em C#.
O que ainda falta
Consigo criar e exportar um jogo com a versão 1.0, mas sinto algumas lacunas todos os dias. O renderizador ainda não tem sombras, iluminação baseada em imagem nem pós-processamento. O Studio não tem desfazer, cópias de prefabs não ficam vinculadas à origem e ainda não há versão para macOS.
Estou testando ideias em um ritmo rápido. Se um experimento quebrar projetos, ele receberá uma nova versão principal, como diz a política de lançamentos. Nesse ritmo, não me surpreenderia ver a v23 em alguns meses. MYSTERY será o teste: vai mostrar quais ideias ajudam na hora de fazer um jogo e quais só pareciam boas no papel.
O Turian usa a Mozilla Public License 2.0. Você pode licenciar seus jogos como quiser. Se modificar arquivos do motor e distribuí-los, essas alterações continuam sob a MPL.
Desenvolvo o Turian de forma independente. Se você experimentá-lo, conte o que quebrou no GitHub. Se quiser financiar a próxima versão, estou no Patreon e no Ko-fi.
E à comunidade Zig, obrigado. As pessoas que me ajudaram nesses seis meses, especialmente os desenvolvedores do DVUI, deram uma base ao TurianZ e me ensinaram muito. O Turian é melhor graças a esse período e à generosidade de vocês.
#release#announcement#engine#studio#dotnet