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.