¿Cuáles son las ventajas y desventajas de usar un motor de juego? [cerrado]

28

¿Cómo sé si usar o no un motor de juego? Quiero hacer un juego 2D relativamente complejo para Android. ¿Qué factores debo considerar para decidir si encontrar, instalar y aprender un motor de juego o simplemente hacer todo manualmente?

cstack
fuente
No estoy seguro si el diseño del juego es la mejor etiqueta, aquí; pero el motor ha sido incluido en la lista negra. Esta pregunta probablemente solo debería eliminarse.
Gnemlock

Respuestas:

25

Ventajas:

  • La mayoría, si no toda, la codificación se realiza por usted, por lo que solo tiene que preocuparse por el contenido, el diseño de nivel, etc.

  • En ese sentido, la gestión de la memoria, la carga de activos, la iluminación (en motores complejos), etc., se han diseñado y probado exhaustivamente (con suerte).

  • Como se menciona a continuación, si el motor es multiplataforma, tendrá que hacer poco o ningún trabajo para portar su juego.

Desventajas

  • Si está modificando algo, ahora necesita familiarizarse con una nueva base de código.
  • Si hay un error en el motor, a menos que sea de código abierto, no puede solucionarlo.
  • El motor no fue diseñado específicamente para tu juego, por lo que puede ser menos eficiente que el código que escribes específicamente para tu juego.
  • Los motores de juego generalmente no son gratuitos.
  • Si un juego es pequeño, la sobrecarga de usar un motor puede no valer el tiempo invertido para escribir el código usted mismo.
  • Si tu motor de juego también tiene editores o herramientas, tendrás que construirlas y probarlas también antes de entregarlas a los artistas o confiar en ellas tú mismo.

No permitas que la lista de desventajas sea más larga: cuando el tiempo dedicado a codificar y probar todos los sistemas que necesitas es demasiado largo para tu ciclo de producción, o si tienes más habilidad con el arte que con el código, usar un motor de juego es Definitivamente una buena idea.

Se está trabajando en una comparación de los motores de juego en esta pregunta: Pro y Con de varios motores de juego 3D

Sean James
fuente
3
Esta es una respuesta bastante buena en general, pero fruncí el ceño en la primera oración. Sugeriría encarecidamente que vuelva a redactar "La mayoría, si no toda la codificación se realiza por usted" a "La mayor parte de la codificación de bajo nivel se realiza por usted"; es engañoso hasta el punto de irresponsable perpetuar el mito de "¡hacer un juego sin codificación requerida!"
jhocking
Además, el motor puede restringir lo que puede hacer fácilmente; por ejemplo, casi muchos no admiten Minecraft o terreno modificable al estilo Dwarf-Fortress. Lo cual está bien para juegos que no lo necesitan, pero buena suerte haciendo un clon de Minecraft con uno.
user253751
15

En mi caso, pasé mucho tiempo (meses) dando vueltas sin hacer nada debido a los motores de juego. Ahora normalmente los evito como la peste, aunque entiendo que deben usarse con prudencia y con moderación.

¡Para mí, me obsesionaría con todas las posibilidades ! Mirando una larga lista de características en el motor X, es como "¡Guau, podría hacer todo esto! ¡Mi juego podría ser genial!" Así que lo descargaba, ejecutaba las demostraciones y me deslumbraba con esas características en acción, etc. Luego creaba un nuevo proyecto en mi IDE y no sabía por dónde empezar. Escribiría un código, podría aprender y basarlo en los proyectos de demostración, pero esos eran solo demostraciones.

No sabía cómo comenzar de la nada y hacer algo. No sabía el primer paso. Me encantó la idea de un motor, me impresionó y me motivó a hacer algo, pero mi conocimiento del desarrollo real era tan limitado que incluso después de saber cómo agregar el motor a la ruta de construcción, y tal vez escribir algunas líneas para comenzar el motor y luego lo apagué nuevamente, más allá de eso nunca hice nada que valiera la pena.

Soy mucho más un tipo de persona de paso de bebé. Prefiero hacer mi propio juego paso a paso, refactorizando funciones útiles y recolectando esas funciones en una biblioteca que algún día podría considerar un "motor". Entonces, por ahora, evito la exageración del motor y solo me quedo con las cosas de bajo nivel.

