Versão Modificada do Unreal Engine 4.

Olá pessoal!

Quando dizem “… foi usada uma versão modificada da Unreal Engine 4”:
1) … o que isso significa?
2) … o que foi modificado
3) … como foi modificado?
4) … por que foi modificado?
5) … eu posso modificar?

Por exemplo, Days Gone: “… the game uses Unreal Engine 4- a modified variant of the game …”

Significa que a empresa começou com uma versão da Unreal Engine 4 e fez diversas modificações direcionadas para o seu próprio jogo. Seja melhorias gráficas em aspecto específicos ou melhorias em outros aspectos da engine como física, multiplayer, objetos do jogo, etc.

O código fonte da Unreal Engine 4 está disponível no Git Hub, é só você baixar e modificar.

A decisão de adotar uma variante própria do engine segue diversos critérios, usualmente quando uma versão está estável em aspectos chave e não trouxe nenhum bug severo consigo, a empresa abre um branch no repositório do código fonte no Git Hub e a partir daí implementa suas modificações, normalmente em C++ que é a linguagem em que foi escrito o engine, e prossegue com o desenvolvimento de seu game sem temer que uma nova versão futura interrompa ou quebre compatibilidade. É um aspecto de desenvolvimento de software (e em outras áreas que envolvem aspectos de engenharia) limitar as variáveis causadoras de problemas, nesse casso, constantes novas versões do engine que poderiam introduzir um bug, e usualmente quando vc inicia o uso de um release do engine, todos os assets não são mais abertos na versão anterior, isso significa que simplesmente mudar para uma versão antiga sem o bug, mesmo que haja backup, significaria perder ou ter que refazer parte do trabalho, significando atrasos. Essa seria a principal vantagem, a desvantagem em si é ter em seu grupo de desenvolvimento pessoas que tenham conhecimento sólido em C++ na escala exigida e conhecimentos técnicos avançados em computação gráfica, sem falar em um conhecimento ainda maior em desenvolvimento de shaders que sejam compatíveis com as plataformas às quais o engine atende: Playstation, X Box, Windows, Android, iOS, etc para mencionar alguns, e manter essas pessoas cujos salários são bem maiores do que de um excelente desenvolvedor voltado apenas para indústria de games: modeler, environment artist, animator, etc e a desvantagem estaria exatamente neste custo… a não ser que vc conseguisse diluir esse custo usando essa versão em diversos projetos distintos.

Essa versão seria de responsabilidade da empresa, e não sei se eles abririam acesso para vc utilizar, porém não custa tentar uma solicitação via Git Hub e via e-mails.

Eventualmente, se uma versão futura do engine introduzir algum feature que interesse, eles podem acessar o código mais recente comparando com o branch que eles abriram, e daí uma avaliação de viabilidade seria iniciada, pois não basta apenas copiar, pode ser que essa feature introduza algum comportamento em outra área que não seja interessante mexer, ou seja, não introduzir variáveis desconhecidas em um ambiente que já se sabe que funciona. É por isso que muitas empresas ainda usam o UE SDK 3, que contém coisas que apenas a versão 4 possui, e eles simplesmente não mudam, pois eles adaptaram a versão 3 e introduziram coisas que já fazem parte do dia-a-dia deles (pipeline) e não vale ainda a pena mudar.

Muitos desenvolvedores, chamados contribuintes (contributers), estudam o código para desenvolver features que eles precisam, mas que não está nos planos da Epic em desenvolver, e quando pronto, eles informam à Epic sobre a implementação, que a partir daí analisará a viabilidade, interesse, e impactos em outras tecnologias em desenvolvimento, para daí decidir se incorporam ou não.

Espero ter esclarecido em todos os pontos!