3. Kasutajaliides

Kasutajaliides (User Interface) on mänguloojate üks kõige paindlikum viis kuidas mängu olekut mängijale selgeks teha. See võib olla ekraanilt alaliselt nähtav ning võib näidata mängijale mistahes parameetreid, mis disainer otsustab, et mängija jaoks võiks vajalik olla. Näiteks: punktid, elupunktid, kuulide arv, kogutud esemed, tegevused, mida mängija peab tegema, et mängus edasi jõuda ning lugematu hulk asju, mis oleneb juba mängu enda spetsiifikast.

hud

Kasutajaliides kasutab mängu olekust saadud andmeid, et seda kuvada mängijale ekraanil. Üldjuhul seda informatsiooni dubleerima ei pea, vaid kasulik on otse mängu olekust andmeid pärida, et ei tekiks võimalust, et tegu oleks kuidagi valesti arvutatud või ajutiste andmetega mängu olekust. Samas, kasutajaliidesele on vaja kirjutada reeglid, mis juhtudel uuendada andmeid, mida mängijale näidatakse. See on samuti osa mängudisainist. Esmalt on vaja otsustada, mis andmeid üldse näidata ja kui see on otsustatud, siis tuleb välja mõelda, millal neid uuendada.

uno

Et mängijat kursis hoida, mis tema tegevuste tagajärg on olnud mängu mängides, on üldiselt kõige kasulikum uuendada kasutajaliideses näidatud andmeid niipea, kui need mängu olekus muutuvad. See tähendab, et mänguprogrammis, nendes kohtades kus mängu olek (implementatsiooni käigus defineeritud muutujad) muutub, on vaja välja kutsuda ka vastavad funktsioonid kasutajaliideses, mis liideses defineeritud elementidel kajastuma peavad. See juba omakorda tähendab, et andmemudeli seisukoha pealt, on vaja luua seos mängu oleku ja simulatsiooni vahel ning kasutajaliidese vahel. Objekt-orienteeritud programmeerimise puhul on tegu reeglina eraldi koodiklasside ning täiesti eraldiseisvate ja iseseisvate objektidega.

example_hud

Näide: 1. Koodiklass "Player" kus on kõik mängijale olulised parameetrid näidatud, näiteks tema elupunktide arv (HitPoints). 2. Koodiklass "HUD" (ehk Heads Up Display), kus on tekstielement, mis on võimeline kuvama numbreid mängija ekraanil.

Meile vajalik muutuja HitPoints on vaja toimetada kuidagi Player klassist HUD klassi ning seda võib teha kas nii, et HUD objekt küsib Player objektilt seda väärtust iga kord kui mängija elupunktid muutuvad või Player objekt saadab selle HUD objekti iga kord kui mängija elupunktid muutuvad. Kuidas täpselt implementatsioon on tehtud, ei oma olulist tähtsust kui see just ei häiri muud mänguprogrammiga seotud toiminguid. Mis on oluline, on see, et mängijale oleks selge, mis parasjagu mängu olek on. Mängija ei näe koodi, mis jookseb mänguprogrammis taustal, neile on kõige tähtsam see, et nende sisend ja tagasiside mis nad saavad oleks võimalikult selgelt arusaadav.