Mantenimiento de tu Codigo, mi caso de uso

Publicadas por Jose Carlos Tamayo

Hubo un periodo de 4 meses donde deje de programar Xeno para dedicarme a otros afanes de la vida, pero desde unas 2 semanas atras que encontre un buen tiempo para continuar con el juego. Dentro de la programacion encontre un problema que se resolvia cambiando mucho codigo o creando una especie de parche para el problema. Esto es un pequeño resumen de cuando necesiten reestructurar su codigo y no sepan como hacerlo.

El Problema,Planetas y Regiones:

Antes de la ultima actualización, los mapas  donde jugabamos, los llamaba planetas en mi base de datos y en mi codigo. Cada planeta tenia un mapa del planeta donde podriamos movernos. Ningun problema hasta ahi y codificaba feliz de la vida.

Antes: Un planeta con su mapa

Con los nuevos requerimientos (autoimpuestos, vaya que tengo algo de disciplina), las cosas cambiaron. Ahora un planeta podria tener regiones y estas regiones tendrian un mapa, osea los antiguos planetas vendrian a ser las nuevas regiones.

Ahora: El planeta puede tener regiones y estas regiones son mapas

El problema es el siguiente: Que hago con todo mi codigo y mi base de datos? Tengo que crear nuevas clases que sean referencia a los nuevos planetas pero ya tengo esas clases hechas y ademas referencian a las regiones! Y los nombres de mis funciones que antes eran digamos getPlanets(), ahora deberian de ser getRegions(), sin contar mis parametros, variables, defines y etc.

2 Caminos, 1 solo resultado

a) El facil y escabroso: Simplemente todo lo nuevo referente al planeta, se llamara algo asi como superPlanet o uberPlanet, en fin algo encima de lo que ahora se conoce como planeta. Resultado, un sentimiento de que algo esta mal mientras programo, como un sabor amargo. Pero algo muy comun en varios proyectos de software. La base de datos sigue igual.

b) El dificil y satisfactorio: La otra opcion es la refactorizacion masiva  de TODO mi codigo. Con ayuda de alguna herramienta busco y reemplazo las cadenas que contengan planets, Planets,PLANET, etc y lo reemplazo por regions,Regions,REGION, etc. ¿Refactorizar la Base de Datos? Je manualmente, no conozco herramientas que permitan buscar nombres de campos y refactorizarlos. 

Manos a la Obra:

Esta solucion, aunque es solo para PHP y en general para proyectos con pocas personas es la que me resulto mas facil de realizar, les pongo mi metodologia para que si alguna ves esten con este mismo problema, tengan la solucion a la mano!.

a) Obtener Dreamweaver y su poderosa busqueda: Yo trabajo con Aptana, pero si hay algo que odio del mismo es su opcion de busqueda de caracteres, solo puedes buscar en la misma pagina que tienes abierta, y encima no busca bien, en cambio Dreamweaver siempre fue un experto en estas lindes, con una sola ventana puedo encotrar todas las cadenas en mi Proyecto Completo. No solo funciona para PHP, si no que tambien para CSS y Javascript, genial!.

b) Saca un Backup - Obligatorio!: Realmente no avances nada si antes no haz sacado un backup, quizas este de mas decirlo pero estaras mas feliz de hacerlo.

c) Buscar de Mas a Menos: En mi caso empece buscando la palabra planet, lo que encontre fue que ademas de planet, tenia cadenas llamadas -planetas. Si hubiera buscado planet y lo reemplazaba por region, entonces todas las palabras  planetas, terminarian como regionas, que se puede hacer al respecto?. Primero busquen las palabras mas grandes y despues continuen con las mas pequeñas, ademas diferencien entre mayusculas y minusculas, te va a dar menos dolores de cabeza.

El poderoso Dreamweaver con la configuracion necesaria para la refectorizacion

