¿Los profesionales de la industria que crean juegos con UE4 usan Blueprints o usan C ++ exclusivamente?


15

Como profesor en un módulo de desarrollo de juegos, generalmente he insistido en que los usuarios usen C ++, porque es una habilidad más buscada en la industria, pero el soporte en línea y la información sobre C ++ en Unreal Engine 4 parece ser relativamente débil. ¿Son profesionales ahora que usan Blueprints? también, o no?


11
La documentación no será un buen indicador de cuánto se usa algo.
MichaelHouse

Falta documentación en Unreal Engine 4 C ++ porque vas y lees el código tú mismo. No necesita estrictamente documentación si puede acceder al código fuente. Sin embargo, sería bueno tenerlo.
Oxy

1
@Oxy El código fuente no sustituye a la documentación. Período. La fuente es mucho más difícil de leer que la documentación, por definición, porque el objetivo de la documentación es destilar lo que una función hace en un formato legible. Esto es doblemente cierto para el código de alto rendimiento y extremadamente capaz, como Unreal.
Financia la demanda de Mónica el

1
Estoy explicando lo que sucede, no justificando. "Sin embargo, sería bueno tenerlo". Y es mejor que lea el código de las funciones que usa, incluso las documentadas, porque algunas importantes tienen pepitas de oro como "foo (x) {/ * foo No implementado, haciendo en cambio barra (x) porque generalmente actúa como foo (x ) se realizó * / bar (x);}. Todavía tengo que ver un sistema de documentación en acción que sigue el ritmo de la evolución del código. Además de la documentación automatizada que no hace más que arrojar los tipos de parámetros y tipos de retorno, al igual que leer un encabezado sí.
Oxy

Respuestas:


25

Sí, los juegos profesionales usan Blueprints.

Algunos usan una mezcla de C ++ y Blueprints. Usamos ambos en Dead by Daylight.

Una de las mejores cosas de Blueprints es que los no programadores pueden tener acceso a la capacidad de escribir comportamientos. No todos los proyectos los usarán de esta manera, pero es una de las razones por las que fueron diseñados. Reemplazaron UnrealScript como el medio de alterar los comportamientos sin golpear el C ++, y también reemplazaron a Kismet, que era el sistema visual de secuencias de comandos de Unreal 3.


Se puede ampliar? ¿Solo los programadores usan Blueprints, o solo el personal "no técnico", o un poco de ambos? ¿Se utiliza para fines específicos o para casi cualquier cosa?
KABoissonneault

77
@KABoissonneault Es una gran mezcla. La mayoría de las veces no hay una manera fácil de delinear claramente entre lo que trabajan los programadores y lo que trabajan los no programadores. Eso es especialmente cierto si tienes un diseñador, que probablemente querrá ajustes en todo el código. Los planos también se utilizan mucho para la creación rápida de prototipos, y no necesariamente se convierten a C ++ si el rendimiento no lo requiere. También variará mucho según el estudio y el proyecto, por lo que no hay una respuesta única.
Financia la demanda de Mónica el

9

Una pequeña anécdota de fuera de la industria de los juegos: utilizamos UE4 para la visualización de la arquitectura en realidad virtual.

Si bien prefiero tener la mayoría de las cosas integradas en C ++, también utilizamos Blueprints para todo tipo de "lógica adicional" como interruptores de luz, puertas, etc.

Ha sido así desde hace un poco más de dos años y fui el único programador al comienzo de este esfuerzo. Así que aquí están mis observaciones:

  • ¡Es sorprendente lo que los no programadores pueden hacer con Blueprints!
  • Puedo ser horrible lo que hacen los programadores novatos con Blueprints;)
  • Incluso si lo convierto a C ++ al final, los Blueprints son buenos para una fase rápida de RnD

Y el más importante para mí: en muchas conversaciones, me quedó claro que Blueprints había invocado el deseo de convertirse en programadores en mis colegas no tecnológicos. La razón principal por la que esto sucedió es que podían implementar una lógica bastante compleja mientras podían depurarla visualmente.

De hecho, aprendieron algunas lecciones difíciles sobre la arquitectura de software y las trampas (o más bien las pesadillas) de los enormes planos de espagueti. ¡Pero solo después de haber sentido un montón de pequeños éxitos en el camino! Por lo tanto, no se desanimaron en absoluto, sino que se motivaron para hacerlo mejor y descubrir cómo hacerlo por sí mismos.

Desde que tomaron cursos en C ++, Python y C #, la calidad general de nuestros Blueprints mejoró mucho, pero sobre todo: ahora tengo algo de ayuda para desarrollar nuestras bibliotecas principales :)

TLDR;

Sí, estamos usando Blueprints e incluso hicieron que mis pares inicialmente no tecnológicos fueran mejores codificadores.


1
Una de las cosas buenas de los lenguajes visuales como Blueprints es que no necesita preocuparse por la sintaxis, y en general son tan abstractos que puede hacer mucho con muy poco repetitivo. Facilitan el aprendizaje de la codificación sin verse empantanados por la sintaxis. Normalmente también son de alto nivel, no hacen ningún tipo de magia , pero, ya sabes, eso es una compensación que estoy dispuesto a hacer para que los no codificadores tengan un impacto directo en el comportamiento del juego.
Financia la demanda de Mónica el

@NicHartley intenta hacerlo myVector.x += otherVector.xen Blueprints. : o
Almo

1
@Almo Estoy aproximadamente 90% seguro de que eso es posible, a menos que realmente quieras que sea una "línea". Simplemente (get myVector x) (get otherVector x) -> (+) -> (assign myVector x)(wow, es difícil escribir Blueprints en el texto ...). Sin embargo, no tengo una copia de Unreal para probar. O, si los vectores son inmutables, simplemente haga uno nuevo,(myVector.x + otherVector.x, myVector.y, myVector.z)
Fund Monica's Lawsuit

1
Definitivamente es posible, pero es desordenado. Línea vectorial en un cuadro de interrupción, que tiene salidas x, y, z. Haga eso dos veces, una para obtener myVector.xy otra para obtener otherVector.x, agréguelas y diríjalas a un cuadro de asignación.
Almo

1
No dije que no pudieras. Solo que es horrible.
Almo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.