4.3. Desarrollo del proyecto
Progreso del proyecto
Prototipo
Ya se partía de una idea trabajada.
Se realizó un brainstorming bastante completo de donde salieron, prácticamente todas las ideas que luego se incluirían en el juego, incluso muchas otras que la temporalidad del proyecto no permiten.
La instalación y configuración del servidor fue una parte bastante compleja, aunque ya se partía de una base fueron necesarios algunos retoques y pruebas.
Los bocetos y diseños previos fueron surgiendo, se descartaron muchos y otros ayudaron en las fases venideras.
Fase alpha
Se inició trabajando los diseños, mejorando bocetos y realizando algunos prototipos y algo de interfaz web.
Aunque se centra en la creación de una memoria del proyecto lo más completa posible. Muchas horas invertidas, tanto en el contenido como en el aspecto.
Fase beta
Se diseña y crea la estructura de la base de datos y se añaden los campos de inicio del juego.
Gran parte de los esfuerzos de esta fase se centran en el diseño de la aplicación web, se trabajan los estilos CSS combinados con la estructura de los documentos HTML e insertados en unas plantillas mediante PHP. Se obtiene la GUI del juego y la estructura básica del mismo.
La programación en PHP se centra en el diseño y estructura del juego, para relacionar los distintos módulos en la plantilla. Aunque ya funcionan algunos aspectos del juego muy básicos como el registro de nuevos usuarios y algunos formularios mas.
Se modifican algunos aspectos de la memoria relacionados con el apartado gráfico.
Fase final v.1
Esta fase se centra, sobre todo, en la programación PHP de todos los apartados del juego; propietario, piloto, garaje, retos, estadísticas...
Se realizan pequeñas modificaciones en el apartado gráfico, como los iconos del juego y otros logotipos.
La fase de testeo, con cerca de 70 usuarios, se compagina con la fase de corrección de errores y la modificación de ciertos comportamientos del juego según las preferencias de los usuarios.
Se realiza el documento de presentación del proyecto.
Se modifican algunos aspectos muy concretos de la memoria del proyecto.
Problemas encontrados
Linux, de estar acostumbrado a trabajar todo el día en entornos Windows a utilizar Linux, tanto en el entorno de trabajo como en el servidor dedicado, sin duda fue un pequeño contratiempo. Por suerte estuve unas semanas trabajando exclusivamente en Linux (Ubuntu) antes de realizar el proyecto para empezar a conocer el terreno. También es cierto que aunque no era un novato en el mundo Linux tampoco podía (ni puedo) considerarme un experto en comparación a los conocimientos que poseo de entornos de trabajo Windows.
LAMP, Escogí la distribución de SME Server porqué me pareció una buena solución, con "todo integrado", y aunque si bien es cierto que no tuve que instalar por partes el servidor Apache, ni configurar el PHP o MySQL hubo otros problemas....
¿Qué ocurre cuando utilizas una aplicación y todo funciona correctamente? Pues nada. Pero y ¿cuando algo falla? Hay que encontrar el fallo, verdad?. Cuando algo falla en un servidor dedicado la cosa se complica un poco, debes trabajar desde otro terminal, a través de una consola en modo texto o utilizando las posibilidades de que disponga la solución escogida, y si a eso le sumamos que cada distribución utiliza sus paquetes, sus carpetas, su sistema de configuración la cosa ya no es tan fácil como uno desearía.
Hay que buscar la información en donde sea y realizar todas las pruebas que uno pueda hasta la saciedad. Cuando no se domina un sistema se cometen errores, y en ocasiones cuando hay errores la mejor opción acaba siendo reinstalar el sistema y empezar de nuevo. Creo recordar que reinstalé a lo menos, en 4 ocasiones el servidor dedicado. La última vez fue jugueteando con MySQL intentado actualizarlo a versiones más recientes... justo un par de días antes de presentar la segunda entrega del proyecto.
Por suerte, el mejor amigo de todo administrador de sistemas son las copias de seguridad de todo lo que se pueda realizar. Reinstalar un sistema y que en dos "clicks" tengamos todo recuperado y funcionando sin problemas no tiene precio.
Demasiadas ideas y poco tiempo, en las sesiones de brainstorming se llenaron 4 hojas DIN-A4 con ideas y conceptos para el juego, si a eso le añadimos la poca experiencia en proyectos de envergadura similar y el "poco" tiempo de que se dispone para hacer todo lo que uno espera, la cosa se complica por momentos.
Sin duda, las "peores" fases del proyecto en lo que se refiere a factor psicológico fueron las primeras, tenía muy claros los objetivos del juego, pero lo complicado era realizar todos los objetivos marcados y teniendo en cuenta que en las primeras fases casi todo se centra en la documentación del proyecto, el lío y estrés mental eran importantes.
Por suerte tras 2 meses y medio, llega el momento en que uno se da cuenta que todas las ideas, o al menos las más básicas ya están implementadas. Es sin duda el mejor rato de todo el proyecto.
Muchas horas de documentación, aunque necesarias, se hace eterno. Consultar diferentes sitios, buscar información y detallar todos y cada uno de los aspectos del proyecto es un proceso que requiere mucha paciencia y dedicación. Dedicar 20 días a la memoria, con su planificación, objetivos, definiciones, estudio de mercado... resulta una fase difícil.
Muchas, muchas horas de programación y sobre todo de ensayo y error. Justo cuando parecía que nada podía ser peor que crear la documentación del proyecto entramos en la última fase, la de producción. Si bien es cierto que la sensación es muy distinta, durante la memoria era frustración por no poder crear el juego a la de "ya", pasamos a la desesperación de esta última etapa. Desesperación de tener unas ideas y objetivos marcados y poco tiempo para llevarlas todas a cabo. Si realizar una aplicación que funcione como era previsto nos conduce a un estado muy agradable, resulta trágico cuando las cosas no funcionan como deberían, cuando la función no devuelve los resultados esperados, o incluso no devuelve ningún resultado y uno debe realizar las mil y una para que todo funcione según lo previsto, o al menos lo más aproximado según los objetivos.
Cambios en el proyecto o ideas originales
No ha habido cambios significativos en el proyecto e idea original.
Aunque se ha descartado la posibilidad de los distintos idiomas para el proyecto (español, catalán e inglés) por falta de tiempo. Cabe destacar que la programación actual permitiría, mediante pequeñas modificaciones, añadir esta opción.