Poker Game

Texas-Holdem

După cum știti dintr-un post mai vechi, m-am decis să-mi dezvolt puțin abilitățile de game developer și să încerc să implementez câteva jocuri micuțe ca exercițiu de programare și să mă având puțin în afara tehnicilor arhicunoscute din programarea de zi cu zi din cadrul job-ului.

După ce mi-au trebuit câteva zile să învâț lucruri noi despre JavaScript și să implementez o versiune de Tetris, am început să mă gândesc la un joc care să necesite AI. Deși planul era să implementez Snake sau Escape, m-am apucat să studiez mai mult algoritmii despre Poker.

Am plecat cu ideea greșită că nu o să fie foarte complex, dar ca de obicei m-am înșelat. După ce am citit câteva articole mi-am dat seama că sunt multe probleme care trebuiesc rezolvate de AI-ul pentru poker, asta pe lângă aplicația de joc în sine (structuri pentru memorarea datelor, implementarea mesei de joc cu toate interacțiunile necesare, etc…)

Lista cu situațiile importante care trebuiesc rezolvate de un AI de poker am găsit-o deja într-un articol, și m-am gândit că ar fi interesant să fac o trecere în revistă (pentru cei care credeau că e simplu – la fel ca mine). Regulile se referă la Texas Hold’em, însă cu mici modificări cred că se poate aplica și la alte tipuri de poker.

Continue reading “Poker Game”

Game developement – primul meu joc (Tetris)

Brick Game 9999 in 1

De când am început să învăț programare (Pascal) m-am tot gândit cum a fi să-mi scriu primul meu joc. Am avut mai multe idei, însă niciodată nu am făcut nimic concret. Am încercat să citesc mai mult pe această temă, însă nimic.

La ultima întâlnire de Code Retreat (“The Timișoara Agile Software Meetup Group“) la care am participat (singura de altfel), s-au propus spre rezolvare 2 probleme: Conway’s Game of Life și Tetris. Împreună cu Horia am reușit să implementăm Game of Life folosing Javascript aplicând pair programming și TDD. Nu am reușit să găsim o metodă simplă de a implementa tetris și am renunțat.

Săptămâna trecut am zis că nu ar strica să ies din routina de webdeveloper (unde mai tot timpul am impresia că fac aceleași lucruri prea puțin modificate de fiecare dată), am început să lucrez la o versiune proprie de Tetris în Javascript. Am lucrat vreo 3 zile, câte 2-3 ore pe zi până să reușesc să-l fac jucabil.

Tetris game preview

Concluziile după acest mic experiment:

1. Să faci un joc oricât de simplu e ceva mai greu decât ai fi tentat să crezi prima oară. Ca webdeveloper nu lucrez decât cu interfețe grafice simple, elemente și acțiuni bine definite. În joc însă lucrurile sunt altfel, trebuie să te gândești mai mult la cum să simulezi realitatea (gravitație, colisiunea cu pereți)

2. Javascript e un limbaj puțin mai ciudat din punctul meu de vedere. Am învățat cu ocazia asta mai multe despre OOP în Javascript și câteva lucruri noi despre jQuery

3. Mi-ar fi prins bine o funcție wait() în javascript pentru loop-ul principal.

O să continui să experimentez game developmentul. Următorul joc cred că o să fie Snake (ca pe telefoanele Nokia), apoi o să continui cu Escape.

Dacă totul merge bine, o să încerc după toate astea să fac și Pac-Man, cel mai simplu joc în care trebuie să implementezi AI. Apropo, știați că în Pac-Man există patru tipuri diferite de comportament al adversarilor?