Los números mágicos son una cosa que todos conocemos muy bien y usamos más de lo que nos gustaría y deberíamos . Hoy el log va de informática , así que no explico lo que son los números mágicos , que ya lo sabeis muy bien ;) .
Os escribo por una tontería . Es por algo que ya sé muy bien , pero que todavía a veces no aplico lo suficientemente bien .
El caso es que llevo toda la mañana ajustando 3 números mágicos relacionados entre sí : unos metros más allá , este tamaño ... 4 horas recompilando todo el rato y probando . Pues cuando AL FIN me he dado cuenta de que eso era la historia de nunca acabar y que me iba a tirar al menos 2 días para ajustar esos 3 numeritos ... se me ha ocurrido PENSAR , que al fin y al cabo uno es ingeniero :) . He programado 3 teclas para aumentar los 3 numeros , 3 teclas para disminuirlos y asi puedo cambiar los numeros magicos a tiempo real y ver como queda en "directo" , sin recompilar cada 5 segundos . En total ( programar lo de las teclitas + ajustarlo ) he tardado 15 minutos . Y encima , me he dado cuenta de que habría sido IMPOSIBLE conseguir ajustarlo bien a "lo bruto" como estaba intentandolo .
Es dificil mantener el equilibrio entre hacerse todo a pelo y matar moscas a cañonazos . ¿ hago un editor para esto o no ? ... mis últimos juegos han tenido un editor detrás desde luego . Pero no siempre es asi , y matar moscas a cañonazos es muy muy costoso y una gran cagada informatica , la 2º más frecuente en mi opinion , desde luego , justo detras de hacertelo todo a pelo , jaja ...
A todos nos ha pasado esto mil veces , pero ahi va mi experiencia por si os interesa , que yo he tomado buena nota .
Por cierto , ya camino por una especie de ciudad sin suelo pero con edificios y esquinas bien colocadas :)
jueves, 9 de agosto de 2007
miércoles, 8 de agosto de 2007
crash del portatil + fuerteventura + airpass
Se me estropeó el portatil . Gracias a dios ya lo tengo arreglado y sin daños , pero he estado una semana sin portatil y sin poder trabajar . Lo peor es que estaba bastante agobiado , porque no sabia cómo solucionarlo . Al final lo cogió un servicio técnico competente ( despues de pasar por uno incompetente ) y solucionado ... ufff menos mal . Me veia ya de vacaciones todo el mes .
Así que no ha avanzado muchísimo el juego . Estoy construyendo el exterior de la ciudad , va un poco mas lento de lo que pensaba , pero sin problemas graves .Lo tipico , donde estan los puntos de anclaje de los graficos , que estén bien cuando giren , que si escalas , rotas ... Cuando pueda os hago algun screenshot ... es que no me gusta enseñar cosas ahora porque estan a medias y hace falta "imaginación" para verlo acabado bien , luego no os gusta lo que enseño :) .
Este finde estuve en fuerteventura , que es un pequeño paraiso . Entre otras cosas estaba el cto del mundo de kite y fuimos a verlo . Os pondre fotos de fuerte dentro de poco .
Hoy me ha medio salido el primer airpass , y veo cómo hacerlo ( me he pegado como 100 leñazos de soltar la cometa y todo , y no exagero , unas 3-4 horas en el agua todo el rato intentandolo ) . Con la cometa de 6 y 30+ nuditos ... estoy pensando en comprar una cometa de 7 metros . Si consigo "estabilizar" ( que me salgan bien , vamos ) el airpass y el raley to blind me voy tan contento a casa y el año que viene me apunto a alguna competición .
Un saludo .
Así que no ha avanzado muchísimo el juego . Estoy construyendo el exterior de la ciudad , va un poco mas lento de lo que pensaba , pero sin problemas graves .Lo tipico , donde estan los puntos de anclaje de los graficos , que estén bien cuando giren , que si escalas , rotas ... Cuando pueda os hago algun screenshot ... es que no me gusta enseñar cosas ahora porque estan a medias y hace falta "imaginación" para verlo acabado bien , luego no os gusta lo que enseño :) .
Este finde estuve en fuerteventura , que es un pequeño paraiso . Entre otras cosas estaba el cto del mundo de kite y fuimos a verlo . Os pondre fotos de fuerte dentro de poco .
Hoy me ha medio salido el primer airpass , y veo cómo hacerlo ( me he pegado como 100 leñazos de soltar la cometa y todo , y no exagero , unas 3-4 horas en el agua todo el rato intentandolo ) . Con la cometa de 6 y 30+ nuditos ... estoy pensando en comprar una cometa de 7 metros . Si consigo "estabilizar" ( que me salgan bien , vamos ) el airpass y el raley to blind me voy tan contento a casa y el año que viene me apunto a alguna competición .
Un saludo .
lunes, 30 de julio de 2007
raley to blind
Hola , tengo ya algunos modelos para el exterior de la ciudad , asi que voy a empezar a integrarlos y a ver si construyo la ciudad :) .
Ah y musica , tengo 2 canciones originales para el juego , hechas por Ronny , que estan muy bien . Las colgare para que lo escucheis .
Aquí hay mucho viento , casi todos los dias con mi cometa de 5-6 metros y más de 30-40 nudos . Me he acostumbrado a desengancharme tb. con la cometa pequeña , es sencillo pero nunca lo habia hecho antes con este viento , así que bien . backs to switch y s-bends sin problema .
Me ha salido el raley to blind , 2 veces perfecto . Normalmente lo aterrizo bien y me paso la barra , pero luego me caigo . A ver si lo consigo estabilizar un poco y que me salga , y empiezo a pensar en el blind judge y el 313 .
Con este truco no solo te caes tu , sino que suelto la cometa y todo asi que es un poco follón . Ayer de tantos leñazos contra el agua , se abrieron las válvulas y se me deshinchó la cometa en medio del mar . Me tocó recoger en medio del mar y nadar un buen rato :) . Como aqui el viento es onshore te lleva hacia la orilla .
Un saludo .
p.d . tras algunas ( pocas , lo reconozco ) peticiones , os voy a explicar lo que es un raley to blind ( que por cierto , hoy lo he aterrizado con mi cometa de 6 metros ) . Esto : http://www.kiteworldmag.com/content/view/229/10057/ . Solo que yo lo hago aun considerablemente mas chapucero que aaron hadlow ( es el del video este , y el que os contaba el otro dia que estuvo por aqui ) .
desengacharte es cuando te sueltas del arnés y haces el salto con toda la fuerza de la cometa en la barra ( en tus brazos , vamos ) . ( como este truco ) .
el blind judge es esto ( muy parecido ) : http://www.kiteworldmag.com/content/view/228/10057/
y esto es un 313 : http://www.kiteworldmag.com/content/view/227/10057/
Ah y musica , tengo 2 canciones originales para el juego , hechas por Ronny , que estan muy bien . Las colgare para que lo escucheis .
Aquí hay mucho viento , casi todos los dias con mi cometa de 5-6 metros y más de 30-40 nudos . Me he acostumbrado a desengancharme tb. con la cometa pequeña , es sencillo pero nunca lo habia hecho antes con este viento , así que bien . backs to switch y s-bends sin problema .
Me ha salido el raley to blind , 2 veces perfecto . Normalmente lo aterrizo bien y me paso la barra , pero luego me caigo . A ver si lo consigo estabilizar un poco y que me salga , y empiezo a pensar en el blind judge y el 313 .
Con este truco no solo te caes tu , sino que suelto la cometa y todo asi que es un poco follón . Ayer de tantos leñazos contra el agua , se abrieron las válvulas y se me deshinchó la cometa en medio del mar . Me tocó recoger en medio del mar y nadar un buen rato :) . Como aqui el viento es onshore te lleva hacia la orilla .
Un saludo .
p.d . tras algunas ( pocas , lo reconozco ) peticiones , os voy a explicar lo que es un raley to blind ( que por cierto , hoy lo he aterrizado con mi cometa de 6 metros ) . Esto : http://www.kiteworldmag.com/content/view/229/10057/ . Solo que yo lo hago aun considerablemente mas chapucero que aaron hadlow ( es el del video este , y el que os contaba el otro dia que estuvo por aqui ) .
desengacharte es cuando te sueltas del arnés y haces el salto con toda la fuerza de la cometa en la barra ( en tus brazos , vamos ) . ( como este truco ) .
el blind judge es esto ( muy parecido ) : http://www.kiteworldmag.com/content/view/228/10057/
y esto es un 313 : http://www.kiteworldmag.com/content/view/227/10057/
lunes, 23 de julio de 2007
mucho viento .
Tengo pocas novedades que contar del juego . Todo parecido a lo del anterior post . Estoy en plena "producción" , así que simplemente voy avanzando , sin grandes acelerones ni atascos .
El viento . Joder qué viento hace aqui . Hemos estado toda la semana con 40 - 50 nudos . Yo navegando con una cometita pequeña de 5 metros , y muchas veces pasado de viento . El sabado ni siquiera salí porque no habia ni una cometa en el agua y me dio un pcoo de cosa . En la playa no se puede estar porque la arena duele que no veas , y muy pocas cometas en el agua ...
El miercoles de la semana pasada estaba recogiendo la cometa cuando llegó un guiri a pedirme el hinchador .Cuando le iba a decir que lo cogiera , me di cuenta de que era aaron hadlow y me quedé un poco bloqueado hasta que le dije , si si , cogelo , pero tú eres aaron hadlow ! jaja . Hadlow y ruben lenten han estado navegando todos los dias desde el miercoles al Lunes , por lo visto están grabando un video de kite y han venido por aqui porque han visto que el parte daba viento fuerte . CUando llegaban se notaba porque empezaban a llegar a la playa camaras de video y camaras de fotos con objetivos enormes ( incluso uno con camara de video y aletas que les grababa desde el agua ... ) ... y al rato aparecian y se ponian a hacer kiteloops a lo bestia con 40-50 nudos en sus cometas de 6 metros . Ha estado muy bien , espectacular , de verdad .
ah ! aaron hadlow es el campeón del mundo de kite y ruben el más espectacular y zumbado del circuito : http://www.aaronhadlow.com/ y http://www.rubenlenten.com/ . http://www.youtube.com/watch?v=8YAEGG_2W-E
EN sus webs han puesto un pequeño clip , pero muy cutre , no tiene nada que ver con la pasada de cosas que estaban haciendo y grabando .jaja ! se me olvidaba que el blog es informatico .
un saludo !
El viento . Joder qué viento hace aqui . Hemos estado toda la semana con 40 - 50 nudos . Yo navegando con una cometita pequeña de 5 metros , y muchas veces pasado de viento . El sabado ni siquiera salí porque no habia ni una cometa en el agua y me dio un pcoo de cosa . En la playa no se puede estar porque la arena duele que no veas , y muy pocas cometas en el agua ...
El miercoles de la semana pasada estaba recogiendo la cometa cuando llegó un guiri a pedirme el hinchador .Cuando le iba a decir que lo cogiera , me di cuenta de que era aaron hadlow y me quedé un poco bloqueado hasta que le dije , si si , cogelo , pero tú eres aaron hadlow ! jaja . Hadlow y ruben lenten han estado navegando todos los dias desde el miercoles al Lunes , por lo visto están grabando un video de kite y han venido por aqui porque han visto que el parte daba viento fuerte . CUando llegaban se notaba porque empezaban a llegar a la playa camaras de video y camaras de fotos con objetivos enormes ( incluso uno con camara de video y aletas que les grababa desde el agua ... ) ... y al rato aparecian y se ponian a hacer kiteloops a lo bestia con 40-50 nudos en sus cometas de 6 metros . Ha estado muy bien , espectacular , de verdad .
ah ! aaron hadlow es el campeón del mundo de kite y ruben el más espectacular y zumbado del circuito : http://www.aaronhadlow.com/ y http://www.rubenlenten.com/ . http://www.youtube.com/watch?v=8YAEGG_2W-E
EN sus webs han puesto un pequeño clip , pero muy cutre , no tiene nada que ver con la pasada de cosas que estaban haciendo y grabando .jaja ! se me olvidaba que el blog es informatico .
un saludo !
martes, 17 de julio de 2007
sin pausa y sin prisa
Creo que el título lo dice todo :)
Ya están los 5 personajes con animaciones de andar y quietos funcionando dentro del juego ( con un problemilla aun con el pelo , pero ya me pondré a ello ) .
El interfaz básico del juego ( iconitos y tal ) está puesto , y ya puedes obtener información sobre la mayor parte de tus estados , ayuda ...
creo que pronto va a llegar a ese estado en el que la gente pueda hacerse una idea de qué va a ir el juego probando lo que hay hecho .
La idea es que para septiembre esté el juego básico funcionando en local . Que puedas ir a todos los locales y hacer todas las acciones que se pueden hacer en ellos , y las acciones que se pueden hacer con la gente . Me falta hacer buena parte del interfaz de las acciones aún ( aunque ya hay algunos hechos ) , refinar muchas cosas y hacer los 2 minijuegos ( besos y peleas ) , además de jugar a gus . Muchas cosas , no creo que pueda acabar en septiembre , aunque intentaré no retrasarlo mucho .
Y con el juego "hecho" , maquetado ... entrar en septiembre a la "chicha" del juego , a la parte online . De momento lo unico que he hecho de la parte online es diseñar de forma básica el funcionamiento , pero no tengo nada "real" hecho . Además , prefiero en lo posible no mezclar errores "locales" con errores online .
Bueno , ya os contaré si me ha funcionado bien así o no .
De momento no estoy recortando realmente funcionalidad del pequeño documento que redacté de diseño al empezar , aunque estaba previsto hacer algunos recortes .
La sensación general es de que el juego en realidad es relativamete sencillo de implementar , y aún creo que se puede hacer .
CUando explico el juego parece muy amplio y complejo y todos me miran con ojos de ... ¿ pero tu sabes en lo que te estas metiendo ...? , no falla , pero hay algunas cosas muy simplificadas que espero que me permitan acabar casi toda la funcionalidad original . También espero que no "canten" demasiado esas simplificaciones .
Vamos , que de momento sigo contento con el diseño del juego , veremos ... sobre todo espero que sea divertido , que eso no lo voy a saber hasta el final :) .
Por cierto , aquí hay viento fuerte todos los dias . CUando digo todos los dias es un 100% de los días , si . jaja !
Un saludo .
Ya están los 5 personajes con animaciones de andar y quietos funcionando dentro del juego ( con un problemilla aun con el pelo , pero ya me pondré a ello ) .
El interfaz básico del juego ( iconitos y tal ) está puesto , y ya puedes obtener información sobre la mayor parte de tus estados , ayuda ...
creo que pronto va a llegar a ese estado en el que la gente pueda hacerse una idea de qué va a ir el juego probando lo que hay hecho .
La idea es que para septiembre esté el juego básico funcionando en local . Que puedas ir a todos los locales y hacer todas las acciones que se pueden hacer en ellos , y las acciones que se pueden hacer con la gente . Me falta hacer buena parte del interfaz de las acciones aún ( aunque ya hay algunos hechos ) , refinar muchas cosas y hacer los 2 minijuegos ( besos y peleas ) , además de jugar a gus . Muchas cosas , no creo que pueda acabar en septiembre , aunque intentaré no retrasarlo mucho .
Y con el juego "hecho" , maquetado ... entrar en septiembre a la "chicha" del juego , a la parte online . De momento lo unico que he hecho de la parte online es diseñar de forma básica el funcionamiento , pero no tengo nada "real" hecho . Además , prefiero en lo posible no mezclar errores "locales" con errores online .
Bueno , ya os contaré si me ha funcionado bien así o no .
De momento no estoy recortando realmente funcionalidad del pequeño documento que redacté de diseño al empezar , aunque estaba previsto hacer algunos recortes .
La sensación general es de que el juego en realidad es relativamete sencillo de implementar , y aún creo que se puede hacer .
CUando explico el juego parece muy amplio y complejo y todos me miran con ojos de ... ¿ pero tu sabes en lo que te estas metiendo ...? , no falla , pero hay algunas cosas muy simplificadas que espero que me permitan acabar casi toda la funcionalidad original . También espero que no "canten" demasiado esas simplificaciones .
Vamos , que de momento sigo contento con el diseño del juego , veremos ... sobre todo espero que sea divertido , que eso no lo voy a saber hasta el final :) .
Por cierto , aquí hay viento fuerte todos los dias . CUando digo todos los dias es un 100% de los días , si . jaja !
Un saludo .
domingo, 8 de julio de 2007
ya estoy en el medano
Hola ,
ya estoy instaladísimo en Canarias .
Llegué el día 3 por la noche , así ue llevo ya unos cuantos días . Ya he cogido ritmillo de trabajo y de kite ... ¡ Aquí hace viento TODOS los dias !! . El viento es constante , el mar con un poco de choppy y en algunos puntos puedes coger buenas olas . Irene tambien está navegando y le han ido bien las condiciones , así que perfecto .
Definitivamente me he ido adaptando otra vez al mismo horario , para mi es el mejor : de 10 a 1 y de 7 a 10 todos los dias , incluido sabado y domingo . A la 1 como y me voy a hacer kite , a eso de las 3 viene irene de trabajar , va a la playa y hace kite un rato . A eso de las 6 cojo las cosas y me voy a casa a trabajar , mientras irene se queda aun en la playa con unos amigos un rato ...
A la playa del kite vamos andando desde casa .
No está mal .
Un saludo .
ya estoy instaladísimo en Canarias .
Llegué el día 3 por la noche , así ue llevo ya unos cuantos días . Ya he cogido ritmillo de trabajo y de kite ... ¡ Aquí hace viento TODOS los dias !! . El viento es constante , el mar con un poco de choppy y en algunos puntos puedes coger buenas olas . Irene tambien está navegando y le han ido bien las condiciones , así que perfecto .
Definitivamente me he ido adaptando otra vez al mismo horario , para mi es el mejor : de 10 a 1 y de 7 a 10 todos los dias , incluido sabado y domingo . A la 1 como y me voy a hacer kite , a eso de las 3 viene irene de trabajar , va a la playa y hace kite un rato . A eso de las 6 cojo las cosas y me voy a casa a trabajar , mientras irene se queda aun en la playa con unos amigos un rato ...
A la playa del kite vamos andando desde casa .
No está mal .
Un saludo .
miércoles, 27 de junio de 2007
el chat .
Hola .Hay una pregunta que me hace todo el mundo repetidamente : pero ... ¿ tú en casa trabajas ? . Lo segundo que dicen siempre es ... yo no podría . Jaja , no os imaginais la cantidad de gente que tiene esa reacción , por eso quiero comentarlo . Básicamente sí trabajo . Mi horario es de 10 a 1 y de 7 a 10 todos los dias ( incluido fines de semana ) . no soy rígido en el horario , hay mañanas/tardes que no puedo estar en casa , a veces trabajo por la noche ... pero básicamente trabajo , de forma constante y bastante bien . Ahora mismo no estoy estresado ni preocupado ( auqnue quizá deberia ) , simplemente avanzo poco a poco .
Ahora estoy en Morata ( esperando al día 3 que cojo avion a tenerife ) . He colgado una barra del techo del porche ( para entrenar kite ) , y al fin me ha salido un handlepass , consigo pasarme la barra en el aire!! , jeje . este verano espero poder hacerlo en el agua . Llevo mucho tiempo intentandolo , y como lo consiga en el agua ya es que seré un "crack" :) .
Estoy haciendo el interfaz del chat , y me surge un problemilla de diseño . He puesto la caja de chat fija en el juego y semitransparente ( todo muy al estilo wow) , cuando escribes texto aparece el texto en la barra del chat , cuando pulsas enter el texto va a la caja de texto del chat .Hay unas flechitas arriba abajo para poder navegar por el historial del chat ( puedes dejarlas pulsadas , se marcan cuando pasas el cursor ... todas esas chorradas que parecen obvias pero hay que hacer ) .
Primer problema : no puedes usar wasd para moverte , porque si escribes 'a' , por ejemplo , lo que ocurre es que en el chat aparece una 'a' , no que el personaje gira a la izquierda . tienes que moverte con las flechas .
segundo problema : no puedes mover el cursor por la barra del chat . Es decir , si escribes "hola x que tal estas" y , antes de pulsar enter quieres cambiar x por y , no puedes ir a la x borrarla y poner y , sino que tendrias que borrar todo hasta la x y volver a escribirlo . Esto es porque las flechas del teclado están para mover al personaje , no para mover el cursor .
La solución obvia esto es manejar el "focus" del chat como el wow . Si el focus esta en el chat , las teclas mueven el cursor y a es a . Si el focus esta fuera del chat 'a' e izquierda giran al personaje .
Pero el caso es que me parece lioso este sistema de focus , y este juego quiero que sea super sencillo de usar .
Prefiero que la gente solo tenga que escribir y enter para chatear , sin preocuparse de donde esta el focus , y es lo que vo a intentar .
Hay algun problemilla más .
¿ que opinais ? .
jueves, 21 de junio de 2007
el médano

