Como estudiante de secundaria, ¿debo aprender a usar un motor de juego ya creado (Unity), o aprender OpenGL para hacer el mío?

Cual es tu objetivo ¿Estás más interesado en diseñar e implementar un juego, aprender Computer Graphics o hacer un motor de juego?

Si responde “Diseñar e implementar un juego”

Comienza con Unity3D, y dentro de 1 o 2 meses después de pasar por los tutoriales, deberías poder hacer juegos simples en 3D y 2D. Las recomendaciones habituales para un buen juego 2D es un juego Match-3 (Candy Crush, etc.) o Tetris; para un juego en 3D, un juego de carrera sin fin (como Temple Run) es una buena opción.

Las ventajas son que Unity3D hace que sea más fácil (no fácil, simplemente más fácil) desarrollar juegos. Si necesita algo que está más allá de su nivel de habilidad, puede obtenerlo en la tienda de activos. Las desventajas son: bueno, no conocerás la magia detrás de cómo funcionan realmente los juegos.

Además, Unity3D tiene una buena implementación de GUI. Tenga en cuenta a medida que explora otras alternativas, ya que la programación de GUI no es un paseo por el parque.

Si … “Gráficos por computadora”

OpenGL es un SDK para gráficos de computadora; si aprende OpenGL, prepárese para pasar semanas aprendiendo matrices, vectores, vértices, rotación, traslación, escalado, mapeo de texturas, etc. Aprenderá qué hace que un polígono sea un polígono, cómo representarlo con color, cómo pegar un trozo de textura en eso. Después de lo cual, probablemente tenga que aprender el manejo de entradas, el manejo de eventos y todo eso.

Con todos esos requisitos previos dominados, es posible hacer un juego simple. Tomará más tiempo que usar Unity3D, sin embargo, tendrá un fondo sólido en gráficos de computadora 2D y 3D.

Tiene varias opciones si decide comenzar con OpenGL primero. Existe WebGL, la buena forma tradicional de usar C / C ++, o usar Tao.SL con C #, etc. No tiene que estar tan pendiente de la elección del idioma. El concepto detrás de CG es más importante.

Tenga en cuenta que esto lleva más tiempo, requiere que comprenda y estudie Matemáticas (álgebra lineal, especialmente) y lo que obtiene visualmente es poco probable que sea comparable a Unity3D. Su próxima etapa será la programación del sombreador, si desea continuar con esto.

Si … “Construcción del motor”

Si haces la ruta OpenGL, probablemente habrás ideado tu propia arquitectura para alojar tu juego. Sin embargo, un motor de juego es “más” que un simple juego. A medida que sus juegos se vuelven más complejos, su motor de juego tendrá que lidiar con:

  • Gestión de recursos: también hay tanta RAM que tiene una computadora; no puede cargar niveles completos, texturas o geometría 3D en su RAM. Debe poder cargar los activos que necesita, y descargarlos cuando no lo haga, y lidiar con las complejidades de la gestión de basura y la gestión de memoria
  • Secuencias de comandos: para juegos más simples, es posible salirse con la lógica de los niveles de codificación y la lógica del juego en su aplicación. Sin embargo, los juegos más complejos requieren más tiempo para compilarse y desplegarse, de ahí la necesidad de secuencias de comandos. Algunos potentes motores de juegos pueden leer en scripts LUA para niveles, unidades, hechizos, comportamiento de personajes, etc.
  • Serialización: guardar juegos en bases de datos o archivos y recuperarlos más tarde
  • Gestión de niveles: cómo transitar de una escena a otra, etc.
  • GUI: botones, casillas de verificación, barras de desplazamiento, cuadros de diálogo, etc. y su manejo de eventos

Lo importante a tener en cuenta es que si construyes algo desde cero, codificarás numerosos módulos que no tienen nada que ver con el diseño o la implementación de juegos. Habrá módulos para guardar y restaurar juegos, guardar y almacenar preferencias, y así sucesivamente.

Por lo tanto, si está más interesado en implementar un diseño de juego, le sugiero que se adhiera a Unity3D. Si está interesado en los aspectos técnicos, hágalo desde cero con OpenGL.

