I professionisti del settore che costruiscono giochi utilizzando UE4 usano i Blueprint o usano esclusivamente il C ++?


15

Come insegnante in un modulo di sviluppo del gioco, di solito ho insistito sul fatto che gli utenti usano il C ++, perché è un'abilità più ricercata nel settore, ma il supporto online e le informazioni sul C ++ in Unreal Engine 4 sembrano essere relativamente deboli. I professionisti ora usano anche i modelli o no?


11
La documentazione non sarà un buon indicatore di quanto viene usato qualcosa.
MichaelHouse

La documentazione su Unreal Engine 4 C ++ manca perché vai a leggere tu stesso il codice. Non è strettamente necessaria la documentazione se è possibile accedere al codice sorgente. Sarebbe bello averlo, però.
Oxy,

1
@Oxy Il codice sorgente non sostituisce la documentazione. Periodo. La fonte è molto più difficile da leggere rispetto alla documentazione, per definizione, perché lo scopo della documentazione è distillare ciò che una funzione fa in un formato leggibile. Questo è doppiamente vero per il codice ad alte prestazioni ed estremamente capace, come Unreal.
Fondo Monica's Lawsuit,

1
Sto spiegando cosa succede, non giustificando. "Sarebbe bello averlo, però." E leggi meglio il codice delle funzioni che usi, anche quelle documentate, perché alcune importanti hanno pepite d'oro come "foo (x) {/ * foo Non implementato, facendo invece la barra (x) perché di solito si comporta come foo (x ) è stato eseguito * / bar (x);}. Devo ancora vedere un sistema di documentazione in azione che tenga il passo con l'evoluzione del codice. Oltre alla documentazione automatizzata che non fa altro che vomitare i tipi di parametri e i tipi restituiti, proprio come leggere un colpo di testa
Oxy

Risposte:


25

Sì, i giochi professionali utilizzano i modelli.

Alcuni usano un mix di C ++ e Blueprints. Usiamo entrambi su Dead by Daylight.

Una delle cose straordinarie di Blueprints è che i non programmatori possono avere accesso alla capacità di scrivere comportamenti. Non tutti i progetti li useranno in questo modo, ma è uno dei motivi per cui sono stati progettati. Hanno sostituito UnrealScript come mezzo per alterare i comportamenti senza colpire il C ++ e hanno anche sostituito Kismet che era il sistema di scripting visivo di Unreal 3.


Puoi espandermi? Solo i programmatori usano i Blueprint o solo il personale "non tecnico" o un po 'di entrambi? È utilizzato per scopi specifici o per qualsiasi cosa?
KABoissonneault,

7
@KABoissonneault È davvero un mix. Il più delle volte non esiste un modo semplice per delineare chiaramente tra ciò su cui lavorano i programmatori rispetto a ciò su cui lavorano i non programmatori. Ciò è particolarmente vero se hai un designer, che probabilmente vorrà modifiche in tutto il codice. I progetti vengono anche utilizzati molto per la prototipazione rapida e non vengono necessariamente convertiti in C ++ se le prestazioni non lo richiedono. Varia anche molto per studio e progetto, quindi non c'è una risposta.
Fondi Monica's Lawsuit

9

Un piccolo aneddoto al di fuori del settore dei giochi: utilizziamo UE4 per la visualizzazione dell'architettura in VR.

Mentre preferirei che la maggior parte delle cose fosse costruita in C ++, usiamo anche i Blueprints pesantemente per tutti i tipi di "logica aggiuntiva" come interruttori della luce, porte, ecc.

È stato così per poco più di due anni ormai ed ero l'unico programmatore all'inizio di questa impresa. Quindi, ecco le mie osservazioni:

  • È sorprendente ciò che i non programmatori possono fare con i Blueprints!
  • Posso essere terrificante cosa fanno i programmatori alle prime armi con i Blueprint;)
  • Anche se alla fine lo converto in C ++, i Blueprint sono utili per una rapida fase RnD

E il più grande per me: in molte conversazioni, mi è diventato chiaro che i Blueprint hanno invocato il desiderio di diventare programmatori nei miei colleghi non tecnologici. Il motivo principale per cui ciò è accaduto è che potevano implementare una logica piuttosto complessa mentre potevano eseguire il debug visivamente.

In realtà hanno imparato alcune dure lezioni sull'architettura del software e le insidie ​​(o piuttosto gli incubi) di enormi progetti di spaghetti. Ma solo dopo aver sentito un sacco di piccoli successi lungo la strada! Quindi non erano affatto scoraggiati, ma piuttosto motivati ​​a fare meglio e scoprire come farlo da soli.

Da allora hanno seguito corsi in C ++, Python e C #, la qualità generale dei nostri progetti è diventata molto migliore, ma soprattutto: ora ho qualche aiuto nello sviluppo delle nostre librerie core :)

TLDR;

Sì, stiamo usando Blueprints e hanno persino reso i miei programmatori migliori inizialmente non tecnici.


1
Una delle cose belle dei linguaggi visivi come i Blueprints è che non devi preoccuparti della sintassi, e sono generalmente così astratti che puoi fare molto con pochissimo plateplate. Rendono facile imparare a programmare senza essere impantanati dalla sintassi. Normalmente sono anche troppo di alto livello per fare magie , ma, sai, è un compromesso che sono disposto a fare per consentire ai non programmatori di avere un impatto diretto sul comportamento del gioco.
Fondi Monica's Lawsuit

@NicHartley prova a fare myVector.x += otherVector.xin Blueprints. : o
Almo,

1
@Almo Sono sicuro al 90% che è possibile, a meno che tu non voglia davvero che sia una "linea". Solo (get myVector x) (get otherVector x) -> (+) -> (assign myVector x)(wow, è difficile scrivere progetti nel testo ...). Tuttavia, non ho una copia di Unreal con cui provare. Oppure, se i vettori sono immutabili, basta crearne uno nuovo,(myVector.x + otherVector.x, myVector.y, myVector.z)
Fund Monica's Lawsuit,

1
È sicuramente possibile, ma è disordinato. Linea vettoriale in una casella di interruzione, che ha output x, y, z. Fallo due volte, uno per ottenere myVector.x e un altro per ottenere otherVector.x, aggiungili e indirizzali a una casella di assegnazione.
Almo,

1
Non ho detto che non potevi. Solo che è orribile.
Almo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.