Code, Freak and Videotape

April 2007 - Posts

Game Center

Bueno, he tardado un par de días en montar una historia que rondaba en mi cabeza desde diciembre. Cuando realicé 2 adquisiciones importantes para el proyecto "game center" una una TV para poner en la bonita pared y otra la recien salida wii.

 La idea era fácil, destinar un trozo de mi espacio vital en construir un pequeño centro donde ubicar todas mis consolas y asi no tener q tocar nada para jugar yo o mis amigos. Esta idea se ha  ido fraguando y ha terminado con la adquisición de la 360 y de una bonita estanteria de madera de haya. una vez colocado, configurado, realizar el cableado y la instalación segura de la electricidad, se ha preparado todo para largas horas de vicio, señores tan solo me falta una nevera para no tener q salir nunca del bunker q es mi habitación. Larga vida al vicio.

 Como verán falta una play3 para terminar susodicho proyecto al 110% se admiten donaciones, otro día colocaré el donate by paypal juaz.


 

 

 

 
 

 


 

Posted: Apr 30 2007, 05:17 PM by flipper83 | with 2 comment(s)
Filed under:
staggered iso: tilePlotting

Bueno, mi idea era unir esta entrada con el mouse mapping, pero viendo que hay bastante interés en el tema, y que acabo de venir de la patxanga semanera con los de la oficina y q estoy muy reventado os voy ha hablar solo de tilePlotting, lo otro algo más largo y arduo lo dejaremos para el fin de semana.

    Quiero recordar en primer lugar al lector que las siguientes lineas que van a leer hacen correspondencia solo a "staggered" y no a ningún otro tipo de pintar mapas en isométrica, esto ya se vio en una entrada anterior, si alguien tiene algún otro interes en otra isométrica (Metonimia??) que me lo haga saber y yo amablemente le mandaré... información ya sea atraves de correo, este blog, u otras vias, acepto invitación a cañas.

 
    Metámonos ya (snif)... en faena. He escogido el término tilePlotting de la lengua de shakespeare y no ya porque sea un gran amante de los anglicismos sino porque me parecía bastante autodescriptivo, bonito y porque asi el lector sabrá que introducir en el casillero de google para encontrar más información de lo aquí acaecido, y básicamente porque asi me lo he encontrado en el libro de Isométrica de Ernest Pareza.

 
    La forma de pintar isómetrica es bastante sencilla, no difiere mucho a como pintar un mapa cenital. Vamos a poner una imagen que espero  que os sirva de ayuda, y a mi de base para la explicación.

 

Como podeis apreciar, las filas pares (tomando también el cero como número par) es en verdad la consecución de un pintado de tiles en forma cenital. Un tile tal cual como éste (imaginando q las partes roja, azul, morada y amarilla son en verdad transparentes):

 

Asi como el astuto lector habrá descubierto ya, las filas impares son a su par lo que las pares pero paridas(Cacofonía???) con un desfase de medio tile tanto en las x como en las y.