Y los motores tienen su lugar. Si encuentras un motor y piensas: "¡Esto es exactamente lo que escribiría! Ya han hecho el trabajo por mí, no tengo que reinventar la rueda y sé exactamente cómo conectarlo al juego". que ya he comenzado [o al menos totalmente planificado y estoy listo para comenzar] ", entonces probablemente sea una buena opción. Sabrá exactamente cómo usarlo y cómo escribir su propio código para usar el motor y crear algo útil. Pero si obtienes un motor solo porque tiene todo menos el fregadero de la cocina y crees que estás parado sobre los hombros de gigantes, estás muy equivocado. Tienes un gigante parado frente a ti y necesitas subir a sus hombros.

Entonces, la gran desventaja para mí: no quedar atrapado en todas las cosas que podrías hacer. Cualquiera que sea el motor que elija, tendrá toneladas de potencial. Pero si no sabes cómo aprovechar el potencial, si no te hace la vida más fácil ni te ayuda a hacer tu trabajo, ¿por qué lo estás usando?

Ricket
fuente
4

La mayor desventaja de un motor de juego es que tienes que aprenderlo. Si eres nuevo en la programación en general, eso puede ser aún más rápido que aprender a escribir código para hacer todas las cosas que un motor maneja de manera inmediata, pero si tienes experiencia, entonces no te costará tiempo para sentarte hacia abajo y comenzar a codificar, pero una buena cantidad de tiempo inicial para aprender un motor desconocido.

Lo más importante que debe buscar es el apoyo, porque los motores de los juegos no son perfectos y no leen su mente, y en algún momento se atascará en ALGO. Asi que:

  • ¿Hay documentación?
  • ¿La documentación es realmente buena?
  • ¿Hay soporte técnico (generalmente no, a menos que esté pagando por ello)? ¿Cuál es el tiempo de respuesta?
  • ¿Hay foros de la comunidad donde puedes publicar preguntas y obtener respuestas reales?
  • ¿Hay tutoriales que le muestren cómo comenzar a usar el motor? ¿Se incluye el código fuente de muestra? ¿Qué tan útiles les parecen estos para ponerse al día?
Ian Schreiber
fuente
2
+1 por poner la documentación prominentemente al frente ... ahí es donde fallan muchos motores de juegos de código abierto
LearnCocos2D
3

Como alguien que tiene mucha experiencia en desarrollo de software y que realmente solo intentó desarrollar un juego desde cero recientemente, aquí están mis 2 centavos.

Las respuestas hasta ahora han proporcionado largas listas de pros y contras. Proporcionaré lo que para mí es la razón más importante para NO usar un motor de juego. Cuando asumí la tarea de aprender a escribir un juego solo por desafío y recompensa, decidí hacerlo desde cero sin motor, solo OpenGL y SDL, porque quería aprendertodo por encima de ese nivel de abstracción. En ningún momento me he arrepentido de esa decisión. Mi juego es una buena versión de desplazamiento de los asteroides 2D, básica pero suave. No estoy tratando de competir con juegos muy superiores, pero sí distribuyo mi juego y la gente ha disfrutado jugando. Tomaré el mismo enfoque al hacer que el juego sea multijugador. Este es un gran desafío y el uso de bibliotecas podría facilitarlo, pero mi objetivo no es hacerlo fácil. Mi objetivo es aprender, y para mí es una actividad de medio tiempo, así que no tengo mucho tiempo y el progreso es lento. Pero tengo mis razones para este enfoque. Llámalo "enseñanza superior".

Entonces, responde a tu propia pregunta, ¿quieres aprender a hacer las cosas que el motor del juego hace por ti por los beneficios que podría traer este aprendizaje? Si es así, no uses un motor de juego.

Ciaran
fuente
2

Debe detallar lo que quiere decir con "complejo". Un buen motor de juego se encarga de todo lo siguiente:

  • Renderizado en un framerate estable
  • Manejo de entrada
  • Interfaz de usuario
  • Sonidos / musica
  • Gestión de recursos (imágenes, sonido, archivos de datos)
  • Guardar / cargar tu juego
  • Física (2d o 3d)

Piensa para ti mismo, ¿sé cómo codificar cada uno de estos? ¿Cuánto tiempo tomaré para programar cada uno y cuánto tiempo tomaré para aprender cómo hacer que un motor haga cada uno de estos?

zaratustra
fuente
1

La mayor ventaja: se hacen muchas cosas por usted. No tiene que seguir reinventando la rueda.

Otra ventaja: el motor del juego también puede ser multiplataforma (Unity).

Desventajas? ¿Controlar? El motor se ocupa de algunas cosas por usted (como el renderizado), por lo que si tiene errores o problemas de rendimiento, simplemente no puede solucionarlo usted mismo.

Bryan Denny
fuente