d) Arreglar la Base de Datos: Solo queda cambiar manualmente todas las referencias a Planet, no es mucho felizmente, pero si existiera alguna herramienta que facilitase esto, estaria muy contento

Y listo esa seria mi receta. ¿Ustedes tienen alguna forma novedosa de mantener o refactorizar el codigo?



¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

Nuevas Cosas en Xeno!

Publicadas por Jose Carlos Tamayo

Continuamos a forro con Xeno!. Como ya les comente, la actualizacion de la pagina web ya esta lista, asi que ahora me estoy dedicando al juego.

La pagina web, les refresco la memoria, esta acondicionada para que ustedes ingresen comentarios a las secciones de Imagenes y Actualizaciones. Ademas siempre encontraran informacion de ultima mano en el foro del juego.

En fin ya comence las actualizaciones al Core del juego y lo primero que les dejo es el nuevo menu para todo el juego, y no me refiero al menu celeste que todos conocemos, si no al poderoso Game Menu:

Por ahora solo esta activo el menu Ejecito->Unidades y Navegacion->Region. Lo siguiente a crear es la vista de las regiones de un planeta, la vista del sistema solar elegido y la vista global del universo. 

Ademas como Yapa (un extra en peruvian) mejore la seccion Roadmap y le coloque los ultimos modulos actualizados y los modulos donde estoy trabajando. Quizas le ponga comentarios, pero eso a futuro dependiendo de lo que la gente pida =)

Cada domingo actualizare el blog con las novedades de Xeno. Para informacion mas actual entren al foro el cual estoy actualizando a diario. Saludos y si quieren rajar del nuevo menu empiecen por aqui


¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

Biolab Disaster Un Juego HTML5

Publicadas por Jose Carlos Tamayo

Hace unos dias y por medio del blog Advertainmen encontre un juego recontra interesante llamado Biolab Disaster, un tipico scroller que me hace recordar a Commander Keen de los años 90.

Que lo hace interesante? que corre con pura tecnologia HTML5 , nada de flash ni plugins para la web.

Lo he probado en Firefox 3.6 y lo noto ligeramente lento (shame on you Zorrito de Fuego), pero usandolo en Opera corre como cañon. Para ser un juego de plataforma simple, es bien divertido, solo tienes 2 botones de accion, disparar y saltar, y ademas como siempre las flechas de navegacion.

Los graficos aunque nada del otro mundo cumplen muy bien su mision de dar ambiente al juego, ademas cada vez que elimino a un minion, este por alguna razon explota como si estuviera hecho de TNT, simplemente te dan ganas de despanzurrar al pobre.


Otra cosa que me encanto y quisiera saber como lo hicieron, es la musica y el sonido. Lo tienen y a granel. El juego simplemente cumple su objetivo, mostrar que HTMl5 promete!. Obviamente un juego en Flash la romperia mucho mas que un juego en HTML5 pero, podras jugarlo en un Ipad? el futuro le sonrie a HTML5, y lastimosamente Flash parece que, a menos que suceda un milagro, desaparecera como un buen recuerdo de una era que ya paso a la historia.

Seria cliche decir, take that mitch?

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

Concurso Game On 2010 de Mozilla

Publicadas por Jose Carlos Tamayo

Mozilla, los creadores del popular firefox (hacia falta decirlo?) a creado una nueva division llamada Mozilla Gaming, que saco a finales de setiembre el concurso Game On 2010, donde podras demostrar toda tu experticia con las nuevas tecnologias webs existentes (estamos hablando de los mas hardcore en tecnologia web, cosas frikis como, html5, canvas, css3).

Aqui no podras usar ningun plugin de navegador (Flash couf couf, silverlight no se si tomarlo en cuenta)

Tendra hasta Enero 11 del 2011 para tener un juego decente para mostrar.

¿El premio? un viaje para participar en el GDC 2011 en San Francisco, asi que ya sabes, inrgesa tu juego y preparate a ganar. 


¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

La Pagina de Xeno esta operativa al 100%

