divendres, 27 de febrer del 2009

Vaja dia...

Un dia liadet... Be, de totes formes, el temps que he tingut l'he dedicat a preparar el Arounders per a Mac i Linux.

Mac:
Compilat sense problemes, i el programa en sí funciona perfectament, pero dona problemes al reproduïr els midis. Els midis curts del principi els talla en sec prop del final. El Arounders Theme i la que sona cada 5 fases sonen perfectament, pero no fan bucle. I la sirenita i la cantina dirèctament deixen penjat el programa. Al final me palntejaré gravar els midis en mp3 i a fer la mà.

Linux:
He intentat instalar una Ubuntu en una imatge vitual de VirtualBox, pero una vegada instalat me dona fuckin problemes raros. O siga, que encara ni he provat a compilar el joc. No, si al final me tocarà pujar un comp del trastero... Altra història es si compilar-lo per a 32 bits o 64 bits... Be, instale les dos i au.

I així estàn les coses. A vore si demà tinc alguns ratos i continue amb estes coses, o sino me fique a provar mapes o a acavar les sequències. El dimuenge dubte que puga fer res ja que apenes estaré en casa. Potser un release el dilluns es massa prompte.

dijous, 26 de febrer del 2009

Quasi quasi acavat

Vaja, quasi sense donar-me compte he acavat el joc. Be, realment queda ben poc. Gonna fer un repas de les novetats i del que encara falta:

Menú dins del joc
El menú que apareixerà al pulsar ESC ja està acavat. Ací teniu un scrinxot:


Continuar el que fa es tornar al joc, lo qual es lo mateix que tornar a pulsar ESC.
Reiniciar fa un fast reinici del nivell, sense passar per escenes ni pantalles previes.
Menu principal torna, pos això, al menu principal del joc.
Eixir, eix del joc.

Pausa
Ara, a part de pulsant la tecla "P", també es pot pausar el joc desde el ratolí, pulsant el botó del mig. He considerat que es prou còmode, així apenes ni fa falta tocar el teclat.


Fast forward
Com el botó de suicidi colectiu ja no valía per a res, he pensat en aprofitar el espai i implementar una funcionalitat que el MasterJail em va demanar quan va vore la primerísima beta pública del Arounders.


Pulsant el botó fareu que els arounders avancen a la velocitat del tocino, per no esperar que arriven tots quan ja està el nivell solventat (o quan es vullga). Es pot apagar i encendre. Útil per a acurtar les llargues caminates de arounders. De vegades fa gracia, vore'ls a tots corrent like locs :-D

Música
Com ja sospitava, ficar la música ha sigut coser y cantar. Espere que no me done problemes en Linux o Mac. Si tinc temps esta nit, ho provaré al Mac.

Polls en les accions
He polit un montó de polls i incongruències que hi havia en les acciones de Parar, Corda i Passarela. Ara es comporten igual (o quasi) al original. Encara no he provat tots els mapes, pero després dels nous arreglos en les accions, per ara ningún necessita refer-se. He decidit que potser inclus deixe tots els mapes like estàn, ultra facils inclosos.



Lo que falta
- Incloure totes les sequències (a part de la inicial)
- Provar tots els mapes (ja he provat about el 40%)
- Compilar i provar el joc en Mac i Linux (en Mac, a part dels últims canvis, ja està fet)

Be, pos això. Si no passa res, este cap de setmana faré un release de la versió 0.99 RELEASE 2 del joc, i quedaré a la espera de que me digau si trobeu algún poll, per a traure, per fí, 9 anys després de la última versió, la v1.0. 8-D

dimecres, 25 de febrer del 2009

Bon progres

Hui he acavat el mòdul de sequencies, i ja funciona la primera. Les demés les aniré fent conforme puga, mirant el joc original. Havia pensat instalar-me un Win98 en el portatil viejo y gordo i així vore-ho tot like en los viejos tiempos, pero la veritat es que tardaré més que si vaig fent-ho amb paciencia en el DosBox.


També he acavat el mòdul de escriure el password, el mòdul de postfase i el mòdul de quan has fracasat. Queda fer el mòdul de credits del final, encara que igual use el mateix mòdul de sequencies.

Açò me recorda una pregunta que volia fer-vos, a vore que vos pareix millor. En el Arounders Classic, si durant una sequència pulses un boto, la acava directament. Penseu que podria ser millor que, en compte de acavar-la del tot, símplement pasara a la seguent diapositiva? o sería un fotre perque el que es vol es passar les sequències ràpidament?

