He implementado gran parte de mi lógica de juego en este momento, pero sigo creando mis mapas con for-bucles desagradables sobre la marcha para poder trabajar con algo. Ahora quería seguir adelante e investigar un poco sobre cómo (des) serializar estos datos. (No busco un editor de mapas, estoy hablando del archivo del mapa en sí)
Por ahora estoy buscando sugerencias y recursos, cómo implementar un formato de archivo personalizado para mis mapas que debería proporcionar la siguiente funcionalidad (basada en el método MoSCoW):
- Debe tener
- Extensibilidad y compatibilidad con versiones anteriores.
- Manejo de diferentes capas.
- Metadatos sobre si un mosaico es sólido o se puede pasar
- Serialización especial de entidades / disparadores con propiedades / metadatos asociados
- Podría tener
- Algún tipo de inclusión del conjunto de mosaicos para evitar tener archivos / mosaicos dispersos
Estoy desarrollando con C ++ (usando SDL) y apuntando solo a Windows. Cualquier ayuda útil, consejos, sugerencias, ... sería apreciada!
Resultado de la discusión a continuación
He estado diseñando mi formato de archivo de mapa las últimas horas y se me ocurrió un esqueleto (contiene solo capas por ahora; dejaré el resto a todos los que diseñen su propio formato) que quería compartir con todos los interesados, si tienes las mismas intenciones, puedes obtener algún tipo de inspiración. La captura de pantalla a tamaño completo se puede descargar en Imgur .
fuente
Respuestas:
Personalmente, soy más fanático de los formatos binarios con secciones (como Windows PE, pero mucho más simple). También son más fáciles de analizar (pero esa es solo mi opinión ... Trabajé con XML lo suficiente como para darme dolores de cabeza, comprobando si getElementByName ha devuelto un solo valor o una lista de valores ... ugh). Entonces, si yo fuera tú, lo haría algo como esto:
,
Ventajas:
Desventajas
Pero lo mejor de este enfoque en mi opinión es: puedes hacerlo todo por ti mismo. Muchas pruebas y errores, pero al final, terminas aprendiendo mucho.
fuente
Puede utilizar el formato de mapa TMX utilizado por el editor de mosaico (así como por varios otros editores de mapas).
Incluso si no utiliza Tiled usted mismo, el formato TMX admite todas las funciones que mencionó y tiene varios cargadores / analizadores existentes para una variedad de idiomas. También es muy fácil entender el formato y extenderlo para tu propio juego.
fuente