Respuestas:
Estoy de acuerdo con eBusiness. Depende del tamaño y de cómo quiera editarlo.
Estima el tamaño de bytes de tu mapa en una representación razonablemente compacta. También decida qué partes del mapa pueden cambiar a medida que se juega. Las partes que no cambian pueden cargarse y no tienen que guardarse. Si el tamaño estimado es pequeño, simplemente almacene todo en la memoria. No vale la pena la complejidad adicional de cargar partes del mapa y rastrear lo que ha cargado o no, a menos que los datos sean tan grandes que sean necesarios.
Por ejemplo, si estaba escribiendo Civilization II , el tamaño de su mapa podría ser de 100x100 mosaicos.
Eso es menos de 30k para una representación binaria compacta del mapa Civ II + objetos, por lo que puede almacenarlo todo en la memoria, incluso si usa un formato detallado que es mucho más grande. Obtuve los números anteriores de alguien que realizó ingeniería inversa en la estructura del mapa Civ II .
Daggerfall , que algunos consideran que tiene un mapa ridículamente grande, parece tener 5000x2500 y alrededor de 25 megabytes, pero también tiene una gran cantidad de NPC (750,000 es lo que he leído, pero eso parece muy alto). En las máquinas de escritorio / portátiles actuales, esto también podría caber en la memoria, pero en dispositivos móviles o navegadores que podrían ser demasiado grandes. Hay una wiki que describe el formato del mapa Daggerfall .
Puede reducir el tamaño identificando y factorizando la redundancia . Por ejemplo, en lugar de almacenar 100,000 árboles o espadas idénticos cada uno en formato XML, almacene un árbol y una espada y 100,000 referencias a ellos. En los formatos binarios, la referencia puede ser de solo 1 o 2 bytes, y en un formato más detallado, la referencia puede ser razonablemente pequeña.
Haz lo más simple que funcione para tu juego. Si el mapa es pequeño, no importa si usa un formato compacto o detallado. Si el formato compacto encajaría en la memoria pero el formato detallado no lo haría, debe decidir si el trabajo adicional del formato binario es más o menos que el trabajo adicional de cargar partes del mapa. Eso dependerá del juego. En un juego tipo Civ donde necesitas todos los datos para simular giros, el formato binario es probablemente una mejor opción. En un juego similar a Daggerfall donde no necesitas cargar áreas excepto lo que está cerca del jugador, cargar porciones del mapa es probablemente una mejor opción. Si el mapa es así grande, incluso si el formato compacto no cabe en la memoria, primero pregúntese si realmente vale la pena todo el trabajo extra para manejarlo, y si es así, diseñe un formato binario del que pueda cargar porciones.
Para mi proyecto actual (hobby), los mapas y todos los objetos en ellos caben en 50 MB, por lo que estaría bien mantenerlo todo en la memoria. Sin embargo, quiero que se ejecute en el navegador, y 50 MB es más de lo que quiero transferir a través de la red, por lo que los mantengo en la memoria en el servidor y luego cargo solo partes del mundo en el cliente. Mis mosaicos de mapa son 1 byte por mosaico, 2048x2048 mosaicos (4 MB). Los objetos (árboles, sillas, orcos, etc.) están codificados con JSON para simplificar. En el cliente solo cargo las áreas del mapa (incluidos sus objetos) que están cerca del jugador.
Cuánto cargar depende al menos de qué tan grande es el mapa, si los datos pueden caber razonablemente en la memoria, entonces no hay realmente ninguna razón para molestarse con la carga progresiva.
Lo más notable que hace XML es ocupar mucho espacio adicional de almacenamiento / memoria / espacio de red / tráfico. Si cree que usar XML es divertido, asegúrese de hacerlo solo para cantidades relativamente pequeñas de datos.
Cuando diseñe un formato de datos, debe tener en cuenta cómo desea editar estos datos. Puede usar un editor de texto simple para escribir sus datos como un archivo de texto sin formato, puede usar estos archivos directamente o puede convertirlos a un formato binario para ahorrar espacio. Podría usar un editor de imágenes para hacer sus niveles como mapas de bits, de nuevo, es posible que desee convertir a un archivo más pequeño.
O podría hacer su propio editor, en cuyo caso hay pocas razones para no usar un formato binario compacto.
No hay una sola respuesta a estas preguntas. Todos estos son inherentemente de usted.
Puede guardar mapas de la forma que desee y mostrarlos / renderizarlos en cualquier momento.