Sabiendo ya esto es bastante fácil encontrar una fórmula para nuestro pintado del mapa, voy a poner el ejemplo en c# - XNA, para mayor compresión de los lectores, y porque asi hago control+C control+V y no tengo que escribir en pseudocódigo.

 

        private void RenderFloor()
        {

            //posición del tile dentro del mapa
            Vector2 ptTile;

            //cordenadas del mapa real donde vamos a pintar la imagen
            Point ptMap;
       

            for (int y = 0; y < MAPHEIGHT; y++)
            {
                for (int x = 0; x < MAPWITDH; x++)
                {
                    //conseguimos la posición real del tile
                    ptMap.X = x;
                    ptMap.Y = y;
                    ptTile = getPixelToTileIso(ptMap);
                    spriteBatch.Draw(txpuntos, new Vector2((int)ptTile.X,(int) ptTile.Y ),
                                                new Rectangle((_map[y][x] % (txpuntos.Width /WTile)) * WTile, (_map[y][x] / (txpuntos.Width / WTile)) * HTile,128,96),
                                                Color.White,0.0f,new Vector2(0,0) ,1.0f,SpriteEffects.None, 0.0f);

                }
            }
        }

        
       Fijense en las dos constantes que tenemos definidas MAPHEIGHT Y MAPWITDH (como se echa de menos el autocompletar), nos definen el alto y el ancho del mapa, es decir estamos pintando todo el mapa aunque se salga de la pantalla, de esto hablaremos el próximo día con el mouse mapping. También deben postrar su mirada en la función resaltada, habilmente por mí, en negrita. Esa función nos va a devolver como bien hablabamos antes la posición donde debemos pintar nuestro tile. Dicha función es la mostrada a a continuación:

        public Vector2 getPixelToTileIso(Point ptMap)
        {
            Vector2 ptReturn;
            //calculate pixel position for the map position given
            ptReturn.X = ptMap.X * WTile + (ptMap.Y & 1) * WTile / 2;
            ptReturn.Y = ptMap.Y * HTile / 2;
            //return calculate point
            return (ptReturn);
        }

 
    Creo que la función es autoexplicativa aun así para el alumno más rezagado vamos a explicar que HTile y WTile, son correspondientemente(27 puntos en el scrabble) el ancho y el alto del tile. Y para aquellos que no estén familiarizados con el símbolo "&" en C# y en otros muchos lenguajes es una "AND" a nivel de bites eso es que se realiza una AND de la cordenada y con 1, esto nos devolverá 0 cuando el numero sea par y 1 cuando el numero sea impar. Recuerdan el zigzag del q hablamos antes?? pues esto nos lo hace muy bien y nos ahorramos unos ifs o unos ternarios muy monos.

     Creo que por hoy es suficiente, con esto podreís pintar un mapita en stragged. Próxima lección de isométrica mousse mapping. Y esa va a ser grande y polémica.

     Por cierto a ver si aprendo a subir bien el código fuente para q sea algo más legible.Gracias por la paciencia y la compresión(Paronomasia)

 
    Os dejo una bonita cita para culturizaros:" s'il est un homme tourmenté par la maudite ambition de mettre tout un livre dans une page, toute une page dans une phrase, cette phrase dans un mot, c'est moi" Joubert.


 

 




 

 


 

Posted: Apr 26 2007, 04:25 PM by flipper83 | with 1 comment(s)
Filed under:
nos atacan los virus informaticos

Primero pedir disculpas por retrasar la entrada de isométrica, pero este finde semana han venido a visitarme mis amigas resaca y pereza, acompañadas de diversos compromisos ineludibles. Pero os prometo que en breve subiré dichas entradas (hoy o mañana), eso si para que este post no sea tan insulso os dejo una bonita noticia de diarioTi.  Sobreviviremos al atake de los móviles asesinos? proximamente en su batcanal

 

A porcierto ayer en el discovery chanel vi un reportaje sobre armas del futuro, y aparecía una de ultrasonidos q utilizan en la guerra de iraq q acojone, a ver si encuento una imagen, video o sucedaneo y os lo pongo. Ala a cascarla. 

 

 

Posted: Apr 23 2007, 07:25 AM by flipper83 | with 4 comment(s)
Filed under:
iniciaciación a la isométrica y mi isométrica

Para no empezar la casa por el tejado y como tengo previsto en los post siguientes hablar con relativa frecuencia de algunos conceptos q al lector le resulten en algunos caso extraños e incluso desconocidos y q por otro lado culturizarse no está nada mal, vamos a hablar un poco de la isométrica de la misma manera(el lector atento se habrá dado cuenta del juego de palabras) que vamos a hablar de conceptos q utilizaremos en futuras entradas.

 Lo primero q quería hacer era describir la palabra isométrica lo cual me resulto dificil ya q la RAE no contiene este término. Asi lo primero q pensé es mirar en su etimologia, bastante fácil, del griego "iso" significa igua y métrica "medida"; asi que partiendo de aki ya tenia que era algo referente a la medida, indagando en la métrica, y sabiendo vagamente q esto era una proyección (recurran a sus libros de dibujo técnico señores; caballera, ortogonal,isométrica... les suena?). descubrí q la wikipedia me daba una definición no muy desencaminada de mis anteriores investigaciones, es la siguiente(podría poner el link pero asi me es mas sencillo):

