Zona de Pruebas: Bugs y jugabilidad
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
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
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.
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
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
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
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
ENLACE DE LA PÁGINA DE LA FORJA
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:
- 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.
- 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.
- la copia y distribución libre está permitida.
- 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
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
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
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

