GNU XFree Fighter


Zona de Pruebas: Bugs y jugabilidad

Publicado en Uncategorized por xfighter en Diciembre 3, 2009

Ante todo darle las gracias al principal Player que  ha participado conmigo de manera desinteresada, sin él no hubiese encontrado ni la mitad de los bugs y ahora mismo estaría seguramente con otro proyecto:

Gracias  Alfonso, conocido por nuestros amigos Alfonso Porras :-) .

La técnica que he usado para las pruebas  es ir escribiendo un fichero  global “registro.txt” todo lo relevante que iba pasando: valores de los estados, acciones .. etc , de manera que cuando Alfonso y yo jugabamos  y el juego “petaba o hacia algo extraño” siempre podia echar el vistazo a ese fichero”.Así he encontrado centenas de bugs ( no exagero ) .

Mi gran fallo fue que me lancé muy pronto a programar, entonces me pregunté lo siguiente:

¿ Seré capaz de hacer un juego de lucha ?

Esta claro que me puse a programar sin haber echo un análisis  ni diseño  serio , sin documentar , simplemente guiándome de los pseudocódigos que fui escribiendo  un cuaderno.

La cosa se empezó a poner fea ,  fallos cuando te cubres , cuando saltas y aprietas otro botón , cuanto te agachas y le das adelante ….. etc , he tenido  que crearme un autómata , controlar el búfer del teclado , vaciarlo, en fin el que ve la documentación un poco lo verá.

Ahora mismo me encuentro un poco de parón y pensando como quitaré varios bugs  y comportamientos anómalos como el cubrirse  que no se comporta nada bien, como el movimiento del escenario ( que en versiones antiguas del juego se mueve , pero no muy bien que digamos ) …etc … a ver si me acuerdo y publico todos los bugs ;-)

Lo bueno que ya por fin una vez que realicé  un  análisis y  un diseño  medianamente buenos y ayudado por el bendito Doxygen , me han echo que  “yo mismo” ,imagínate el lector de mi código ( pobre mortal ….) ,entienda el código.

Moraleja y consejo de un pobre aprendiz de programador o violador de segmento:

Para un proyecto medianamente grande: Análisis y Diseño obligatoria, documentar te ayudará. Y sobre todo a la hora de las pruebas buscarse a un amigo o alguien ajeno a tu proyecto  para que pruebe tu software.

Un saludo a todos.

PREFIERO EL BASTÓN DE LA EXPERIENCIA QUE EL CARRO RÁPIDO DE LA FORTUNA.

Pitágoras

Nuevo Concurso Universitario del Software Libre

Publicado en Uncategorized por xfighter en Noviembre 30, 2009

Hola , como sabéis he inscrito mi proyecto al nuevo concurso del software libre , la verdad que con mucha ilusion y con un buen sabor de boca del año pasado , por que importante fue que aprendí tanto de mis pocas virtudes como de mis múltiples errores.

Quiero dejar claro que os encontraréis un código , ya algo documentado  con Doxygen , estructurado de manera lógica siguiendo OO.  El cual tiene ya un año de trabajo casi, aunque ese trabajo sea de fines de semana, tiempos libres etc , si que puedo decir que este año quiero entregarlo como proyecto fin de carrera para ya por fin ser titulado en  ingeniería técnia en informática.

Me gustaría estar más activo este año que el año pasado y por ello empezaré con buen pie escribiendo este post y muchos muchos más ….

Un saludo a Tod@s

DALE VALOR A LAS COSAS NO POR LO QUE VALEN, SINO POR LO QUE SIGNIFICAN.

Gabriel García Márquez

Explicación de un combate

Publicado en Motor del juego por xfighter en Agosto 24, 2009

lucha_diag

La lucha se desarrollara de la siguiente forma

class Escenario {

Jugador uno,dos;

vector<Magia> v_magia;

void listen_(){

mover( uno);

mover( dos)

mover ( magia)

comprobar_colisiones( uno,dos,v_magia);

calcular_daños( uno,dos,v_magia);

}

void Ejecuta_(); // cambia estados y aplica los cambios

void dibuja(); // dibuja la pantalla , las magias y los personajes

};

Así me queda un sistema un poco más acoplado que lo que yo esperaba, en realidad este diagrama es una simplificación de lo que pasa en realidad, por que  las colisiones dependen del Subsistema de colisión que en mi caso yo lo he modelado como una clase la cual pertenece a cada jugador y que hace corresponder estado-> vector< SDL_Rect >  y con funciones estaticas  para poder ver si una magia ( con su propio SDL_Rect para sus colisiones ) colisiona con el cuerpo de jugador.

Pero estas comprobaciones las hace La clase escenario la cual tendrá control sobre jugador mediante una interfaz defina por un objeto, llamemoslo estado_comun, que no solo controlará eso , sino que muchas más cosas, esta clase merece una explicación mucho más detallada , pero será más adelante.