"La proyección isométrica permite la representación de objetos tridimensionales en dos dimensiones, en la cual los ángulos de proyección para los ejes x, y y z son los mismos (120°). El término isométrico proviene de la voz griega para "igual medida", reflejando que la escala a lo largo de cada eje de la proyección es la misma.

Antes de la introducción de los gráficos tridimensionales con tarjetas gráficas aceleradoras era muy usada para representar entornos 3D en el diseño de videojuegos, aunque lo sigue siendo en gráficos y representaciones de tipo técnico."

Impresionante y además con un último parrafo maravilloso haciendo referencia al tema q aki nos atañe la isométrica orientada a videojuegos. Aunq bueno vamos a permitirle al autor la licencia de usar la palabra "diseño" y se lo permito ya q me atañe(fijate esta si q esta en la rae, ademáse es uno de esos verbos q solo se puede conjugar en 3º persona parecido al verbo llover, si quereis un día hablamos de eso), ya q yo cometeré errores bastante más gordos.

Bueno a lo que vamos, ya q sabemos más o menos lo que es la isometrica, y para los q no lo sepan unos claros ejemplos videojuegeriles de su cercana o lejana adolescencia-infacia le harán recordar de q hablamos. Vease por ejemplo juegos como civilization, xcom, diablo, baldur gate, fallout, age of empires(sus 2 primeras entregas), warcraft(sus 2 primeras entregas), la abadia del crimen (para los nostálgicos),starcraft... y muchísimos más ejemplos q podríamos citar.

 

Ahora q sabemos lo que es, vamos a hacer una bonita clasificación, esta clasificación está sacada del Isometric Game Programming with DirectX.7 (el único libro q conozco que hable integramente sobre un tema tan extenso como este y la verdad ya es algo antiguo y no es q sea un gran libro, aunque algunos concepto los aclara bastante bien, porcierto se podian meter por el ojete la parte de directx q ocupa medio libro y no tratar algunos temas importantes en 2 páginas) y de mis experiencias personales, primero hablaremos de las 3 isométricas + 1 que plantea el libro y por último hablaremos de una con muchas implementaciones que he descubierto en mi devenir por este fascinante mundo de la isométrica. La clasificación depende de la implementación de la misma, teniendo esta sus virtudes y desventajas como todo en la vida.

 slidemap    

slide: Es la más fácil de la isométricas pero sin duda la más cutre salchichera de todas, usada sobre todo en juegos de arcade que ahora no recuerdo, y vista alguna en algún juego de carreras. Hace como se ve, mención a su nombre, siendo una aunténtica "desplazadora", como se pueder ver la x se pintan un tile tras otro, mientras que las y con cada nueva fila van desplazando esta x, el ancho de un tile, facil no???, ningún problema, un poco fea. Nunca he trabajado con ella pero a simple vista parece q no tiene muchas complicaciones.

 

 


 diamond

 diamond: La isométrica en "diamante", más bien diagonal, por otros conocidad como la de toda la vida, la que bien veiamos
en juegos como age of empires o sim city 2000. Es la más basada sin duda en el modelo gráfico de la isométrica que conocemos y si vemos el mapa x e y desde arriba lo que hemos realizado es tan solo una rotación de 45º con respecto a los ejes tradicionales de la cenital. La forma de pintar es realizando esa transformada, si a alguien le interesa q me lo diga y se lo pongo pero esta entrada es más de comprender conceptos que de ensalzar mi ego. Esta isométrica fue con la primera que trabajé y la cual la tengo bastante machacada. La verdad es que está bastante bien pero no tiene las ventajas que tienen las siguientes q vamos a destacar.

 

 

 


