¿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?
game-design
cstack
fuente
fuente
Respuestas:
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
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
fuente
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?
fuente
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:
fuente
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.
fuente
Debe detallar lo que quiere decir con "complejo". Un buen motor de juego se encarga de todo lo siguiente:
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?
fuente
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.
fuente