Unity 3D VS. Unreal Engine, uma visão de quem gosta das duas plataformas
Primeiro, um pouco de meu background com as duas engines...
Meu primeiro contato com engines para desenvolvimento de jogos foi a unity, lá nas primeiras versões, quando a unreal engine ainda era fechada, e apenas empresas triple-A podiam ter acesso. Nessa época a unity era , em minha opinião, muito precária. Eu consegui vê-la apenas como forma de aprendizado, mas não como plataforma para lançar um jogo no mercado. A interface era crua e o projeto final criado não me agradou. Faltava um polimento que para mim era inalcançável na unity. Entretanto, a minha experiência com a interface foi desastrosa. Muito disso devido à minha própria ignorância, e desconhecimento.
Já com a Unreal Engine (UE), meu primeiro contato foi na universidade, quando a UE deixou de ser fechada. Baixei em casa, e me surpreendi com a interface, com os modelos para iniciar, que me permitiram colocar um protótipo de um jogo rodando com mais polidez que eu pude fazer com a unity. Tempos depois, participei de um evento da UE na universidade onde fui apresentado aos recursos disponíveis na plataforma. Fiquei encantado ao ver tudo funcionar naqueles exemplos da palestra
Ver funcionando é fácil. Fazer funcionar, nem tanto.
Em 2018, já programando em C#, baixei novamente as duas engines, para brincar e descobrir o que eu poderia fazer com cada uma delas. Descobri que o trabalho é mais árduo do que me lembrava. A interface da Unity está muito melhor, mas ainda fico confuso com o que vejo em tela. Gosto da facilidade de trabalhar com C# direto, podendo abrir um editor e clicar em "Play" na plataforma para ver como meu código se comporta. Debugger é muito interessante de usar e colocar um plugin no vscode para fazer a comunicação é simples e direta. Já na Unreal, Tive a impressão que não é necessário programar, pelo menos com as linguagens de programação comuns, porque os blueprints são a base do desenvolvimento. Os blueprints tem seus pontos positivos e negativos, mas neste texto não irei entrar em detalhes sobre eles. Na unity, pude me divertir com o vscode para debugar o código, enquanto na UE não pude fazer um debug da forma que gostaria; mas isso é uma dificuldade que pode ser apenas minha.
E agora?
Bom... agora é uma questão de gosto pessoal. Os shaders da unity ainda parecem estar atrás dos shaders da Unreal, porém, já existem vários jogos lançados na unity. A idéia de usar C# me atrai bastante na unity, mas a interface ainda me parece um pouco "crua", e pouco polida. Games triple-A provavelmente vão usar a Unreal, mas para projetos menores, e para estudo, a unity me parece mais interessante porque permite o código com debug fácil.
Se você não sabe programar, eu recomendaria o uso da Unreal, mas se você quiser usar suas habilidades em C#, a unity pode ser a melhor escolha.