miércoles, 4 de enero de 2012

Crear mapas de regiones en SimCity 4

SimCity 4, aunque ya no es reciente, sigue siendo uno de los videojuegos de gestión urbana de referencia. Permite hacer juego a gran escala, creando regiones que contienen muchos territorios para ciudades distintas pero interconectadas. De vez en cuando me da por reinstalarlo y jugar por una temporada. En esta ocasión me picó la curiosidad de que encontraba mapas preparados por otros jugadores, con regiones inspiradas en la vida real, y que sin embargo me resultaban increiblemente detallados para que alguien los hubiera preparado a mano, lo cual sería una cantidad desmesurada de horas y esfuerzo (que por otra parte, la gente invierte alegremente en juegos de todo tipo, así que no debería sorprenderme tanto) Entonces fue cuando descubrí este manual, que paso a adaptar.

Lo primero que hay que hacer es determinar el tamaño de nuestra región y sus ciudades. Habrá que tener en cuenta que las ciudades sólo pueden tener 1, 2 o 4 km de lado, y serán todas cuadradas, por lo que hay que, o bien "diseñar" primero el tetris de ciudades y obtener así el tamaño del mapa en km, o bien al revés, elegir un mapa y luego llenarlo de ciudades según queramos. Para ilustrar este ejemplo, voy a elegir una región pequeña, de 4 por 6 km, que permite cuadrar a su vez ciudades de todos los tamaños en el mínimo espacio posible. En concreto, éste que sale a continuación:


Una vez definido eso, podemos obtener con una sencilla fórmula matemática las dimensiones del archivo de imagen que será nuestro mapa de relieve. Basta con multiplicar por 64 y sumar 1, para cada lado:

Ancho: 6*64+1 = 385
Alto: 4*64 + 1 = 257

Eso serán los píxeles que deberá tener el mapa. Para hacerlo, podéis tomar una imagen y adaptarla, o bien hacerlo desde cero. Voy a intentar explorar las dos opciones en este tutorial.

Para la opción A, voy a adaptar este mapa de España:


En todo momento usaré Photoshop. Primero he pasado la imagen a escala de grises (Imagen/Modo), y luego he creado una nueva capa, llamada Mar, que he marcado desde el mismo menú como Color RGB. Al hacerlo la capa original volverá a ser RGB, pero ahora estará en gris, no recuperará el color anterior. Luego la he pintado entera de azul, y pinchando sobre ella en el listado de capas, he abierto las opciones de fusión:


Hay que cambiar su opacidad hasta los niveles indicados (Capa subyacente, hasta 85) Ese es el nivel de color gris (de 0 a 255, siendo 0 el negro y 255 el blanco) que el juego va a interpretar como nivel del mar, así que cualquier pixel con un valor inferior a 85 estará bajo el agua. Esta capa nos permite ver en tiempo real qué parte de nuestro mapa estará bajo el mar cuando la ponemos visible. Tal que así:


Notad que he toqueteado el brillo y contraste de la capa en blanco y negro del mapa para que lo que en la realidad está fuera de la Península Ibérica, sea agua (perdónenme los de Baleares y ciudades autónomas), por simplificar. Hay que hacer ver que la imagen, como cualquier mapa que elijamos, no va a resultar realista puesto que los colores más claros no implican necesariamente mayor altura, y los más oscuros, menos altura, pero como ejemplo, bastará.

Una vez hecho esto, borramos la capa del mar, devolvemos la imagen a escala de grises, y la guardamos con formato bmp, con el nombre que va a tener la región en el juego. En mi caso, Frontera. Atención, debe ser de escala de grises de 8 bits.


Ahora toca crear un segundo archivo donde le diremos al juego de qué tamaño van a ser las regiones, que es donde el cuadro de más arriba cobra importancia. Hay que crear una imagen en formato bmp con el nombre config, que tenga las mismas dimensiones en píxeles que tiene el mapa el km. Sí, va a ser minúscula, en este caso, 6x4 píxeles. Luego hay que colorearla de tal forma que los píxeles que vayan a ser parte de una ciudad de 4x4 sean azules, los de 2x2, verdes, y los de 1x1, rojos. Más fácil gráficamente:


Esto nos dará una ciudad grande, una mediana, y 4 pequeñas. Es muy importante que los píxeles azules tengan el valor B (Blue, azul) a 255, los verdes el G (Green, verde) a 255, y los R (Red, rojo) a 255 también, el resto da igual, pero ese es el código que entiende el juego. La mejor forma de hacer esta imagen con Photoshop es crear un lienzo nuevo con esas dimensiones, ampliarlo al máximo, y luego seleccionar los píxeles con el marco rectangular para poder colorearlos con seguridad. Desde el seleccionador de color se puede elegir fácilmente los valores RGB:


Ahora ya tenemos todo lo necesario: Frontera.bmp, y config.bmp. Antes de cargarlos en el juego, vamos a explorar la otra vía.

