Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Znaczniewięcejinformacjinatemattego,
doczegomożenamsięprzydaćkolejko-
wanieznaleźćmożnawrozdzialeKolejka
zdarzeń(s.233).
Dlaczegoodczułempotrzebęstworzenia
rysunkuprzedstawiającegoUstrumień”?
Idlaczegowyglądaonjakrura?
Zakładając,żeaktorodnosisiędopostacigracza,umożliwitopopraw-
nekierowanienimnapodstawiepoleceńużytkownika.Wracamywięc
dotegosamegozachowania,jakiemieliśmywpierwszymprzykładzie.
Dodaniewarstwypośredniejmiędzypoleceniemawykonującymjeak-
torempozwoliłonamuzyskaćmałąizgrabnąwłaściwość:możemyteraz
pozwolićgraczowinakontrolowaniedowolnegoaktorawgrze,zmieniając
aktora,naktórymwykonujemytepolecenia.
Wpraktyceniejesttopowszechnacecha,istniejejednakpodob-
nyprzypadekużycia,któryrzeczywiścieczęstosiępojawia.Jakdo-
tądrozważaliśmyjedyniepostaciekierowaneprzezgracza,cojednak
zwszystkimiinnymiaktoramiwświeciegry?Testerowaneprzez
sztucznąinteligencjęgry.MożemywykorzystaćtensamwzorzecPo-
leceniewcharakterzeinterfejsumiędzysilnikiemsztucznejinteligen-
cjiiaktorami.Kodsztucznejinteligencjiemitujepoprostuobiekty
Command.
Wtymmiejscuoddzieleniesztucznejinteligencjiwybierającejpo-
leceniaorazkoduaktora,któryjewykonuje,dajenammnóstwoela-
styczności.Dlaróżnychaktorówmożemywykorzystaćróżnemoduły
sztucznejinteligencji.Możemyteżdobraćsztucznąinteligencjędo
różnychrodzajówzachowań.Chcemybardziejagresywnegoprzeciw-
nika?Zwyczajniewpinamybardziejagresywnąsztucznąinteligencją,
abywygenerowaćdlaniegopolecenia.Wrzeczywistościmożemy
nawetpodpiąćsztucznąinteligencjędopostacigracza,comożesię
przydaćnp.wtrybiedemo,gdygramusidziałćwtrybieautopilota.
Tworzącpoleceniakontrolującepierwszoklasoweobiektyaktora,
usunęliśmyścisłązależnośćbezpośredniegowywołaniametody.Za-
miasttegomożemyotympomyślećjakookolejceczyteżstrumieniu
poleceń:
SZTUCZNA
INTELIGENCJA
STRUMIEŃPOLECEŃ
AKTOR
Rysunek2.3.Kiepskonarysowanaanalogia
Jeślisprawimy,abytepoleceniabyły
możliwedoserializacji,możemyprzesłać
ichstrumieńprzezsieć.Możemywziąć
poleceniagracza,pchnąćjeposieci
doinnejmaszyny,anastępnieponownie
jeodtworzyć.Jesttoistotnyelement
tworzeniawieloosobowychgier
sieciowych.
Jakiśkod(odpowiadającyzaobsługęwejścialubsztucznąinteligen-
cję)tworzypoleceniaiumiejscawiajewstrumieniu,innykod(dyspozy-
torlubsamaktor)konsumujepoleceniaijewywołuje.Wtykającwśro-
dekkolejkę,oddzieliliśmyproducentazjednejstronyikonsumenta
zdrugiej.
26PolecenieCofnijiponów