További Szoftver cikkek
A mesterséges intelligencia a játékiparban nem a gonosz Smith ügynök vagy az ember ellen forduló SkyNet, nem valami misztikus, emberszerű értelemmel és érzelmekkel bíró szoftvercsoda, hanem egyszerűen a programnak az a része, ami megmondja, hogy a gép hogyan lépjen a játékos ellen. Ma már egy játéknak a puszta túlerő helyett illik okosan játszania, főleg egy stratégiai játékban, ahol a pontos célzás és jó reflexek (amiben a gép nyilván jobb az embernél) helyett a taktikán van a hangsúly.
Tulajdonképpen miért nehéz MI-t írni? Miért jelennek meg hatalmas költségvetésű játékok ordítóan buta MI-vel?MI-t írni valójában programozástechnikailag elég könnyű. Ami nehéz benne, az a megoldandó problémák megfogalmazása, és azok beillesztése a már meglevő rendszerbe. Ha ezt sikerül elkapni, a problémák megoldása és leprogramozásuk már nem vészes. A játékos nem azt várja az MI-től, hogy tökéletesen játsszon, hanem azt, hogy emberszerűen. Legyen kiszámíthatatlan, néha hibázzon, és túl lehessen járni az eszén. Nincs nagyobb sikerélmény, mint amikor a játékos azt érzi, hogy az MI okos, de mégis sikerült megszívatnia, mert ő még okosabb. Mindezt úgy modellezni, hogy az MI egyetlen pillanatra se essen ki a szerepéből, elég nagy feladat programozónak és teszternek egyaránt.
Mennyire elfogadott a játékiparban, hogy egy MI csal? Szabad neki csalni, csak a játékos ne vegye észre?Elég nehéz az MI szempontjából definiálni a csalás fogalmát... Olyan szinten nem csalhat, hogy ha rosszul áll a szénája, "varázsol" magának egy kis nyersanyagot, vagy hogy egy stratégiai játékban látja a játékos összes seregét. Ettől persze nehezebb lenne legyőzni, a játékos szórakozását mégis inkább rontja, mint emeli a keményebb ellenfél. Hiszen ha például az MI látja az összes egységemet, értelmetlenné válik minden bekerítés, hátbatámadás, elterelő hadművelet. Akkor jó az MI, ha meg lehet verni. Olyasmi fogadható el, ami nincs a játékélmény kárára, például "súghatok" az MI-nek az adott pályán a tereppel kapcsolatban, hogy az útkereső algoritmusnak megkönnyítsem a dolgát.
Nálunk én vagyok egyedül, aki kizárólag erre a feladatra koncentrál, de egyébként is jellemző, hogy egy ember kezébe próbálják adni az egész MI-t. Ez a programozáson belül tipikusan olyan terület, ahol nagyon nehéz több ember között megosztani a munkát. Nincsenek igazán kialakult sztenderdek, ahány programozó, annyi megoldás.
Nem is oktatják sehol a játék-MI programozását?Persze van szakirodalom, vannak tutorialok az interneten, de minden egyes játék, minden egyes probléma annyira egyedi, hogy inkább csak a szemléletet lehet tanítani. Ezért nincsenek a grafikus vagy fizikai motorokhoz hasonló licencelhető játék-MI-k.
És a mesterséges intelligencia tudománya? Neurális hálózatok, öntanuló rendszerek?Azoknak a gyakorlatban semmi közük a játékok MI-jéhez. Meg lehetne oldani, hogy az MI elemezze a játékos játékstílusát, és tanuljon tőle, de ilyesmire nincs igazán igény (kivéve néhány nagyon speciális esetet, például a sakkprogramokat). Ettől nem lenne a játék jobb és szórakoztatóbb.
Pedig sok stratégiai játékot hirdetnek úgy, hogy az MI tanul a játékostól, alkalmazkodik a játékstílusához...Igen, és ez rendszerint ki is merül abban, hogy az MI ránéz a pályára, látja, hogy a játékos sok repülőgépet épített, és erre azzal reagál, hogy légvédelmet telepít. Simán meg lehetne csinálni azt, hogy az MI nyilvántart egy profilt a játékosról, és ha kiismerte, direkt ellene optimalizált taktikákat vet be - ez tipikusan az, amire nincsen igény.
Erre azért nem lehet általános választ adni, mert minden MI más. A mesterséges intelligencia a programozás talán utolsó olyan területe, ahol nem az előre megírt, optimalizált algoritmusoké a terep, hanem a kreatív megoldásoké. Ha úgy tetszik, az MI a programozás, a problémamegoldás művészete.
De nem akarok kibújni a kérdés alól, elmondom, hogyan működik az MI nálunk, a Panzers Cold Warban, ami egy valós idejű, "tankos" stratégiai játék. Az alapszint az egységek saját kis intelligenciája, ez gondoskodik arról, hogy a katona visszalőjön, ha rálőttek; ha lát egy elsősegélycsomagot, azt felvegye, vagy ha légitámadást észlel, próbáljon meg kimenekülni belőle. A második szint a csoportos MI, ez irányítja a nagyobb csapatokban dolgozó egységeket, ez dönti el, milyen harctéri taktikákat alkalmazzanak, milyen formációt vegyenek fel, mikor vonuljanak vissza.
Végül ott a legmagasabb szint, ami külsőleg megadott paraméterek (mennyire bátor, mennyire szereti használni az egyes hadnemeket, stb.) alapján dolgozza ki a stratégiáját, és irányítja a hadmozdulatokat. A felderítőmodulja közben folyamatosan elemzi a terepet és reagál: ha észreveszi a játékos seregét, és úgy érzi, erősebb nála, odaküld egy nagyobb sereget (aztán a harcot már lerendezik az MI imént említett alsóbb szintjei), ha gyengébbnek érzi magát, ráerősít a védelemre, és közben kisebb figyelemelterelő támadásokkal húzza az időt stb.
Egyrészt ott a nagyon népszerű skirmish játékmód, amikor az MI ellen játszol multiplayer pályán, az egyszemélyes játék történeti és egyéb megkötései nélkül. Másrészt úgy lehet igazán változatos egyszemélyes játékot készíteni, ha a forgatókönyv csak bizonyos pontokon veszi át az irányítást, rövidebb-hosszabb időre kikapcsolva az MI-t. Így marad meg a történet nyújtotta izgalom és feszültség anélkül, hogy centire azonosan történnének a dolgok, ha újrakezded az adott pályát.
A hardver fejlődése, az egyre gyorsabb processzorok, és több memória mennyiben könnyíti meg az MI-programozó dolgát?Szinte semennyire. Az MI egy játék futása alatt alig pár százaléknyi processzoridőt vesz el, nem az erőforrásigény a szűk keresztmetszet. A nyers számítási teljesítmény növekedése nem teszi jobbá az MI-t a gyakorlatban. A valós idejű stratégiai játékok műfajában például máig a Starcraft MI-je közelíti meg legjobban az emberi viselkedést, kilenc évvel a megjelenése után.