Creacion de Plugins para OCTGN
Creacion de Plugins para OCTGN
Creacion de Plugins para OCTGN
por eloooooooi
1ª edición
22/02/2011
Lo primero que debemos tener en cuenta es que hay varios tipos de archivo relacionados con
OCTGN:
Archivos con extensión “.o8s” (contenedor): Estos archivos se rigen por las reglas
fijadas en el juego (.o8g) al que corresponden y contienen la información de las cartas
y demás objetos de un determinado set. Personalmente recomiendo crear un set
nuevo por cada expansión o ciclo de cartas que se distribuya comercialmente.
Archivos con extensión “.o8d”: Aquí se almacena la información sobre las cartas que
componen una baraja que hemos guardado.
Archivos con extensión “.rels”: Unos de los archivos más problemáticos a la hora de
crear y actualizar un juego de cartas. Se encargan de relacionar la información escrita
de las cartas, los contadores y demás elementos de un set determinado con sus
imágenes correspondientes.
Archivos con extensión “.xml”: Estos archivos contienen la información esencial de las
cartas de un set y demás información importante, así como las características
principales de un juego. En el caso de los sets se puede jugar perfectamente sin
rellenar los campos de propiedades pero es altamente recomendable hacerlo si
queremos usar la función de búsqueda del editor de mazos.
Paso 1: Descargar el archivo .o8g y uno de los sets con la extensión .o8s y alojarlos en la misma
carpeta. A partir de ahora siempre trabajaremos dentro de esta carpeta.
Paso 2: Descomprimir el contenido del archivo .o8g dentro de una carpeta con el mismo
nombre.
Para ello recomiendo tener instalado el programa 7-zip que nos permitirá realizar esta
operación haciendo clic con el botón derecho sobre el archivo en cuestión.
Paso 3: Cambiar el nombre de la carpeta que acabamos de crear y empezar a editar nuestro
nuevo plugin.
Primero renombraremos la carpeta haciendo clic derecho sobre ella y usando la opción
Renombrar.
Las subcarpetas contienen los archivos .rels y las imágenes que se usarán como fondo de la
mesa de juego, iconos para las zonas de juego, los contadores y el dorso de las cartas.
Trataremos todos estos elementos más adelante.
A continuación nos dispondremos a editar el archivo magic.xml para definir las reglas del juego
y las propiedades de las cartas. Para ello es necesario leer y releer el reglamento del juego que
vamos a adaptar hasta que tengamos claro cómo funciona.
Las reglas de Naruto CCG pueden encontrarse en la web oficial del juego en formato PDF. Son
sencillas de aprender así que con un par de lecturas tendremos la información suficiente para
empezar a trabajar. Lo primero que hay que hacer es abrir el archivo magic.xml con un editor
de texto medianamente decente. Yo uso WordPad bajo Windows Vista.
El primer bloque de texto es el que define la versión del plugin, su nombre, su identificador y
algunos detalles más. Cambiaremos esta información de tal manera que el nuevo plugin tenga
un identificador totalmente distinto y único. Para ello es necesario acudir a una página web
que genere códigos GUID como, por ejemplo, la web de Online GUID Generator.
Pulsando sobre el botón “Generate some GUIDs!” obtendremos un nuevo código exclusivo
para nuestro plugin que no se podrá utilizar en ningún otro para no causar problemas de
compatibilidad. Es un tema bastante complejo pero no creo que sea necesario decir nada más
ya que en la práctica nos va a resultar indiferente. Podéis encontrar información adicional en la
página web oficial de OCTGN.
Con esta información modificamos la cabecera del archivo magic.xml de tal manera que quede
como sigue:
Ahora procedemos a modificar las propiedades de las cartas. Actualmente disponemos de
todos los campos de las cartas de Warhammer Invasion LCG.
Ahora es cuando usamos el reglamento de Naruto CCG para elegir y definir los campos de cada
carta. Hay que tener en cuenta todos y cada uno de los tipos de carta que se usan en este
juego. Seguidamente, editamos los campos con los nuevos nombres de cada una de las
propiedades. (Nota: El título de la carta es un campo permanente así que no es necesario
explicitarlo en este paso.)
Una vez definidos todos los campos de las cartas nos quedaría algo como lo siguiente:
Los campos pueden variar dependiendo de quién haga el plugin pero por norma general
suelen ser siempre bastante parecidos.
Una vez hecho esto deberemos editar las zonas de juego y las acciones de los objetos que hay
en ellas. En primer lugar detectaremos qué zonas de juego hay actualmente en la definición
del juego.
Una parte de la definición de la mesa de juego. Esta definición termina con la etiqueta
</table>:
La pila de descartes:
visibility=”none”: Nadie, ni siquiera el propietario de la zona, puede ver las cartas que
hay en ella.
visibility=”all”: Todos los jugadores, incluyendo el propietario de la zona, pueden ver
las cartas que hay en ella.
visibility=”me”: Únicamente el propietario de la zona puede ver las cartas que hay en
ella.
Por el momento, debido a que en breve el programa OCTGN dejará de tener soporte para
funciones escritas en XML, no crearé ninguna acción nueva ni modificaré las que ya hay en la
definición del juego. Más adelante, cuando las acciones sólo se puedan escribir en Python,
haré un pequeño tutorial sobre programación de funciones para nuestros plugins.
También tendríamos que modificar el resumen del jugador para que mostrara el turno en que
éste se encuentra, ya que Naruto CCG tiene en cuenta ésta variable durante el juego:
En este caso todas las cartas del mazo, sean de la sección que sean, aparecerán en la zona
correspondiente al mazo una vez que carguemos esta baraja. Si necesitáis que una
determinada sección aparezca en la mano o en otra zona del juego sólo tenéis que modificar el
campo group=”xxx” indicando a qué zona queréis que vayan a parar esas cartas.
Ha llegado la hora de indagar en la carpeta _rels. La abrimos y vemos que en su interior hay
dos archivos con extensión .rels.
El primero, llamado .rels, no hace falta modificarlo. El segundo, llamado magic.xml.rels,
contiene toda la información referente a los iconos y tiene que ser modificada. A simple vista
ya podemos detectar un fallo y es que durante la creación de las nuevas zonas de juego le
hemos asociado la referencia r08 a la zona llamada Battle Reward Area. Esto no causaría
ningún problema si no fuera porque la referencia r08 pertenece a la imagen que utilizamos
como icono para la mano, como podemos ver a continuación:
Esto nos obligará a modificar todas las referencias para que no haya conflictos entre imágenes.
Antes de proceder, haremos una lista con todas las imágenes que necesitaremos y le
asignaremos un identificador a cada una de ellas:
Identificador Imagen
r01 Dorso de las cartas.
r02 Frontal de las cartas (nunca lo he necesitado).
r03 Icono para el Indicador de Turno.
r04 Icono para la Mano.
r05 Icono para el Mazo.
r06 Icono para la Pila de Descartes.
r07 Icono para la Zona de Chakra.
r08 Icono para la Zona de Recompensas de Batalla.
r09 Fondo para la mesa de juego.
Y cuando lo tengamos bien claro modificaremos el archivo magic.xml.rels para que contenga
esta información. Habrá que especificar la ruta de las imágenes que servirán como iconos o
fondos:
Ahora tendremos que crear las imágenes pertinentes y volver a modificar el archivo magic.xml
para que los iconos correspondan a las zonas adecuadas. Esto último lo podéis comprobar
directamente descargando el plugin para Naruto CCG desde mi blog.
En cuanto a las imágenes, lo que haremos será reutilizar las del plugin de Warhammer Invasion
LCG para probar si éste funciona correctamente. Más adelante ya crearemos nuevas imágenes
que se correspondan con el juego de cartas.
Lo más importante de este paso es que todas las imágenes existan en las rutas definidas en el
archivo magic.xml.rels y que éstas tengan la extensión correcta. Para comprobarlo nos
dirigimos a cada una de las carpetas cards, counters, groups y background.
Entramos en la carpeta cards y comprobamos que las imágenes son correctas:
Hacemos lo mismo con la carpeta counters y comprobamos que hay muchas imágenes pero
ninguna con el nombre turn.png:
Borramos todas las imágenes menos una de ellas y la renombramos a turn.png para que todo
concuerde con los datos del archivo magic.xml.rels:
Hacemos lo mismo con la carpeta groups. En este caso hay menos imágenes de las necesarias:
Duplicamos algunas de ellas y renombramos todas las imágenes para que los datos del archivo
magic.xml.rels sean correctos:
Repito: todas las imágenes se han aprovechado del plugin de Warhammer Invasion LCG con el
fin de comprobar la funcionalidad del nuevo plugin. Una vez comprobado que funciona se
pueden cambiar por las imágenes adecuadas.
Paso 7: Empaquetar el nuevo archivo .o8g
Una vez modificados todos los archivos del antiguo plugin llega la hora de crear el nuevo
archivo de definición del juego. Para ello debemos dirigirnos al interior de la carpeta Naruto
CCG:
A continuación seleccionamos todos los archivos y los comprimimos en un archivo ZIP a través
del clic derecho sobre cualquiera de ellos:
Cuando el proceso finalice tendremos un archivo llamado Naruto CCG.zip en esta misma
carpeta, junto al resto de los archivos. Yo recomiendo moverlo a otro lugar como, por ejemplo,
nuestra carpeta inicial de trabajo.
Estos son todos los pasos necesarios para crear un plugin nuevo. Todavía hay que depurar
algunas cosas como pueden ser las imágenes y las nuevas funciones/acciones para las zonas de
juego y las cartas que hay en ellas pero el plugin ya debería funcionar.
Creación de un set de cartas (.o8s)
Nota: Bajo ningún concepto recomiendo crear uno de estos archivos desde cero. Tanto en mi
blog como en el foro de OCTGN tenéis varios plugins 100% funcionales que os pueden servir
como guía y os sacarán de muchos apuros. En este caso descargaremos el plugin de
Warhammer Invasion LCG y lo convertiremos en un plugin para el juego de cartas Naruto CCG.
Paso 1: Descomprimir el archivo .o8s de la misma forma que lo hemos hecho con el archivo de
definición del juego.
Paso 2: Renombrar la carpeta obtenida en el paso previo y abrirla.
Lo primero que haremos será abrir el archivo que contiene los datos de las cartas con un editor
de texto, el WordPad en mi caso.
Lo primero que encontramos es la información sobre el set que estamos editando. Aquí hay
que especificar el nombre del set y el juego al cual pertenece. Para ello necesitamos el GUID
que le hemos asociado al archivo magic.xml dentro de Naruto CCG.o8g.
Para asignar el identificador del set yo sigo una regla muy sencilla. Técnicamente no es
correcta y podría causar problemas de compatibilidad bajo el supuesto de que otra persona
usara el mismo identificador en uno de sus sets pero la posibilidad es muy remota. La regla es
la siguiente:
Si preferís crear un nuevo GUID para cada una de las cartas que introduzcáis también podéis
hacerlo.
Una vez modificada la cabecera del archivo Vulca.xml quedaría algo así:
También es posible añadir contadores que durante el juego se pueden colocar sobre las cartas.
Pueden servir para indicar poder, fuerza, enfermedad o cualquier otro estado descrito en el
reglamento del juego. Estos contadores van asociados a unos identificadores que se pueden
modificar en el archivo Vulca.xml.rels, como veremos más adelante. De momento los
eliminaremos.
Seguidamente encontramos la información de las cartas. Lo primero que haremos será borrar
todas ellas excepto una.
Ahora tenemos que editar los campos de la carta para que coincidan con los que hemos fijado
en la definición del juego y borrar todos los datos pertenecientes al anterior juego. En el caso
de Naruto CCG quedaría lo siguiente:
Ya podemos rellenar el archivo Vulca.xml con todas las cartas que necesitemos usando ésta
como base. Yo haré 3 copias para nuestro ejemplo.
Ahora tenemos que rellenar los identificadores, títulos y demás información de las cartas. El
identificador será el mismo que el del set que estamos editando pero con una variación en las
3 últimas cifras, tal como he descrito antes. En este caso tenemos los identificadores
dcb808df-715d-4a2f-bc65-e81339001001, dcb808df-715d-4a2f-bc65-e81339001002 y
dcb808df-715d-4a2f-bc65-e81339001003. El resto de información vendrá determinada por las
cartas que añadamos al set. No es necesario incluir todos los datos para que el plugin funcione
pero sí es recomendable que figure lo básico de cada carta.
Yo siempre uso la codificación utf-8, tal como se indica en la cabecera del texto. Hay que
recordar que esta codificación no acepta tildes, diéresis, signo de interrogación abierto y
algunos caracteres más. Además, las comillas se usan para delimitar las etiquetas así que no se
pueden usar como texto. En su lugar yo uso un apóstrofe.
Paso 4: Añadir las imágenes de las cartas.
Una vez modificada la información de las cartas deberemos añadir las imágenes. Nos dirigimos
a la carpeta cards y borramos todo el contenido previo.
Seguidamente copiamos las imágenes correspondientes a los datos del archivo Vulca.xml:
Paso 5: Editar los archivos .rels
Ahora deberemos especificar a qué carta pertenece cada una de estas imágenes. Para ello
abrimos la carpeta _rels y nos disponemos a editar el archivo Vulca.xml.rels:
Un par de cosas a tener en cuenta: los identificadores de las cartas son los mismos que en el
archivo Vulca.xml pero con una “C” al principio y sin guiones. Es decir, la carta que
anteriormente hemos definido con el identificador dcb808df-715d-4a2f-bc65-e81339001001,
ahora será la Cdcb808df715d4a2fbc65e81339001001. Los identificadores que empiezan por
“M” corresponden a los contadores que hemos eliminado así que podemos hacer lo mismo
con sus identificadores.
Por ahora solo necesitaremos 3 identificadores ya que solo hay 3 cartas en el set. Dichas líneas
deben quedar de la siguiente manera para que todo coincida con el fichero Vulca.xml y las
imágenes de la carpeta cards:
Paso 6: Eliminar archivos innecesarios
Para este plugin de muestra no necesitaremos contadores ni barajas guardadas. Nos dirigimos
a las carpetas decks y markers y borramos todo su contenido.
El último paso es empaquetar todos los archivos de la misma manera que lo hemos hecho con
el archivo .o8g.
Y ya está. Ya disponemos de los archivos necesarios para disfrutar de otro juego de cartas
gracias a OCTGN.
-------------------------------------------
FALLA .o8g
-----------------------------------------------