Myślę sobie czasem o wciąż trwającej karierze testu Turinga, który, przyznacie, jest bardzo dziwnym testem. Choćby dlatego, że o jego wyniku decyduje bardzo subiektywne i trudne do jednoznacznego zweryfikowania poczucie, że rozmawia się nie z komputerem, tylko z żywą osobą. W wypowiedziach, które dla jednego będą zupełnie naturalne, inny na kilometr wywęszy komputerową sztuczność. Ale jest w tym teście coś jeszcze bardziej intrygującego – to, co uznaje za kryterium inteligencji. Po czym poznamy istotę inteligentną? Po tym, że używa narzędzi? Buduje kulturę? Jest w stanie obsłużyć samolot w nieprzewidywalnych sytuacjach? Pięknie kieruje wojskami w czasie bitwy? Nie. Istotę inteligentną poznajemy po tym, że umie porozmawiać. Jeśli przyjąć takie kryterium inteligencji, większość AI w grach to tępaki jakich mało.
W pojawiających się w grach dialogach rola komputera sprowadza się przeważnie do wybrania z góry ustalonej wypowiedzi, która MUSI nastąpić, kiedy gracz wybierze jedną z opcji dialogowych. Z rzadka na dobór odpowiedzi mają wpływ wartości jakichś dodatkowych parametrów (np. współczynniki postaci), albo jakieś podjęte wcześniej przez gracza decyzje. To niepokojąco proste – tak, jakby programiści zupełnie skapitulowali przed kwestią dialogów, pozostawiając je w całości scenarzystom. Trudno tu nawet mówić o AI.
Przyzwyczailiśmy się do tego stanu rzeczy tak bardzo, że rzadko w ogóle myślimy o tym, że w grach przydałyby się sposoby rozmowy niesprowadzające się do wysłużonej instytucji drzewka dialogowego. Albo o tym, że innowacje w prowadzeniu rozmów z wirtualnymi bohaterami nie kończą się na limicie czasowym w dobieraniu odpowiedzi albo na podaniu pięciu alternatyw zamiast czterech. Co z dowolnym budowaniem własnych zdań? Z pytaniem bohaterów o cokolwiek bądź? Wściekaniem się na nich tam, gdzie chcemy, a nie tam, gdzie się nam na to pozwala?
Głównym problemem jest tu oczywiście język. Dogadywanie się z maszyną to jedno z najwcześniejszych marzeń ery komputerów, ale najbardziej widowiskowe próby jego realizacji bywały zwykle mniej lub bardziej zakamuflowanymi oszustwami. Wszystko zaczyna się od legendarnego programu „ELIZA”, który reagował na teksty wprowadzane przez użytkownika i nawiązywał z nim rozmowę. Najbardziej popularne wcielenie ELIZY to psychoterapeuta, który z zainteresowaniem dopytywał się o problemy osobiste rozmawiającego z nim człowieka. Oszustwo polegało na tym, że parser ELIZY wyłapywał znane sobie słówka i reagował na nie zapisanymi w pamięci zwrotami (na zasadzie „Nadzieją MATKĄ wynalazku” – „A co możesz mi powiedzieć o swojej MATCE?”), a kiedy zupełnie nie wiedział, o co chodzi – po prostu zmieniał temat.
Innym słynnym programem pozwalającym komputerowi na gadanie był Racter, rzekomy autor pierwszej książki napisanej w całości przez komputer, „The Policeman’s Beard is Half Counstructed”. Racter w rzeczywistości posługiwał się napisanymi wcześniej przez jego twórców formułkami, które w pewnych miejscach uzupełniał. Później została wydana komercyjna wersja programu, do dziś pływająca w morzu Internetu. Rozmowy z Racterem są nieco dziwniejsze niż z ELIZĄ – ale też zabawniejsze (jeśli komuś nie przeszkadza to, że od czasu do czasu program zaczyna wygadywać surrealistyczne bzdurki).
![policeman](http://jawnesny.pl/wp-content/uploads/2012/05/policeman.jpg)
"The Policeman's Beard Is Half Constructed" - według niektórych pierwsza książka napisana przez komputer. Według innych skok na kasę.
Zastosowanie chatterbotów w rodzaju Ractera i ELIZY w grach wideo nie byłoby zbyt ciekawe. Tak naprawdę nie budują przecież samodzielnie zdań, tylko żonglują gotowymi formułkami. Ich zadaniem jest prowadzenie niekończących się dyskusji o niczym, a dialogi w grze nie powinny być za długie i zwykle prowadzą do jakiegoś celu. A stworzenie programu, który rozmawiałby z graczem i poprawnie, i do rzeczy, i zgodnie z charakterem postaci w jakimkolwiek języku naturalnym wciąż jeszcze okazuje się za trudnym zadaniem dla programistów (choć programy rozumiejące i generujące zdania w języku naturalnym wciąż przecież powstają). Trzeba jeszcze poczekać, ale że na styku językoznawstwa i informatyki dzieje się bardzo dużo, nie można tracić nadziei. Forpocztą w kwestii rozumienia języka przez gry wideo są gry IF – czyli tekstowe, w których komputer odczytuje i dość skomplikowaną gramatykę, i duże słowniki (włącznie z synonimami), i (w wielu przypadkach) umie wyjaśnić, dlaczego nie rozumie danego zdania, ale dialogi wciąż są piętą Achillesową tej formy gier.
A tymczasem, jeśli kluczowym problemem okazuje się skomplikowanie języka naturalnego, warto pomyśleć, w jaki sposób można go w dialogach uniknąć. Jak to, dialogi bez języka? Ano tak. Co więcej, nie trzeba niczego w tej kwestii wymyślać, bo od dawna istnieją już bardzo ciekawe przykłady tego, co się da w tej kwestii zrobić. Dzisiaj: jedna z nich. „Captain Blood”
Gra programowo dziwaczna. W zwariowane szczegóły zawiązania fabuły nie będę wchodził – odsyłam do opisującej je nowelki. Zacznijmy od punktu, w którym nasz bohater, Blood, ma już rodzący co chwila młode organiczny statek kosmiczny, obserwuje jego drogi rodne i zastanawia się, na którą planetę rozległej galaktyki polecieć w poszukiwaniu następnego ze swoich klonów, którego musi zlikwidować. Problem w tym, że Blood nie wie, gdzie znaleźć zbrodnicze klony, a informacje o miejscu ich pobytu musi wycisnąć, prośbą lub groźbą, od napotykanych po drodze kosmitów. W rozmowach z nimi posługuje się prostym językiem składającym się z ikonek. To likwiduje podstawowy problem z parserami w grach tekstowych, czyli użycie przez gracza słówka, którego komputer nie rozumie, a jednocześnie pozwala na budowanie całkiem skomplikowanych wypowiedzi, na które postaci bardzo różnie reagują.
/Rozmowa z kosmitą w „Captain Blood”/
Jeśli ktoś myśli, że skoro kosmici z „Captain Blood” używają maleńkiego słownika, to brak im ekspresji – bardzo się myli. Są jedną z najbarwniejszych gromadek w historii gier. Tchórzliwi (STATEK WIELKI STRACH STRACH), pudzianowaci (JA WIELKI WOJOWNIK TY MAŁY WOJOWNIK [PRZEKLEŃSTWO] [OBELGA] [PRZEKLEŃSTWO]), filozoficzni (MARTWY ZNISZCZYĆ DUSZA), tęskniący za lepszym życiem (JA SZUKAĆ SAMICA SZUKAĆ REPRODUKCJA), enigmatyczni (5 8 4 8 2 WIELKI 7 6 5 NIEMOŻLIWY). Do pewnego momentu przy graniu skupiam się na wyciąganiu z nich potrzebnych mi informacji, ale potem zawsze coś mnie podkusi, żeby szczególnie zakompleksionemu kosmicie warknąć „SAMICA NIE CHCIEĆ TY [ŚMIECH] [ŚMIECH]”, mięśniakowi z karabinem powiedzieć na odchodnym „TY MAŁY WOJOWNIK RAKIETA BLOOD DUŻY [ŚMIECH] [OBELGA]”, a domorosłemu filozofowi „MARTWY BAWIĆ DUSZA PRZYJACIEL”. Reakcje bywają cudowne i zaskakujące.
![Captain Blood - Bridge](http://jawnesny.pl/wp-content/uploads/2012/05/Captain-Blood-Bridge.png)
"Captain Blood" to nie tylko ciekawy mechanizm prowadzenia dialogów, ale też niesamowity projekt świata, statków i postaci. Dziś już takich nie robią...
Oczywiście, po dłuższym graniu odrobina magii zanika, bo okazuje się, że odpowiedzialny za dialogi w „Captain Blood” silnik działa tak, jak kiedyś najprostsze parsery – wypatruje określonych znaków lub ciągów znaków, po czym wyrzuca z siebie gotowe komentarze, które im odpowiadają. Prowadzi to do mnóstwa sytuacji,w których odpowiedź ma bardzo luźny związek z tym, co do danego potworka powiedzieliśmy. Sprawia też, że to, co się dokonuje, nie jest właściwie rozmową, w której postaci z gry dowiadują się czegoś od gracza, tylko prostą wymianą, w której do gracza zawsze należy akcja, a do komputera – reakcja. (jeśli kogoś bardzo ciekawi, jak działają dialogi z „Blooda”, może zajrzeć choćby tutaj)
Pomimo tego, z kolejnymi stworami rozmawia się świetnie, bo pomysł na dialogi w „Bloodzie” jest w gruncie rzeczy bardzo sensownym rozwiązaniem. Taki silnik, kiedy go nauczyć zabawnych albo sensownych reakcji na odpowiednio dużą ilość zwrotów, może się okazać w końcu bardzo elastycznym narzędziem do budowania dyskusji z komputerowymi postaciami. Usuwa dużo problemów, z którymi wiąże się wykorzystywanie języka naturalnego (ograniczony słownik komputera vs. ogromny słownik gracza; potrzeba oddania złożoności gramatycznej języka naturalnego; niuanse emocjonalne wypowiedzi), a jednocześnie pozwala na budowanie bardzo różnych wypowiedzi i typów postaci.
Morał z „Blooda”? Może w rozmowie z komputerem najlepiej spotykać się na gruncie neutralnym. Nie zmusimy go (na razie) do nauczenia się języka naturalnego, a wielu z nas brakuje zapału, żeby się nauczyć porządnego, głębokiego programowania. Jeśli się więc dogadywać, w ten sposób zmieniając zachowanie kierowanych przez komputer postaci, najlepiej robić to za pomocą uproszczonego języka sztucznego, w którym obie strony mają szansę się wypowiedzieć tak, żeby rozmówca je zrozumiał.
Jak pokazuje „Blood”, taki język sprawdza się dobrze nawet tam, gdzie komputer tylko udaje, że rozumie, co się do niego mówi. A przy na tyle nieskomplikowanym słowniku i gramatyce, język z „Blooda” mógłby przecież służyć do budowania przez komputer sensownych zdań opisujących dynamicznie zmieniający się świat gry. Proste języki sztuczne przyszłością dialogów w grach wideo? Oczywiście, na to nikt nie pójdzie, bo efekt będzie za mało kinowy, przesiąknięty prawdziwymi emocjami, i w ogóle niezgodny z tym, co się dzisiaj wypisuje w reklamówkach gier. Ale można nie tracić nadziei, że ktoś od czasu do czasu podejmie pomysł z „Blooda” i stworzy tytuł, który takie same mechanizmy wykorzystuje poważniej i sensowniej, pozwalając komputerowi mówić, a nie tylko reprodukować gotowe wzory.
Tym bardziej, że w „Captain Blood” rozmowy z kosmitami to sam rdzeń zupełnie nieliniowej rozgrywki – bo to, jak się gra potoczy, zależy od tego, na jakiej planecie się zaczyna, jak z kim rozmawiamy, czego się dowiemy, komu pomożemy, a kogo zabijemy… Rozmowa staje się głównym narzędziem, za pomocą którego nasz bohater toruje sobie drogę przez świat tak, jak chce.
W tym względzie „Captain Blood” przypomina większość najlepszych osiągnięć swoich twórców (późniejszych szefów firmy „Cryo”) – na pierwszy rzut oka zachwyca, na drugi rozczarowuje, a na trzeci każe pomyśleć o tym, w jakim świetnym kierunku popycha gry, i czemu, u licha, tak mało ludzi za nim poszło.
W następnym odcinku – o grze, w której prościutki, sztuczny język z przejrzystymi regułami pozwala się podlizywać, obrażać, intrygować, zdradzać, wspierać i zaprzyjaźniać – „Legacy of Siboot: Trust and Betrayal” Chrisa Crawforda.
„nadzieja matką wynalazku” szyboletem xxi wieku.
Swoją drogą w cyberpunkowym „Neuromancerze” bohater książki mógł afair pogadać z SI. W postcyberpunkowym „Diamentowym wieku” rolę strony w konwersacji z książka/programem/grą przejęła jednak aktorka w odległym studiu, niczym ten mechaniczny Turek. Fantasci stracili wiarę, że test Turinga da się zdać?
@Jakub – „Nadzieja matką” – wyszło tak, bo szybko pisane, ale wszak wyszło bardzo prawdziwie…
Ha. Ja też szybko odpowiadałem i nie zauważyłem przejęzyczenia… Swoją drogą, to dopiero byłaby SI, która umiałaby się przejęzyczać!
Czy ktoś użył z sukcesem opcji dyktowania pytań w Fallout 1? :)
@JW:PS
Świetny wpis!
@George
A faktycznie, było coś takiego. Niestety moja ówczesna znajomość języka angielskiego była cieniutka i nic z tego nie wychodziło poza wpisywaniem „you are stupid”. Reakcji NPC jednak nie pamiętam.
Jeszcze ad rem: gdy nie wiedziałem, że gadam z botem to parę razy bliski byłem uwierzenia, że po drugiej siedzi prawdziwy serwisant. Działa to też w drugą stronę, nie raz i nie dwa odbyłem rozmowę, w której rozmówca zawalił by test Turinga. A to zawsze przypomina mi o tym pasku Dilberta:
http://dilbert.com/strips/comic/2008-03-30/
@George – Tak! Też o tym pomyślałem czytając ten wpis :)
A jedyna gra, w której można w miarę z sensem pogadać z wirtualnymi bytami to Façade. Pogadać to może za dużo powiedziane, ale wejść w sensowną interakcję, o.
Tak, o Façade warto wspomnieć w tym kontekście, bo interakcja naprawdę była sensowna i sporo zależało od tego, co się postaciom napisze (chociaż reagowały głównie na słowa kluczowe).
Gdyby jeszcze tylko ta gra nie była tak przeraźliwie brzydka…
@Mrrruczit, Piotr – A ja się jakoś od Facade odbiłem. Tzn. nigdy nie miałem poczucia, że postaci rzeczywiście na mnie sensownie reagują, a poza tym wciąż się zastanawiałem, jak coś powiedzieć, żeby coś zmienić. Taki właśnie mam problem z gadaniem do komputera w języku naturalnym – dużo bardziej skupiam się na tym, JAK coś powiedzieć, żeby biedak zrozumiał, niż na tym, CO chcę powiedzieć. Ale prawda, że to przykład gry, która stara się choćby w części realizować ideał, o którym tu piszę, i jest nie tyle skończonym produktem, co ambitnym eksperymentem. Więc chwała jej twórcom, nawet, jeśli interakcja za pośrednictwem języka bywa tu czasem odrobinkę… fasadowa.
Komentarz pod filmem doskonale oddaje moje odczucia: „I was too young to play this. Now I understand”.