Creacion de Plugins Para OCTGN

27
Creación de plugins para OCTGN por eloooooooi 1ª edición 22/02/2011

Transcript of Creacion de Plugins Para OCTGN

Page 1: Creacion de Plugins Para OCTGN

Creación de plugins para OCTGN por eloooooooi

1ª edición

22/02/2011

Page 2: Creacion de Plugins Para OCTGN

Lo primero que debemos tener en cuenta es que hay varios tipos de archivo relacionados con

OCTGN:

Archivos con extensión “.o8g” (contenedor): Se trata de archivos ZIP renombrados

que contienen todos los datos relativos al juego de cartas. Toda la información

correspondiente a las zonas de juego, los tipos de carta, las reglas para hacer un

mulligan, el nombre y aspecto de los contadores y los tokens, la imagen que hará la

función de mesa de juego y la nomenclatura básica del juego se encuentran aquí.

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.

No os preocupéis si no lo entendéis todo a la primera. Ahora empezaremos a crear nuestro

propio archivo .o8g para que veáis los pasos que yo sigo cada vez que creo un nuevo plugin.

Page 3: Creacion de Plugins Para OCTGN

Creación del archivo de definición del juego (.o8g)

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: 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.

Page 4: Creacion de Plugins Para OCTGN

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.

Ahora le daremos su nuevo nombre y la abriremos para empezar a modificar su contenido.

Page 5: Creacion de Plugins Para OCTGN

Dentro de la esta carpeta encontraremos más subcarpetas y dos archivos XML. El primero,

llamado [Content_Types].xml, no tiene que ser modificado a menos que queramos añadir

nuevos tipos de archivo. El segundo, llamado magic.xml, contiene la información referente a

las reglas del juego: zonas de juego, propiedades de las cartas, funciones y demás.

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.

Paso 4: Editar la información del juego

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.

Page 6: Creacion de Plugins Para OCTGN

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:

Page 7: Creacion de Plugins Para OCTGN

Ahora procedemos a modificar las propiedades de las cartas. Actualmente disponemos de

todos los campos de las cartas de Warhammer Invasion LCG.

Recomiendo cambiar únicamente la etiqueta name=”xxx” para asegurarnos de que las

propiedades siguen siendo del mismo tipo.

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.

Page 8: Creacion de Plugins Para OCTGN

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>:

El resumen de cada jugador y los iconos o contadores correspondientes:

Page 9: Creacion de Plugins Para OCTGN

La mano del jugador y algunas acciones aplicables a dicha zona o a las cartas individuales que

la forman:

Page 10: Creacion de Plugins Para OCTGN

El mazo y las acciones aplicables a dicha zona o a las cartas que la forman:

La pila de descartes:

Las secciones dentro del mazo:

Page 11: Creacion de Plugins Para OCTGN

Como podéis ver, todas las zonas tienen un nombre, una visibilidad determinada, una anchura,

una altura y un icono. Estas características pueden variar dependiendo de cada juego y pueden

tomar distintos valores. En el caso de la visibilidad podemos tener las siguientes opciones:

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.

En principio no necesitamos modificar las zonas correspondientes a la mesa, la mano, el mazo

y la pila de descartes para que el plugin funcione. Eso sí, habrá que añadir algunas zonas

adicionales.

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.

La definición de las zonas de juego nuevas quedaría de la siguiente forma:

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:

Al haber modificado esta información habrán desaparecido algunos iconos que ya no

necesitaremos. Incluso es posible que, sin quererlo, hayamos asociado una misma imagen a

dos zonas distintas que no tienen nada que ver. En el siguiente paso podremos detectar estos

errores para solucionarlos.

Page 12: Creacion de Plugins Para OCTGN

Finalmente modificaremos las secciones del mazo para facilitar la tarea de creación de barajas:

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.

Por último, guardamos los cambios realizados al archivo magic.xml y lo cerramos.

Paso 5: Editar los archivos .rels

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.

Page 13: Creacion de Plugins Para OCTGN

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.

Page 14: Creacion de Plugins Para OCTGN

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.

Paso 6: Establecer las imágenes

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.

Page 15: Creacion de Plugins Para OCTGN

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:

Page 16: Creacion de Plugins Para OCTGN

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:

Finalmente nos dirigimos a la carpeta background y comprobamos que el fondo de la mesa

cumple con los requisitos:

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.

Page 17: Creacion de Plugins Para OCTGN

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:

Page 18: Creacion de Plugins Para OCTGN

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.

Finalmente, renombramos el archivo .zip a .o8g:

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.

Page 19: Creacion de Plugins Para OCTGN

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.

Page 20: Creacion de Plugins Para OCTGN

Paso 2: Renombrar la carpeta obtenida en el paso previo y abrirla.

Podemos observar que la estructura de un set de cartas es bastante parecida a la de un archivo

de definición del juego.

Page 21: Creacion de Plugins Para OCTGN

Paso 3: Editar el archivo Vulca.xml y añadir la información de las cartas.

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 el GUID del juego es el dcb808df-715d-4a2f-bc65-e81339d68d49, modificaremos los 6

últimos caracteres de forma que los 3 primeros determinen el número de set y los 3 últimos

determinen en número de la carta. De esta forma el primer set vendría indicado por el

identificador dcb808df-715d-4a2f-bc65-e81339001000 y las cartas de este set vendrían

determinadas por los identificadores dcb808df-715d-4a2f-bc65-e81339001001, dcb808df-

715d-4a2f-bc65-e81339001002, dcb808df-715d-4a2f-bc65-e81339001003, etcétera.

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í:

Page 22: Creacion de Plugins Para OCTGN

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.

Page 23: Creacion de Plugins Para OCTGN

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.

Page 24: Creacion de Plugins Para OCTGN

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:

Page 25: Creacion de Plugins Para OCTGN

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:

Page 26: Creacion de Plugins Para OCTGN

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.

Paso 7: Empaquetar el nuevo archivo .o8s

El último paso es empaquetar todos los archivos de la misma manera que lo hemos hecho con

el archivo .o8g.

Después, movemos el archivo ZIP a la carpeta de trabajo y lo renombramos a .o8s.

Aprovechamos para borrar los archivos del plugin de Warhammer Invasion LCG ya que no los

volveremos a necesitar.

Y ya está. Ya disponemos de los archivos necesarios para disfrutar de otro juego de cartas

gracias a OCTGN.

Page 27: Creacion de Plugins Para OCTGN

-------------------------------------------

FALLA .o8g

-----------------------------------------------