cambia_estadps

Bueno, un saludo a todo el mundo y  a ver si tengo la beta para octubre totalmente funcional.

PUEDE CONSIDERARSE BIENAVENTURADO Y NO PEDIR MAYOR FELICIDAD EL HOMBRE QUE HA ENCONTRADO SU TRABAJO.

Thomas Carlyle

una versión medianamente decente

Publicado en planifiación, recursos, version_operativa por xfighter en Agosto 23, 2009
Tags:

VIDEO AQUI

He estado todo el verano depurando código, y luchando para conseguir una versión estable para poder jugar 2 jugadores, por fin he podido hacer una versión alfa  del videojuego que segun la wikipedia:

“Algunos equipos de desarrollo utilizan el término alfa informalmente para referirse a una fase donde un producto todavía es inestable, aguarda todavía a que se eliminen los errores o a la puesta en práctica completa de toda su funcionalidad, pero satisface la mayoría de los requisitos.”

Pues bien, ahora mismo el juego  se encuentra en una fase de perfeccionamiento de todos los requisitos del programa en cuanto tenga una versión beta o medianamente decente  para ser criticada , será subida a la forja , la cual no se lleva bien conmigo, ni  yo con ella.

Disfruten del vídeo caballeros grabado usando el VLC, en breve escribiré un poco sobre los grandes cambios que he realizado sobre este pograma, ya que antes era un poco ilegible.


La lucha por la vida no la gana
Siempre el más fuerte ni el más rápido,
Pero, tarde o temprano, ¡el que gana
Es el hombre que piensa que es capaz de ganar!

BRUCE LEE




A un paso de una version Estable

Publicado en Uncategorized por xfighter en Abril 23, 2009

Por fin fuera de mis chapuzas con la forja, espero sacar ya una 1º version “estable”  para finales de la semana que viene en donde el personaje

- Se  salta, agacha golpea, se cubre …., lo típico de un juego de lucha

-hace magias

Dejando para más adelante:

- mejorar las colisiones

- introducir movimientos especiales

-introducir magias y movimientos especiales por teclado

- Mejorar todo en general,QUEDA MUCHO POR HACER

POR SUPUESTO PONDRÉ UN VIDEO EN EL YOUTUBE

Ruego perdón a todos por quizás estar programando un poco por mi cuenta y no tener actualizada la forja y demás y que no hubieses podido seguir como yo hubiese querido mi proceso de desarrollo y sobre todo PERDÓN por no documentar mi código , lucharé para que esto no sea así.

Un saludo a todos.

“Tened el valor de equivocaros”.

Georg Wilhelm Friedrich Hegel

LA FORJA ESTA FALLANDO

Publicado en Uncategorized por xfighter en Marzo 31, 2009

Perdonad las molestias que pueda causar, este año la forja falla más que una escopeta feria,  la verdad es que  el primer molesto soy yo pues cuando me bajo mi proyecto no se me baja como yo quería y las versiones de la forja se están yendo a la porra.

Al final terminaré trabajando de manera local o con un svn local.

PERDONEN LAS MOLESTIAS.

Ya esta activa la forja

Publicado en planifiación por xfighter en Marzo 29, 2009

ENLACE DE LA PÁGINA DE LA FORJA

PULSAD AQUÍ

Necesitáis tener instalada las librerías SDL
compilador de C++

actualmente pensado para un sistema GNU/Linux pero puedo migrar el proyecto para Windows usando el IDE  Dev C++ , pero no lo tengo en la forja. Si a alguien le interesa lo cuelgo.

SI ALGUIÉN TIENE PROBLEMAS PARA INSTALARSE  , YA SEA LA SDL, con el svn etc …  que me lo diga.

Hola la forja esta activa podéis ver dos directorios principalmente

gnu_xff y docs

dentro de gnu_xff

esta  trunk y branches

trunk es la rama oficial del concurso todo lo que modifico y añado ahí esta medianamente para ser   presentado y leido.

En branches observareis una versión donde podréis jugar pero con mas fallos que una escopeta de feria, tened en cuenta que estoy experimentando y que tengo que hacer muchas pruebas, si verdaderamente soy capaz de programar este proyecto, por ello en esta rama ( con un estilo de programación pésimo y un código atrozmente feo)  será como una especie de borrador, por favor que nadie se la estudie, si tenéis dudas sobre algún aspecto esperaros a que salga en trunk. Pienso que  es interesante publicar este borrador así observareis que durante todo este tiempo no he estado sin hacer nada.

