Friday, September 30, 2005

Nace el proyecto Apophis

Hace tiempo atras, me había entrado la inquietud de hacer un programa para manejar mis cartas de Mitos y Leyendas. Este programa sería bastante "simple". Consistía basicamente en tener en mi pc, la lista de cartas (habilidades, costes, etc) del juego, junto a sus imágenes. La verdad es que la primera versión (llamemosle, versión Zero) era una macro excel, que se estaba volviendo cada vez mas compleja, hasta que me di cuenta que realmente necesitaba hacer un programa para esta tarea.
Es así como nace MyLDK (Mitos Y Leyendas, Deck "K"reator).. Este programa, al haber sido creado muy rápido (me tome 2 tardes en hacerlo) no quedó muy bueno, si hablamos de velocidad y manejo de recursos. Lo que si pudo generar, es el primer orden y clasificación de las cartas. El programa incorpora una lista propia, ordenada y normalizada, para identificar cada carta existente. Así, si quiero referirme a Dragón de Magma, entonces su código de identificación será ES-016 (Espada Sagrada. Nº de coleccionista 16).

Con esta lista creada, se comenzó a trabajar en otro prototipo de programa hasta que nace la segunda versión, el MyLDK2, programa que logró tener algo de popularidad entre el círculo de amigos que jugabamos MyL (mis beta testers, básicamente). En esta segunda versión, trabajé más especificamente en la creación de Mazos. Esta idea era básicamente para poder generar archivos planos, los cuales poder enviar al foro de MyL. Soy una de las personas que se quejan de que los usuarios del foro, no saben "ubicarse", y postean largas listas con sus mazos, que con suerte... mucha suerte, alguien se da la lata de leer. Como al postear, no indican ni estrategia, ni siquiera le dan un nombre al mazo (algo básico, es como una creación propia, así que debería tener un nombre creado por uno, y no un nombre genérico del tipo "Mazo controlador"), ni siquiera aportan datos de si los mazos han sido utilizados en torneos, etc... por todas estas razones, la lectura de esos posts se hace cansina e intrandescente.
No digo que no posteen mazos al sitio, pero sí que sean posts "Constructivos", y que estén ordenados. (los mazos van en el foro de mazos, no en las preguntas generales, ni en la aclaración de reglas, por ejemplo)

Volviendo al tema del programa. MyLDK2 incorporaba una forma de lectura bastante simple y ordenada de desplegar la información de los mazos, para que ésta se publicase en los Foros.
Con la idea de crear un utilitario que me brindara una ayuda, a la hora de postear en los foros (en mis momentos de delirio, me las doy de juez y respondo cuanta pregunta encuentre), entonces se agregaron módulos al programa, para que éste quedara "residente", y a la vez "espiara" cuando seleccionaba cualquier texto, y así si coincidía con algún código o nombre de carta de la lista, se copiara automáticamente la información de la carta al portapapeles, con algún "formato" que lo hiciera mas legible y llamativo.

Además, de estos pequeños "utilitarios", comencé a agregar otros al programa, hasta que el proyecto original ya no tuvo nada que ver con el resultado que estaba obteniendo.
En vista de esta circunstancia, me decidí ponerme de cabeza a crear otro programa, que debería haber sido el MyLDK3, pero que a ultimo momento decidí crear un nuevo programa desde cero.
Y así nace el Proyecto Apophis. Este programa tiene la mayoría de las funcionalidades de sus antecesores, además de otras ideas que han surgido en el camino. Despues de estar algunos dias programando, envié una version "alpha" a mis amigos para que me dieran una primera impresión, y el programa tuvo una aceptación inmediata.
Un día (bueno, una noche, en realidad) que estaba conversando con 2 amigos, nos enfrascamos en una discusión en la posibilidad de generar un programa para jugar "Mitos y Leyendas" en el PC. Despues de analizar (mientras seguíamos discutiendo), llegué a la conclusión de que con las habilidades de las cartas, tal cual como están redactadas hoy, no es posible generar un motor 100% eficaz, para interpretar las habilidades de todas las cartas. Existen muchas habilidades que sus textos son ambiguos, además de que no están normalizados. Las ultimas ediciones de MyL, específicamente, desde Guerrero Jaguar, se nota un esfuerzo por "normalizar" las habilidades de las cartas, al darle nombre a definiciones. Ejemplo: Furia. En ediciones anteriores, podías encontrar textos como "puede atacar el turno que entra en juego", o "puede atacar cuando entra en juego", incluso "no necesita pasar por una fase de agrupación", y así, podrían haber muchas variantes que significan lo mismo, pero cada pequeña diferencia que tienen como texto, hacen que para un algoritmo (programa) sean habilidades distintas.Esperemos que la normalización siga tal cual como lo están haciendo ahora, esto es, poniendole nombres (estableciendo definiciones) para aquellas acciones o situaciones del juego que se puedan resumir en una sola palabra (errante, furia, guardian, maquinaria, etc). Solo así podremos llegar a una versión de las cartas que sean totalmente portables a un programa, y así extender las posibilidades de entretención que ofrece este juego.
Paralelamente a todo lo que he dicho hasta ahora, tenía la inquietud de jugar MyL remotamente, esto es, utilizando algún programa de mensajería como el Messenger, junto con alguna Webcam, micrófono/audífonos, y mi mazo. Al originalmente pensaba que sería similar, que tendría algun encanto el jugar de esta manera, pero desde el principio me dí cuenta de que es muy difícil jugar así, sobre todo, cuando juegas con gente que no tiene camara/microfono, y se hace muy lento el juego, en definitiva, aburrido.
Inmediatamente, me di cuenta de que era aquí donde podía entrar en acción mi ingenio. Si bien es cierto que jugar por red es muy lento, y esto es debido a mala implementación, velocidad de las lineas, lentitud de los jugadores para escribir en el chat, etc. tambien es cierto que el juego, si no fuese por estos motivos, sería mucho mas rápido (y de paso, entretenido).

