Jucați singur și trei dintre cele patru castele sunt apărate de o mașină. Fiecare senior al războiului condus de calculator rulează aceeași buclă scurtă — găsește mingea de care merită să îți fie teamă, ghicește pe unde îți va trece zidul, glisează ca să o întâmpine —, iar distanța dintre un adversar de nimic și unul primejdios ține de patru numere.
Scris și editat în limba engleză. Această versiune în română a fost produsă prin traducere automată; acolo unde precizia contează, originalul în engleză este autoritatea. Citiți originalul în engleză →
Prima sarcină a unui senior al războiului, de o sută douăzeci de ori pe secundă, este trierea. Cu până la două mingi libere în arenă, IA trebuie să hotărască pe care dintre ele o merită scutul ei. Ea punctează fiecare minge activă și neținută după distanța până la propriul rege, apoi scade un bonus fix de 250 de unități din orice minge care chiar se îndreaptă spre colț; o minge care se depărtează este tratată ca și cum ar fi cu 250 de unități mai departe decât este de fapt. 1 Punctajul cel mai mic câștigă atenția scutului.
Efectul este un apărător care nu intră în panică pentru o minge ce trece nevinovat pe alături, dar se fixează pe una care este deopotrivă mai aproape și venind încoace. Este un model grosolan a ceea ce face un om fără să se gândească: uită-te la lucrul care vine spre tine, lasă-l pe cel care pleacă. Toată judecata se reduce la un singur produs scalar între viteza mingii și direcția către rege: pozitiv înseamnă „ochește spre mine”, iar atât ajunge.
După ce a ales o amenințare, seniorul războiului trebuie să hotărască unde să stea pe șina lui diagonală. Nu dezleagă traiectoria întreagă a ricoșeurilor: nicio urmărire a reflexiilor, nicio prevestire a săriturilor din pereți. Ia poziția mingii, o împinge un pas scurt înainte, de-a lungul vitezei ei de acum (o anticipare de 0,12 secunde), și proiectează acel punct viitor drept pe șină, obținând o fracțiune-țintă între 0 și 1. 1
Este o predicție anume superficială și tocmai de aceea IA poate fi învinsă. Pentru că ia înainte doar o optime de secundă și nu prevede niciodată un ricoșeu, o minge care va sosi printr-o săritură din perete o păcălește: ea se leagă de direcția în care arată mingea acum. Un om care își trimite loviturile ricoșând din marginile arenei se folosește exact de acest unghi mort. Mașina răspunde prezentului cu un fir de prevedere; nu plănuiește.
Calculatorul nu calculează viitorul mingii. Se apleacă o optime de secundă înainte, își îndreaptă scutul spre locul unde ar fi mingea dacă nimic nu ar interveni și lasă tot ce intervine să fie prilejul dumneavoastră.
Cele trei dificultăți împart un corp de cod identic. Ce se schimbă între ușor, mediu și dificil este un rând de patru numere de reglaj. 1 Tremurul adaugă o eroare aleatorie țintei scutului, așa că ochirea unui senior ușor rătăcește cu aproape o cincime din șina lui, în timp ce unul dificil este aproape exact. Distanța de reacție stabilește cât de aproape trebuie să vină o minge înainte ca seniorul războiului să se ostenească să o urmărească: unul ușor nu ia în seamă nimic aflat la mai mult de 420 de unități de regele său, puțin sub jumătate din lățimea tablei, iar unul dificil urmărește prin toată arena. Șansa de prindere este probabilitatea ca el să apuce o minge care se apropie de scut destul cât să poată fi prinsă. Iar ochirea spre rivali este un singur comutator, care hotărăște dacă seniorul războiului joacă vreodată la atac.
| Reglaj | Ușor | Mediu | Dificil |
|---|---|---|---|
| Tremur de ochire (fracțiuni de șină) | 0.18 | 0.07 | 0.015 |
| Distanță de reacție (unități) | 420 | 700 | 2,000 |
| Șansă de prindere | 0% | 25% | 55% |
| Ochește spre rivali? | nu | nu | da |
Toate cele patru valori vin dintr-un singur tabel mic de reglaje din motorul jocului Bulwark, câte un rând pentru fiecare treaptă. Distanța de reacție pe dificil este scrisă ca de două ori lățimea arenei, iar arena este un pătrat de 1.000 de unități, așa că 2.000 de unități înseamnă „urmărire necontenită”. 1
Un senior al războiului ușor sau mediu nu prinde niciodată cu gândul de a lovi. Unul ușor nu prinde deloc, iar unul mediu doar din când în când, fără vreun plan pentru ce să facă cu mingea odată ce a ajuns la el. Trageți comutatorul de ochire spre rivali — lucru pe care îl face doar treapta dificilă — și IA încetează să mai fie pur reactivă. Când ține mingea, se uită peste toată tabla, alege rivalul cel mai rănit (cel cu cele mai puține cărămizi rămase) și ochește într-acolo. 1
Face asta fără nicio căutare de traseu. Încearcă unsprezece poziții candidate de-a lungul propriei șine și, pentru fiecare, reface calculul de eliberare al motorului ca să vadă în ce direcție ar zbura lovitura, apoi păstrează poziția al cărei vector de ieșire arată cel mai drept către victima aleasă. 1 Este forță brută peste un pumn de opțiuni, nu istețime, dar o face cu răbdare: după ce a ales un loc, seniorul războiului ține mingea până când scutul chiar a glisat acolo și îi dă drumul abia când a ajuns sau când a ținut-o destul de mult încât așteptarea să coste mai mult decât valorează lovitura. Intenția este fără doar și poate strategică, exact ce ar face un om care vânează o victimă ușoară. Alegerea țintei după „cele mai puține cărămizi” îndreaptă trei apărători de sine stătători spre cel care pierde deja.
Fiecare lucru „aleatoriu” pe care îl face un senior al războiului — tremurul ochirii, aruncarea cu banul pentru a prinde sau nu — este scos dintr-un generator cu sămânță, o rutină compactă cunoscută drept mulberry32, care preschimbă un singur număr de pornire într-un șir lung și repetabil de valori pseudoaleatorii. 2 Dați-i aceeași sămânță și va scoate aceeași secvență la nesfârșit. Un meci în direct își ia sămânța din ceas, așa că nicio partidă nu începe la fel ca alta, dar înapoiați aceeași sămânță și meciul se desfășoară din nou întocmai: aceleași unghiuri de lansare, aceleași tremurături, aceleași prinderi.
Acest determinism nu este un amănunt de fațadă. El este cel care face jocul testabil — suita lui de teste joacă meciuri întregi calculator contra calculator pornind de la o sămânță fixă și așteaptă de fiecare dată același rezultat — și tot el este cel care îngăduie ca întreaga simulare, inclusiv cursorul generatorului, să fie împachetată în JSON și reclădită, astfel încât, online, gazda să își poată trimite starea, iar fiecare dintre ceilalți jucători să reclădească o tablă identică. Seniorii războiului par vii pentru că greșelile lor arată omenește; dedesubt, „instinctele” lor sunt o scurtă recurență aritmetică pe care oricine o poate derula înapoi până la început. Se vede că o mașină care păzește un castel nu are nevoie decât de câteva numere și de un flux de noroc reproductibil. 2