No, no tienes buenos antecedentes en C ++. El hecho de que creas que lo haces nos permite saber en qué escala estás. Eso es ~ 2-3 en una escala de 10 pt.

C ++ es masivo y complicado. Después de una década de programación sólida, es posible que tenga un buen historial.

No estoy diciendo que esto sea un imbécil, sino porque debes tener una mejor idea de tu nivel de habilidad real antes de hablar sobre escribir un motor de juego, especialmente uno en C ++. ¿Cómo es tu concurrencia? ¿Puede implementar soluciones para el interbloqueo sin simplemente copiarlo del stackoverflow? ¿Cómo se configuran los grupos de subprocesos? ¿Cómo está resolviendo problemas de integridad de datos? ¿Dónde guardarás tus datos de vértice? ¿Cómo manejas la entrada? ¿Qué formato almacenará sus datos de nivel? ¿Qué API necesita obtener para poder importar archivos max o maya? ¿Cómo se crean datos de nodo de ruta? ¿Atravesar tu nivel con A *? ¿Has escrito código de cámara antes? Porque las cámaras apestan. Espero que tu álgebra lineal sea sólida. Muy, muy sólido. Hablas cuaterniones como un nativo ¿verdad?

Aprenderá un montón tratando de comenzar a abordar un motor y es algo que vale la pena hacer en algún momento en los próximos 4-5 años. ¿Ahora mismo? Nah Toma un motor sólido y crea una docena de juegos. Aprenda lo que le gusta y lo que no le gusta del motor. Aprenda lo suficiente como para tener una opinión sólida sobre las decisiones que debe tomar cuando escribe una. Averigua si realmente te gusta hacer juegos. Cree un portafolio para que pueda obtener una pasantía cuando esté en la universidad. Construir sistemas, no motores. Construye una IA malvada. Escriba una interfaz de usuario realmente efectiva y modular que se escale correctamente para varias resoluciones y plataformas. Escribe un buen sistema de emparejamiento: esos valen oro.

Deshazte de la unidad: usa lo irreal.

Si su objetivo es ser un desarrollador de juegos, necesita saber cómo hacer un “juego”. OpenGL es solo una biblioteca gráfica.

Tu experiencia en C ++ NO te garantizaría un trabajo si no sabes cómo usar un motor de juego o cómo hacer un juego.

Para comenzar, C ++ es la suite fuerte, prueba Unreal primero, es porque el conocimiento de C ++ sería traducible ya que eso es lo que se utiliza en Unreal 4.

Si desea aprender un lenguaje más sostenible y traducible como C # vaya con Unity, tiene un gran soporte, muchos tutoriales y recursos, y puede utilizar ambos para aprender casi cualquier tipo de juego (género). Unity también es multiplataforma y tiene una curva de aprendizaje más baja frente a conocer Unreal.

El tiempo típico en el que necesita estar investido es de aproximadamente tres años , cualquier cosa menor que eso significaría sacrificar cosas de la escuela secundaria y otras cosas.

Si desea hacer un juego completo que se ejecute en dispositivos móviles y PC, etc., este sería un objetivo a largo plazo y muy difícil sugerir no hacerlo hasta que sepa al menos cómo funciona el 80% de un motor de juego y pocas áreas de juego.

La investigación del desarrollo del juego implica mucha lectura, búsqueda de respuestas, pruebas y errores para ver qué funciona y qué no, etc.


Una forma alternativa de aprender el desarrollo del juego es la modificación, por lo tanto, si tienes un juego favorito, aprende cómo modificarlo de alguna manera, el proceso te enseñará lo desordenado que puede ser el desarrollo del juego.