En la opción B, fabricaremos nuestro propio mapa desde cero. Voy a usar las mismas medidas y el mismo fichero config, sólo crearé otro mapa, al que llamaré Mirador.bmp. Lo ponemos en escala de grises, y luego lo pintamos de negro. Creamos la capa del mar como en la opción A, para ir dibujando el mapa sabiendo qué quedará sobre el agua. Inicialmente saldrá todo en azul. Marcamos como activa la capa del mapa (aunque la del mar debe quedar visible) y seleccionamos como color el tono de gris que queramos. Empezamos a manchar el mapa con el gris, hasta que empecemos a ver cosas por encima del azul del mar. (Truco, en RGB, los grises son los que tienen iguales los tres números, R, G y B) Yo por ejemplo he seleccionado el gris 180, que está por encima del famoso 85 del nivel del mar, y un pincel de borde suave:


Jugando un poco al azar, he conseguido esto:


Y al quitar el agua, queda así:


Ya tenemos dos mapas, del mismo tamaño, y sus ficheros config, que será idénticos. Nos vamos al juego y creamos una región con el nombre que hayamos puesto al fichero del mapa bmp. Da igual que sea todo agua o llana al principio. Aparecerá en Mis documentos/SimCity 4/Regions/NOMBRE. Cerramos el juego y nos vamos allí y cambiamos el archivo config.bmp creado aleatoriamente, por el nuestro. Luego volvemos al juego, recargamos nuestra región, y deberíamos ver cómo ahora luce tal que así:


Luego hay que pulsar la combinación de teclas Ctrl+Alt+Shift+R, que hace que aparezca un diálogo. Buscamos la ruta al mapa Frontera.bmp, y le damos a aceptar. El juego estará un tiempo cargando la información, creando los mapas, y al final dará algo como esto.


Como no parece un mapa útil para jugar, por ser muy exagerados los picos, todo ello debido a la forma en que hemos creado la imagen, bastante rápida y casera, tendremos que retocarlo, lo cual no nos lleva más de unos minutos. Entrando en cada territorio, he subido el nivel de todo el terreno un par de veces, y luego lo he erosionado hasta que ha parecido suficientemente llano para edificar. Luego se armonizan bordes, y se guarda, obteniendo algo como esto:


Repito el proceso con Mirador, y sale:


Incluso aunque no os guste el resultado, jugando un momento con las herramientas de terraformación en el modo inicial del juego, se pueden conseguir regiones muy interesantes y variadas, sabiendo más o menos de antemano el aspecto final. Hay que tener en cuenta que el juego hace sus propios retoques, erosionando el mapa por su cuenta, así que el resultado no es del todo exacto.

¡Espero que os haya resultado útil!

15 comentarios:

  1. voy a ver si logro hacer algo así, no aceptarás pedidos? xDD

    ResponderEliminar
  2. por cierto, haciendo calculos a partir de un campo de futbol del simcity que de largo en la realidad son 100 o 105 metros de largo, yo estimé que los lados de una ciudad grande son de 8 km, 4 km las medianas y 2 km las pequeñas.
    pues me gustaría tener una región que fuera la ciudad de almería y entorno. Porque según mis estimaciones daría desde el casco antiguo con la alcazaba junto a la orografia que hace que la ciudad vaya al este; y con esos 8 km da para que entre el aeropuerto; no obstante si son solo 4 km me conformo con lo que que quepa de Almería. gracias.

    ResponderEliminar
  3. otra cosilla, en tu ejemplo de España veo grandes lagos en Aragón y Valencia

    ResponderEliminar
  4. El mapa de España tiene cosas irreales porque no está hecho en base a un mapa topográfico que represente la altura de la forma que requiere el juego.

    Voy a ver qué puedo hacer, aunque me llevará un tiempo, no puedo dedicarle demasiado entre semana. El Instituto Geográfico Nacional tiene mapas que pueden valer, con el adecuado retoque.

    ResponderEliminar
  5. Vaya, ha resultado que no requiere tanto, un par de horas bien aprovechadas, los mapas del IGN, el photoshop, y algo de paciencia al editar la región para que quede bien. Comprimida pesa 6,3 MB, te la puedo mandar al correo. Para mayor seguridad, te recomiendo que no lo postees aquí, sino que mandes un correo a la dirección del blog (está en la columna de la derecha) y te lo responderé por ahí. Ya me dirás si te gusta :-)

    ResponderEliminar
  6. muchas gracias, ya te he respondido al correo electrónico del blog.
    gracias

    ResponderEliminar
  7. muchas gracias, está de lujo el mapa. Lo mejor es que puedo compartirlo con mi hermano porque usamos Dropbox para jugar con la misma región.
    Ahora es cuestión de que mi hermano y yo aprendamos a hacer mapas.

    ResponderEliminar
  8. Muchísimas gracias por esta guía!
    Ya estaba harto de crear regiones cuadradito por cuadradito xD
    Saludos!

    ResponderEliminar
  9. Hola me puedes hacer uno de México porfas gracias

    ResponderEliminar
  10. Sorry CODIGS, hace meses que desinstalé el juego.

    ResponderEliminar
  11. Ayuda necesito un mapa de Italia es que quiero hacer uno asi

    ResponderEliminar
  12. Muhas gracias. Siguiendo una metodología muy similar pude hacerlo en Gimp en mi Ubuntu 16.04 :D

    ResponderEliminar
  13. Hola! Reconozco el trabajo que lleva esto. ¿Me podrías hacer un mapa de Puertollano (Ciudad Real,CLM, España)? Gracias de antemano!!

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, mándame un correo al email del blog y discutimos precio por privado.

      Eliminar