Sunday, December 2, 2007

Continuam seria imaginilor postate

2 Zile de lucrat non-stop (întreg week-endul)

Cu:
- World Machine (facut terenul din 8 layeruri cu caracteristici diferite)
- L3DT (Atributes and alpha maps)
- Milkshape + Exporter (Pinetree)

Ce:
- pinetree
- model Static Geometry luat din PLSM2
- minimap

In plus imagini cu scene de iarna pentru inspiraţie si identificarea elementelor naturale.









Thursday, November 29, 2007

Splatting material in Ogre

Am lucrat 2 zile si doua nopţi pana am reuşit sa înţeleg si sa implementez splatting textures in Ogre. Totul părea simplu la început dar nicicum nu am reuşit sa-l adaptez la terrain scene manager-ul simplu. Iata câteva screenshoturi, după care am sa postez fişierul de material.













material robisplat
{

lod_distances 300

technique
{
lod_index 0
pass
{
// Base Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
texture_unit
{
// Base Texture
texture none
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex modulate src_current src_texture
}
}
pass
{
// Snow Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Snow Alpha map
texture none
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Snow Splat
texture splatting0.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.01 0.01
}
}
pass
{
// Sand Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Sand Alpha map
texture texture none
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Sand Splat
texture splatting1.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.03 0.03
}
}
pass
{
// Grass Pass
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Grass Alpha map
texture texture alpha_Alpha2.dds
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Grass Splat
texture splatting_rock.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.02 0.02
}
}
pass
{
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
scene_blend alpha_blend
depth_func equal
texture_unit
{
// Rock Alpha map
texture alpha_Alpha1.dds
tex_address_mode clamp
alpha_op_ex source1 src_texture src_texture
colour_op_ex source1 src_current src_current
alpha_rejection greater_equal 2
}
texture_unit
{
// Rock Splat
texture splatting5.png
tex_address_mode mirror
alpha_op_ex source1 src_current src_current
colour_op_ex source2 src_current src_texture
scale 0.01 0.01
}

}



}

technique {
lod_index 1
pass
{
ambient 1.0 1.0 1.0
diffuse 1.0 1.0 1.0
texture_unit
{
// Base Texture
texture tree1leaves.png
scale 1 1
tex_address_mode clamp
}
}
}

}




Monday, November 26, 2007

Sa tesam frumos

:: Am fost sa-mi cumpăr plăcute de frâna la maşina
:: Dar nu aveau
:: Asa ca am comandat-o pe mâine
:: Am si lăsat bani
:: E frig
:: Da' măcar ninge
:: Un cretin si-a parcat maşina in fata garajului
:: Dar am reuşit sa-l ocolesc

Ok, gamedev:

Screenshots:




Terrain: WorldMachine
Texture: Splatting (with T2 texture generator)

Mai mult, in curand...

Tuesday, November 20, 2007

Proiecte finisate: (STICKY)

My own:

- Procedural planet texture generator and manager
gen: research/project/component
limbaj: C#
extra: D3D9, noiselib

- Reseacrh paper TDK
gen: conference


Impossible SRL:

- Coolspace (www.coolspace.cz)
gen: mobile software distribuitor website
limbaj: PHP
extra: mysql

- SMS gateway
gen: gateway (recieve/send sms data / wap push, repack JAD/JAR)
limbaj: PHP
extra: SOAP, mysql, libzip

- Backend for coolspace
gen: CMS
limbaj: PHP
extra: mysql, fpdf lib, ajax (nAjax lib)

- Partner system for coolspace
gen: affiliate management software
limbaj: PHP
extra: mysql, fpdf, libchart, barcode


Ethos AS:

- InciNet
gen: reporting software
limbaj: PHP
extra: mysql, fpdf

- KeyNet
gen: reporting software
limbaj: PHP
extra: mysql, fpdf, libchart

- FormNet
gen: reporting software
limbaj: PHP
extra: mysql, fpdf, libchart

- Klassifiering
gen: hotel chain management
limbaj: PHP
extra: mysql, fpdf, libchart


RentACoder:

- Varmentema AS
gen: website
limbaj: PHP

- iDev Affiliate extention (Omica healthcare)
gen: affiliate management software extention
limbaj: PHP
extra: iDev affiliate, ionCube (code obfuscation)