El mòdul del joc encara el tinc que retocar i apuntalar un poc. Per exemple, encara no he acavat el menú que apareixerà quan es pulse ESC. I ja que parle del tema, amb aquest menú, que te un reiniciar ultrafast (no passa per sequencies ni pantalla de prefase, sino que fa un fundido i al tornar ja estas jugant de nou), ja no te trellat el suicidi col·lectiu, així que tindré que llevar el botó. En versions anteriors a la v0.97 BETA 7, versió en la que es va introduïr la acció CORDA, la barra tenía un botó menys (adjunte scrinxots per comparar). A vore si puc retocar la barra per a tornar-la a aquell estat.



I, per suposat, encara falta ficar la música, pero crec que no suposarà ningún problema.

Per altra part, abans de ficar-me amb el Arounders HD m'agradaría remakejar altre jailgame, per a perfilar un poc més l'arquitectura que estic fent. Així que si algú me deixa el codi font d'un dels seus jailgames (lowres, no ascii) i permís per a fer el remake, pos guay del paraguay.

dimarts, 24 de febrer del 2009

Poll o no poll?

Hui he perdut quasi tot el dia amb un poll respecte al arxiu de recursos. Ja vaig trobar problemes fa uns dies, i pensava que la culpa era del programa que monta el arxiu. Hui he trobat problemes de nou i, despres de revisar a fons el arxiu, he vist que está perfecte, així que la culpa tenía que ser de la rutina que llig el arxiu, precisament la única p**a rutina que he copiat de altre lloc perque ja feia exactament el que volia.

Al final quasi que s'ha arreglat sola (que por!), perque total, l'unic que he ficat es una comprobació de si el arxiu està en EOF (nomes comprovar-ho).

Be, a part d'aixó ja he ficat els logos del principi i les sequencies están quasi completes. Be, la lògica, perque les sequencies en sí les tindré que copiar a base de vore-les en el DosBox. Per cert, algú sap si en el DosBox es pot detindre la emulació o algo paregut, tipo pausa? es que si aprete CTRL+F5 per a fer el shot, el Arounders s'ho pren com que he pulsat una tecla i finiquita la sequencia.

Aixó me recorda que he vist, desde el DosBox, algo raro amb les sequencies: He anat a vore la sequencia del principi de la sexta fase, quan es troba a Paco, i no pasava de la primera "diapositiva". Ho he comprovat per a les demés i he vist que la única que funciona es la que hi ha antes del menú, i la del final del joc, pero a base de pulsar "espai" per a continuar. De repent he pensat que si este bug estaría sempre i mai haveu vist les escenes al complet que hi ha cada 5 fases.

Mes tard he vist que pasar de diapositiva pasa, pero igual es tira 1 minut, pel que estem igual. Qualsevol persona al esperar tant haurà pulsat una tecla (abortant la sequencia) per a continuar, i per tant, tampoc ho haureu vist. Ara vos toca a vosaltres dir-me si, al menys en el original quan jugareu antaño, les escenes de cada 5 nivells les vereu completes o nomes una "diapositiva".

Por últim, he fet un logo provisional per a JailGames, adjunte shot. A vore que vos pareix, opinions, propostes...

dilluns, 23 de febrer del 2009

Avançant...

Hui he estat mega-liat. No obstant, he tingut temps de refer la part de control de teclat i ratolí. A part, he fet el menú principal i la pantalla de prefase (la del shot).


Estic pensant que sí que faré la expansió del Arounders per a esta versió. Així amortitze un poc l'esforç de fer el joc, que total, com ja havieu jugat, pos segur que pasarieu d'ell. Així tindreu una excusa per jugar (espere :-P).

Demà el dia te millor pinta així que supose que li podré pegar una bona espenta al desenvolupament del joc.

Ahir estava pensant en com va naixer el Arounders. Com sempre, va ser una tonteira feta un dijous a la Jail. També recorde que, com sempre, quan estava arrivant al 90% de tindre el joc acavat, vaig perdre prou les ganes.

No obstant, en aquella época el JailDesigner va dur a la jail el seu novissim Pepe el Pintor, amb colorins i historietes i música i tal. I me vaig picar mogolló. Després de vore el Pepe li vaig fer un montó de canvis al Arounders, entre tants el afegir-li escenes pel mig dels nivells.

Des d'aleshores, sempre he sabut que la millor forma de tirar avant es picar-te amb algú o amb l'ajuda d'algú, i es eixa la raó per la qual vaig montar este blog. Espere que sortisca efecte :-)

diumenge, 22 de febrer del 2009

El futur dels Arounders

Com ja m'imaginava, hui no he tingut molt de temps. Com Guillem ha estat donant pel cul tot el matí he intentat preparar l'entorn de desenvolupament en el portatil de Mariola i aixì estar amb ell al salò, però m'he tirat tot el temps del que disposava nomès preparant-ho tot, ja que el Vista es prou perculero respecte a canviar arxius que estàn en rutes fora de la carpeta Documentos.

