Solo soy un principiante en juegos 3D, mi plataforma preferida es Android. Publiqué una pregunta en otro foro sobre "¿Qué usar: OpenGL o Unity3d?" Todos enfatizaron Unity3D y el uso de sus funciones y herramientas integradas, que tendría que codificar yo mismo si tuviera que usar OpenGL. Pero alguien dice que la mayoría de los juegos complejos requieren motores personalizados. ¿Por qué usaría un motor como Unity3D sobre OpenGL?
25
Respuestas:
Creo que ya has respondido esta pregunta tú mismo. Dijiste "Solo soy un principiante en los juegos 3D" . Además dijiste "... Unity3D y usando sus funciones y herramientas integradas, tendría que codificarme si tuviera que usar OpenGL" .
Esencialmente, esto significa que si está utilizando OpenGL solo, va a escribir un motor de juego y, potencialmente, años más tarde, escribirá su juego. Si quieres concentrarte en un juego, utiliza los recursos disponibles para acercarte lo más posible a ese objetivo. Usar un motor de juego es la mejor manera de enfocar tus esfuerzos en crear un juego, en lugar de escribir todo lo necesario para crear un juego.
Vea esta pregunta relacionada: ¿Cuál es la diferencia entre una Biblioteca y un Motor y este? ¿Qué es un marco de juego versus un motor de juego?
fuente
Porque los principiantes, por definición, no saben lo que están haciendo .
OpenGL tiene una gran curva de aprendizaje. Claro, puede emitir algunos comandos de glBegin, entusiasmarse por poner algunos triángulos en la pantalla, y luego salir del extremo profundo con algo más complejo que aún no está listo para asumir. Esa no es una excelente manera de aprender. Una analogía (ligeramente exagerada) podría ser aprender algo de física básica de la escuela secundaria y luego ser puesto a cargo del Gran Colisionador de Hadrones. No es hundirse o nadar, es nadar o dejar un gran agujero radiactivo en el suelo.
Se supone que la mayoría de la gente pregunta "Quiero hacer un juego, ¿qué debo usar?" la pregunta realmente quiere hacer un juego (de lo contrario, ¿habrían hecho una pregunta diferente, sin duda?) Entonces, la respuesta se adapta a la pregunta, y el uso de un kit de herramientas, marco o motor preexistente es una forma de ayudarlos a alcanzar esa ambición sin distraerse agonizando sobre si las llamadas UBO o glUniform son preferibles para actualizar una única matriz.
Esto se trata de dar un paso a la vez, facilitar el proceso de aprendizaje y darle algo gratificante al final. Tratar de aprender cómo hacer un juego y cómo usar correctamente una API 3D madura y poderosa al mismo tiempo es probablemente demasiado para un principiante. Esto es como el efecto Dunning-Kruger menos las connotaciones negativas. No sabes lo que no sabes, así que realmente no tienes ningún tipo de imagen realista de exactamente lo que estarías tomando.
Por otro lado, si tu objetivo es aprender OpenGL, ¡entonces no quieres hacer un juego! Desea aprender OpenGL, y hacerlo en el contexto de hacer un juego puede ser una forma divertida de aprender, pero hacer un juego es un medio para un fin, no un fin en sí mismo (y ciertamente no es la única forma de aprender OpenGL ) Probablemente nunca lo lanzará, y casi definitivamente lo recordará en unos años y se sentirá terriblemente avergonzado por algunas de las estupideces que hizo.
fuente
Realmente depende de lo que quieras obtener de este proyecto. Si tu objetivo principal es concentrarte en el diseño del juego, entonces probablemente estés mejor con un motor preconstruido, porque eso te llevará a la parte de creación del juego mucho más rápido. Si su objetivo es aprender sobre la parte de programación de hacer juegos (especialmente si está tratando de prepararse para un trabajo en la industria), entonces probablemente encontrará que trabajar con OpenGL será una experiencia más valiosa. Tenga en cuenta que ninguna de las afirmaciones anteriores es verdadera el 100% del tiempo.
Realmente no hay una regla al decidir sobre este tipo de cosas. La mayoría de las respuestas que escucha en ese tipo de preguntas son opiniones, y muy pocas de ellas serán completamente relevantes para su propio proyecto y conjunto de habilidades.
fuente
La diferencia es simple. La unidad es un carro con cuatro ruedas redondas que pueden llevarte a lugares. OpenGL es aserrín que podría instalar una tienda y potencialmente usar para moldear un carro y ruedas mejorados y más modernos. Es decir, si invierte muchas horas de su tiempo en aprender lo que las personas antes hacían primero.
Su objetivo como principiante debe ser primero estudiar los carruajes existentes y sus diseños. No tiene sentido tirar todo por la ventana y comenzar desde cero. Primero aprenda lo que ya existe y obtenga un conocimiento profundo de ello. Si no lo hace, ¿cómo sabe de sus limitaciones y si no conoce las limitaciones, cómo podría superarlas? ¿Cuál es el punto de hacer algo mediocre que sea inútil e ignorante de todas las vibrantes herramientas existentes que ya están disponibles?
En mi opinión, los pasos de un desarrollador de juegos incipiente son:
Trabajar solo para hacer algo que ya se ha hecho no lo convertirá en un desarrollador valioso para nadie porque no será productivo en verdad o un buen alumno para el caso, simplemente copiará los fragmentos de código existentes y tal vez aprenda a léelos y entiéndelos. Como dice el viejo dicho de Pokémon, "No es muy efectivo ...".
La peor parte es que este tipo de enfoque no es fácil de seguir porque no hay satisfacción en él, por lo que se está ejecutando con fuerza de voluntad cruda, que ha sido científicamente demostrado que es un recurso limitado para los seres humanos. Debe hacer algo que le brinde gratificación diaria o su voluntad probablemente no podrá continuar.
En resumen, se enfatiza un motor porque puede hacer las cosas con un motor y es mucho más probable que tenga éxito de esa manera. Incluso los grandes creadores de juegos confiaron en el trabajo previo de otra persona y esa es la naturaleza del progreso. Debes comprender el panorama general y saber cómo jugar con las piezas de Lego proporcionadas por otros antes de hacer tus propias piezas de Lego personalizadas.
fuente
Suponiendo que su objetivo es crear un juego, el tipo que habló sobre la necesidad de motores personalizados estaba equivocado. En todo caso, los juegos complejos requieren un motor maduro que ha sido diseñado, implementado, optimizado, probado y mantenido por profesionales que han estado en la industria durante mucho tiempo, o uno que pueda igualar su calidad (al menos para los propósitos de un juego determinado) , si eso es posible.
Los grandes desarrolladores de juegos construyen motores internos, pero aún los reutilizan en gran medida para sus futuros juegos. Pero tenga en cuenta que sus presupuestos y tamaños de equipo y muchos otros factores son muy diferentes a los de los desarrolladores independientes: puede tener mucho más sentido comercial para ellos construir su propio motor, incluso si los existentes no se quedan cortos tecnológicamente.
Por supuesto, todavía existe la idea errónea, ya que muchas características no existen de forma inmediata en los motores existentes, que no se pueden implementar en ese motor, pero eso generalmente es inexacto.
Ten en cuenta que algunos de los juegos modernos más innovadores, como Portal y Antichamber, se construyeron utilizando motores existentes. Algunos juegos en línea bastante complejos, como Aion y TERA, se construyeron utilizando motores existentes. Algunos de los juegos visualmente más hermosos, como Bioshock Infinite y Thief, se construyeron con motores existentes. Y, por supuesto, algunos no. Pero el punto es: nada de lo que he visto realmente requería un motor personalizado.
Por otro lado, si su objetivo es aprender conceptos de programación gráfica, por supuesto, OpenGL es el camino a seguir. Pero incluso entonces, tenga en cuenta que estar familiarizado con algunos motores existentes lo ayudará enormemente a comprender lo que está haciendo y a qué debe apuntar.
fuente
citation needed
s