- Hotel raport
gen: reporting software
limbaj: VisualBasic 6
extra: Excell DB

- 3D hangman
gen: game
limbaj: VisualBasic 6
extra: DirectX8.1, 3dstudiomax, paintshop pro

Tuesday, November 13, 2007

Java si Irrlicht (jirr)

Ieri am găsit o competiţie interesanta pe gamedev.ro la care am decis sa mă înscriu împreună cu nişte colegi de serviciu. http://gamedev.ro/forum/topic/634

Pe scurt: trebuie făcut un joc FPS cu minimum un nivel de joc, si sa fie accentuate efectele de zăpada. (everything goes)

Am decis sa folosim engine-ul Irrlicht (http://irrlicht.sourceforge.net/), un engine open source pe care sa bazam jocul. Fiind cu toţii momentan programatori Java, am decis sa exploram posibilităţile de a crea un FPS in Java. Spre norocul nostru exista multe projecte in acest domeniu, unul ar fi "jirr" (adica: java irrlicht http://jirr.sourceforge.net/)

Jirr este un Binding pentru Java al librăriilor IrrLicht (varianta Windows sau Linux). Prin IrrLicht se abstractizează funcţiile avansate DirectX sau OpenGL, ceea ce permite ca logica jocului sa fie scrisa in Java, iar reprezentarea grafica sa fie efectuata de driverele accesate prin IrrLicht. (OpenGL, Dx9, Dx8 prin engine)

Configurarea si "first run" nu a fost greu. Singurul lucru pe care l-as menţiona e sa setaţi un path către irrlicht_wrap.dll. Sub windows am setat un work-directory care conţine wrapperul.


- un heightmap exportat din terragen si incarcat in jirr (ITerrainSceneNode) -

Wednesday, November 7, 2007

A new term: "bloggerfucher"

I have a new term: "bloggerfucher". In a sentence: "He is a dirty bloggerfucher!"

Bloggerfucher - to fuch one's blog -> to post useless entries about worthless crap

The author of this post is a bloggerfucher.

Scenariu si AI - cat de greu e sa fii batut la sigur de calculator

Azi am pornit la lucru devreme. M-am pus frumos la birou, am pornit NetBeansul si i-am dat drumul la codat. Acum e timpul sa beau un ceai, si sa postez ceva despre progres.
La ce lucrez? La Warlord Castels mobile, mai specific la campaniile speciale, care necesita multa atenţie si codare speciala.

Acum sunt la misiunea a 9-a, in care eroul principal este învins, el urmând sa treacă pe viată de dincolo. (unde continua povestea) Scriptul care controlează jocul, aşteaptă condiţia de victorie a playerului controlat de AI, ca sa continue cu un cut-scene in care eroul principal sa îşi adune puterile pentru un ultim atac, iar după 100 de secunde sa fie învelit de valurile nesfârşite de unităţi controlate de AI.

Fiind o misiune la punctul culminant al jocului, am decis sa fac nivelul cat se poate de balansat, ca jucătorul sa muncească din greu pana este învins. Am vrut sa fac lupta in aşa fel încât jucătorul sa fie forţat sa joace defensiva.
Am si pornit AI-ul in mod SPAMMER cu 10 unităţi puternice pre-create, si cam de 10 ori mai multe resurse iniţiale, plus o baza deja avansata.

Din un motiv inca necunoscut, si asa este uşor sa înving calculatorul, daca mă apuc in serios de joc. Având nevoie de o infringere 100% acest lucru este inacceptabil.

Ar fi uşor sa îl fac pe jucător sa piardă in 10 secunde, daca îl pornesc cu f. puţine resurse, dar aşa nu va simţi greutatea faptului ca urmează sa fie învins (crezând ca va pierde jocul).

Aşa ca am decis sa îl las sa se joace câteva minute (3-5) după care daca nu e învins pierde jocul. Totuşi, daca nu reuşeşte sa se apere in timpul ăsta, atunci chiar va pierde jocul. Probabil am sa folosesc un timer, care afişează un mesaj asemănător: "Defense time remaining: 3:50"

Tuesday, November 6, 2007

Bang a drum for the author

Cine mai citeşte blogul asta? Ping la toţi cititorii.

Pinging this.blog [*] with a few bytes of data:
[

Nu continui idea, o înţelegeţi voi...

Alta tema: in ultimul timp am observat tonul critic al unor utilizatori de pe forum in special in legătură cu un oarecare "off topic" in bloguri sau posturi.

Exemple ar fi postul lui zeltera: http://www.programare.org/weblog_entry.php?e=432
sau postul/blogul lui DSH http://www.programare.org/viewtopic.php?t=2829 sau chiar si reclama de blog postata de Olivia :)

Nu înţeleg de ce ii deranjează pe unii faptul ca se mai postează cate-o data articole care sunt "altfel", care deseori personalizează oamenii care postează aici pe (programare.org). Forumul pe de alta parte e cam lipsita de viată. De a posta ceva off topic nu mi se pare ca ar trebui eradicat de pe forum, ci dimpotriva "observata" (nu neapărat susţinută), fiindcă colorează topicurile obişnuite, abordate cu multa rigoare de profesionişti ce suntem..

Am si eu un blog aici pe site, pe care îl doresc sa fie cat se poate de "profesional" si la obiect, dar totuşi simt nevoia de libertate de exprimare sa postez pe blogul MEU ce doresc. Din motiv sa nu fiu "atenţionat", avertizat sau reamintit de faptul ca acesta este un forum obiectiv fata de domeniul informaticii: fără interpretări si strict profesional,

[ deschid o propoziţie noua, ca cealaltă e cam lunga si se pierde firea ]

am deschis un nou blog, care conţine toate posturile de aici, dar in plus, va conţine si unele "chestii" care ţin de personalitatea mea sau ideile mele despre orice mi-ar trece mie prin cap..

In ceea ce priveşte programare.org: am inţeles, e despre programare, sa o ţinem la subiect. Ok, dar sa nu trimitem pe nimeni acasă. Suntem oameni in primul rand si programatori dupa. Eu personal când citesc un blog de profil, mă interesează mai mult modul in care reuşeşte acel individ sa se afirme in domeniu. Cum e sa trăieşti in mediul acela ca si om. Are mai mult sens decât sa aflu cate linii de cod are Myriad, sau cum s-au scris 8 rânduri geniale de cod într-un proiect pe care nu îl poate elabora semnificativ autorul..

Ping: Cine mai citeşte blogul ăsta ?

Tuesday, October 30, 2007

Pe(n)ultimul kilometru

De 3 săptămâni am intrat si eu in echipa care lucrează la jocul Warlords Castles pentru mobil. Azi am ajuns in ultimul kilometru, care in lumea reala înseamnă ca mâine avem de predat un release-candidate. Nu ştiu ceilalţi programatori in ce stadiu sunt, dar eu sunt sigur ca mai am f. mult de realizat la joc.. Aşa ca mă aşteaptă inca o zi de "crunch": sa mai facem sprint in loc de maraton. :P

Pentru mai multe detalii pentru cei interesaţi in seria Warlords: http://www.infinite-interactive.com/warlordsmobile.php

Thursday, October 25, 2007

Lucrul cu Subversion (SVN)

De când am început sa lucrez in programare, eram curios sa aflu cum se lucrează cu adevărat in echipe. De multe ori am lucrat in "echipa", dar de obicei aveam partea mea total izolata de munca celorlalţi. Fiind singurul coder PHP la firmele unde lucrasem, nu am avut niciodată probleme sau conflicte la nivelul codului cu ceilalţi programatori.

Acest lucru s-a schimbat când luna trecuta am primit un proiect nou.. S-a format o echipa de 3 programatori, si urma sa scriem soluţia in Java.

Fiind un proiect mare (momentan suntem pe la 3k linii de cod / persoana) am avut nişte nelămuriri despre cum sa facem acest lucru împreună fiindcă lucram pe acelaşi clase.

Unde publicam ultima revizie? Ce facem daca sunt conflicte? etc.

Asa ca am decis sa încercam folosirea unui server SVN. (subversion.tigris.org)
Am instalat un client pentru NetBeans, extensia numita "Subversion", si am instalat pe un server apache: mod_dav si mod_svn.

Workflow cu SVN:
0. Se creaza un repository pe server.
1. Dimineata se face un "Update" la intregul proiect.
2. Dupa ce se termina o sesiune de programare, se face inca o data un "Update". Astfel coderul va avea ultima revizia de pe server. Clientul SVN va combina codul cu ceea ce are coderul pe calculatorul sau.
3. Se cere un "Commit" care va copia revizia curenta pe server si ii va adauga un "tag".

Explicatii:
Update: aceasta opţiune va descărca de pe server ultima revizie, si va marca in cod daca sunt conflicte. Daca nu sunt conflicte la nici un fişier, atunci va face un merge automat intre revizie si codul programatorului. Daca sunt conflicte, va face un merging dar va marca locurile unde sunt probleme, si le va pune in brackets-uri "mine" si "rev.xxx", urmând ca programatorul sa le rezolve manual.

Commit: Va face o noua revizie, si va copia ceea ce are programatorul modificat pe calculator + fişierele noi.

Observatii
Nişte observaţii care vin din greşelile pe care le-am făcut noi:

1. Inainte de COMMIT se va face un UPDATE obligatoriu. In caz contrar, revizia programatorului va fi copiata, si se vor pierde modificările de pe server care au intervenit de la ultimul sau "Update"

2. Commit/Update nu este tabu, si se foloseşte de cate ori este finisata o funcţie sau un feature.

3. Se testează programul înainte de commit măcar pentru greşeli sintactice/path-uri/fişiere care lipsesc etc. (sa nu fie revizia cu erori)

4. La fiecare Commit se poate ataşa un mic text care explica ce a fost schimbat/adaugat. Folosiţi-o, e f. util când sunt conflicte de rezolvat.

5. Se include la comit doar fişierele sursa si resursele. Fişiere de build, exe, configuraţii etc nu trebuie sa intre in versiuni fiindcă se vor schimba automat tot timpul. De exemplu in java la un proiect nou se importa doar directorul SRC si directorul de resurse, restul se exclude din SVN.



- un log svn -

Reviziile sunt numerotate. Daca sunt probleme sau conflicte ne rezolvabile, se poate lucra cu o revizie anterioara.

Sunt mai multe soluţii client pentru svn. E prefer sub windows TurtoiseSVN. Un client superb de bine realizat, care oferă mai multe funcţii utile pentru gestionarea subversiunilor decât componenta Subversion pentru NetBeans.

Monday, October 1, 2007

The chronicles of Myriad adica: devlog pentru clona mea DDR

Nu ştiu daca va fi util ceea ce am sa încep acum, dar poate va fi util pentru unii, sau poate îmi daţi voi nişte pointeri pentru un cod mai bun.

Probabil veţi găsi erori, poate veţi vedea aberaţii la numele OOP-ului sau alte hackuri create de un coder ca mine, cine nu prea are răbdare sa abordeze un subiect in totalitate si e mai degrabă interesat de ceea ce se va vede pe un display după rularea codului..

Mai demult am scris despre un proiect pe care l-am început la firma la care lucrez pentru a învăţa J2ME, dar care nu prea a fost îmbrăţişat de management, aşa ca am decis sa îl fac pe cont propriu in timpul meu liber, după care sa îl fac open source sau măcar free (am sa vad).

Aşa ca in timpul developmentului am sa fac public pas cu pas ceea ce fac: va intra in categoria asta cate un feature nou pentru joc, idei despre cum l-am implementat, eventual cate-un articol interesant sau util pe care a trebuit sa-l citesc ca sa rezolv o problema etc.

Jocul e din genul "Rythm games" (un gen de jocuri mai nou apărut pe piaţă). Obiectivul in astfel de jocuri e sa apeşi butoane corecte pe ritmul muzicii. (ex: StepMania, DJMax, DanceDanceRevolution etc.)



- screenshot din joc. codename: Myriad -

Friday, September 21, 2007

Ballada Stringului din Java

I'm sitting here in the boring room
It's just another rainy Sunday afternoon
I'm wasting my time
I got nothing to do
I'm hanging around
I'm waiting for you
But nothing ever happens and I wonder

Now that I got that out of my system, here's the reason for this post.

* Lights please *

In Java, String does not equal String. In Java: String is compared to String.

Cod:

String a = "Iarna";
String b = "Iarna";

if(a==b) { // aici nu intra
System.out.println("Iarna nu-i ca vara");
}

if(a.compareTo(b)==0) { // aici intra
System.out.println("Iarna e ca vara");
}

Asa ca dragi copii: următoarea data când căutaţi un bug cu un emulgator fără debug, cu sute de drawString-uri pe ecran (pentru variabile), amintiţi-va ca nu mai sunteţi in PHP, si lucrurile nu trebuie sa facă sens Smile

Acum am sa mă întorc la JMasa mea lângă JCalculatoru meu JPersonal, pornesc JEditorul Netbeans îmi beau JBerea si JCafeau, si lucrez mai departe..

Tuesday, September 11, 2007

Primul meu joc J2ME pe emulator s40v3

Deşi oficial inca sunt pus lângă un coleg sa învăţ meserie si sa-l ajut la proiectele lui, in timpul liber lucrez la primul meu proiect de joc pt. mobil. E o clona DDR / StepMania / Guitar hero pentru telefoane mobile. In background se aude muzica, iar pe ritm vor apărea diferite bare (nu bere) care se îndreaptă in jos. Când o bara ajunge la locul marcat, trebuie apăsata tasta corecta. Cu cat eşti mai aproape de momentul exact la ritm când tasta trebuia apăsata, cu atât primeşti mai multe puncte.

Ca sa poţi vinde un astfel de joc ai nevoie de multe animaţii colorate si reward-uri pentru jucător. Din păcate platforma mobila e f.f.limitata, si jocul trebuie portat pe minim 30 de deviceuri. Asa ca nici jar size-ul nu poate sa fie prea mare, si nici procesorul nu poate fi folosit la maxim. (diferă de la un device la altul + bateria)

Idea va fi totuşi sa facem ceva animaţii pe baza de vectori, si sa reutilizam cat mai mult imaginile deja încărcate.

Câteva imagini capturate cu emulator de Nokia s40:

Monday, September 10, 2007

Un nou semi-inceput

Am pus programarea PHP pe raft, si am început java.

Am sa fiu programator de jocuri pentru platforma mobila. (J2ME) In sfirsit fac un pas clar spre jocuri. Deşi sunt la aceeaşi firma, profilul meu e diferit. Sunt un începător, si iau proiecte minuscule, si îmi place Smile

Sunt într-un "flow" de 4 zile. Stau in fata calculatorului, si învăţ sa scriu jocuri, si platforma si posibilităţile. Si vad ca e tare Smile

Nu ştiu cat va tine sau cum va fi.. Nu am cum sa ştiu.. Dar mă simt mult mai bine. Aştept ziua de mâine Smile (desi e Luni Wink )

Tuesday, September 4, 2007

Vreau sa traiesc

Acum câteva zile, in sfârşit am decis sa nu îmi mai mint: nu-mi mai place ceea ce fac la serviciu..

Lucrez de 2 ani la o firma pe post de programator PHP. Codez softuri de la siteuri web, pana la servicii online pentru distribuirea produselor prin SMS sau chiar omologarea datelor obţinute din vânzări pentru analize de marketing. Suna interesant daca rezum ceea ce fac de 2 ani de zile, dar e destul..

De un timp nu mai intru dimineaţa la munca sa stau jos la calculator si sa intru într-un "flow" care sa mă tina într-un loc pana seara târziu. Lipseşte aventura, "challenge"-ul, sau pur si simplu munca pentru care sa te simţi apreciat. (ca si la dragoste de fapt, doar ca majoritatea timpului ţi-l petreci lucrând si nu cu nevasta)

Faptul ca am lucrat 2 ani nefiind apreciat a declanşat un alt fenomen: nu mai ştiu ce îmi place. Simt un oarecare dezgust pentru tot ceea ce vreau sa fac: un fel de "what's the point?" (of that) "why bother" (making something like that which already exists)

Pana acum am crezut ca vreau sa fiu programator de jocuri, de grafica. Sa am o firma care sa producă ceva benefic umanităţii. Sa depindă lumea de ceea ce fac eu, sa nu fiu lăsat la o parte într-un întuneric numit "mediocritate".

Daca as putea, mi-as lasă serviciul chiar acum pentru un timp. Sa mă redescopăr. Sa găsesc iarăşi calea care se simte a fi cea corecta. (ei dar aşa cine va plăti rata Opel-ului Razz )

Dar nu e prea târziu. Inca mai am o şansă. Si poate nici nu ultima. Asa ca am decis sa scriu un joc. Voi folosi un engine, dar jocul va fi un adventure in limba Romana. Daca reuşesc, îmi voi demonstra ca inca mai am flacara pe care am avut-o in "tinereţe" (adică in anii pre-work-cu-contract)

Whish me luck everyone..

Thursday, August 23, 2007

Magic the gathering - prox[i] printing

In week-endul trecut aveam ceva timp liber, aşa ca am decis sa imprim nişte proxi-uri Magic the gathering.
(pentru cei care nu stiu: MagicTheGathering este o creaţie a firmei "Wizards of te Coast". E un joc de cărţi inspirat din domeniul fantasy, iar jucătorii sunt de obicei fani Doungeons&Dragons sau fantasy si RPG's http://www.wizards.com/magic/)



Am ales 2-3 deckuri de pe siteul oficial, si am început sa descarc artwork-ul cărţilor, urmând sa le pun într-un document word. Dupa un timp am observat ca mărimea cărţilor imprimate astfel sunt mult mai mici decât cele ale cărţilor originale, aşa ca am am facut un batch resize cu irfanView. Fain pana aici, dar când am reintrodus imaginile in word, acestea au devenit de 3 ori mai mari deşi mărirea de rezoluţie era in jur de 40 de pixeli pe direcţie. (cam 10% in plus de mărimea originala)

Fiindcă nici cum nu am putut rezolva chestia de mărire in word am decis sa scriu un program care sa îmi rezolve problema (60 de cărţi pe un deck, nu o sa fac 60 de resizeuri cu mouseul Razz )

Am ales PHP fiindcă aveam nevoie de o soluţie rapida. Deckurile le-am descărcat in format XML (cu MTG Studio) iar pentru artwork am scris un crawler care sa caute artworkul pe siteul official MTG dupa care copieze imaginile într-un repository local.

Scriptul aduna cărţile de joc, si pregăteşte o imagine de rezoluţia a4, pe care resample-eaza artworkul cărţilor de joc gata pentru imprimare.

Interfaţa inca nu are, dar poate fi găsit pe serverul meu. (daca aveţi noroc funcţionează)

Structura programului:
http://89.136.54.71/mtg/

Exemplu care imprima deckul "Waking Nightmares" din blockul "Torment".

http://89.136.54.71/mtg/getPics.php

Daca cineva a avut sau are aceasta problema, poate sa ceara codul sursa, e gratuit Razz

Thursday, August 2, 2007

Angry Video Game Nerd

"JamesNintendoNerd" e profilul lui pe youtube si face video review-uri la cele mai proaste titluri de pe console. Recent video-urile lui sunt şterse fiindcă conţin limbaj "neadecvat", dar le putem găsi si pe siteul lui hostat pe alte servere.



Bible games:

Este un review special de sărbători, poate unul dintre cele mai haioase.

http://youtube.com/watch?v=LkNvQYiM6bw

The Nerd's videos:

http://cinemassacre.com/Movies.....ideos.html

Va amintiţi de anii 90, când nu existau review-uri pentru jocuri, nu aveam acces la internet, sau nici măcar un calculator? Pe atunci cum ieşea un film nou de succes, se făcea un joc pentru NES: una mai proasta decât alta. James scrie review-uri pentru aceste "jocuri" (mai bine zis: perversiuni aduse pe lumea aceasta minunata de companii care căutau un ban uşor si rapid) pe care le-a cumpărat când era copil, si era frustrat de faptul ca a dat banii degeaba.

Oricum review-urile sunt amuzante, si merita vizionate Smile

Monday, July 23, 2007

O ora de home-brew pentru PSP

Azi am luat PSP-ul in mana si m-am gândit sa încerc câteva softuri home-brew pe el. Dupa o ora de fun si testări, am dat si pe la vechiul site http://ps2dev.org sa vad poate au un IDE mai plăcut pentru un pic de brew de-al meu.

In afară de pspSDK cu toate toolchainurile lui pentru cygwin am găsit un tool foarte interesant numit "Lua Player".

Lua player e un fel de VirtualMachine pentru PSP sau Windows (etc) care rulează scripturi LUA direct pe consola. Sintaxa e foarte simpla, iar funcţiile si librăriile incluse sunt bune.

Inainte sa incepeti ar fi bine sa gasiti un IDE care sa inlocuiasca notepadul. Eu am folosit Eclipse cu un extention pentru limbajul LUA.

http://luaeclipse.luaforge.net/

Dupa care am instalat LUA Player pentru windows (ca sa pot testa fără sa fac un deploy pe consola.

http://www.luaplayer.org/

Cam aşa arata primul meu program după "Hello World";



Programul rulează pe consola:



Saturday, June 16, 2007

Despre gameing si handheld

Prima mea consola "hand-held" era un "Brick Game" pe care îl procurasem de la ruşi din piaţa din Cluj. Avea 8 jocuri daca îmi amintesc bine(tetris, snake si ceva shooter in mai multe versiuni) Pe atunci îmi plăcea la nebunie, si mă jucam cu el zi si noapte. (l-am primit de fapt de la părinţi când am intrat in clasa a 5-ea)


- Brick Game -

A urmat prima mea consola adevărata: un Game Boy clasic, pentru care am pus bănuţi de o parte tot anul, iar după ce l-am cumpărat, nu mai aveam bani de casete pentru el aşa ca trebuia sa închiriez pentru 5.000 lei / zi. GameBoy e o consola hand-held care citeşte casete care conţin data imprimate pe ea. La vremea lui era cea mai avansata consola din lume pe care o puteai duce cu tine oriunde, si calitativ era la aproape acelaşi nivel cu NES. Jocurile scrise pentru gameboy sunt superbe.

Consola se lasă jucata ore întregi. Nu te simţi frustrat de dureri de mana sau alte neplăceri datorate controalelor plasate greşit. E simplu si ergonomic. Bateria tine in jur de 10 ore, dar din păcate are nevoie de 4 baterii R6 AA.


- Game Boy (classic) -

Următoarea "consola" era de fapt un telefon mobil: Nokia 7650. Având symbian pe el, oferă multe funcţii grafice designerilor de jocuri. Jocurile sunt de o calitate mult superioara celor pe platforme java, iar având un frame-rate decent, jocurile se simt jucabile. Problema e cu bateria: in cel mai bun caz te tine 2-3 ore daca stai pe jocuri. Si sa nu uitam de memoria de 4 MB, ne extensibila..


- Nokia 7650 -


Axim X3: PDA. Deşi la 400 Mhz aşteptam calitate (măcar ceva de genu 'need for speed 2') jocurile pentru PDA sunt extrem de slabe, iar de calitate eu nu am găsit decăt câteva titluri de la 'PDA MILL'. Deşi clona Freelancer (space shooter/adventure) are grafica excelenta, jocul nu e confortabil. (pe 4 butoane plasate aiurea, PDA-urile pur si simplu nu sunt facute pentru jocuri)
Singurul gen la care pda-ul conduce sunt 'top scroller'. Adică shootere in care se vede harta de sus, iar cu stilusul poţi manevra foarte usor caracterul tău (care ii împuşca pe toţi care vin din sus).

Partea buna e ca poţi rula emulatoare: GameBoy Color care merg perfect! Nes si SNES cu un frame rate decent, iar chiar si jocuri de playstation 1 fara sunet sau sunet de calitate slaba) Bateria e acceptabila 4-6 ore depinde de frecventa pe care o cere jocul. (200Mhz sau 400Mhz)


- Dell Axim X3 (e de vânzare) -

A urmat un alt telefon: Nokia 6230, dar care a ajuns sa fie mai mult folosit ca telefon decât platforma de jocuri. (screen size-ul mult prea mic, deşi butoanele sunt aşezate logic, si e uşor de folosit) Jocuri ca "Ancient Empires" (1 si 2) merita jucate pe mobil.


- Nokia 6230 -

In sfirsit ultima mea achiziţie: Sony PSP. într-adevăr o consola demn de invidiat. Accelerator grafic superb, care rivaleaza PC-ul. (sincer: sunt jocuri care chiar arata excelent ~breathtaking) 333Mhz, 10 ore independenta la baterie. Sunet excelent. etc. DAR: consola nu e deloc confortabila. Dupa o ora de joc mă doare mana.. Dar totuşi stau si termin jocurile pe el, fiindcă merita.

- PSP -