Así, muy tímidamente (como programador, claro), comencé algunos prototipos de tablero. Mi idea era básica. No recrearía el juego completamente, por que todavía no se como manejar las habilidades, pero si podía crear un tablero que sirviese de apoyo al juego del Messenger. Así, podría tener un "campo de batalla" en pantalla, con las cartas que jugaba, mientras chateaba por el messenger.Chatear por el messenger? bueno, cuando tomé mas confianza, me di el lujo de prescindir del messenger, e integrar un chat en el mismo programa. De aquí empezó a crecer este proyecto, que al principio era solo de texto (representaba todo en forma de texto, por que era rápido), pero pronto comencé a lucir mi habilidad usando (y creando) gráficos por medio de código. (AHHH... me encanta programar!!!!)
y despues de tener el primer prototipo-maqueta (ni siquiera funcional on-line), es que comencé a trabajar... de verdad, por que estaba sin trabajo hasta ese entonces. y que pasa con esto? bueno, simple, que he tenido que dejar un poco de lado el proyecto.
Hace algún tiempo atrás, contacte a la gente de MyL, y les envié screenshots de mi programa, indicandoles que estaba trabajando por mi cuenta, y viendo si existía algún interes de parte de ellos en apoyarme para seguir con mi trabajo. (ya saben, algun apoyo e$$piritual, o algo que me hiciera sentir contento), y me dijieron que me esperara. En ese tiempo no estaba visitando la pagina de MyL, así que cuando me metí, me di cuenta del aviso superior de la pagina, que indica que proximamente se podrá jugar MyL desde el pc...Evidentemente, mi programa estaba causando algún conflicto con el proyecto de la gente de MyL, que estaba desarrollando el software.Me sentí desilucionado. No es culpa de ellos, pero claro, no me había dado cuenta de que estaba inventando una rueda, que lo mas probable es que me salga cuadrada, y a la gente de MyL le salga mas redonda, o lo que es lo mismo, las posibilidades de que mi programa sea mejor que el de ellos son bajísimas, principalmente por que yo trabajo solo, usando mis tiempos libres (que ahora son escasísimos), y sin el conocimiento mas profundo de ellos. Pero bueno, si me sentí desanimado fué por culpa mía, por no meterme en la página y así informarme. Días después, me indican que han estado ocupados, y que revisarían mi propuesta. Para ese entonces, yo era felíz con que mi programa estuviese incluído en algun CD de algún pack de los que generalmente salen a la venta (Ej: Cofre de Kephri, Liber Dominus. Caballo de Troya, etc.)Y seguí esperando... y esperé... y esperé... y esperé...y abrí un blog...y esperé... y esperé...y escribí esto...y esperé... y esperé...y seguiré esperando, pero mientras tanto, quise escribir esto, para que por lo menos mi programa no pase al olvido tan rapidamente.

No me pidan que deje disponible el programa para descargar. Si tengo algo de tiempo, puede que suba el MyLDK2, y con suerte, alguna versión del Apophis.
Mientras, subiré el archivo Readme.txt con la "vitácora de existencia" del programa, y algunas imágenes en el album de fotos de este blog.

Aqui hay otra versión de este blog.

Saludos.