Malgrat haver-m’ho proposat, m’ha sigut impossible augmentar el nombre de posts mensuals. Em costa molt posar-m’hi. I ara que m’hi poso és precisament… just abans de començar els exàmens finals (d’aqui poques hores tinc el primer). No sé què em passa, que quan més feina tinc i més centrat hauria d’estar, més motivació em ve per fer altres coses.
En concret, el que m’ha estat rondant pel cap aquests darrers dies ha estat un videojoc de PSP: Loco Roco. Des que en vaig veure el video que he enllaçat a Youtube que me’n vaig enamorar. És molt simpàtic i, a mi personalment, m’han entrat moltes ganes de jugar-hi. Però hi ha algun problema: no tinc PSP, el preu dels jocs és elevat, i m’agradaria poder-hi jugar al PC o a qualsevol trasto que se’m posi al davant. La solució és molt “simple”: fer-me jo el joc.
Encara no ho havia comentat al blog, però la programació de videojocs és un dels temes que més m’interessen. Concretament en vaig començar un com a pràctica de la universitat i el vam continuar mínimament amb el company de la pràctica. Es tracta d’un clon del PacMan en 3D, amb suport de joc en xarxa i diverses millores. De moment està molt verd i encallat, però tinc intenció de tornar-m’hi a posar més endavant.
Tornant al tema principal, una bona part de la motivació per fer un clon del Loco Roco m’ha vingut de les característiques gelatinoses dels ninots protagonistes. Sempre m’han fet gracia els objectes així de deformables i dinàmics, i m’ha picat la curiositat de provar de programar-ho.
ALERTA DE FRIKISME: Els següents paràgrafs contenen vocabulari i conceptes bastant més frikis que el que és habitual en aquest blog. Si no us interessa en particular la informàtica, us els podeu saltar
Una tècnica que em sembla ideal per dur a terme aquest joc és el dibuix vectorial. No hi tinc experiència, però em sembla molt temptador, de manera que de moment m’he començat a informar. Ahir vaig començar a llegir sobre Cairo i pinta molt interessant. Cairo s’ha fet molt famós darrerament en el món dels escriptoris lliures, però la majoria de gent (jo m’hi incloc) no tenim ni idea de què va, només sabem que Cairo va relacionat amb millors gràfics i prou.
Pel què he pogut veure amb el primer contacte, es tracta d’una API de dibuix vectorial molt similar a OpenGL, però simplificada per a les 2 dimensions, i amb característiques avançades com el renderitzat de textos i corbes, tot intentant aconseguir una qualitat gràfica excel·lent (amb antialiasing de sèrie
). A més està pensat perque el dibuixat sigui independent del dispositiu, de forma que es pugui utilitzar tant en pantalla com per a imprimir (per exemple, el Firefox 3 basarà el seu dibuixat de pantalla i la impressió en Cairo), i ja hi ha un backend per generar PDFs.
Igual que OpenGL, Cairo és una màquina d’estats, en què hi ha principalment funcions que canvien l’estat, i altres que realitzen accions però sense canviar l’estat. Algun exemple de les funcions de canvi d’estat serien per exemple l’aplicació de transformacions geomètriques (traslacions, rotacions, etc… igual que en OpenGL), i el canvi del color de dibuix o gruix de la línia. Per altra banda, les funcions d’acció són per exemple les de dibuixar una corba o un text.
A primer cop d’ull sembla que dibuixar objectes deformables ha de ser tan simple com definir uns punts de control mòbils al voltant de l’objecte i dir-li a Cairo que realitzi la corba entre ells. A la pràctica segur que és més difícil
Tinc ganes també de provar la viabilitat de Cairo per a renderitzar gràfics en temps real, ja que té certa fama de falta d’eficiència (pel què he llegit, l’optimització serà un dels principals objectius de la futura branca 1.4). Al menys a hores d’ara ja es tracta d’una API estable, o sigui que de moment l’objectiu és fer aplicacions interessants amb Cairo. Quan apareguin noves versions, totes les aplicacions que l’utilitzin es beneficiaran inmediatament de les millores.
FINAL DEL FRIKISME: Tranquils, tot torna a la normalitat
Només em queda dir que ho vull dur a terme seguint els ideals del programari lliure (ja en parlaré algun altre dia), com a passatemps en les estones lliures i de forma que tothom hi pugui participar i col·laborar a la seva manera. Amb això convido a que qui vulgui, pugui fer-hi qualsevol tipus de col·laboració, des de la proposta d’idees, proposta de noms pel joc, disseny dels gràfics (de moment la Menxu ja s’ha proposat, gràcies!), programació, etc…
Vaig plegant, que queda poc ja per l’examen. Seguiré informant!
PD: Amb el temps m’han anat venint idees de nous temes sobre els que parlar al blog i me’ls he anat apuntant. És una amenaça xD

Esta muy chulo el loco roco. Entre la musica, los colores, los soniditos q hacen los bichos y el prota queda todo supermono. Estaba preocupado ultimamente que no se pudiese jugar en las psp’s viejas sin actualizar y miraba cada vez que salia una noticia solo para saber si podria jugar a este juego xD. Ahora que ya se que se puede no miro tanto las noticias x)
Yo me apuntare al cursillo de videojuegos que se hace en julio en jedi que tambien me gusta mucho hacer paridas de estas… Tampoco espero aprender mucha cosa, pero por lo menos me pondre y claro, en realidad lo hago por los 4 creditos que dan y que son los que me faltaran (espero) para acabar la carrera xD. Apuntate y asi no voy solo
xDDDDD