Koin viime yönä valaistumisen ja ymmärsin, miten toteutan pelaajan interaktion pelin kanssa. Tähän asti olen pyöritellyt graafisia efektejä jotka toimivat yhdessä hiiren kanssa (yksikön vetäminen paikasta toiseen), mutta peliin tällä ei ole ollut mitään vaikutusta.
Pelimoottori pyörittää looppia, jossa pelin esitys renderöidään ruudulle. Lisätään siis jokaiseen pyöritykseen pelilogiikkapäivitys, jonka suorittaa itse peli. Pelin sisällä on pelikierroksia ja pelikierrosten sisällä pelivuoroja. Peli pitää huolta siitä, että kierroksia jatketaan niin kauan kuin päättymisehto ei ole täyttynyt ja käynnistää uuden kierroksen aina kun vanha on ohi. Kierros huolehtii siitä, että jokainen pelaaja saa oman vuoronsa ja vaihtaa seuraavaan pelaajaan kun nykyinen on valmis. Pelivuoron tehtävä on kysellä pelaajalta, josko sillä olisi antaa uusi komento toteutettavaksi. Kuulostaa simppeliltä, ja niin se onkin.
Varsinainen valaistuminen oli siinä, että jokainen taso – peli, kierros ja vuoro – laukoo omanlaisiaan tapahtumia. Taistelin nimittäin viimeiset pari päivää sen kanssa, kuinka saan tiedon kulloisistakin olennaisuuksista kuten vuorossa olevasta pelaajasta kiinnostuneille tahoille. Tässä siis vastaus. Käyttöliittymän puolella toimiva kuuntelija, jonka on tarkoitus muodostaa pelaajan häröilyistä pelissä suoritettavia komentoja, saa tiedon pelaajaoliosta ja voi siten kertoa sille, että seuraavalla kerralla kun kysytään kerrot sitten suorittavasi tämänlaisen komennon.
Puuh, se helpotti. Nyt voi taas puskea koodia kun on suunta tiedossa.