¿Volver a inventar la rueda es un buen hábito en el desarrollo de juegos?

Si son juegos de EA y DICE ha estado haciendo un motor de juego de primera categoría bajo su ala durante décadas, y cada título que lanza está costando un total de $ 200, millones al año para licenciar tecnologías externas, y luego cortar esa mierda. El favor de tu propio motor tiene sentido.

Si eres una empresa de trabajo por contrato y las plataformas que admites incluyen Nintendo 3DS, WiiU y Leapfrog, que no son objetivos de construcción para nadie , luego corta esa mierda en favor de tu propio motor para que puedas apoyar dichos objetivos de construcción excéntrica tiene sentido.

Si usted es Jeff Bazos y tiene la riqueza y el poder necesarios para enviar cohetes al espacio exterior y desea competir en la esfera de la tecnología de motores de juego para cualquier propósito nefario, es lo que está calculando, y luego crea su propio motor de juego para Competir con el resto del mercado podría tener sentido.

Si eres un estudiante que intenta aprender una cosa o dos sobre la programación del motor de juego, entonces tiene sentido hacer un motor como ejercicio de aprendizaje.

Si eres prácticamente todos los demás en el mundo de los videojuegos, entonces no tienes muchas razones para no elegir Unreal 4 o Unity e ir desde allí. Una gran cantidad de dinero gastado en videojuegos, estimaría, se destina a reingeniería y tecnologías de soporte que se compran más baratas de otras fuentes más dedicadas a apoyarlos.

Solo reinvento la rueda cuando está rota para mí, pero esa es una respuesta demasiado general.

¿Cuándo debes escribir un motor frente a la licencia uno?

1> Cuando tiene todas las personas adecuadas en el personal para hacerlo

Y

2> Es más barato escribir un nuevo motor para hacer exactamente lo que quieres en lugar de modificar uno.


Si quieres hacer juegos, entonces concéntrate en hacer los juegos, no en hacer la tecnología del juego. El hardware se mueve rápidamente: ¿realmente desea quedarse atascado en el soporte de los cambiantes estándares de redes, gráficos y datos? Escribir nuevas herramientas de tubería? Escriba (y vuelva a escribir) las conexiones de Facebook, los enlaces de la tienda de aplicaciones y todos los enlaces de las redes sociales.

Yo no. Odio hacer esa mierda. No quiero hacer una tabla de clasificación o una lista de amigos o las cientos de cosas que he hecho cuando cambié de juegos / trabajos / empresas y tuve que hacerlo una vez más.

Hago juegos Los juegos son una interacción entre el equipo de desarrollo y el consumidor. Creamos la diversión. Eso no es lo divertido.

Licencia el motor. Modifique según sea necesario, pero trate de evitar cambios importantes. Si está realizando cambios importantes en el motor, es posible que desee elegir un nuevo motor.

Empieza poco a poco, e incrementa en pequeños pasos.

Al principio, probablemente no deberías pensar en hacer tu propio motor de juego. Trate de aprender los conceptos básicos del desarrollo de juegos primero.

¿Qué tienen en común todos (o la mayoría) de los motores de juego? Por ejemplo, una arquitectura basada en componentes que separa la representación de las secuencias de comandos. ¿Cómo funciona el renderizado? ¿Qué tipos de texturas hay? ¿Cómo interactúan las animaciones con la física?

Pruebe algunos motores de juegos gratuitos (en términos de costo) como Unity oder Blender Game Engine. Si está utilizando Blender, ya tiene todo lo que necesita para hacer un juego básico (modelado, animación, scripting) todo en un paquete, y hay muchos tutoriales disponibles en Youtube.

Si más adelante desea probar qué tan lejos puede llegar en términos de gráficos AAA, debería cambiar a un motor más moderno como Unreal Engine o Unity.

Lo más importante: ser paciente y dar un paso tras otro.

No creo que reinventar la rueda sea una buena práctica. De hecho estoy constantemente aconsejando en contra.

El desarrollo del juego es increíblemente difícil. Los principiantes ni siquiera comienzan a agarrarlo, y regularmente muerden mucho más de lo que pueden masticar.

Esta pregunta es un ejemplo perfecto. No puedo decirles cuántos principiantes creen que harán un juego de rol como primer juego totalmente inconsciente de la enorme cantidad de contenido que necesitan generar.

Reinventar la rueda cuando no es necesario (“síndrome no inventado aquí” es un término similar que usamos en el desarrollo de software) es un hábito terrible.

Hay algunas razones por las que desarrollar una tecnología de juego (en el sentido de un motor de muy bajo nivel) desde cero puede ser una buena idea. Los únicos dos * que se aplican aquí son la educación y la diversión. En el ámbito de la educación, el desarrollo de tecnología de juegos de bajo nivel es potencialmente educativo para cualquier persona, y la educación esencial (aunque no de inmediato) para las personas que desean desarrollar tecnología de juegos de bajo nivel y middleware específicamente. Desde el punto de vista de las diversiones, si te interesa el desarrollo de software y te interesa la tecnología de juegos de bajo nivel, es un buen pasatiempo con muchos desafíos, si lo buscas por su propio bien.

