« Un ejemplo del patrón memento ( la versión actionscript ) | Inicio | [Cocoa] Localization suite 2.0 »

El fotograma en blanco y mis noches de insomnio.

Si recuerdan, aquí ,les explicaba el motor para el desarrollo de aventuras gráficas en Flash. Bien,entre aventuras, reediciones, traducciones, ..ya he perdido la cuenta del número de cdroms que han salido, todos sin problemas. ¿ Todos ?. No. El otro día, un cdrom, empezó a dar problemas. Por requerimientos del proyecto, debe funcionar en un pentium II a 300Mhz. Termino de exportar el cdrom en mi máquina ( Pentium IV ) y funciona perféctamente, pero al llevarlo a las máquinas de testing ( Pentium II con W98, Pentium con Linex, Mac G3 ),fallaba en todas. Bueno, no es que fallase, es que iba muy muy lento. ¿ cuál es el problema ? ¿ porqué si todos los cdroms funcionan bien, este da problemas ?.
Comienza la fase de análisis del problema, y se descarta problemas de la programación ( todos los cdroms llevan el mismo código ) .
Como el cliente ha pedido unos cambios en unas animaciones, empiezo a pensar que uno de estos cambios en la animación de inicio o en la de fin del juego, hacen que algo falle. ASí pues, empiezo a probarlo sin una de las animaciones, sin la otra, sin ninguna de las dos, rehaciendo todo el fla desde cero, etc... ( Bien, hay que explicar, que cada prueba supone, exportar el fla, crear un instalador con zinc estudio, generar en una imagen ISO un disco híbrido pc/mac, sacarlo a disco físico, ....en total cada cambio unos 45 minutos mínimo hasta poder probar en las máquinas de testing ) y nada que no funciona.

Es entonces cuando me doy cuenta que nada más arrancar el cdrom, la primera pantalla que aparece, es la de login, y que al introducir tus datos, parece que incluso le cuesta aparecer en pantalla, es decir, escribo una "e" y como que pasan unos milisegundos hasta que aparece en pantalla. Lo justo para que parezca algo raro. Así pues, se me ocurre que el problema puede estar en un swf que se carga nada más arrancar el cdrom con la configuración de los menús, los textos que se deben mostrar en todo el cdrom etc..( este swf se genera a partir de todos los xml con los que se desarrolla el juego ) . Así pues le abro,y ........ el *+Ç?¿{ swf tenía dos frames, dos puñeteros frames, el primer frame en el que se declaraban las 300 variables( de tipo XML ) de configuración y textos del cdrom , y un segundo fotograma vacío. Lo que hacía que se estuviesen definiendo esas 300 variables ( aproximadamente ) 6 veces por segundo, y claro, el juego se tostaba.

En fín, tras averiguar la causa del problema sólo se me ocurría acordarme de la madre del F5, del fotograma de los...
Así que la moraleja es...Tener cuidado con los fotogramas vacíos, que uno sólo puede hacer que vuestras 8000 líneas de código no sirvan para nada.

Comentarios

Qué míticos son esos bugs....Uno de los que más me gusta es lo de hacer cambios en desarrollo e intentar var el resultado en producción o viceversa. Hasta que te das cuenta y te acuerdas de todos los santos.

En fin, qué mundo.