Article image

CA

Caio Amaral04/03/2024 08:19
Compartilhe

Godot ou Unity? Qual a melhor engine? Como escolher certo?

  • #Godot
  • #Unity

Introdução

Muitos vendem a idéia de que Unity e Godot são engines similares porém a natureza open-source de Godot a protege de interesses de terceiros como ocorre nas engines de código fechado como a Unity.

Mas será que é só isso mesmo?

Este artigo trata das principais diferenças entre Unity e Godot pra te ajudar na hora de escolher a engine do seu próximo jogo.

image

Unity utiliza C# como sua principal linguagem de programação para criação de jogos. É possível desenvolver scripts em C++ mas isso não é algo tão intuitivo e acessível como C#.

A linguagem permite código relativamente performático e técnicas avançadas de Programação Orientada à Objetos, permitindo maior robustês no código e, em teoria, maior escalabilidade.

Godot utiliza como principal linguagem GDScript, uma espécie de python modificado. Sendo interpretada em tempo de execução, o código permite mais flexibilidade e uma abordagem mais livre quanto à estruturas de código.

É possível criar jogos com C# em Godot, porém a compatibilidade não é 100%.

image

O coração do desenvolvimento Unity são os GameObjects, que podem ser descritos como objetos contidos numa cena (Scene). Os GameObjects recebem scripts na forma de GameComponents. Para adicionar um novo comportamento a um GameObject, criamos um novo Component.

Já em Godot, tudo que você vê são Cenas (Scenes). Cena é outro nome que podemos dar para objetos, ou símbolos. Uma cena pode conter um número quase infinito de cenas, da mesma forma que um GameObject pode conter um número enorme de GameObjects.

No Godot as cenas recebem comportamentos na forma de Nodes. Os Nodes são organizados dentro de uma hierarquia, diferente de como é feito na Unity onde apenas GameObjects habitam a hierarquia e os componentes devem estar presos a um GameObject.

Os jogos feitos em Godot precisam de uma cena principal, funcionando como a Scene 0 na Unity, onde o jogo começa ao ser executado.

image

Signals são o terceiro dos 3 pilares de Godot: Scenes, Nodes, Signals

A presença de Signals é algo único em Godot se comparada a Unity. Signals são microeventos que servem para criar comunicação entre cenas.

Em Unity é possível criar comportamento semelhante via Events, ou UnityEvents. Porém esta engine não oferece a mesma performance.

image

Uma diferença crucial entre Godot e Unity é o licenciamento, ou em bom português: quanto se paga por usar a engine.

Godot é uma engine de código aberto distribuída sob a licença MIT, o que significa que é totalmente gratuita para uso comercial e não comercial. Por outro lado, Unity oferece uma versão gratuita, mas com algumas limitações, e uma versão paga com recursos adicionais.

Se seu jogo Unity gerou menos de USD$100.000,00 em vendas você continua pagando nada.

image

Enquanto ambas as engines oferecem uma ampla gama de recursos integrados, como física, áudio, animações e gráficos, a forma como distribuem estes recursos é diferente.

Godot tende a incluir mais recursos integrados diretamente na engine, enquanto Unity muitas vezes depende de plugins e pacotes da Asset Store para funcionalidades adicionais.

O modo adotado pela Unity permite a distribuição de melhorias com mais frequência do que Godot. Porém há sempre risco de conflitos entre pacotes de versões diferentes, o que não acontece em Godot, uma vez que todos as funcionalidades core são disponibilizados de uma vez.

Há uma loja de plugins em Godot, de modo que este problema não é de todo evitado. Porém, as funcionalidades core da engine são atualizadas em conjunto, de modo a garantir a compatibilidade entre features dentro de uma versão.

image

Na Unity tudo é 3D, mesmo que pareça ser 2D.

Em Godot 2D e 3D não se misturam. Os nós 2D herdam do nó Node2D, enquanto os nós 3D herdam de Node3D. Colocar um Node2D numa hierarquia 3D não dá certo. Para evitar confusão os nós 2D aparecem com ícones lilases e os 3D com ícones vermelhos tanto na paleta de seleção como na hierarquia das cenas.

O 3D de Godot está bem pra trás. Não chega perto de Unity ou Unreal. Mas avança muito a cada nova versão da engine.

image

Se você já trabalhou ou trabalha com Unity, deve ter soltado um resmungo quando pensou em Unity e UI na mesma frase. A UI da Unity é notória por sua performance ruim e sistema de coordenadas confuso. Há conversas de tornar UI Toolkit o novo padrão de UI para jogos feitos em Unity, mas as novas features foram removidas do roadmap e não se sabe quando, ou se um dia, serão implementadas.

Em Godot, o sistema de UI é simples e a comunicação é feita por meio de Signals. Há inúmeros componentes de UI prontos e um sistema de estilos muito versátil e robusto, bem como um sistema de ancoragem e redimensionamento fácil de compreender.

image

Unity tem uma comunidade enorme e bem estabelecida, com uma tonelada de recursos disponíveis online, incluindo documentação oficial extensa e fóruns ativos.

Godot, apesar de crescer rapidamente, ainda está construindo sua comunidade, mas possui uma base de usuários apaixonada e fóruns de suporte ativos.

A comunidade Unity sentiu as ações anti-desenvolvedores da empresa que mantém a engine. E isso gerou uma debandada de desenvolvedores para engines concorrentes, entre elas Godot.

Ambas as engines oferecem versões LTS (long term suport) mas somente Unity oferece suporte e atendimento profissionais.

image

Em suma, ambas as engines têm suas próprias vantagens e desvantagens, e a escolha entre Godot e Unity dependerá das necessidades específicas do seu projeto e das suas preferências pessoais.

Se você quer aprender mais sobre desenvolvimento de jogos, siga-me no LinkedIn para mais artigos e dicas!

⚒️Ferrramentas de produção:

Editores de imagem: Canva, Paint.NET

Redação: Caio Amaral

Conteúdo parcialmente gerado por: ChatGPT 

Revisões Humanas: Caio Amaral

#Godot #Unity #GameDev

Compartilhe
Comentários (1)

CA

Caio Amaral - 04/03/2024 14:26

Sabiam dessas diferenças? Esqueci alguma? Comentem.