Be, te igual. Si puc esta vesprada faré algo. Ara vaig a comentar el que tinc previst per al Arounders en un futur:

En principi, vaig a acavar el joc original. Una vegada estiga acavat vos el passaré per a que el prove qui vullga, i amb el que em digau el retocaré o poliré els polls restants. però en quan l'acave tinc varios projectes, alguns en ment, altres més perfilats.

Un d'eixos projectes es fer el Arounders HD. Seria exactament el mateix joc pero a 640x480, millorant els grafics, les sequencies i la música. Aquest es un projecte molt interessant que serà la base de els següents.

Altre projecte es la expansió del Arounders. Vindria a ser més mapes i mes sequencies pero sense variar molt el joc en si. Encara no he decidit si la expansió serà per al Arounders original o per al Arounders HD. Que penseu?

El següent projecte es el Arounders 2. Estaria basat en el Arounders HD i, be, ja canviant prou coses. No vull plantejar molt rígidament com serà el Arounders 2 sense acavar primer el Arounders HD, així que per ara no diré molt al respecte.

Per últim, una vegada estiga el Arounders HD, començaré a fer una versió per al iPhone/iPod Touch. Aquest joc serà el Arounders HD pero adaptat a la pantalla del iPhone, amb mapes diferents (i scroll). Per suposat, tindré que "domesticar" la historia. Si vull fer un joc comercial, no puc ficar bromes internes dels Jailers, ja que ningú les pillaria i seria un fracas. Tindré que apanyarmeles per a retocar la historia mantenint la esencia.

Per altra part, m'agradaria que altres jailgames no quedaren "en el olvido". Així que si algú no es planteja reescriure els seus jailgames pero li molaria, que em pase el codi font i recursos associats i el pasaré jo. També m'agradaria saber que penseu respecte a açò. Com sempre, si algú vol fer-ho pero no sap per on començar o necessita ajuda, jo sempre estic ací per a tirar una mà o escriure un tutorialet. Pero clar, si hi ha interés.

dissabte, 21 de febrer del 2009

Bug Hunting

Hui m'he dedicat a pillar street polls i variacions respecte al original.

Respecte al polls, no hi ha més problema. Que si escalant no-se-on el arounder se'n entra per la paret, que si fent una pasarela ací el arounder fa una cabriola i se suicida...

Les variacions (algunes podrien catalogarse de polls) son mes importants. Per exemple, la corda no funciona exactament i alguns nivells son imposibles. Això ho tinc que arreglar. Altres variacions, encara que me faràn canviar algún nivell, se quedaràn com estàn.

Hui també he estat jugant als nivells. N'he de canviar, com a minim un 40-50%, encara que siguen canvis minims, ja siga perque son molt facils i no m'havia donat compte, perque he descobert formes de superar-los de formes diferents, o porque les variacions els fan imposibles o poc interessants.


Respecte al desenvolupament, hui he estat implementant el menu i la pausa, encara que no ho haja pogut acavar. Ara al pulsar P se fa un fade que deixa la pantalla un poc gris (adjunte scrinxot) i al tornar a pulsar P se torna a jugar. El cursor se podrà moure durant la pausa. De fet, el cursor se podrà moure sempre, no m'agrada que se quede mai bloquejat, dona mala sensació. Durant les sequencies tampoc vull que pase el que passava al original, que per a pasarles tenies que pulsar SPACE durant el milisegon que comprovava el teclat, sino que quan es vullga es puga eixir.

Respecte al menu apareixerà pulsant ESC. He deixat la pausa separada del menú perque el menú tapa part de la pantalla i no val per a espigolar el mapa.

Per altra part, estic considerant canviar tots els menus (el principal, de fase fallida...) per a que siguen mes usables. Vull que al passar per damunt de algo sobre el que es puga fer click hi haja feedback; que es colorejen les lletres o algo.

Potser algú pense si ja estic fent massa canvis al joc. Sempre que m'he ficat a refer un dels jocs classics he comés l'error de canviar-ho quasi tot. Amb aquest em vaig prometre no canviar-lo sustancialment, sino fer com si tinguera que acavar-lo, fent els canvis que haguera fet en el seu moment i foren raonables. Per tant, no tinc por de canviar el que faça falta si es que no m'agrada com funciona dins del propi Arounders Classic.

Per altra part, tinc altres projectes en ment en els quals ja es canviaràn tots els gràfics, músiques i tal, així que no te sentit canviar tot aixó. Potser demà, que no crec que tinga molt de temps per a desenvolupar un poc mes el joc, parle del futur del Arounders.

