Para empezar, aclarar que modificar el mapa, pese a ser mucho más sencillo que en otros juegos de Paradox, sigue siendo un proceso largo, trabajoso y potencialmente frustrante si planeas hacer cualquier cosa más complicada que modificar un par de provincias o mover algún borde de sitio. Hay mil cosas que pueden fallar, y salvo en escasas excepciones el juego no te va a decir dónde está tu error.
Asumiré que se tienen unos mínimos conocimientos de Photoshop o del Gimp (alternativa gratuíta al Photoshop para los que no lo conozcáis). Bajo ningún concepto se os ocurra usar el Paint a no ser que seáis masoquistas
También, no por repetido deja de ser importante: HACED COPIAS DE SEGURIDAD DE TODOS LOS FICHEROS QUE MODIFIQUÉIS. Evitarán muchos quebraderos de cabeza.
Preliminares
Por si alguien no conoce los diferentes modos de color de los ficheros de imagen, paso a detallar los dos que usan los ficheros del juego:
- Modo RGB: Significa que cada pixel tiene asociados tres valores que definen su color: Uno es el valor de rojo (R), otro es el valor de verde (G) y otro el valor de azul (B). Juntando estos tres valores se saca cualquier color.
Los ficheros del juego almacenan estos tres valores con 8 bits para cada uno, lo cual nos da un color de 24 bits. Pongo esto porque si el programa que uséis os pregunta a cuantos bits queréis grabar la imagen, es importante que lo pongáis a 24 (yo al principio no lo hice y me volví majareta hasta que lo descubrí).
- Modo indexado: Significa que el fichero tiene un conjunto de 256 colores (al que llamaremos "paleta") que serán los que use exclusivamente en esa imagen. Cada color tiene un índice (del 0 al 255), y para definir qué color tiene cada pixel símplemente se le asocia el número al que corresponde su color en la paleta.
Aquí lo que hay que tener en cuenta es que al juego no le importa qué color hay en un determinado pixel. Lo que va a mirar es su "índice" en la paleta. Es decir: Si tenemos una imagen en la que el color negro tiene el índice 1 en la paleta y otra en la que el color blanco tiene el índice 1 en la paleta, para el juego ambos serán el mismo color. A la inversa, si tenemos una imagen en la que el negro tiene el índice 1 y otra en la que el negro tiene el índice 2, para el juego serán dos colores distintos. Por eso conviene siempre que editemos imágenes así usar la paleta de las imágenes originales para no liarnos.
Ficheros
Para empezar, ¿dónde está el mapa? En un alarde de originalidad, se encuentra en la carpeta "map\". Allí observamos una serie de ficheros que paso a detallar:
Ficheros de imagen
Cabe destacar que en todos los ficheros de imagen el mapa está al revés. Si nos molesta, podemos ponerlo al derecho siempre que nos acordemos de dejarlo otra vez al revés cuando hayamos terminado.
- provinces.bmp: Este fichero define los contornos de todas las provincias del juego. Es un fichero en color RGB, y cada provincia tiene un valor RGB único asociado. Es importante que no haya dos provincias con el mismo color, porque el juego pensará que son la misma.
- rivers.bmp: Aquí se definen los ríos. Es un fichero de color indexado, y los diferentes colores son (siempre tomando los de la paleta original):
* Blanco: Define una zona de tierra en la que no hay río.
* Rosa: Define una zona de océano o de PTI (terra incógnita permanente = permanent terra incógnita).
* Diferentes tonos de azul: Definen un río. Cuanto más oscuro, más ancho será el río en ese punto.
* Verde: Es el nacimiento de un río.
* Rojo: Define el punto de unión entre dos ríos.
Este fichero es bastante simple, lo único que hay que tener en cuenta es que un río siempre debe nacer en un pixel verde y morir o bien en un pixel rojo, o bien en el mar. Un rio, además, nunca puede tener en ningún lugar de su cauce un grosor mayor de un pixel.
- terrain.bmp: Define el tipo de terreno: Los bosques, pantanos, zonas montañosas... Es un fichero de color indexado, y el id de cada pixel define de qué tipo de terreno se trata. La correspondencia entre pixels y tipos de terreno se define en el fichero terrain.txt.
- topology.bmp: Define la topología del terreno, es decir, las elevaciones, montañas, llanuras... Sirve básicamente para que las montañas salgan bonitas y elevadas en el mapa 3D; si no defines también esa zona concreta como montañosa en terrain.bmp el juego no la tomará como tal por muchas montañas que pongas aquí. Es un fichero de color indexado. Básicamente, cuanto más claro sea el pixel, más elevado saldrá en el mapa.
Ficheros de texto
- default.map: Es el fichero más básico de todos. Es el primero al que mirará el juego para encontrar todo lo demás: Define cómo se llama y dónde está cada fichero, así como lo que más nos va a importar: El número de provincias terrestres y el número total de provincias. Si vamos a añadir (o a quitar) alguna provincia hay que modificar estos valores.
* El número total de provincias es el valor "max_provinces", y realmente es el número total de provincias + 1 (por la PTI). Si contamos con un programa el número total de colores de nuestro archivo provinces.bmp, debe darnos como resultado este mismo número.
* El número de provincias terrestres se define con el valor "sea_starts". Este valor será la ID de la primera provincia marítima que hemos creado. A partir de este valor, todas las demás provincias las tomará como marítimas, y todas las anteriores como terrestres.
- definition.csv: Aquí se asocian los valores RGB del fichero "provinces.bmp" con los IDs numéricos de cada provincia. Contiene una línea por provincia, y cada línea tiene el siguiente formato:
[ID numérica];[Valor rojo];[Valor verde];[Valor azul];[Nombre de la provincia]
Ni que decir tiene que no se pueden repetir ni las ids numéricas, ni poner los mismos valores RGB para dos provincias distintas.
- positions.txt: Este fichero define las coordenadas de todos los "objetos" de cada provincia. Por objetos me refiero a la ciudad, a los soldados, a la fábrica, al centro de comercio, al texto con el nombre de la provincia y al puerto. Si para alguno de estos objetos no especificamos coordenadas, el juego los pondrá automáticamente en el centro de la provincia. Más adelante me explayaré más con las particularidades de este angustioso fichero, pero de momento baste con decir que si lo dejamos completamente en blanco (pero que esté presente) el juego arrancará. Si símplemente estamos modificando el mapa por defecto sólo habría que hacer pequeños ajustes en el fichero original.
- terrain.txt: Este fichero asocia los índices de los pixeles en terrain.bmp con los diferentes tipos de terreno, y especifica sus propiedades. A no ser que queráis añadir nuevos tipos de terreno, podéis dejar el original como está.
- trees.txt: Aquí se definen los diferentes tipos de árboles; más que nada indica al juego dónde tiene que buscar el gráfico del arbol. Se puede dejar tal como está sin problemas.
- continent.txt: Este fichero asocia los ids numéricos de las provincias a su correspondiente continente. Si añadís alguna provincia, aseguraos de poner su id aquí en el continente al que pertenezca.
- climate.txt: Parecido al anterior, este fichero asocia los ids numéricos de las provincias a un tipo de clima determinado. Sirve para decidir cómo de duros son los inviernos y si es zona tropical o no (con el desgaste que esto conlleva). Si añadís alguna provincia, ponedla aquí también en el lugar correspondiente.
Ficheros de texturas
Estos ficheros son ya un poco más "avanzados". Son para hacer bonito, y sólo habrá que editarlos en caso de que cambiéis el contorno de las costas. Se encuentran en la subcarpeta "terrain" del directorio "map".
Para poder abrirlos probablemente hará falta bajarse algún plugin, afortunadamente son grátis y los hay tanto para el Photoshop como para el Gimp. Ahora mismo no tengo la dirección, luego la pongo.
Hay que grabarlos también con unas determinadas opciones que ahora tampoco tengo a mano. Luego lo edito para ponerlas.
- colormap.dds: Contiene las texturas de los continentes, es decir, los colores con los que el juego pinta la tierra. En su canal alfa se encuentra la definición de la PTI del mapa.
- colormap_water.dds: Contiene las texturas de los océanos, ríos y mares: el complementario del anterior. Cabe destacar que tiene la mitad del tamaño de colormap.dds. Aquí se pueden suavizar las costas para que no queden como "dientes de sierra", suavizando las costas y pintándolas de color azul. También pintará los ríos, así que si los dejamos en negro se verán mal. El canal alfa de esta imagen también tiene la información de la PTI del mapa.
Paso a paso
Teniendo en cuenta toda la parrafada anterior, paso a detallar un poco por encima cómo haríamos para añadir una nueva provincia al mapa.
1.- Abrimos el fichero default.map en nuestro editor de texto favorito. Podemos usar el bloc de notas, pero yo recomiendo alguno más avanzado como el UltraEdit32. Nos fijamos en los valores "sea_starts" y "max_provinces".
2.- Abrimos definition.csv. Vamos a la provincia que tenga como id el valor obtenido en "sea_starts" en el punto 1 y le cambiamos la id para que en vez de "sea_starts" sea "max_provinces". ¿Qué hemos hecho con esto? Pues hemos cogido la primera provincia marítima del mapa y la hemos convertido en la última de todas.
3.- Si ya existía más adelante otra provincia con la misma id que le acabamos de poner a la provincia marítima, nos la cargamos. Recordad: Nada de IDs repetidas. Para que quede todo ordenado, también me gusta coger la línea que acabamos de editar y ponerla donde estaba la que nos hemos cargado, para que estén ordenadas por ID. Pero no debería ser necesario.
4.- Nos inventamos un valor RGB que no se encuentre ya presente aquí (lo buscamos con el programa para asegurnaros de que no está), y justo después de la última provincia terrestre creamos una nueva entrada que tenga como ID el valor de "sea_starts", como valores RGB los que nos hemos inventado, y como nombre el que queramos. ¿Qué hemos hecho? En lugar de la que antes era la primera provincia marítima, ahora hemos puesto la que será la última provincia terrestre, la que vamos a añadir.
5.- En default.map sumamos uno tanto a "sea_starts" como a "max_provinces": ahora tenemos una provincia terrestre más, y evidentemente también una provincia más en total.
6.- Abrimos provinces.bmp en nuestro editor gráfico. Elegimos como color el que nos hemos inventado, escribiendo directamente los valores RGB.
7.- Usando siempre herramientas sin suavizado como el lápiz -si la herramienta suaviza los píxeles que dibujemos, añadirá un montón de píxeles de otros colores que no queremos ni controlamos-, dibujamos pixel a pixel la nueva provincia donde deseemos. Conviene no hacerlas muy grandes; en concreto, si la provincia tiene más de 50x50 píxeles puede provocar que el juego no cargue. Si para crear la nueva provincia estamos machacando píxeles correspondientes a otras, hay que apuntar los valores RGB de las provincias sobre las que estamos escribiendo. Cuando terminemos, guardamos la imagen.
8.- Si hemos modificado el contorno de algún continente o añadido alguna isla, hay que modificar los otros tres ficheros de imagen para poner tierra donde antes había agua. También podemos aprovechar para añadir montañas, bosques, ríos o lo que queráis. Aseguraos de que los continentes y las islas se corresponden perfectamente, pixel a pixel, con los que hay en provinces.bmp.
9.- Abrimos positions.txt en nuestro editor de texto. Al igual que hicimos en definition.csv cambiamos la ID de la primera provincia marítima (la que tiene la ID de la provincia que hemos añadido) y le asignamos la de la última + 1 (la que ahora tiene en definition.csv).
10.- Creamos una entrada para nuestra nueva provincia (copiando y pegando de otra provincia terrestre y cambiando la id), e introducimos las coordenadas de cada objeto según convenga, tratando de que queden siempre dentro de nuestra provincia.
11.- Cambiamos también las coordenadas de los objetos correspondientes a las provincias en las que hemos dibujado encima. Al haber metido nuestra provincia en medio, los objetos que se hallaban antes dentro de su correspondiente provincia ahora pueden estar dentro de la nuestra. Cambiamos las coordenadas que hagan falta para que todo quede dentro de la provincia que debe.
12.- Guardamos todo, cargamos el juego y rezamos
Con esto ya debería ser suficiente, y nuestra nueva y flamante provincia debería aparecer en el mapa. Faltaría editar text.csv para escribir el nombre que queremos que se muestre y editar las texturas si hemos comido terreno al mar cambiando continentes o dibujando islas, pero eso lo dejo para más adelante. Espero que más o menos se entienda, y cualquier duda o problema no dudéis en preguntarlo en este mismo hilo.
Asumiré que se tienen unos mínimos conocimientos de Photoshop o del Gimp (alternativa gratuíta al Photoshop para los que no lo conozcáis). Bajo ningún concepto se os ocurra usar el Paint a no ser que seáis masoquistas
También, no por repetido deja de ser importante: HACED COPIAS DE SEGURIDAD DE TODOS LOS FICHEROS QUE MODIFIQUÉIS. Evitarán muchos quebraderos de cabeza.
Preliminares
Por si alguien no conoce los diferentes modos de color de los ficheros de imagen, paso a detallar los dos que usan los ficheros del juego:
- Modo RGB: Significa que cada pixel tiene asociados tres valores que definen su color: Uno es el valor de rojo (R), otro es el valor de verde (G) y otro el valor de azul (B). Juntando estos tres valores se saca cualquier color.
Los ficheros del juego almacenan estos tres valores con 8 bits para cada uno, lo cual nos da un color de 24 bits. Pongo esto porque si el programa que uséis os pregunta a cuantos bits queréis grabar la imagen, es importante que lo pongáis a 24 (yo al principio no lo hice y me volví majareta hasta que lo descubrí).
- Modo indexado: Significa que el fichero tiene un conjunto de 256 colores (al que llamaremos "paleta") que serán los que use exclusivamente en esa imagen. Cada color tiene un índice (del 0 al 255), y para definir qué color tiene cada pixel símplemente se le asocia el número al que corresponde su color en la paleta.
Aquí lo que hay que tener en cuenta es que al juego no le importa qué color hay en un determinado pixel. Lo que va a mirar es su "índice" en la paleta. Es decir: Si tenemos una imagen en la que el color negro tiene el índice 1 en la paleta y otra en la que el color blanco tiene el índice 1 en la paleta, para el juego ambos serán el mismo color. A la inversa, si tenemos una imagen en la que el negro tiene el índice 1 y otra en la que el negro tiene el índice 2, para el juego serán dos colores distintos. Por eso conviene siempre que editemos imágenes así usar la paleta de las imágenes originales para no liarnos.
Ficheros
Para empezar, ¿dónde está el mapa? En un alarde de originalidad, se encuentra en la carpeta "map\". Allí observamos una serie de ficheros que paso a detallar:
Ficheros de imagen
Cabe destacar que en todos los ficheros de imagen el mapa está al revés. Si nos molesta, podemos ponerlo al derecho siempre que nos acordemos de dejarlo otra vez al revés cuando hayamos terminado.
- provinces.bmp: Este fichero define los contornos de todas las provincias del juego. Es un fichero en color RGB, y cada provincia tiene un valor RGB único asociado. Es importante que no haya dos provincias con el mismo color, porque el juego pensará que son la misma.
- rivers.bmp: Aquí se definen los ríos. Es un fichero de color indexado, y los diferentes colores son (siempre tomando los de la paleta original):
* Blanco: Define una zona de tierra en la que no hay río.
* Rosa: Define una zona de océano o de PTI (terra incógnita permanente = permanent terra incógnita).
* Diferentes tonos de azul: Definen un río. Cuanto más oscuro, más ancho será el río en ese punto.
* Verde: Es el nacimiento de un río.
* Rojo: Define el punto de unión entre dos ríos.
Este fichero es bastante simple, lo único que hay que tener en cuenta es que un río siempre debe nacer en un pixel verde y morir o bien en un pixel rojo, o bien en el mar. Un rio, además, nunca puede tener en ningún lugar de su cauce un grosor mayor de un pixel.
- terrain.bmp: Define el tipo de terreno: Los bosques, pantanos, zonas montañosas... Es un fichero de color indexado, y el id de cada pixel define de qué tipo de terreno se trata. La correspondencia entre pixels y tipos de terreno se define en el fichero terrain.txt.
- topology.bmp: Define la topología del terreno, es decir, las elevaciones, montañas, llanuras... Sirve básicamente para que las montañas salgan bonitas y elevadas en el mapa 3D; si no defines también esa zona concreta como montañosa en terrain.bmp el juego no la tomará como tal por muchas montañas que pongas aquí. Es un fichero de color indexado. Básicamente, cuanto más claro sea el pixel, más elevado saldrá en el mapa.
Ficheros de texto
- default.map: Es el fichero más básico de todos. Es el primero al que mirará el juego para encontrar todo lo demás: Define cómo se llama y dónde está cada fichero, así como lo que más nos va a importar: El número de provincias terrestres y el número total de provincias. Si vamos a añadir (o a quitar) alguna provincia hay que modificar estos valores.
* El número total de provincias es el valor "max_provinces", y realmente es el número total de provincias + 1 (por la PTI). Si contamos con un programa el número total de colores de nuestro archivo provinces.bmp, debe darnos como resultado este mismo número.
* El número de provincias terrestres se define con el valor "sea_starts". Este valor será la ID de la primera provincia marítima que hemos creado. A partir de este valor, todas las demás provincias las tomará como marítimas, y todas las anteriores como terrestres.
- definition.csv: Aquí se asocian los valores RGB del fichero "provinces.bmp" con los IDs numéricos de cada provincia. Contiene una línea por provincia, y cada línea tiene el siguiente formato:
[ID numérica];[Valor rojo];[Valor verde];[Valor azul];[Nombre de la provincia]
Ni que decir tiene que no se pueden repetir ni las ids numéricas, ni poner los mismos valores RGB para dos provincias distintas.
- positions.txt: Este fichero define las coordenadas de todos los "objetos" de cada provincia. Por objetos me refiero a la ciudad, a los soldados, a la fábrica, al centro de comercio, al texto con el nombre de la provincia y al puerto. Si para alguno de estos objetos no especificamos coordenadas, el juego los pondrá automáticamente en el centro de la provincia. Más adelante me explayaré más con las particularidades de este angustioso fichero, pero de momento baste con decir que si lo dejamos completamente en blanco (pero que esté presente) el juego arrancará. Si símplemente estamos modificando el mapa por defecto sólo habría que hacer pequeños ajustes en el fichero original.
- terrain.txt: Este fichero asocia los índices de los pixeles en terrain.bmp con los diferentes tipos de terreno, y especifica sus propiedades. A no ser que queráis añadir nuevos tipos de terreno, podéis dejar el original como está.
- trees.txt: Aquí se definen los diferentes tipos de árboles; más que nada indica al juego dónde tiene que buscar el gráfico del arbol. Se puede dejar tal como está sin problemas.
- continent.txt: Este fichero asocia los ids numéricos de las provincias a su correspondiente continente. Si añadís alguna provincia, aseguraos de poner su id aquí en el continente al que pertenezca.
- climate.txt: Parecido al anterior, este fichero asocia los ids numéricos de las provincias a un tipo de clima determinado. Sirve para decidir cómo de duros son los inviernos y si es zona tropical o no (con el desgaste que esto conlleva). Si añadís alguna provincia, ponedla aquí también en el lugar correspondiente.
Ficheros de texturas
Estos ficheros son ya un poco más "avanzados". Son para hacer bonito, y sólo habrá que editarlos en caso de que cambiéis el contorno de las costas. Se encuentran en la subcarpeta "terrain" del directorio "map".
Para poder abrirlos probablemente hará falta bajarse algún plugin, afortunadamente son grátis y los hay tanto para el Photoshop como para el Gimp. Ahora mismo no tengo la dirección, luego la pongo.
Hay que grabarlos también con unas determinadas opciones que ahora tampoco tengo a mano. Luego lo edito para ponerlas.
- colormap.dds: Contiene las texturas de los continentes, es decir, los colores con los que el juego pinta la tierra. En su canal alfa se encuentra la definición de la PTI del mapa.
- colormap_water.dds: Contiene las texturas de los océanos, ríos y mares: el complementario del anterior. Cabe destacar que tiene la mitad del tamaño de colormap.dds. Aquí se pueden suavizar las costas para que no queden como "dientes de sierra", suavizando las costas y pintándolas de color azul. También pintará los ríos, así que si los dejamos en negro se verán mal. El canal alfa de esta imagen también tiene la información de la PTI del mapa.
Paso a paso
Teniendo en cuenta toda la parrafada anterior, paso a detallar un poco por encima cómo haríamos para añadir una nueva provincia al mapa.
1.- Abrimos el fichero default.map en nuestro editor de texto favorito. Podemos usar el bloc de notas, pero yo recomiendo alguno más avanzado como el UltraEdit32. Nos fijamos en los valores "sea_starts" y "max_provinces".
2.- Abrimos definition.csv. Vamos a la provincia que tenga como id el valor obtenido en "sea_starts" en el punto 1 y le cambiamos la id para que en vez de "sea_starts" sea "max_provinces". ¿Qué hemos hecho con esto? Pues hemos cogido la primera provincia marítima del mapa y la hemos convertido en la última de todas.
3.- Si ya existía más adelante otra provincia con la misma id que le acabamos de poner a la provincia marítima, nos la cargamos. Recordad: Nada de IDs repetidas. Para que quede todo ordenado, también me gusta coger la línea que acabamos de editar y ponerla donde estaba la que nos hemos cargado, para que estén ordenadas por ID. Pero no debería ser necesario.
4.- Nos inventamos un valor RGB que no se encuentre ya presente aquí (lo buscamos con el programa para asegurnaros de que no está), y justo después de la última provincia terrestre creamos una nueva entrada que tenga como ID el valor de "sea_starts", como valores RGB los que nos hemos inventado, y como nombre el que queramos. ¿Qué hemos hecho? En lugar de la que antes era la primera provincia marítima, ahora hemos puesto la que será la última provincia terrestre, la que vamos a añadir.
5.- En default.map sumamos uno tanto a "sea_starts" como a "max_provinces": ahora tenemos una provincia terrestre más, y evidentemente también una provincia más en total.
6.- Abrimos provinces.bmp en nuestro editor gráfico. Elegimos como color el que nos hemos inventado, escribiendo directamente los valores RGB.
7.- Usando siempre herramientas sin suavizado como el lápiz -si la herramienta suaviza los píxeles que dibujemos, añadirá un montón de píxeles de otros colores que no queremos ni controlamos-, dibujamos pixel a pixel la nueva provincia donde deseemos. Conviene no hacerlas muy grandes; en concreto, si la provincia tiene más de 50x50 píxeles puede provocar que el juego no cargue. Si para crear la nueva provincia estamos machacando píxeles correspondientes a otras, hay que apuntar los valores RGB de las provincias sobre las que estamos escribiendo. Cuando terminemos, guardamos la imagen.
8.- Si hemos modificado el contorno de algún continente o añadido alguna isla, hay que modificar los otros tres ficheros de imagen para poner tierra donde antes había agua. También podemos aprovechar para añadir montañas, bosques, ríos o lo que queráis. Aseguraos de que los continentes y las islas se corresponden perfectamente, pixel a pixel, con los que hay en provinces.bmp.
9.- Abrimos positions.txt en nuestro editor de texto. Al igual que hicimos en definition.csv cambiamos la ID de la primera provincia marítima (la que tiene la ID de la provincia que hemos añadido) y le asignamos la de la última + 1 (la que ahora tiene en definition.csv).
10.- Creamos una entrada para nuestra nueva provincia (copiando y pegando de otra provincia terrestre y cambiando la id), e introducimos las coordenadas de cada objeto según convenga, tratando de que queden siempre dentro de nuestra provincia.
11.- Cambiamos también las coordenadas de los objetos correspondientes a las provincias en las que hemos dibujado encima. Al haber metido nuestra provincia en medio, los objetos que se hallaban antes dentro de su correspondiente provincia ahora pueden estar dentro de la nuestra. Cambiamos las coordenadas que hagan falta para que todo quede dentro de la provincia que debe.
12.- Guardamos todo, cargamos el juego y rezamos
Con esto ya debería ser suficiente, y nuestra nueva y flamante provincia debería aparecer en el mapa. Faltaría editar text.csv para escribir el nombre que queremos que se muestre y editar las texturas si hemos comido terreno al mar cambiando continentes o dibujando islas, pero eso lo dejo para más adelante. Espero que más o menos se entienda, y cualquier duda o problema no dudéis en preguntarlo en este mismo hilo.