Os profissionais do setor que constroem jogos usando UE4 usam Blueprints, ou usam C ++ exclusivamente?

15

Como professor de um módulo de desenvolvimento de jogos, geralmente insisto que os usuários usem C ++, porque é uma habilidade mais procurada na indústria, mas o suporte e as informações on-line sobre C ++ no Unreal Engine 4 parecem ser relativamente fracos. Os profissionais agora estão usando o Blueprints também ou não?

Mark Green
fonte
11
A documentação não será um bom medidor de quanto algo é usado.
MichaelHouse
Está faltando documentação no Unreal Engine 4 C ++, porque você mesmo lê o código. Você não precisa estritamente de documentação se puder acessar o código-fonte. Seria bom tê-lo, no entanto.
Oxy
11
@Oxy O código fonte não substitui a documentação. Período. A fonte é muito mais difícil de ler do que a documentação, por definição, porque o objetivo da documentação é destilar o que uma função faz em um formato legível. Isso é duplamente verdadeiro no código de alto desempenho e extremamente capaz, como o Unreal.
Fund Monica's Lawsuit
11
Estou explicando o que acontece, não justificando. "Seria bom tê-lo, no entanto." E é melhor você ler o código das funções que usa, mesmo as documentadas, porque algumas importantes têm pepitas de ouro como "foo (x) {/ * foo Não implementado, ao invés disso, barra (x) porque geralmente age como foo (x ) foi feito * / bar (x);}. Ainda tenho que ver um sistema de documentação em ação que acompanha o ritmo da evolução do código. Além da documentação automatizada que não faz nada além de vomitar os tipos de parâmetros e tipos de retorno, assim como ler um cabeçalho faz.
Oxy

Respostas:

25

Sim, jogos profissionais usam o Blueprints.

Alguns usam uma combinação de C ++ e Blueprints. Usamos os dois em Dead by Daylight.

Uma das grandes coisas do Blueprints é que os não programadores podem ter acesso à capacidade de criar comportamentos de script. Nem todo projeto os usará dessa maneira, mas esse é um dos motivos pelos quais eles foram projetados. Eles substituíram o UnrealScript como meio de alterar comportamentos sem atingir o C ++ e também substituíram o Kismet, que era o sistema de script visual do Unreal 3.

Almo
fonte
Você pode expandir? Apenas os programadores usam o Blueprints, ou apenas a equipe "não técnica", ou um pouco de ambos? É usado para fins específicos ou para praticamente qualquer coisa?
KBoissonneault
7
@KABoissonneault É muito uma mistura. Na maioria das vezes, não há uma maneira fácil de definir claramente entre o que os programadores trabalham e o que os não programadores trabalham. Isso é especialmente verdade se você tiver um designer, que provavelmente desejará ajustes em todo o código. Os blueprints também se acostumam muito à prototipagem rápida e não são necessariamente convertidos em C ++ se o desempenho não exigir. Também varia muito de estúdio e projeto, então não há uma resposta.
Fund Monica's Lawsuit
9

Uma pequena anedota de fora da indústria de jogos: usamos o UE4 para visualização de arquitetura em VR.

Embora eu prefira ter a maioria das coisas criadas em C ++, também usamos o Blueprints fortemente para todos os tipos de "lógica adicional", como interruptores de luz, portas, etc.

Tem sido assim há pouco mais de dois anos e eu era o único programador no início desse empreendimento. Então, aqui estão minhas observações:

  • É impressionante o que os não programadores podem fazer com o Blueprints!
  • Eu posso estar horrorizando o que os programadores iniciantes fazem com o Blueprints;)
  • Mesmo que eu o converta em C ++ no final, os Blueprints são bons para uma fase rápida de RnD

E a maior para mim: em muitas conversas, ficou claro para mim que o Blueprints invocou o desejo de se tornar programador em meus colegas não técnicos. A principal razão pela qual isso aconteceu é que eles poderiam implementar uma lógica bastante complexa enquanto podiam depurá-la visualmente.

Eles realmente aprenderam algumas lições difíceis sobre arquitetura de software e as armadilhas (ou melhor, pesadelos) de grandes projetos de espaguete. Mas somente depois de ter sentido uma tonelada de pequenos sucessos ao longo do caminho! Portanto, eles não ficaram desanimados, mas motivados a fazer melhor e descobrir como fazê-lo sozinhos.

Desde então, eles fizeram cursos em C ++, Python e C #, a qualidade geral do nosso Blueprints ficou muito melhor, mas acima de tudo: agora tenho alguma ajuda para desenvolver nossas principais bibliotecas :)

TLDR;

Sim, estamos usando o Blueprints e eles até tornaram meus colegas inicialmente não técnicos melhores codificadores.

Xceno
fonte
11
Uma das coisas boas sobre linguagens visuais como o Blueprints é que você não precisa se preocupar com sintaxe, e elas geralmente são tão abstratas que você pode fazer muito com muito pouco clichê. Eles facilitam o aprendizado de codificação sem serem afetados pela sintaxe. Eles também são normalmente de nível alto demais para executar qualquer feitiço , mas, sabe, é uma troca que estou disposto a fazer para permitir que os não-codificadores tenham um impacto direto no comportamento do jogo.
Fund Monica's Lawsuit
@NicHartley tente fazer myVector.x += otherVector.xno Blueprints. : o
Almo
11
@Almo Tenho cerca de 90% de certeza de que isso é possível, a menos que você realmente queira que seja uma "linha". Apenas (get myVector x) (get otherVector x) -> (+) -> (assign myVector x)(uau, é difícil escrever Blueprints em texto ...). Não tenho uma cópia do Unreal para testar. Ou, se os vetores são imutáveis, basta criar um novo,(myVector.x + otherVector.x, myVector.y, myVector.z)
Fund Monica's Lawsuit
11
Definitivamente é possível, mas é confuso. Linha de vetor em uma caixa de quebra, que tem saídas x, y, z. Faça isso duas vezes, uma para obter o myVector.x e outra para obter o otherVector.x, adicione-os e encaminhe-o para uma caixa de atribuição.
Almo
11
Eu não disse que você não podia. Só que é horrível.
Almo