Eilen oli koulun Lähiverkot -erikoistyökurssin ohjelmointiprojektin demottamistilaisuus, jossa esittelimme toteuttamaamme Texas Hold’em -pokeripeliä. Edellinen viikko menikin projektin viimeistelyssä julkista testaamista ja esittelyä varten, mutta hommat saatiin valmiiksi ajoissa ja pokerikin toimii. Kurssin kahden muun ryhmän toteuttamat Scrabble -tyylinen Circus-peli ja Uno-peli Bruno olivat myös esiteltävinä. Vaikka aina pitää vetää hieman kotiinpäin, oli oman ryhmämme Texas Hold’em -peli tässä vaiheessa viiimeistellyin niin pelin kotisivuineen, grafiikoineen kuin pelattavuudeltaan.
Kurssilla toteutetut pelit ovat julkisessa testauksessa kuukauden ajan, jolloin tietenkin vielä tekemättömät ominaisuudet kuten palvelimen hallittu alasajo toteutetaan ja löydetyt bugit liiskataan. Bruno-ryhmän peli oli kohtalaisen toimiva, mutta Circus-ryhmän toteutus oli hieman buginen eikä pelaamisesta oikein tullut mitään. Oman ryhmäni pokeripelistä korjailtiin vielä muutamat bugit hieman ennen demottamista ja muutamia pieniä bugeja lukuunottamatta on pokeripeli kohtalaisen valmis. Kurssin opintopistemäärään verrattuna on tunteja projektin parissa kulunut kyllä lähes tuplamäärä puhuttamattakaan tuntimääristä, joita palvelinpuolen ja clientpuolen koodaajat ovat projektiin upottaneet.
Texas Hold’em lan-edition pelimme sivut löytyvät osoitteesta http://verteksi.net/holdem/, josta voi ladata PokeriClientin Java Web Startilla ja liittyä pelaamaan pelipalvelimelle. Valitettavasti pelipalvelin näkyy vain LNET ja WLPR.NET verkkoihin. Sivuilla on myös ruudunkaappauksia itse pelistä.
Pelipalvelin on toteutettu C++:lla ja client-ohjelma on koodailtu Javalla. Muista käytetyistä ratkaisuista voi todeta Java Web Startin olevan kyllä kätevä menetelmä tuollaisen kehittyvän peliprojektin jakamiseen, sillä pelin uusin versio tarkastetaan ja ladataan tarvittaessa uudestaan palvelimelta. Vaikka PokeriClient on kooltaan pari megaa, ei se nopeassa lähiverkossa tuota ongelmia.
Kehitysympäristönä sekä Javan että C++:n koodaamiseen käytettiin Eclipseä, joka osoittautui ihan toimivaksi ratkaisuksi. Eclipsen CVS-liittymät ja kaikki kätevät ominaisuudet helpottivat kyllä koodaamista isommassa ryhmässä. Lähinnä itsellä oli ongelmia Eclipsen kaatuilusta 64bittisessä Linuxissa, mutta muilla ryhmän jäsenillä ohjelma toimi ihan hyvin Windowsissa ja Linuxissa. Ehkäpä ongelmana oli taas se perinteinen 64bitin kirous.
Kurssia on jäljellä vielä noin kuukausi, jonka aikana projekti pitäisi viimeistellä valmiiksi dokumentoinniltaan, koodiltaan ja kaikkien projektiin liittyvien asioiden suhteen. Valmiin tuotoksen julkaisemisesta jollain avoimen lähdekoodin lisenssillä ei ole vielä tehty päätöksiä, vaikka siitä ilmeisesti saisikin lisäpisteitä (joka tuntuu hieman asiaan pakottamiselta).