Publicadas por Jose Carlos Tamayo

Asi es, despues de una quemadera de ojos y aprovechando este feriado largo, termine de actualizar la pagina web del juego, al 100%, despues de esto cualquier otro cambio seria para mejorar la pagina.

Los cambios los podras encontrar en la seccion de actualizaciones. Espero lo disfruten y bueno esto significa que al fin voy a centrarme en finalizar el juego!.

Tambien prometo actualizar un poco mas seguido el blog, y cumplir una promesa para los sres de  Dexgame, ya pronto te hare un analisis del game jeje. Saludos y suerte con todo!

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me

Y Salio el Foro de Xeno!

Publicadas por Jose Carlos Tamayo

Despues de mas de 1 semana de trabajo en Drupal + el Modulo Avanzado de Foros ( y otras mezclas exoticas de modulos) tenemos ya el Foro listo para ser usado. Aqui algunas cosas que les interesara bastante:

  • Una cuenta para unirlas a todas: Si te creas una cuenta en el foro, esta te sirve tambien para el juego. Ya no mas mantener 2 o 3 cuentas dispersas para sacarle el jugo a tu juego, ademas doble castigo para los que les gustan la multicuentas. O si!. ( Si es el anillo unico del señor de los anillos, tenia un lema acorde).
  • Ahora puedes subir un avatar a tu usuario: Como es lo comun en muchos tipos de foro, sube tu imagen avatar ( tamaño maximo de 100kb y tamaño de 85 X 85 pixeles, reglas de la casa) Lo interesante de este Avatar es que sera el avatar a usar tambien en el juego.
  • Premios y Medallas: Gracias al modulo User Badges, y a algunas modificaciones que le hice al mismo, ahora los usuarios pueden ganar medallas y premios, con el objetivo de incentivar a los jugadores. Por ahora tenemos un trofeo, el trofeo al macho alfa, para la gente que me ayudo en el primer alfatesting del juego. Pero no se preocupen que van a haber mas, hay un tema que puse para ver que nuevos trofeos podemos crear.
  • Online o Offline: Aunque quizas quitemos esto en el juego. En el foro puedes ver la situacion de un usuario observando si esta online u offline. Ven el circulo al lado del nombre?, significa que el jugador esta conectado.
Secciones del Foro
Como buen foro, esta dividido en secciones, y queriendo minimizar y ser mas objetivos, he creado las siguientes secciones ( tomando como inspiracion las divisiones de GetSatisfaction.com , para no reinventar la rueda):
  • Dudas y Preguntas: Preguntas y respuestas, este es el lugar ideal para aclarar tus dudas.
  • Ideas y Mejoras: ¿Tienes alguna idea interesante para compartir sobre el juego? ¿Quisieras una nueva seccion en la pagina web? Comparte tu idea y aprovecha que estoy siempre por ahi, quizas tu idea se vuelva realidad.
  • Reporta un Problema: Mientras mas ojos esten sobre el juego, mas rapido eliminaremos cualquier bug que encontremos. Aqui podras reportar errores del juego, la web, el foro, en fin cualquier bug.
  • Social Lounge: Aunque creo que le cambiare el nombre a algo menos egocentrico, Ya lo cambie!. En fin, aqui es la parte social del foro. Presentaciones, la taberna del juego y la seccion gime satisfaction, donde podras agradecer a tu humilde servidor, si es que el juegoha logrado hacer de tu dia algo mejor =).
Posibles Nuevas Seccion:
  • El Juego, o noticias del juego: aun no se pero lo ideal es hablar sobre las ultimas actualizaciones y cualquier otra informacion del juego
  • Seccion Tecnica: Donde podremos conversar sobre desarrollos de juegos webs, ver otros proyectos, etc.etc
Asi que ya saben, visiten el foro y disfruten del mismo!.

¿Te gusta la pagina?, socializame haciendole click a tu color preferido:

Add to Technorati Favorites Digg! del.icio.us.me