Historia para GNU XFF
Ahora de exámenes de Febrero, así que llevo un tiempo sin programar, pero en navidad avance un poco , supongo que ahora en las nuevas vacaciones que tengo de Carnavales, avanzaré otro buen trozo del videojuego.
Os cuento, En total tengo planificado incluir un total de 5 nuevos personajes más , además del monigote y el único personaje que tengo. Para ello estoy primero haciendo en papel , y alguno que otro ya lo tengo escaneado, ahora solo me falta pasarlos por el Gimp y aplicar texturas.
Todavía no se en que licencia pondré las imágenes supongo que en GPL o con la Creative Commons. Estoy abierto a sugerencia
.
Cuando decida en que licencia los pongo los subo , a ver si le gusta al personal.
También estoy escribiendo una historia para el videojuego, quiero ponerlo en un futuro apocalíptico , dentro de este blog abriré una nueva página para tal efecto , tanto para las imágenes como para las fotos.
LA DICHA DE LA VIDA CONSISTE EN TENER SIEMPRE ALGO QUE HACER, ALGUIEN A QUIEN AMAR Y ALGUNA COSA QUE ESPERAR.
Thomas Chalmers (1780-1847). Matemático escocés
Un primer paso para incluir AI en GnuXff
He empezado vagamente a incluir que la maquina luche contigo, pero solamente he creado una especialización de la clase Luchador , siendo esta especializada a:
1. Jugador ( un hombre/mujer que controla mediante mando/teclado el luchador.
2. Maquina ( un luchador que lo maneja el ordenador, actualmente tiene un comportamiento un poco mecánico.
Si tengo tiempo y soluciono problemas mayores Intentaré meterle una AI en condiciones.
Un saludo.
HE APRENDIDO QUE NADA ES IMPOSIBLE Y TAMBIÉN QUE CASI NADA ES FÁCIL.
Anónimo
Año nuevo, Menu nuevo
Hola a todos camaradas.
Estoy “la mar” de contento con el proyecto poco a poco vamos mejorando,aunque la cosa va lenta ( por culpa de mis estudios ).
He avanzado bastante pero queda muchisimo por hacer, Roma no se hizo en un día.
Avances:
- Por fin un menú
- Nuevos jugadores ( falta todavía por subir a la forja ) y por supuesto GPL.
- Mejorado los controles ( pero aún petan , hay que mejorar el autómata y organizar el spagetti formado después de varias madrugadas y noches desvariantes )
- Introducida formas de juego contra la máquina (pero aún no hay IA, que digo aún no se mueve la máquina, solo hay una clase Máquina ).
Retos para el Nuevo Año
- Introducir un modo contra la máquina
- Mejorar el búfer para las magias y movimientos especiales.
- Introducir un modo de entrenamiento contra objetos y jugadores , a modo de tutorial.
- Introducir un modo eliminatorio
- Introducir un menú para controlas los controles del teclado o joystick totalmente funcional ( ahora esta dibujado )
- MEJORAR LOS GRÁFICOS E INTRODUCIR EFECTOS guapos en todo lo que son las magias, movimientos etc..
- Mejorar los controles hasta que no quede ningún Bug ( con el mando analógico del joystick maltratando y dando a lo loco a los botones a veces me casca.
Un saludo a tod@s.
NO NOS ATREVEMOS A MUCHAS COSAS PORQUE SON DIFÍCILES, PERO SON DIFÍCILES PORQUE NO NOS ATREVEMOS A HACERLAS.
Lucio Anneo Séneca
La jugabilidad y otras mejoras ….
Ahora me encuentro mejorando la jugabilidad y sincrnnizando el escenario y su movimiento.
Tarea un poco peñazo
Sin embargo estoy avanzando bastante en estas vacaciones y me estoy centrando en perfeccionar lo que ya tengo hecho, para luego someterlo a una fase de pruebas , con mis amigos ( que es allí donde saco mis fallos y los mejoro )
He introducido una mejora en Jugabilidad, debido a que he tenido en cuenta dos cosas : “El autómata” ya definido y las pulsaciones de los mandos o teclados.
Un aspecto a mejorar es el buffer de los eventos, ya que debido a las prisas inexplicablemente se confunden los bufferes de ambos jugadores, una vez que termine este contratiempo y generalize las llaves , movimientos especiales y magias , tendre por fin una pequeña Beta.
Las colisiones es otra de las asignaturas pendientes ya que el sistema esta muy automatizado , en la clase Colisiones y cuando salta y golpeas pueden pasar cosas extrañas
NO NOS ATREVEMOS A MUCHAS COSAS PORQUE SON DIFÍCILES, PERO SON DIFÍCILES PORQUE NO NOS ATREVEMOS A HACERLAS.
Lucio Anneo Séneca
Versión para windows
Por alguna extraña razón que investigaré en breve , mi proyecto de wxdev++ no compila si no le pongo un Winmain e incluyo windows.h . cosa extraña, pero la quiestión es que ahora funciona.
dejaré un fichero proyecto de wxdevc++ en el directorio gnu_xff/trunk.
ahí dejo unas cuantas imagenes:
Ahora me dedicaré a meter efectos de sonido y algún que otro personaje nuevo. que esta el juego un poco soso, y encima hay moviminetos que no tiene animación este personaje.
Un saludo a todos.
LA MAYOR PARTE DE LOS FRACASOS NOS VIENEN POR QUERER ADELANTAR LA HORA DE LOS ÉXITOS.
Amado Nervo
Wiki de GNU XFF
He sacado un wiki que complementada con este blog espero que le sirva al usuario.
La wiki al igual que este blog estará en continuo desarrollo. pensad en la wiki como el sitio ideal para tener conceptos de como se juega, se instala , etc.. y en el blog como un contenedor de noticias, detalles técnicos , inquietudes etc…
Enlace :
http://gnuxfreefighter.wikiole.com/Inicio
Un saludo a tod@s.
Lo difícil no es encontrar la verdad: es organizarla.
Gnu XFF en diferentes Sistemas Operativos
Ahora como debido al curro debo estar en windows todo el tiempo usando por supuesto software libre : wxwidgets junto con un IDE bastante bonito llamado wxDevC++, que es como el devc++ de toda la vida pero incluyendo un enterno tipo Borland para formularios , etc …
Yo he instalado la SDL , en el Dev c++ anteriormente pero en wxDevC++ este es una maravilla , así que cuando haya pasado el proyecto a este entorno, a lo mejor ya me planteo hacer un manual de instalación en condiciones y una wiki, para ambos sistemas operativos ( windows y GNU/linux ) .
Además como ahora le estoy cogiendo un poco de mania a ubuntu , a lo mejor veís en próximos videos al juego rulando en otras distribuciones como slax o zenwalk.
GRANDE ES EL ARTE DE COMENZAR, PERO MAYOR ES EL ARTE DE CONCLUIR.
Henry Wadsworth Longfellow
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