Por lo que ha descrito, su interés principal no es la tecnología de juego de bajo nivel (que descarta cualquier necesidad educativa apremiante), y tiene un objetivo de desarrollo de juego específico (que tiende a sugerir que su tiempo de ocio es mejor empleado en eso) .

Como su objetivo declarado es desarrollar un juego, debe centrarse en desarrollar un juego. Intentar recrear la tecnología que ya está disponible no va a ayudar con ese objetivo; Lo va a obstaculizar, severamente. Perderá tiempo y esfuerzo en actividades que no tienen mucho que ver con la creación del juego que desea crear, y será un gasto inútil de tiempo y recursos (es posible que pueda crear un juego; es casi seguro no podrá hacer un motor robusto y útil y un juego).

Si lo que quieres hacer es desarrollar un juego, toma Unity y ponte a trabajar en el desarrollo del juego. No intentes reconstruir la Unidad primero.

Eso no va a ser especialmente fácil, pero si los juegos son lo que quiere hacer, al menos tendrá más sentido en sus esfuerzos que tratar de hacer girar triángulos con OpenGL. Una vez que entiendas algo sobre Unity, estarás en camino de hacer un juego real. Una vez que haya aprendido algunas cosas sobre la representación de OpenGL, estará en camino de crear una versión a medias de Unity.

* Los otros tienden a implicar preocupaciones comerciales o resultados creativos muy específicos. Si alguna de esas cosas se aplicara en tu caso, no estarías solicitando consejos de alguien como yo.

Creo que esto depende de sus objetivos, el tamaño de su equipo, sus restricciones de tiempo, presupuesto y muchos otros factores.

Por ejemplo, si desea obtener más información sobre la creación de herramientas de juego como un editor para NPC, puede elegir reinventar esa rueda para que la entienda muy íntimamente.

También es posible que las soluciones listas para usar no se integren sin problemas en su producto (o tal vez ni siquiera existan para su producto en particular).

Además, algunas implementaciones pueden ser abiertamente pesadas, por lo tanto, mientras que usted podría estar reinventando una rueda, podría hacerlo por necesidad real.

Algunas soluciones disponibles pueden costar una cantidad considerable de dinero y su presupuesto es incapaz de absorber ese costo.

A la inversa, aplique todos esos a la inversa y tendrá diferentes respuestas. ¿Tienes dinero, quieres ahorrar tiempo, no quieres aprender a diseñar NPC y solo quieres algo que funcione “lo suficientemente bueno” para que tu juego salga por las puertas?

Mi recomendación es abordar cada uno de estos con algunos pensamientos sobre qué diferentes enfoques van a hacer por usted y revisar cada uno con un ojo para la objetividad acerca de todos esos factores y cualquier otro que surja. Por ejemplo, ¿qué sucede si el uso de una herramienta lista para usar aumenta su capacidad para colaborar porque muchas personas conocen esa herramienta? Pero cuesta dinero … bueno, ahora está equilibrando el presupuesto con su capacidad para colaborar. ¿Tal vez valga la pena el dinero?

Aquí no hay respuesta cortada y seca.

Es una excelente experiencia de aprendizaje, pero no a expensas de un programa de producción.

Cada vez que alguien te dice que están escribiendo su propio motor, es una bandera roja MASIVA de que son terriblemente inexpertos. Incluso si tiene bolsillos muy profundos, simplemente no tiene ningún sentido (con muy pocas excepciones).

He trabajado con algunos ingenieros increíblemente talentosos que se encargaron de escribir un motor propietario. Mientras tuvieron éxito, el motor fue terriblemente limitado y, en última instancia, el título fue cancelado.

No, es un hábito terrible en general, con (al menos) una gran excepción.

Soy un desarrollador autodidacta y no lo hago profesionalmente, así que para mí reinventar la rueda es una experiencia de aprendizaje. Actualmente estoy construyendo un mecánico de juegos para el que ya tengo un código fuente de trabajo, solo para poder aprender de resolverlo por mí mismo.


Pero en un juego real, ¿por qué dedicar tiempo a hacer algo que ya se ha hecho? Dedique su tiempo a crear lo que es único para su proyecto y use tantos “atajos” como sea posible.


¡Pararse en los hombros de los gigantes! No tenía idea de cómo construir el motor de juego más simple desde cero, pero con Unity puedo crear un prototipo de un juego simple en unas pocas horas porque alguien ha hecho todo lo posible por mí.

En el desarrollo de juegos no es realmente una buena idea. Es más bien un desarrollo de software, ya que habrá un 90% de tiempo en desarrollo / corrección de errores y se espera que el 10% cree un juego real con su herramienta.

Puede pensar en esto de la misma manera que en construir su propio auto desde cero solo para correr. ¿No sería más fácil conseguir un buen auto y ajustarlo eventualmente?