staggered
 staggered : estraña esta isométrica que debe su nombre no a su traducción de "asombrar" si no a su traducción de "tambalearse" y aunq mi ingles no es una maravilla creo q se le llama asi a esa forma tan característica de poner los ladrillos en los muros, desplazados una mitad(en el del muro para darle más firmeza) y este caso con el fin de poder hacer mundos circulares, maravilloso! un mundo circular, si alguna vez os preguntais porq el mapa isometrico de ultima online nunca terminaba pues aqui teneis la respuesta. Como os dareis cuenta es bastante facil de representar, ya que lo único q hay q conseguir ese zigzag tan bonito. Es una pequeña variación de la primera, solo q este caso la lineas impares de las y son las que hacen desplazar las x, y asi no se va el mapa al carajo. Si quereis ver un claro ejemplo de staggered fijaros en el civilization. El punto negativo de esta isometrica, lo acabo de encontrar hace unos días, es bastante más costoso calcular el tile(del español teja) en el que estais a partir de las cordenadas x e y, ya os enseñaré como se hace, porq es esta isométrica en la cual estoy centrado y sobre la cual voy a trabajar, porq?? ya os lo contaré en la siguiente entrada. Si alguien encuentra una fórmula directa, es decir como en los dos anteriores casos de isometrica para sacar el tile, porfavor q me lo diga, porq ni yo, ni varios articulos, juegos o libros nos hemos dado cuenta.

 3D: la más facil de todas, cojes una camara y la pones en isometrica, ya tienes isometrica. Impresionante q rápido, pero eso a los clasicos q no tenemos tarjeta gráfica aceleradora no nos interesa. Vease todos los juegos modernos, warcarft 3, neverwinter nights... Esta también está en el libro de isométrica y de esa forma queda destapado el misterio del +1

 
Falsa Isométrica: Hace unos meses casi un año diría yo, me las veia muy contento porque me creia muy inteligente, ya que implementé una isométrica que utilizaba tiles cudrados, en verdad era cenital(visto desde arriba o de lado, mario bross o zelda), no tenia los tiles en isometrica y no utilizaba nada de lo anterior visto. Pero llegó un amigo mio Manuel Pazos uno de esos cracks de los enamorados de msx, y me enseñó que el gran Paco Menéndez ya había programado algo parecido incluso mejor que lo que yo habia ideado, luego descubrí que gameloft, una empresa de videojuegos para móviles, también usaban un engine parecido y que en pc cuando las tarjetas 3D estaban despegando, nación infinity el cual no andaba muy desencaminado de mis ideas y se aprovechaba de escenas prerenderizadas obteniendo asi un nivel de grafismo bastante alto, supongo aunq no lo se con certeza q "Comandos" haría algo parecido. la idea es no tener un concepto de isometrica, sino solo gráfico, y resuelves todos los problemas q tiene la isometrica con cajas. Algún días si os interesa explicamos estos teoremas con mayor precisión porq son bastante interesantes.

 Bueno eso es todo por hoy, intentaré ser menos coñazo la próxima vez y ser más practico y menos teórico.

 
Para terminar probar a buscar en google "eulixu" y me explicais porq te dice quiso decir "felix"eing porcierto me equivoque porq queria decir "eulixto". ale hasta la otra perdonar la faltas de ortografia pero es un texto muy grande y no tengo ganas de revisarlas.

Posted: Apr 17 2007, 01:38 PM by flipper83 | with 11 comment(s)
Filed under:
Soy el nuevo

Bueno señores, los q hayan entrado aki porq me conocen no creo q les tenga nada q decir excepto q lean mi bio para conocerme mejor, si es una chica yo le doy mi teléfono y nos conocemos más en profundidad (chiste facil, para q negarnos).Los q no me conocen pueden saber algo más de mi here. (Como podeis ver en el ultimo post del here,volvereis aki, por "babor" huir de los bucles infinitos no le hacen bien a tu explorador).

 Lo q encontrareis aki será un blog de un semidesarrollador enfocado en el mundo de la programación para videojuegos. Hablaré de esto bastante, pero tambien encontrareís cosas de otros campos como cine, musica, frikismo, todo es bueno en la viña de señor(no me pregunteis de quien es la viña. solo respondo preguntas tontas).

Bueno en los siguiente días estaré por aki con cositas de isométrica, xna y algún huevo de pascua. Asi que no os asusteis. Soy asi. NO SE PORQ ME DEJARON ENTRAR AKI.

 video meliora proboque, deteriora sequor.