La verdad es que le estoy poniendo mucho empeño a mi proyecto, para que sea lo más competente posible y para que sea legible , cosa que por las prisas me lo estoy saltando, y sobre todo mi objetivo es que cumpla las 4 libertades:

  1. Un programa es libre si puede ser ejecutado y usado como uno quiera. Los privativos incluyen limitaciones de uso, ya sean dictadas en la licencia o incluidas en el código.
  2. El código del programa tiene que permitir su estudio y cambio. Frente al software privativo, que esconde como ha sido programado, el libre debe hacerlo público.
  3. la copia y distribución libre está permitida.
  4. El software libre debe permitir la distribución de las copias modificadas por cada programador, incluida su venta.

Sigo trabajando para todos ustedes.

Las obras de conocimiento deben ser libres, no hay excusas para que no sea así

Richard Stallman

Planifiación oficial

Publicado en planifiación por xfighter en Marzo 24, 2009

planficiacon_pfc

Aquí os dejo la planificación que me he propuesto con cara al concurso y que cumpliré a raja tabla, debido a que he estado programando a la ligera y luego tiene consecuencias nefastas , y encima que uno hace su proyecto de fin de carrera y libre, tiene doble responsabilidad y no debo subir cualquier cosa, ya a partir de ahora me pondré serio con el proyecto

Reitero que a pesar de esto pondré una versión operativa del juego como una rama del proyecto (rama que mejor olvidar y que será un borrador de lo que quiero conseguir)

Me tengo que poner las pilas antes que me absorban  los exámenes de Junio.

Un saludo a todos.

clase Manager

Publicado en Motor del juego, planifiación por xfighter en Marzo 24, 2009

Subiré una versión operativa en varios días para que podéis ver a grandes rasgos , como va el juego, para mostrároslos funcional, pero esto se verá en el repositorio como una rama, por lo que tardaré varios días en familiarizarme con esa parte del svn que es nueva para mí.

Como estoy Depurando el código, ahora estoy haciendo mejoras y reorganizando todo por eso subiré al svn todo poco a poco y de paso lo explico por aquí .

Por que no quiero que mi proyecto no caiga en saco roto, ni se quede por la mitad, iré muy poco a poco , subiendo en la forja las mejoras que estoy haciendo en el código fuente. También pondré en la forja la versión del juego funcional (más o menos) que he programado , pero esa no es ni de broma la versión buena del proyecto la pondré como una rama del proyecto (una rama perdida,para que veáis lo que pueden hacer las prisas).

La clase Manager (también podéis verla como Mod_Animation en la rama perdida de mi proyecto) gestionará los cambios en el jugador mediante una serie de booleanos , lo importante del código es la sincronización entre el sistema de animaciones (Clase Animacion) y el sistema de colisiones ( clase Colision ) mediante la función cambia_estado() , podeis verlo con más detalle en el código fuente , hay que tener en cuenta la sintaxis de como accede a las animaciones y como accede a las colsiones, fijaros en esta variable:

Colision.cambia(int ent)

animacion.cambiar(std::string tipo );

Teniendo en cuenta que el int ent, en principio, digo en principio por que de momento todo esto puedo estar sujeto a cambios, no obstante su esencia y funcionamiento sera el mismo,lo que pasa es que en vez de de un int un std::string será un tipo enum pero al fin de al cabo lo mismo la idea es cambiar las animaciones y las colsiones depiendo de los estados del jugador ( saltando y pegando un patada <–> saltar = true && patada = true && golpear = true ) o (ha sido golpeado esta saltando <–> golpeado = true && saltar = true ).

ALGUNAS PERSONAS NUNCA APRENDEN NADA, PORQUE TODO LO COMPRENDEN DEMASIADO PRONTO.

Alexander Pope

Resumen de las jornadas de la Josluca IV

Publicado en planifiación por xfighter en Marzo 18, 2009

Hoy he realizado una presentación del VideoJuego en la Universidad, la verdad es que me ha gustado la experiencia , aunque me he puesto un poco nervisoso, ya que no le tengo miedo a hablar en público , pero siempre no te salen las palabras idóneas para expresar tus ideas, supongo que con la práctica como todo, esto se corregirá.

La verdad es que me han encantado todos los proyectos libres que se han expuestos, me ha gustado mucho la forma de pensar del dearrolador de Libgann , una librería de redes neuronales en C++, me ha representado mucho y me ha gustado su forma de pensar, sin duda con gente como el , es posible el software libre. Me ha gustado AVBOT y pienso que hacer un bot para quitar vandalismo de la wikipedia es una idea fantastica, . Sobre videojuegos aparte del mío del mio han expuesto dos: Magic Cards el cual esta en proceso de desarrollo y que será un juego online y Free Padels un juego en 3D que te hace jugar al Padel , muy bueno.

En general estoy satisfecho, colge unas transparencias que os voi a pasar ahora mismo, y el audio de la conferencia y el video lo modificaré y retocaré y lo tendréis en varios días a vuestra disposición.

Nota: en las transparencas veréis a ryu del street fighter y en el video también pero en el juego no estará puedo tener problemas legales.

Un fuerte saludos a Todos

Entradas siguientes »