Después de tres años de aprender haciendo , si todavía te gusta el desarrollo de juegos y quieres seguirlo con pasión, adelante. Si quieres esto porque es “genial” no durará en absoluto, esto se incluiría en el área “aspirante”. La carrera de desarrollo del juego es difícil debido a factores financieros / de estabilidad también, si va a ser el único ganador de pan para su familia / padres, sugiera no tomar esta ruta. El personal es despedido después de un proyecto o la empresa misma puede cerrar; la mayoría de las compañías han comenzado a hacer contratos, por lo tanto, usted recibe un salario decente a corto plazo o un salario bajo a largo plazo, pero su trabajo no está garantizado porque la vida del estudio o proyecto de desarrollo de juegos en sí no está garantizada. Intenta un trabajo estable y haz un juego al margen.

Comience con un motor de juego y aprenda cómo funciona primero.

Cuando enseñan a la tienda de automóviles, comienzan con un automóvil que funciona completamente y analizan cómo funcionan todas las piezas primero. Luego, los estudiantes aprenden cómo reemplazar partes individuales antes de que eventualmente desarmen un motor y lo vuelvan a armar.

Comenzar con OpenGL es como poner un bloque de acero, un trozo de plástico, un montón de fibra de vidrio y un trozo de goma frente a un estudiante principiante de una tienda de autos y decirles que hagan un auto. Pueden saber cómo se ve uno, pero no saben cómo se forman las piezas y cómo encajan entre sí.

Hacer un motor personalizado es una habilidad muy avanzada tanto en juegos como en talleres automotrices. Puedes aprender a hacerlo, pero tu desarrollador promedio no necesita hacerlo.

Juega con Unity Engine y diviértete 🙂

Hacer juegos es mucho más divertido que hacer un motor de juego. No me malinterpreten, hacer un motor de juego es divertido. Sin embargo, requiere mucho trabajo y muchas veces se necesita mucho trabajo y tiempo para ver los resultados. En el desarrollo del juego, puedes ver los resultados relativamente más rápido.

En este momento, concéntrate en mejorar tus habilidades de programación. Aprenda a usar el motor de Unity. Lea todo sobre el motor de Unity. Aprenda cómo implementan ciertas características y por qué lo hacen de cierta manera. Una vez que haya terminado de usar el Motor Unity, aprenda a usar el Motor Unreal, el motor Cocos2D, etc. Concéntrese en aprender lo más que pueda de estos motores.

Una vez que vayas a la universidad, aprende todo sobre gráficos por computadora y programación orientada a objetos. Aprende álgebra lineal por dentro y por fuera. Aprenda OpenGL, WebGL, Vulkan (esta es la próxima generación de OpenGL). Luego desarrolla tu motor de juego 🙂

Ok, separemos las cosas

Hacer un motor de juego MUCHO más fácil que hacer un motor de automóvil.

Hacer un motor de juego también es fácil y difícil. depende de qué tipo de motor de juego quiera crear.

Hacer un motor de juego 3D es difícil, pero depende de cuán complejo sea este motor 3D.

Un motor 3D comienza a producir al menos un objeto 3D primitivo básico.

El objeto 3D primitivo más simple es una pirámide. (Algunas personas dirán que los objetos 3D más simples son los planos), los planos no son objetos cerrados, son solo la parte de la superficie de un objeto cerrado, por lo que 4 planos o triángulos crean un objeto cerrado. La pirámide. Si logra crear un programa que presente una pirámide en la pantalla, ha creado su propio motor 3D.

Este simple motor 3D puede tomar 3 vértices y crear un plano triangular, su motor podrá crear 12 vértices que crearán 4 triángulos (polígonos) que estos 4 polígonos combinarán en una pirámide, luego haga que esta pirámide se mueva con su ratón.

Listo, creaste tu primer motor de juego en 3D que crea una pirámide en movimiento con el mouse.

Si su motor puede exportar esta pirámide al modelo 3D, entonces su motor será compatible con Unity. Los objetos de su motor también se pueden exportar y utilizar en Unity.

Estos son los principios básicos de un motor 3D e hizo un fantástico motor 3D compatible con Unity 🙂

Jeje …

Hacer la unidad. De esa manera, puedes comenzar a hacer que algunos juegos despeguen de inmediato y conocerás el entorno.

Después de que hayas terminado algunos proyectos, considera sumergirte en OpenGL.

Este tipo de cosas son específicas de cada persona, así que di mi opinión.