divendres, 20 de febrer del 2009

Arounders sucosets

Ale, els arounders ja saben fer totes les accions. A falta de polir street-polls, ja està tot lo important. Del modul de joc nomes queda implementar la pausa, el menu eixir i les explosions pixelades.

Per altra part he implementat un mode de zoom x2, ja que jugar a pantalla completa en un pantallón de 22" a 1680x1050 queda raro, pero en finestra queda quasi com un icono. Segurament el mode de zoom x2 serà el mode per defecte, i per linea de comandos faré que es puga triar tamany normal i pantalla completa.

Respecte a coses que s'han parlat en els comentaris: continue pensant en llevar el suicidi colectiu, ja que no es una forma ràpida de reiniciar, també te du al menú de fase fallida. El que tinc pensat es que al pulsar ESC eixca un menu en pantalla que permeta tornar al joc, reiniciar la fase ràpidament (sense mostrar sequencies ni menus pel mig), tornar al menú principal o eixir del joc. El que no faré es acavar la fase quan ja es imposible guanyar, per a que la gent puga aroundar a su gusto.

Este cap de setmana espere acavar els menus i les sequencies, i ja tindria quasi tot el joc acavat.

I en otro orden de cosas, he trobat un poll graciós en un dels shots que he publicat. A vore si algú el troba!

dijous, 19 de febrer del 2009

Arounders en el Mac

Encara no havia postejat ninguna foto desde el Mac.

Arounders supervitaminados

Ale, els arounders ja saben escalar, fer escaleres, pasareles i tirar cordes.


Respecte a les escaleres, me falta que no reboten quan arriven a una escalera per darrere. Es una funcionalitat que vaig afegir cap al final del desenvolupament del Arounders clasic perque sino en nosequina fase me fotia.

Respecte a les pasareles, he canviat la forma en que funcionen. Abans s'activava l'acció nomes pulsar el botó. Com no li trobe massa trellat, he fet que s'active al trobar un precipici. Hi havia alguna fase que contava amb tindre que activar la pasarela en l'ultim moment per a superarla. Ja vorem si la retoque o que.

Respecte a la corda, l'acció està acabada, el que me falta es que els Arounders pujen i baixen per ella.

Una vegada estiguen totes les accions, faré el efecte eixe de pixels volant quan se trenquen parets o explota un arounder, i faré que els arounders que arriven a la meta se compten com a arrivats, i que si arrivats = necesaris acave el mapa, i que si... be, tota eixa xicoteta lògica interna que farà que el modul del joc en sí estiga acavat, i ja puga ficarme amb menus i sequencies.

Això em recorda que estava pensant fer que si en algún moment de la fase ja es imposible guanyar (perque no queden prou arounders), que la fase s'acave i no es quede esperant a que arriven tots els arounders que queden o a que se suiciden tots. Que penseu?

Dimonis!!

He fet canvis a la configuració del blog, en primer lloc l'he ficat en valencià, lo qual no passa res. El problema es que estava amb l'hora del Pacífico o algo així, cosa que ja havia vist, i al ficar els posts ho arreglava a ma. El cas es que al ficarlo a GMT+1 s'han menejat tots els posts, canviant de dia (si no havera tocat l'hora a mà, grrr...). El cas es que he modificat les dates i hores de tots els post per a que al menys el dia es corresponga al real.

No se com afectarà a RSSs y histories. Disculpen las molestias.

dimecres, 18 de febrer del 2009

Primeres accions implementades

Ale, els arounders ja saben Parar, Cavar i Perforar. Crec que son les accions mes simples, i probablement tambe van ser les primeres que implementaria en el seu moment, o potser Escalar estaria tambe entre les primeres. Si tinc temps hui intentaré implementar Escalar. Demà vore les accions de Escalera i pasarela, que son un poc especials (decreix el número de la acció conforme més escalons es fiquen, en compte de 1 per acció) i després ja vindrà Corda, que es la més especial de totes.


Vaig a comentar els canvis que per ara he fet o tinc planejat fer al joc original:

Logos i credits
- Es reemplaçarà el logo de 'JailDoctor Games' per uno de 'JailGames', que mola més.
- També es canviaràn els credits del final, ja vorem que fique.

Marcador
- El botó de la acció actual es vora pulsat i el de la acció prevista parpadejant.

Accions
- Les accions nomes es podrán fer si el arounder està caminant, a excepció de Caminar i Suicidi.
- Si el arounder està fent altra cosa, la acció quedarà en estat 'prevista'.
- Si es pulsa el botó de la dreta, es cancela la acció actual i es torna a caminar. Si hi ha alguna acció prevista inmediata, s'executa. Si no es inmediata es manté a la espera.
- La acció Suicidi Colectiu no te trellat i no la vaig a implementar. Ja vorem que faig amb el botó del marcador.

