La creación de contenido puede ser una de las partes más lentas del desarrollo de juegos, por lo que crear un editor de niveles puede ser tan útil. En este artículo, compartiré mis consejos para crear un editor de niveles eficiente y explicaré cómo el uso de este tipo de herramienta ha acelerado mi flujo de trabajo..
Aquí está el escenario: has pasado meses trabajando en tu juego y finalmente está empezando a unirse. La base de código es fuerte y has llegado al punto en el que puedes comenzar a crear niveles para tu juego..
Solo hay un problema: el archivo de nivel se ve así:
Objeto Textura rocks4 Posición 78 540 Rotación 0 Escala 1 1 Color 255 255 255 255 ScrollSpeed 1 1 CustomProperties Fin Objeto final Texture grass1 Position 60 450 Rotación 0 Escala 1 1 Color 255 255 255 255 ScrollSpeed 1 1 CustomProperties End End Object Texture grass2 Position 61 459 Rotación 0 Escala 1 1 Color 255 255 255 255 ScrollSpeed 1 1 CustomProperties Fin Fin
Asco. Imagina intentar crear niveles enteros como este. El proceso sería increíblemente lento y lento, por no mencionar frustrante. El problema es que es muy difícil editar algo que está destinado a ser visto. ¿Qué, entonces, se puede hacer al respecto? La respuesta, sorprendentemente, se encuentra en el contexto del problema mismo..
Los niveles son una forma de visual comunicación. Los jugadores no miran archivos de texto, sino imágenes, sprites, animaciones, etc. Piense en un pintor: Picasso no hizo sus pinturas insertando valores RGB por píxel en una computadora. Hizo sus pinturas con, bueno, pintándolas. Para aplicar la misma lógica al diseño de niveles, debemos crear una herramienta que nos permita editar visualmente dichos niveles: un editor de niveles..
Una de las ventajas más importantes de tener un editor de niveles es la conveniencia de WYSIWYG ("Lo que ves es lo que obtienes": lo que ves en el editor es lo que obtendrás en el juego). Como se describió anteriormente, es mucho más fácil diseñar cuando puede ver lo que está editando.
Otra ventaja es que permite una iteración de diseño más rápida y eficiente. El proceso de diseño de niveles se puede dividir en un simple diagrama de flujo como este:
Es crucial que pueda moverse sin problemas entre las fases de diseño y prueba, ya que esto permite iteraciones más rápidas y menos tiempo empleado en general.
La razón final para tener un editor de niveles es que hace que el trabajo de diseño de niveles sea mucho menos técnico. Esto es especialmente relevante cuando se trabaja en equipo: imagina enviar el archivo de texto anterior a los artistas y decirles que diseñen niveles en ese formato.!
Una buena comunicación, tanto verbal como visual, es esencial dentro de un equipo, y un editor de niveles puede hacer que la vida de los diseñadores no técnicos sea mucho más fácil, así como eliminar una posible barrera de comunicación entre ellos y los desarrolladores..
Entonces, en resumen, las tres razones más importantes para tener un editor de niveles son que le permiten:
Es posible que se pregunte por qué querría crear su propio editor cuando ya hay muchos disponibles de forma gratuita, y no voy a mentir, hay algunos grandes editores por ahí..
Aquí hay algunos que conozco de juegos 2D:
Hay ventajas y desventajas en el uso de un editor genérico existente. Es probable que sea robusto y esté bien mantenido, pero no sabe nada sobre tu juego, por lo que es posible que tengas que hacer trucos inteligentes para que pueda interactuar correctamente con tu juego. Esto ahorra tiempo de iteración y puede generar mucho más tiempo innecesario durante la creación de contenido..
Además, tienes que aprender a usarlo, mientras que si utilizaste tu propio editor, obviamente ya lo sabes todo..
Aquí está mi lista personal de pros y contras para cada tipo de editor:
Pre-construido:
De creación propia:
Depende de usted, pero por el bien de este artículo, me centraré en diseñar su propio artículo..
A continuación, compartiré mis mejores consejos para crear un editor de niveles robusto y efectivo..
Es posible que se asuste ante el hecho de que tendrá que escribir más código para un editor de niveles. Pero, ¿por qué no hacer este proceso lo más indoloro posible??
Si está en el punto en el que necesita un editor de niveles, probablemente ya tenga un poco de estructura para la arquitectura de su juego (clases, interfaces, herencia, etc.). ¡Reutilice este código! Si ya tienes un montón de clases para dibujar y actualizar cosas para el juego, no es necesario volver a escribirlo para el editor. En otras palabras, NO escriba un motor separado para el editor. Además de permitirte reutilizar el código del juego, esto te ayudará a reducir la brecha entre cómo se ve el nivel en tu editor y cómo se ve en el juego..
Hay dos enfoques para implementar un editor de niveles: puedes tenerlo en el juego o crearlo como una aplicación externa. Nuevamente, ambos enfoques tienen sus altibajos..
El editor del juego esencialmente eliminaría la brecha entre el diseño y las pruebas, pero requeriría mucho más trabajo de GUI, por ejemplo. El editor externo podría usar bibliotecas GUI y tener características robustas, pero la iteración de la prueba de diseño sería un poco más larga, dado el hecho de que tendría que cambiar constantemente entre dos aplicaciones diferentes.
Personalmente prefiero el primer enfoque porque creo que es lo más natural, y realmente me gusta la comodidad de cambiar entre diseñar y probar instantáneamente.
Recuerde, este editor es para usted (o su diseñador de niveles, si trabaja en equipo). No hay necesidad de hacer que se vea bonita. De hecho, es probable que sea una pérdida de tiempo, a menos que planee distribuir el editor. En su lugar, enfócate en hacer que un editor de nivel funcional sea lo más rápido posible para que puedas llegar a la creación de contenido. (Más adelante, cuando tu juego esté casi terminado, puedes considerar cosas como "embellecer" el editor).
Esto puede parecer obvio, pero los atajos son tus amigos. Tenga una clave vinculada a cada acción que cree que podría hacer. Lo digo en serio; Hacer esto te ahorrará mucho tiempo al diseñar. Por ejemplo, al presionar 'C' en el editor de niveles de mi juego se crea un duplicado del objeto seleccionado actualmente. Es simple, pero inmensamente útil y ahorra mucho tiempo..
Como ejemplo, permítame mostrarle el editor de mi juego actualmente en desarrollo, Mori. Aquí hay una baldosa que he girado y escalado:
Todo lo que tengo que hacer es presionar 'C' y ... voila!
Esta es la parte hermosa de diseñar tu propio editor: puede hacer lo que quieras que haga..
Cada juego es diferente; algunos juegos requieren secuencias de comandos extensas, mientras que otros pueden involucrar comportamientos complejos de inteligencia artificial. Todos estos se pueden integrar en el editor. Imagina poder agregar un enemigo con un determinado comportamiento con solo presionar algunas teclas en el editor. Ahora imagine que intenta hacer lo mismo agregando código a un archivo de secuencias de comandos. Lo que parece más eficiente.?
Hay ciertas convenciones a las que nos hemos acostumbrado cuando usamos aplicaciones. Estos incluyen servicios como deshacer / rehacer, copiar / pegar, mensajes de advertencia, etc. Si planifica adecuadamente, puede implementar todo esto en su editor sin mucho trabajo adicional. Confía en mí, te agradecerás en el futuro si tienes estos.
Otra característica que puede hacer su vida más fácil es poder probar los niveles sin guardar el archivo en el disco. Esto hace que el proceso de prueba de diseño sea mucho más fácil. Mi juego utiliza un sistema de gestión del estado del juego, así que tengo dos "pantallas" separadas para el juego y la edición..
Desde dentro del juego, presioné una tecla para ingresar al editor. Al editor se le pasa el objeto de nivel, que luego puede ser manipulado desde dentro del editor. A partir de ahí, tengo dos opciones: puedo guardar el nivel en el disco o puedo presionar una tecla determinada y pasar el objeto de nivel atrás a la pantalla de juego. Esto me permite probar el nivel de inmediato sin el temor de sobrescribir mis cambios anteriores.
En resumen, un editor de nivel es una inversión que vale la pena en el proceso de desarrollo del juego. Permite el diseño visual de niveles, tiempos de iteración más rápidos y un requisito de habilidades técnicas más bajo para los diseñadores.
Espero que hayas encontrado este artículo interesante y útil. Gracias por venir!