Hola .
Irene había pedido una beca de trabajo de 2 meses en el aeropuerto sur de tenerife .
El médano es un sitio muy famoso de kitesurf , y que está a unos 2-3 km del aeropuerto . Hay viento prácticamente todos los dias entre mayo y octubre ( alíseos ) .
El caso es que le han dado la beca , y nos vamos julio y agosto al médano a vivir . Ya tenemos los billetes de avión ( yo del 3 de julio al 28 de agosto ) y una casa alquilada . Se puede ir andando hasta la playa de las cometas .
Me llevo el portatil para trabajr desde allí y tendre internet , porque tengo la conexión esa movil de datos de vodafone .
¡¡¡ no se presenta mal la cosa !!!!!
Por otra parte , estoy con la gui ( interfaz grafica de usuario ) , es decir , con botoncitos iconitos y maquetaciones . He decidido hacerme yo mismo todos esos graficos , y luego cuando estén acabados decentemente hacer que algún grafista los mejore :) creo que va a ser lo mejor .
un saludo !
lunes, 11 de junio de 2007
gus busters
Hola ! .
http://www.cazasubmarina.com/gusbusters/gusbusters.zip
Pues eso , he acabado de pasar a c++ directx a gus . Me estoy haciendo un experto en conversiones movil-pc :) . Es básicamente un infierno pasar un proyecto algo grande de java a c++ , pero con paciencia todo se puede .
Al final usé ID3DXSprite y ID3DXLine . Los graficos : de momento están los que hice para s60 , auqnue probablemente en city life ponga unos gráficos algo más grandes ( es facil hacer una versión mayor , lo que pasa es que los graficos los tendré que cambiar de tamaño yo mismo ) . Tambien se puede cambiar el tamaño de la ventana ( podeis probarlo ) , pero claro , pierde calidad .
El recordstore lo he cambiado por un fichero de datos .
Conseguí meter en el ejecutable todas las imágenes del juego , asi no tengo que pasaros un montón de ficheros ni poner un instalador . todo en el ejecutable ! . Como en total ocupa solo 284 kb con gráficos y todo , pues merece la pena .
Lo he hecho metiendo todos los ficheros en el fichero de resources del ejecutable , con el visual studio . me creé un CUSTOMRESOURCETYPE ( un tipo de recurso propio ) , meti ahi todas las imagenes como informacion binaria , y luego recupero un puntero a esos recursos y su tamaño , y de ahi creo las texturas para los sprites . Bueno , he hecho lo que he podido explicandolo . Si os interesa , pues preguntais :) .
Gus lo he convertido porque en city life podrás con tu personaje comprar niveles del juego y jugar en el ordenador de tu casa .
A Gus había que reaprovecharlo !!! .
Debo una disculpa a Gonzalo , porque hablamos hace un tiempo de pasar a Gus a la ds . Le dije que yo de todas formas tenía que pasarlo a c++ ... pero no me dio tiempo a hacerlo antes , lo siento ! .
Ya me habeis comentado que el juego necesita una dll ( d3dx9_33.dll) . Qué cachondos son los de microsoft , qué cachondos ... en las releases nuevas del sdk de directx están cambiando d3dx9 , arreglando bugs o lo que sea . Y esto ( directx) tiene una arquitectura COM , y son unos chapuzas de narices , así que lo que hacen es incluir una dll distinta en cada release de directx ... bueno , para gus ya no me como más la cabeza .. ya lo solucionaré en city life . Además , esa dll que os paso es redistribuible ( tiene licencia para redistribuirlo sin problemas , a ver qué va a hacer Microsoft si no ... ) .
Os paso un zip con el juego y la dll para que lo podais probar .
AH ! como curiosidad , una cosilla que he intentado : incluir la dll en el ejecutable y extraerla en c:\windows\sys32 . funciona bien excepto por un pequeño problemilla : que el ejecutable busca la dll antes de llegar al codigo en el que extrae esa dll , jaja ! . Se puede hacer , pero voy a ponerme ya con otra cosa , esto no lo necesito para city life , solo para gus .
nos vemos !
Un saludo .
http://www.cazasubmarina.com/gusbusters/gusbusters.zip
Pues eso , he acabado de pasar a c++ directx a gus . Me estoy haciendo un experto en conversiones movil-pc :) . Es básicamente un infierno pasar un proyecto algo grande de java a c++ , pero con paciencia todo se puede .
Al final usé ID3DXSprite y ID3DXLine . Los graficos : de momento están los que hice para s60 , auqnue probablemente en city life ponga unos gráficos algo más grandes ( es facil hacer una versión mayor , lo que pasa es que los graficos los tendré que cambiar de tamaño yo mismo ) . Tambien se puede cambiar el tamaño de la ventana ( podeis probarlo ) , pero claro , pierde calidad .
El recordstore lo he cambiado por un fichero de datos .
Conseguí meter en el ejecutable todas las imágenes del juego , asi no tengo que pasaros un montón de ficheros ni poner un instalador . todo en el ejecutable ! . Como en total ocupa solo 284 kb con gráficos y todo , pues merece la pena .
Lo he hecho metiendo todos los ficheros en el fichero de resources del ejecutable , con el visual studio . me creé un CUSTOMRESOURCETYPE ( un tipo de recurso propio ) , meti ahi todas las imagenes como informacion binaria , y luego recupero un puntero a esos recursos y su tamaño , y de ahi creo las texturas para los sprites . Bueno , he hecho lo que he podido explicandolo . Si os interesa , pues preguntais :) .
Gus lo he convertido porque en city life podrás con tu personaje comprar niveles del juego y jugar en el ordenador de tu casa .
A Gus había que reaprovecharlo !!! .
Debo una disculpa a Gonzalo , porque hablamos hace un tiempo de pasar a Gus a la ds . Le dije que yo de todas formas tenía que pasarlo a c++ ... pero no me dio tiempo a hacerlo antes , lo siento ! .
Ya me habeis comentado que el juego necesita una dll ( d3dx9_33.dll) . Qué cachondos son los de microsoft , qué cachondos ... en las releases nuevas del sdk de directx están cambiando d3dx9 , arreglando bugs o lo que sea . Y esto ( directx) tiene una arquitectura COM , y son unos chapuzas de narices , así que lo que hacen es incluir una dll distinta en cada release de directx ... bueno , para gus ya no me como más la cabeza .. ya lo solucionaré en city life . Además , esa dll que os paso es redistribuible ( tiene licencia para redistribuirlo sin problemas , a ver qué va a hacer Microsoft si no ... ) .
Os paso un zip con el juego y la dll para que lo podais probar .
AH ! como curiosidad , una cosilla que he intentado : incluir la dll en el ejecutable y extraerla en c:\windows\sys32 . funciona bien excepto por un pequeño problemilla : que el ejecutable busca la dll antes de llegar al codigo en el que extrae esa dll , jaja ! . Se puede hacer , pero voy a ponerme ya con otra cosa , esto no lo necesito para city life , solo para gus .
nos vemos !
Un saludo .
jueves, 7 de junio de 2007
sprites de la GUI
Hola ,
hace bastante que no actualizo el log , así que allá voy .
Como os conté , conseguí hacer funcionar las animaciones ( leer correctamente los .x , utilizar el sistema de jerarquias de bones para animar el esqueleto , pasar suavemente de unas animaciones a otras ... ) y estructurarlas bien ...
A continuación hice el movimiento básico del personaje , y luego cargue un escenario y lo rendericé . Así que tengo un persoanje moviendose por una habitación ( con dos animaciones : una parado y otra andando ) . Después me metí un poco con las colisiones y colisiona con las paredes ( aunque no tengo acabado lo de las colisiones , solo colisiono el escenario con un rayo en direccion al movimiento , y tendré que hacerlo con un bounding box o sphere probablemente para que vaya bien en todos los casos ) .
AH ! ahora que me acuerdo ... creo que me pasé un par de días por lo menos con un problema que encontré : a veces se veia mal el personaje , aparecían "rayas" en la textura de algunas partes , y en algunas posiciones el personaje tenía como "huecos" y pequeños fallos . Lancé programas de ejemplos , el visualizador de directx ... y no parecían tener problemas . Bueno , ¡ pues a jugar a encuentra las diferencias! , a ver dónde estaba yo metiendo la pata .
Este tipo de fallos , pequeños y que pueden estar en cualquier parte son los más complicados . Debugueé todo , rendericé de mil maneras distintas ... lo típico , una locura , lo puse todo patas arriba . Al final el problema era el formato del depth buffer : lo tenía como d16 , y con eso parece ser que el depth buffer no tiene precision suficiente ( 16 bits ) . Así que algunos pixels el z-buffer pensaba que estaban "por detrás" cuando en realidad estaban "por delante" y sí había que renderizarlos . con el formato d24X8 tiene más precisión y se ve bien .
Bueno , lo más interesante : me he metido con el 2d . Renderizar una imagen en 2d . Tenía creada una clase ( graphics2d ) , que a partir de una textura la renderizaba en x,y con w anchura y h altura . La que usé en la aventura de numa . Como habreis visto en la aventura de numa las imagenes 2d se ven como un poco "borrosas" , y eso es lo que quería solucionar , ver qué pasaba . Porque para la aventura de numa vale , epero para este juego no puede ser .
Me metí con el ID3DXSprite de directx . Muy facil de usar , pero ¡ me seguía pasando lo mismo !! . Las imagenes salen algo borrosas , no respetan el pixel original . Es más , con el ID3DXSprite , ( no tienes que especificar el tamaño) , ¡ me renderizaba la imagen a un tamaño distinto del original ! .
Estaba claro que en algún momento la imagen se reescalaba o pasaba un filtro y por eso pedía nitidez .
A partir de ahí el caos : implementé como 3 sistemas distintos de renderizar en 2d , probé todos los estados de filtros , usos del mipmapping , opciones de render y texture addressing , tamños de ventanas , formatos del backbuffer ...
Por internet una risa : a todo el mundo le parece super difil rotar una imagen con el ID3DXSprite , pero a nadie le importa la perdida de pixeles del render ( también podría pensar que nadie metia la pata donde yo ... pero no se que decirte , he ejecutado ejemplos que se veian mal ... ) .
Bueno , ya me he alargado mucho , así que intento resumir : mirando distintas formas de crear la textura ( que es uno de los parametros de ID3DXSprite ) , pensé que podría estarse reescalando la imagen en la tarjeta a tamaños de potencia de 2 ( porque algo pone en la documentación , aqune no exactamente así ) ... bingo !! .
altura y anchura tienen que ser potencia de dos . Siempre meto las texturas para 3d en potencias de 2 de tamaño , pero si les cambias el tamaño no pasa nada , no se nota nada extraño . Pues lo que hace directx es hacer una imagen tamaño potencia de 2 y reescalar la imagen original a eso . En 3d es un problema de memoria y rendimiento , pero en 2d se nota visualmente .
Así que para no perder tanto espacio me tocara hacer el 2d en plan móvil : en una imagen meter muchos sprites , y luego renderizar solo el x,y,w,h del sprite que necesito .
Según la documentación esto depende de la tarjeta grafica que sea .
una imagen de 32x1024 se vería bien , no se reescala . Pueden ser distintos valores anchura y altura .
Bueno , todo esto parece una tontería , pero creedme : lo que he escrito aquí os podría ahorrar días de locura .
un saludo .
hace bastante que no actualizo el log , así que allá voy .
Como os conté , conseguí hacer funcionar las animaciones ( leer correctamente los .x , utilizar el sistema de jerarquias de bones para animar el esqueleto , pasar suavemente de unas animaciones a otras ... ) y estructurarlas bien ...
A continuación hice el movimiento básico del personaje , y luego cargue un escenario y lo rendericé . Así que tengo un persoanje moviendose por una habitación ( con dos animaciones : una parado y otra andando ) . Después me metí un poco con las colisiones y colisiona con las paredes ( aunque no tengo acabado lo de las colisiones , solo colisiono el escenario con un rayo en direccion al movimiento , y tendré que hacerlo con un bounding box o sphere probablemente para que vaya bien en todos los casos ) .
AH ! ahora que me acuerdo ... creo que me pasé un par de días por lo menos con un problema que encontré : a veces se veia mal el personaje , aparecían "rayas" en la textura de algunas partes , y en algunas posiciones el personaje tenía como "huecos" y pequeños fallos . Lancé programas de ejemplos , el visualizador de directx ... y no parecían tener problemas . Bueno , ¡ pues a jugar a encuentra las diferencias! , a ver dónde estaba yo metiendo la pata .
Este tipo de fallos , pequeños y que pueden estar en cualquier parte son los más complicados . Debugueé todo , rendericé de mil maneras distintas ... lo típico , una locura , lo puse todo patas arriba . Al final el problema era el formato del depth buffer : lo tenía como d16 , y con eso parece ser que el depth buffer no tiene precision suficiente ( 16 bits ) . Así que algunos pixels el z-buffer pensaba que estaban "por detrás" cuando en realidad estaban "por delante" y sí había que renderizarlos . con el formato d24X8 tiene más precisión y se ve bien .
Bueno , lo más interesante : me he metido con el 2d . Renderizar una imagen en 2d . Tenía creada una clase ( graphics2d ) , que a partir de una textura la renderizaba en x,y con w anchura y h altura . La que usé en la aventura de numa . Como habreis visto en la aventura de numa las imagenes 2d se ven como un poco "borrosas" , y eso es lo que quería solucionar , ver qué pasaba . Porque para la aventura de numa vale , epero para este juego no puede ser .
Me metí con el ID3DXSprite de directx . Muy facil de usar , pero ¡ me seguía pasando lo mismo !! . Las imagenes salen algo borrosas , no respetan el pixel original . Es más , con el ID3DXSprite , ( no tienes que especificar el tamaño) , ¡ me renderizaba la imagen a un tamaño distinto del original ! .
Estaba claro que en algún momento la imagen se reescalaba o pasaba un filtro y por eso pedía nitidez .
A partir de ahí el caos : implementé como 3 sistemas distintos de renderizar en 2d , probé todos los estados de filtros , usos del mipmapping , opciones de render y texture addressing , tamños de ventanas , formatos del backbuffer ...
Por internet una risa : a todo el mundo le parece super difil rotar una imagen con el ID3DXSprite , pero a nadie le importa la perdida de pixeles del render ( también podría pensar que nadie metia la pata donde yo ... pero no se que decirte , he ejecutado ejemplos que se veian mal ... ) .
Bueno , ya me he alargado mucho , así que intento resumir : mirando distintas formas de crear la textura ( que es uno de los parametros de ID3DXSprite ) , pensé que podría estarse reescalando la imagen en la tarjeta a tamaños de potencia de 2 ( porque algo pone en la documentación , aqune no exactamente así ) ... bingo !! .
altura y anchura tienen que ser potencia de dos . Siempre meto las texturas para 3d en potencias de 2 de tamaño , pero si les cambias el tamaño no pasa nada , no se nota nada extraño . Pues lo que hace directx es hacer una imagen tamaño potencia de 2 y reescalar la imagen original a eso . En 3d es un problema de memoria y rendimiento , pero en 2d se nota visualmente .
Así que para no perder tanto espacio me tocara hacer el 2d en plan móvil : en una imagen meter muchos sprites , y luego renderizar solo el x,y,w,h del sprite que necesito .
Según la documentación esto depende de la tarjeta grafica que sea .
una imagen de 32x1024 se vería bien , no se reescala . Pueden ser distintos valores anchura y altura .
Bueno , todo esto parece una tontería , pero creedme : lo que he escrito aquí os podría ahorrar días de locura .
un saludo .
Suscribirse a:
Entradas (Atom)