sábado, 2 de agosto de 2008

pythoneando

Empecé a primeros de Julio a investigar Python+Pygame, y la verdad es que ha cundido la cosa. Este blog que al principio pretendía ser de programación de Inform, y luego pasó a ser de programación y chismorreos caadianos, va a terminar por ampliarse a blog de videoaventuras en general. Esto es: videoaventuras conversacionales, videoaventuras de plataformas, videoaventuras de mesa...

Empecé realizando el proyecto que tantos años deseaba hacer y no pude por mi falta de conocimientos de programación: una aventura 2D tipo Another World, que cumpla ciertos aspectos que considero importantes:
-Gravedad e inercias reales, velocidad, nada de saltos fantasma en plasma líquido. Puedes controlar los saltos mientras en la animación el personaje tenga algún pie en el suelo; una vez en el aire, éste sigue una trayectoria invariable salvo que se estampe con alguna masa.
-Transiciones entre acciones: no puedes pasar de correr a andar así sin más, ni cambiar de dirección sin amortiguar la inercia. Mismamente, si vas corriendo y pulsas para salto de longitud, el comando no se ejecutará instantáneamente sino en el momento en el que termines la zancada, para tomar impulso, como lo antes dicho.

Para esto las acciones van por pilas: accion_actual y accion_siguiente, la cual salta cuando el frame de transición sea el correcto.

Más o menos he conseguido el motor, más o menos porque se podría mejorar con más fidelidad, pero es un coñazo dibujar tantos frames.
Grabación en video->volcado->selección de fotogramas->calco en vectorial->conversión en bitmap->edición->"amontonamiento" en capas->grabación en PNG

...

Como me estaba saturando de este proyecto, y no estaba inspirado para un buen guión, carpetazo y quise hacer un juego de mesa tipo risk.
31 territorios y 8 emperadores rivales por conquistarlos.

El sistema de lucha será sencillo: 2 contra 3 = mueren dos de cada ejército y gana el segundo con una tropa viva; con algunos modificadores: los que atacan tienen un porcentaje de desventaja; también se acumula un portentaje negativo si atacan una ciudad fortificada (hasta tres niveles de fortificación); o si atacan un reino montañoso, donde mismamente los que ya están ahí esperando tienen ventaja posicional sobre los que llegan.
El sistema se irá calibrando cuando funcione.

También barajo -utópicamente- hacer los combates jugables, de forma que el 2 contra 3 ganan los segundos sea más relativo (aunque 2 contra 4 ni de coña), adquiriendo la piel del general que da las órdenes, las cuales son transmitidas por los músicos con códigos de trompetiles, y con muchas animaciones "jolgoriosas" de fondo (si no, no mola):
¡arqueros!, ¡primera línea avance!, ¡atrás!... tipo Patapón-pon-pata-pon.

El proyecto 1: Las criaturas humanoides, llamadas naar, tienen cada una un rostro diferente y personal, aunque no se aprecie mucho. Superpongo una máscara translúcida con los matices... y, anden, corran o salten, la cabeza siempre horizontal :D La máscara es de boca para arriba, para hacer comunes los frames de cuando muevan la boca para hablar.

El war-game, en el que de momento no se puede hacer nada más que pasear el ratón por el mapa y curiosear.
El menú de la derecha son las acciones básicas (sin implantar):
-Mover tropas
-Fortificar un sitio
-Reclutar hombres.
Faltan:
-Trasladar la capital del Imperio ( si cae una capital el conquistador se queda con todo, aunque para conquistar una capital, además de enfrentarse a las fortificaciones y tropas que allí se hallen, hay una guardia pretoriana fija, y de regalo, que vale como 3 o 4 tropas)
-Enviar órdenes (las acciones no se ejecutarán hasta que envíes las palomas mensajeras a tus generales repartidos por el imperio). Una vez enviadas, correrá el turno (el mes), se verán los resultados, y los movimientos que han hecho los emperadores rivales.

En fin, lo más importante de Python es esto:
# -*- coding: iso-8859-1 -*-
¡¡¡Sin esta línea mágica no se pueden escribir acentos ni eñññññññes!!!

5 comentarios:

El Clérigo Urbatain dijo...

El wargame tiene muy buena pinta, a ver si luego te mueves para moverlo y te haces un hueco en el mundo de los juegos freeware. Te deseo lo mejor.

La idea de las palomas me gusta, eso es algo que siempre he pensado... si los antiguos estrategas de la antiguedad se divertían con el asunto y no tenían un ratón que comunicaba telepáticamente sus órdenes al instante, ¿porqué nadie ha probado un acercamiento más real y masoquista a la estrategia?: envio de palomas, envío de mensajeros reventando caballos, órdenes escuetas a través de símbolos de banderas tal y como se ve en las últimas grandes películas épicas, etc. ¿Sería divertido en un juego? El único acercamiento que he visto al respecto es en los juegos donde el lider tiene un radio de influencia muy pequeño al empezar, con lo cual debes acercarte a las tropas para comandarlas. Ese radio se va haciendo más grande conforme se gana experiencia. Había un juego de amiga muy popular que reproducía esto que digo. ¿Alguien se acuerda del nombre?

Mel Hython dijo...

Es una pena que abandones el trabajazo que te has montado con el juego 2D. Si quieres te doy sugerencias para el guión.

En cuanto al juego de tablero, por lo que describes el sistema de 'combate' es similar al que se usa en el CIVILIZATION original, ¿conoces ese juego?

Herel dijo...

Mel, no está abandonado, ni mucho menos, pero es que me había saturado y necesitaba dejarlo descansar. Además con el nuevo proyecto he aprendido a implementar colisiones por máscaras que me servirán para el otro, en el que de momento el relieve es totalmente plano.

No he jugado al Civilization (lo miraré en Youtube). La idea es no alejarme demasiado de algo de tablero. Es decir, nada de "Defender of the Crown"s o "Norte y Sur"s, y además sin dados, la suerte se mide por las fichas y cartas que juegues y las que jueguen tus rivales, no por números aleatorios.

Urba, finalmente creo que voy a descartar el realismo en haras de la jugabilidad y sencillez. Aunque lo ideal sería poder enviar varias órdenes por turno, conforme el juego avanza y tienes más territorios y posibilidades, se puede volver un auténtico infierno. De modo que al final será una acción por turno.
En cambio, voy a incluir "cartas en la manga": El espía, el traidor, la plaga... para jugadas especiales.
Vamos, tirando hacia el juego de mesa, sencillo de aprender y ágil.

El Clérigo Urbatain dijo...

Si, bueno, estaba pensando en voz alta, es poco probable que algo realista funcione como juego.

Pero no quiere decir que no pongas palomicas animadas en el juego :)

Mel Hython dijo...

Hablaba del juego de tablero:

http://en.wikipedia.org/wiki/Civilization_(board_game)