dimarts, 17 de febrer del 2009

Thinkin' que te thinkin'

Hui m'he dedicat a provar com funcionava el Arounders antic respecte a les accions. Si estem caminant, hi ha accions que son inmediates, com parar, perforar, suicidi... i altres que s'esperen a que el arounder arrive a un cert lloc, per exemple escalar no s'activa fins que no es trobe una paret, al igual que cavar; la corda no es llança fins no trobar un precipici... Així està clar. La complicació ve si el arounder ja està fent altra feina. Si el arounder està cavant i li dic que pare, que fa? o més dificil, si està cavant i li dic que escale (que ni tan sols es una acció directa)? Les meues proves han determinat que la gestió era un desastre: Hi ha accions que poden interrompre a altres i altres que no, i no es segueix ningún criteri lògic. Així que he decidit repensar totes les interaccions posibles.

Al final la decisió es que les accions nomes es poden fer si el arounder està caminant. Si no està caminant i se li mana altra cosa la nova acció es quedarà pendent fins que el arounder acave i torne al estat de caminar, moment en el qual es procesarà la acció (si era inmediata, pues la farà directament, sinò s'esperarà). Les úniques accions inmediates son caminar i el suicidi.

D'aquesta sol·lució el que no m'agradava es que de vegades podria ser interessant fer que en un cert moment de una acció se fique a fer una altra. La solució es la següent:

Abans el botó de la dreta el que feia era interrompre la acció actual per a que el arounder continuara caminant. O siga, que si estava escalant, li manava altra acció, pero despres pulsava el botó de la dreta, el arounder caminava i s'oblidava de tot lo demes. Pulsar el botó de caminar del marcador tenía exactament el mateix resultat.

Ara pulsant el botó de caminar del marcador farà aixó, pero si es pulsa el botò de la dreta serà un poc diferent: El que farà es detindre la acció actual i tornar a caminar, pero sense borrar la acció que tenia prevista fer despres. Així, si era una acció inmediata, al pulsar el botó de la dreta es ficarà en marxa, i si no ho era, es mantindrà a la espera fins que es puga fer.

No se si al explicar-ho queda lios, pero al usar-ho es facil i intuitiu.

Per altra part, quan el arounder estava fent algo (digam que estava caminant) i se li manava fer una acció no inmediata (com per exemple escalar), en el marcador se quedava pulsat el botó de escalar, lo qual es prou lios, perque no saps qué esta fet ara el arounder. Així doncs, he decidit que el botó que es veu presionat es el de la acció que s'està fent ara mateix, i la acció que se li ha manat pero que encara no pot fer es vora com un botó que parpadeja pulsat i sense pulsar. Així es prou més intuitiu.

A vore si demà puc avançar un poc més el joc...

dilluns, 16 de febrer del 2009

En ocasiones veo arounders

Be, ja tinc arounders aroundant per la pantalla. Per ara caminen, reboten en les parets, i cauen pels precipicis.


Una de les pitjors coses que tenía el arounders antic es la pèsima gestió de quin era el arounder seleccionat. Hi han la tira de formes de fer que pete per culpa d'això. Ara ho he implementat com una típica llista de punters, amb 'anterior' i 'siguiente', i desde el GameController, tinc un punter al primer i al seleccionat, i la gestió de esborrat de arounders la fa el GameController, que es el que corta el bacalao. Ara la gestió es molt mes robusta i te en compte casos raros pero perillosos (ningún arounder en pantalla, primer arounder mort o arribat a meta, arounder seleccionat mort...). No es gran cosa desde fora, pero es que per dins estava prou podrit.

La gestió de les accions es altra cosa que tinc que mirar i que, probablement, serà un dels canvis mes grans respecte a l'original. Sobre tot perque l'original ni era consistent ni robust (era dificil saber si mentres estava fent certa acció podía dir-li que fera altra).

Crec que demà vaig a sentarme a pensar com montar el tema de les accions abans de fer molt.

diumenge, 15 de febrer del 2009

Estructura de l'aplicació

Hui no he fet res del Arounders. M'he tirat tot el matí configurant el Pitufo i baixant codecs per a que Guillem se puga vore els Baby Einstein eixos. Al final, despres de ficar el FFDSHOW eixe de sempre, nomes puc vore la meitat. Ara que caic, no he fet la típica instalació del PowerDVD per a que el comp tinga codecs de MPEG2, igual es aixó (encara que me pareix extrany que el ffdshow no en duga). Be, ja ho miraré el cap de setmana que ve. De totes formes, si algú mes ilustrat en codecs me pot guiar un poc...

Com no tinc res nou que contar, aprofite per a explicar un poc la estructura que segueix el joc. Si una cosa volia era que el programa fora lo suficientment modular i estructurat com per a no ser un fer la mà si el dia de dema (o hui mateix) necesitava canviar alguna cosa. Tampoc volía que, si algún objecte volía pintar en pantalla, tinguera que cridar a mà a les funcions de SDL, perque si demà canvie de llibreria tindria que recorrer tot el codi fent canvis. Així que he creat diversos moduls amb diferents responsabilitats. El sistema encara no es optim del tot, pero ja aniré refinant-ho en seguents jocs.

En primer lloc tinc un objecte anomenat AppController, el qual el cree en el main(), invoque el seu mètode Go() i quan acava el destrueixc. Eixe es tot el codi que hi ha al main() (per als que ja no recorden C, la funció main() es el punt d'entrada a l'aplicació).

I que fa aquest objecte? Per a començar, inicialitza SDL, despres crea un objecte DrawManager i un objecte GameInfo i fica titol a la finestra. DrawManager es un objecte que inicialitza la pantalla i pinta sobre ella. Serà l'unic encarregat de tocar directamente les funcions gràfiques. GameInfo es un objecte tonto que l'unic que fa es mantindre informació general del joc, en aquest cas, el estat del joc i el nivell en el que estem.
Una vegada inicialitzat, entra en un bucle del qual nomes eixirà quan gameInfo->estat == ESTADO_SALIR. Dins del bucle fa un switch per a comprobar en quin estat estem i, depenent del estat, crea i crida a un altre objecte, que serà del tipus SequenceController, MenuController, GameController... passant-li el GameInfo, i que prendrà el control. I quan eixe objecte acave, tornarà el nou estat en el que està la aplicació.

Així un fluxe habitual serà començar amb el estat == ESTADO_LOGOS, cridar al objecte LogosController, que mostrará els logos de JailDoctor Games, de THX i aixó, i quan acave tornarà ESTADO_SECUENCIA. De nou en el bucle, al vore eixe estat se cridarà a un objecte SequenceController, que al vore que GameInfo->fase = 0, mostrarà la sequencia de inici i tornarà ESTADO_MENU. I així tot el programa, fins que algun d'eixos objectes torne ESTADO_SALIR, que acavarà el bucle, finalitzarà SDL i els objectes que li pertanyen, i s'acavarà la execució.

Be, amb açò vos feu una idea. També esta el objecte KeyboardManager, MouseManager... Eixe tipus d'objecte se'ls aniràn passant tots els demes. Així la gestió de pantalla, teclat, so... està centralitzada en un únic objecte, pero tots els que ho necesiten tenen eixe objecte per a demanar-li coses.

En resum, els objectes *Controller son objectes que tenen inicialització, execució i finalització. Controlen la sequencia del programa. El objectes *Manager son responsables d'una part de la funcionalitat a baix nivell del programa, es creen nomes una vegada i els demes objectes tenen acces a ells (pero no directament a la seua funcionalitat).

Be, si de cas ja contaré més cosetes altre dia...

dissabte, 14 de febrer del 2009

Brand New TV

Este cap de setmana poc faré del Arounders. M'he comprat una nova tele, una Samsung de 32", HD Ready i TDT. Es un model similar (al menys en estètica) al que va dur el Designer a l'última party. Molt xula i molt barata, per a reemplaçar al, mes que gorila, King Kong que tenía en el saló (deu pesar vora 70 Kg). I ja ficats, estic deixant boniquet el Pitufo (el barebone que tinc en el saló com a Media Center), que ara dona goig.


De totes formes, el joc per ara estava desenvolupant-lo sobre Windows. Este matí l'he passat al Mac i l'he compilat sense problemes. Nomes he trobat que els fades (ara després parlaré d'ells, que ahir se me va oblidar) son mes lentos. Supose que el meu Mac mini es menys potent que la màquina Windows sobre la que estava treballant. Realment el problema es que havía ficat molt de 'delay' durant el fade per a que es vera, sinò era tan rapid que ni es veia. He de llevar delays i controlar-ho a base de fps, així anirà igual de rapid en qualsevol comp.

No he pogut provarlo en Linux, ja que el meu old portatil m'està donant problemes per a instalar Ubuntu (al principi/meitat de la instalació, o inclus amb la funció de jugar amb el SO desde el CD sense instalar-lo) es queda penjat i la llum de 'mayusculas' del teclat propi del portatil es queda parpadejant. He de dir que el teclat propi del portatil està desconectat internament, ja que es va estropear i aleatoriament se pulsaven les tecles. Igual es per culpa d'això. Si tinc temps tornaré a conectar el teclat encara que siga per a la instalació, ja que a este portatil ja li vaig endoscar una Gentoo fa temps. A una mala, pujaré un dels comps que tinc en el trastero, pero que perea... i que desordre...

Be, lo dels fades. Era altre dels problemes a solventar. En l'antic Arounders, els fades es feien símplement fent decreixer totes les entrades de la paleta. Rapid i simple. Ara no tinc paleta, així que el que he fet es pintar una superficie negra damunt de tot i anar canviant-li la transparencia. Es un mètode molt lento per a fer-se per software, pero a tan poca resolució cola. Quan passe a OpenGL, que berena transparencies like si foren bollicaos, deixarà de ser un problema.

divendres, 13 de febrer del 2009

Aroundant!

Ja tinc el pintat del mapa, el marcador, el cursor i el aigua.

Mapa
No he trobat massa problemes amb aquest tema. El Arounders tracta els mapes d'una forma un poc especial. Realment, els mapes están formats per tiles, pero resulta que els arounders, al llarg de la seua vida, es dediquen a destroçar el mapa, i ho fan a nivell de pixel. Per tant, el que vaig fer es pintar el mapa a base de tiles en una pantalla virtual i usar durant tot el nivell eixa pantalla virtual ja montada, sobre la cual podía borrar pixels a mi antojo.

En SDL tenim, en principi, lo que s'anomena suprficies (SDL_Surfaces), que son molt paregudes a les pantalles virtuals de antanyo. De fet, si li diguem que la superficie siga per software, es igual. Això es el que he optat per fer amb el Arounders, per tant, en eixe aspecte el joc apenes canvia.

El problema vindrà si en un futur vull fer un Arounders a mes resolució i mes currat. Fer-ho tot per software seria molt ineficient. No dic que en un comp de hui en dia no vaja a tirar, però si puc accelerar-ho tot per hardware, pos mola mes, no? I quin serà el problema? que les superficies accelerades per hardware, com ja vaig dir en l'anterior post, es guarden en la memòria de la tarjeta gràfica. Això vol dir que si vull accedir a ella a nivell de pixel he de bloquejarla per a edició i després fer accesos per pixel i despres bloquejarla... be, molta història i a més sense acceleració. Es més, si realment vull bona acceleració hardware tindré que usar OpenGL.

Pero be, tot aixó serà en el futur. Per ara els mapes no entranyen cap problema.

Marcador
El marcador no te ningún misteri. L'unic punt més interessant es el de pintar text. Encara no feia falta, ja que durant els nivells en sí no hi ha textos de color, pero ja ho he preparat per a que el text puga canviar de color. En l'Arounders original canviar el color del text era canviar una entrada en la paleta. Com ara no hi ha paletes, el que he fet es al carregar la font, faig un 'replace' del color base pel que vull. No es que m'agrade molt la solució (tal cual está implementat necesitaria crear tantes fonts com colors vullga), pero quan pase a OpenGL tot es mes facil, ja que puc pintar el text com a textura de un poligon i despres aplicarli filtres de color, lo qual es fast & furious.

Cursor
El cursor tampoc te res d'especial. Nomes fer notar que SDL continua mostrant el cursor per defecte, lo qual no m'interessava. Així que el que he fet es pintar el cursor del Arounders en la posició del ratolí i amagar el cursor per defecte.

Aigua
Sempre m'ha paregut molt cutre l'aigua del Arounders, pero es lo que hay. No habrá más declaraciones respecto a este tema.

No he parlat de l'estructura de l'aplicació. Si un dia tinc ganes i temps soltaré el rollo.

dijous, 12 de febrer del 2009

Go go go!

Ja he començat a implementar el joc en sí. La primera pregunta que m'he fet es: com distribuir els recursos? Els torne a deixar en arxius separats en el directori DATA? els torne a 'encobrir'? Al final he decidit crear un arxiu que es un repositori d'arxius, així ho tinc tot arreplegadet en un arxiu. Per a tal efecte he creat un programeta en .NET anomenat 'Resource Editor' (peazo imaginació...) per a gestionar el repositori d'arxius. Per ara no estarà encriptat ni comprimit, total, per a un joc tan antic com el Arounders no val la pena, pero mes avant si que ho implementaré per a futurs jocs.


Altra historia a solventar es la profunditat de color. El joc original usaba 8 bits de color i paletes. He decidit no usar aquesta configuració, sino usar 32 bits (encara que ara siga malgastar espai), així el puc expandir mes facilment en el futur. Aixó em du a tindre que solventar el problema de que hi havia animacions o toquetejos de paleta. Sobre tot amb les fonts, que canviava el color canviant la entrada de la paleta adecuada. Ja aniré solventat-ho conforme m'ho vaja trobant.

Es una sort que amb SDL puga treballar de forma molt pareguda a com ho feia amb pascal i el mode 13h. Aixó m'ha dut a decidir no usar OpenGL per a aquest joc, i, per tant, a no usar ninguna acceleració hardware. No es que al Arounders li faça falta ninguna acceleració per a funcionar amb qualsevol ordenador de hui en dia, pero en el futur tindré que usarlo, si vull fer coses mes xules i a mes resolució (i que vagen ràpides). El principal problema del Arounders es que necesita accedir a nivell de pixel, cosa que es dificil i lenta amb acceleració hardware (ja que les textures se guarden en la memòria de la propia tarjeta gràfica en compte de en la RAM), pero amb tants anys desde que vaig fer el primer Arounders i amb tantes proves i intents de fer un Arounders 2, ja tinc mètodes ideats per a solventar el problema.

Com sempre, ja anirè informant...

dimecres, 11 de febrer del 2009

Level Up

Ja tinc el format dels nivells pràcticament desxifrat, i amb això ja he recuperat tots els recursos que vaig perdre. Hi ha un parell de camps que no se per a que valen, però no se m'ocorre res que falte per saber-se. Tampoc m'extranyaria que al final no els usara per a res.



Per a poder toquetejar els nivells he creat el AroundED, un editor de nivells bàsic que em permet canviar els nivells. Així, arreglarè algún nivell dels que se me colaren super fàcils.

Ara ja toca implementar el joc en SDL. Vaig a usar un esquelet de joc SDL que vaig escriure no fa molt. Potser es un poc sobrecarregat per a un jailgame (o potser no), però m'agrada i al cap i a la fi totes les noves plataformes de jocs tiren cap ahí, ja que els jocs cada vegada son mes gordos. Ja anirè contant...

dimarts, 10 de febrer del 2009

hacking la vida loca

He començat pels gràfics. Recordava que el format era una variant del GIF. Efectivamente, despres de mirar els arxius amb un editor hexadecimal un rato, i revisant el format GIF he averiguat que vaig separar les paletes i la informació gràfica. Es mes, cada color està guardat com a una tripleta de 0 a 63, en compte de 0 a 255. Ja no ho recorde, igual en aquella època era lo normal...

Per a montar cada arxiu de nou he tingut que anar provant paletes en cada un, per a lo qual m'he creat un xicotet programa en .NET anomenat GIF Remounter, perque fer-ho a mà es un fer la mà (valga la redundancia). El cas es que ja estàn recuperats tots els gràfics.


Respecte a la mùsica, per lo vist me vaig calfar el cap prou menys, ja que son midis amb la capçalera canviada i au.

Desprès, els passwords estàn encriptats. I no recordava quina encriptació vaig usar. Així que el primer que he fet es buscar coincidencies amb els passwords que sí recorde ('DELPHIMOLA'), pero no ha sigut molt fructifer. Així que al final m'he dedicat a provar posibles encriptacions que en aquella època coneguera i tinguera ganes de implementar, i ha sigut relativament rapid trobarla.

Amb tot açò queden els nivells. Ja he estudiat el arxiu on estàn els nivells i he averiguat prou coses, pero hi ha parts que encara no se per a que valen. Ja anirè informant...

dilluns, 9 de febrer del 2009

Introitus

Be, al final m'he decidit per escriure un blog de les cosetes que vaig fent.

Per a començar, anunciar que vaig a pasar el Arounders original a SDL, fent-lo multiplataforma de pas. Es pot jugar desde el Dosbox, pero tampoc va massa fi. Ademés, mai vaig arribar a releasar una versió 1.0 y la versió actual tenia molts street-polls, alguns notables i altres no tant. Així que res, vaig a fer-lo tal cual es, pero corregint el que no esta be i afegint el que falta, pero sense canviar-lo apenes.



El primer problema que tinc es que he perdut el codi font, així que el tindré que fer a base de recordar qué vaig fer, i jugant al Arounders desde el Dosbox. Encara pitjor, també he perdut els originals de tot: gràfics, música, nivells... inclus els passwords entre nivell i nivell, que estaven encriptats per algún arxiu. Tenia pensat preguntar a Joup si encara te el seu 'walkthrough' del Arounders, on al menys tenia un shot de tots els nivells i el password. Pero be, primer vaig a vore si puc averiguarme la vida "yo mismo" (com diria Usufondo).

Així que el primer treball va a ser fer enginyeria inversa de tots eixos arxius per a traure els gràfics, la música, els nivells i els passwords. Ja aniré contant...