Los amantes del basic o los que simplemente les agradan los lenguajes variopintos y bizarros como a mi, estais de enhorabuena, pues ya ha salido la versión 0.7 de Small Basic, y lo más importante, han corregido ya el fallo que ocurría al pulsar ], que en vez de dejarnos escribir aumentaba el tamaño del texto. Eso sí, parece ser que ahora ya no funciona lo de aumentar el texto, así que tened cuidado de disminuir el tamaño de la fuente. La librería del lenguaje no parece haber sufrido grandes cambios así por encima, alguna función nueva han añadido y tal. Y la principal novedad es que ahora permite exportar los programas hechos en Small Basic a Visual Basic.Net, lo cual a alguno le podría parecer algo bastante interesante, aunque yo no soy muy amigo de VB por lo general. Así que disfrutad ahora que por fin se puede programar con arrays de forma cómoda desde el editor del IDE, jej ^_^
Mi primer contacto con Ogre3D
Octubre 21, 2009Dentro del mundo de los motores gratuitos existe Ogre3D, siendo uno de los más celebres hoy en día. Así que he empezado últimamente a trastear con dicho motor para intentar hacer una demo de un juego de naves, al estilo del Ikaruga por ejemplo. Y al principio parecía más o menos prometedor, pero…
Pero por ejemplo, ¿como puede ser posible que el equivalente de lo que sería el hola mundo resulte tan odiosamente complicado? ¿La razón? Que para realizar el ejemplo de los tutoriales, tienes que compilar los ejemplos y enlazar con los .libs que generan esos proyectos y hacer un huevo y medio de peripecias varias con la configuración del proyecto en C++. Además tan solo para crear una ventana, teniendo un mínimo de control es abrumador. Será muy potente y tal, pero al final roza lo absurdo en su cuantiosa complejitud a la hora de empezar con él.
Y que decir sobre las horas que me he tenido que tirar para poder mostrar simplemente un modelo en pantalla. He tenido que hacer peripecias con los materiales, crear luces y estar teniendo que cambiar la camara finalmente, para ver si se veía o no realmente (no fuera que estuviera la camara dentro del modelo). Pero ahí viene ya otro problema y esta vez no es del Ogre3D sino del compilador de C++.
Actualmente uso el Visual C++ Express 2008 y sospecho que seguramente no será el único, pero para tan solo compilar 3 miserables clases de mierda, se tira como 20 o 30 segundos el muy miserable. Sospecho que todo es culpa de las librerías de Ogre y sus .h, que son un cojón y medio y el preprocesado de estos es lento de cojones. Sin embargo, por ser tan potente… me toca joderme y por más que he intentado limitar el daño, sigue siendo mortalmente lento.
En fin, está resultando demencial todo esto… Y mucho me estoy desencantando de C++, el que fuera mi lenguaje predilecto, porque será eficiente y muy potente… Pero no es nada productivo para desarrollar con él, comparado con C# por ejemplo. Y no es que me pague Microsoft por decir esto, – ojalá lo hicieran, – digamos que las cosas son como son y resulta un incordio tener que estar lidiando con ciertos detalles de la sintaxis y problemas con las plantillas, o el tener tantos problemas de lentitud con los .h… Sinceramente 30 segundos para 3 clases… ¿Cuando tenga 2 docenas que me voy a tirar? ¿30 minutos? Y todo partido en .cpps y .hs… En fin, que menuda so manta de palos me están dando con el Ogre, el C++ y los maravillosos compiladores con su preprocesador.
Tetraminoes Applet 1.1, actualizado en la web
Octubre 2, 2009Muchas gracias a Fenris78 otra vez, por haberse molestado en actualizar el applet del tetraminoes en su web. Para el que no lo haya probado, y quiera hacerlo, lo podeis encontrar en esta dirección.
Un saludo,
Gorka Suárez.
Tetraminoes terminado
Octubre 1, 2009Hoy por fin, he terminado de documentar un poco el código de la versión para móviles de este juego que estaba programando. Básicamente lo terminé ayer por la noche, pero como no había ni un comentario, pensé que lo mismo dejar el código así solo provocaría que aquel que lo leyera se acordara de toda mi familia xD Así que terminado esto, tan solo me queda esperar a ver si alguien encuentra algún fallo grave que deba corregir.
Aparezcan fallos o no, que luego corrija, doy ya por finalizado el proyecto. La verdad es que me siento bastante aliviado de haber terminado esto y que no haya sido tan costoso como por ejemplo haber programado el pac-man. Además, con esto terminan mis proyectos amateurs programados en java por una muy larga temporada, si es que no terminan para siempre (que otra cosa es que me paguen por ello xD). De hecho no pienso programar ningún juego en java, salvo que quizás me pusiera a aprender a programar para el Android, pero de momento no es algo que tenga contemplado a corto plazo.
El juego tanto la versión applet como la versión para móviles la podeis encontrar en esta página. No se cuantos días tardarán en subir la nueva versión del applet a la página web de Fenris78, pero cuando esté ya avisaré en el blog. Para cualquier cosa podeis dejar un comentario aquí o en el foro de stratos.
Tetraminoes finalmente colgado en la web
Septiembre 30, 2009Gracias a Fenris78 podeis probar el juego desde aquí sin tener que descargarlo, un gesto desinteresado que agradezco profundamente ^_^ El caso es que ya van al menos 2 que se me han quejado del manejo de las teclas en el juego, por lo que para la próxima semana, cuando haya terminado de protarlo al móvil, me imagino que me pondré a modificar el control a ver si lo hago un poco menos lamentable para el resto de mis congéneres humanos.
Y bueno, ya he empezado la conversión a la versión de móvil. Es una tarea bastante lamentable, porque básicamente estoy pasando de orientado a objetos a programación estructurada, con lo que ello implica. Además si esto lo vieran los profesores de la universidad que enseñan programación en primero, se arrancarían los ojos. Pero es lo que tiene el J2ME si quieres evitar a toda costa que pudiera ir petado y a trompicones. En fin, a ver si salgo más o menos cuerdo de este proceso lastimero.
Tetraminoes applet, primera versión
Septiembre 29, 2009Pues creía que me iba a costar mucho más para llegar al punto en el que pudiera ver algo en movimiento, pero después de unos 5 días o así, he logrado obtener la primera versión de este juego para navegadores web. En un principio tenía pensado haberlo subido a google sites, o algo así para que se pudiera jugar a él colgado en alguna parte. Pero como de costumbre las políticas de empresa siempre ayudando a simplificar las cosas. Para poder hacer lo que quiero, tengo que igualmente encontrar un sitio donde colgar el fichero JAR con el applet y luego hacer no se que mierda de gadget para google. Vamos, todo facilidades, cuando en 5 minutos se podría haber resuelto el tema.
En fin, si alguien llegara a colgar en su página web el applet que me avise por el foros de stratos o por mail. Es tan solo para poner un enlace desde aquí si veo que tal cosa sucede. En fin, podeis bajaros el applet y el código de este desde esta página. Es muy posible que haya algún bug, porque aunque he estado probando en estos dos días para solucionar la mayoría de los problemas, no descarto que alguna cosa pete o similar.
Ahora la siguiente meta con este juego, porque todavía no he terminado del todo con él, es portarlo para móviles con resoluciones de 320×240 y poder así jugar la persona a la que le prometí hace más de un año que le iba a hacer este juego. Desde luego hacer promesas para esto xD Así que a ver si para la próxima semana logro dar por finalizado este tormentoso proyecto, que mi cargo de conciencia parece una especie de perturbación en la fuerza a estas alturas.
Problemas en wordpress
Septiembre 9, 2009Es posible que alguno haya intentado acceder a las páginas del blog, en este y en cualquiera de wordpress.com, pero se ve que alguien la ha pifiado y ahora no cargan las páginas. Las puedo editar desde mi cuenta, pero no se muestran, solo dios sabe por qué. Así que si alguno quería probar el Paxnaman que acceda directamente a mi sitio en google desde donde descargarselo. A ver si logran resolver el problema antes de mañana ^_^U
PD.: Bueno ya funcionan de nuevo las páginas, así que ya está solucionado el problema de momento. Un saludo a todos.
Postmortem del Paxnaman
Septiembre 9, 2009Ahora que está ya terminado el proyecto y que no espero tener que hacer cambios, salvo que encuentre alguien o yo un bug grave por casualidad, voy a contar un poco la experiencia que me ha supuesto hacer este juego. En mis anteriores entradas del blog y en la página del proyecto hay algunos datos sobre cuales fueron mis motivaciones a la hora de hacer el juego, pero en este artículo voy a intentar contar otras cosas que me han pasado mientras desarrollaba el juego.
Una de las primeras equivocaciones que cometí, y que medio-subsané cuando me puse en serio con el proyecto, fue la falta de un análisis sobre el funcionamiento del juego. Cuando empecé con el juego, me puse alegremente a recortar, pegar y colorear los gráficos, eso me llevó un tiempo considerable ya que yo no soy grafista. Una vez tuve el material gráfico necesario para el juego, me dediqué a buscar sonidos en alguna página y más o menos encontré algo mínimo para usar, como en el original. Y habiendo finalmente reunido los recursos, me puse alegremente a tirar líneas de código cual alegre pajarillo en un día de primavera. Craso error…
Durante los primeros días no supuso un problema actuar así, pero luego tuve que detener el proyecto por los exámenes de junio y en agosto lo retomé. Entonces fue cuando me di cuenta de que la mierda estaba llegándome hasta el cuello. Visto que estaba dando palos de ciego, decidí ponerme a analizar el juego. En un principio yo tenía una feliz idea sobre como era la lógica del juego, pensaba que era un juego sencillo sin más. A medida que iba echando partidas al original me fui dando cuenta de que eso no era así, ni mucho menos. Fui sacando algunos datos como pude y me hice una idea aproximada de como eran las reglas básicas. Tras dos semanas, en una visita relámpago a la civilización, me puse a buscar información sobre la IA y encontré una página con un dossier sobre el juego, y para mi desconsuelo vi que las reglas no eran tan simples como me hubiera gustado. Sin embargo, todo lo que yo había implementado hasta cierto punto daba el pego, así que opté por no ponerme a implementar todas las reglas. Ello hizo que me librara de tener que retorcer más y más el código que ya tenía.
Antes de la parada del proyecto, había logrado montar algo que pintara cadenas de texto, sprites, animaciones y el laberinto, también se controlaba que puckman se desplazara por el laberinto sin problemas. Sin embargo tuve que modificar unas cuantas cosas sobre esa parte del código y extenderlo para que los fantasmas pudieran entrar o salir de la casa en la que habitan. A lo largo del desarrollo la palabra reestructuración se iba repitiendo en mi mini-diario que estaba escribiendo, para leerlo quizás en algún futuro y meditar sobre las tontería que hacía en mis años mozos. Tuve que ponerme a cambiar cada dos por tres muchas partes del juego, re-adaptar otras a algunos cambios que surgían como necesidad de golpe ante alguna situación crítica. Sin embargo no fueron situaciones especialmente críticas, y ya fuera por mi experiencia de los últimos 10 años programando o por mi fantastica intuición, logré salir al paso bastante bien.
Con tanto cambio me preguntaba si las cosas hubieran ido más fluidas de haberme puesto a analizar el tema más seriamente, pero eso es algo que no sabré al menos para este caso, porque dudo que me ponga a volver a hacer este juego otra vez. Lo que sí me sorprendió bastante fue lo rápido que me salió la parte que controla la IA de los fantasmas, como pone en la página del juego tuve cierta ayuda gracias al dossier, pero aun así tenía la idea en mi cabeza de que me iba a costar mucho más. Lo único que me resultó un problema fue el algoritmo para buscar caminos, que me puse a hacer algo similar al clásico algoritmo de backtracking que busca un camino en un laberinto. La idea era buena sobre el papel, pero al ejecutarlo fue la muerte y el juego iba a pedales, peor que ejecutar el Crysis en un 486.
Una cosa que me pasó mientras programaba el juego fue que como de costumbre me puse a hacer primero el “menú” antes que el juego en sí. No sabría si decir que es una manía que tengo o que quizás como por norma general hacer el menú es más sencillo y así tienes algo bonito que ver y probar, por ello quizás tiendo a hacer primero esta parte sencilla de los juegos que programo. Así que me puse primero con el menú, sin embargo en este caso no se yo si debería decir que hacer esta parte fue más complicada que el juego en sí. Lo bueno fue que al hacer el menú y la demo que sale en la primera pantalla de presentación, pude aprovechar para ir programando rutinas que luego acabé empleando en el modo de juego, ya que compartían similitudes que me permitían reutilizar código de un lado al otro.
Otro punto “gracioso” es que existe en el código fuente del juego, partes de este o funciones que no son invocadas en ninguna parte. Están ahí porque es mi costumbre tener cosas de sobra, que luego verse falto de ellas si de golpe necesitas añadir nuevas funcionalidades. De hecho hay alguna que otra clase, que fue pensada para realizar las escenas intermedias entre ciertas fases del juego, pero llegó ya un momento que por desgana decidí que implementar esa parte no me aportaba nada interesante a mi experiencia desarrollando este juego.
Así que entre unas cosas y otra fue curioso hacer este juego en particular. Respecto al usar XNA he de decir que ha sido muy sencillo su uso, me recordó a cuando me ponía a programar con la SDL. Claro que esto es un juego 2D, quizás para el 3D sea un poco menos sencillo, pero queda claro que para hacer cosas en 2D es considerablemente fácil aprender a usar XNA (y no es que me paguen por esto, jej). Incluso el tema del sonido con las últimas versiones se puede manejar sin tener que usar la aplicación XACT, que no es a poca gente a la que no le gusta ni un ápice. Así que con ese tema no tuve problema alguno, todos se reducieron a la falta de un análisis serio y al tener que estar re-escribiendo o re-estructurando muchas partes para corregir fallos o carencias en la lógica del juego.
Yo, sinceramente, me ha parecido una experiencia muy interesante haber desarrollado un clon de este mítico juego y la verdad es que por fin tengo un juego del que sentirme mínimamente orgulloso, tras casi 10 años programando juegos de forma amateur. Así que a pesar de todo el esfuerzo y los quebraderos de cabeza, la experiencia ha merecido la pena.
Escrito por gorkasg
Escrito por gorkasg
Escrito por gorkasg 