BecomePrey Artificial Intelligence in computer games
Warzone Jako úplně první RTS strategie plně ve 3D s volnou rotací kamery - Neuvěřitelná modifikovatelnost jednotlivých aspektů hry od 3D modelů jednotek, herních map až po skripty umělé inteligence - plno dosud nepřekonaných revolučních nápadů Obsah práce - Shrnutí základů (teorie) umělé inteligence a možných typů - Hlubší popis hry Warzone 2100 a historie - Historie mé práce a naší organizace Warzone Elite Force (obdoba NEWST) - Popis příprav a programování utilit které později pomáhaly urychlit vývoj a testování BecomePrey - Zevní popis BecomePrey AI a jejího chování - Hluboký popis a dokumentace celého skriptu BecomePrey a všech událostí
Programování BecomePrey AI - Samotné programování až do aktuální verze 2.90PFR zabralo téměř 3 roky - Okolo WEF se seskupila řada zájemců o betatesting BecomePrey tým betatesterů pro BecomePrey AI. WEF-Trueblues a WEF-NIKER betatesteři na plný úvazek + další dobrovolníci např. pro testování na mapách s extrémními podmínkami. První kroky: -Na programování AI neexistoval žádný editor (dělala se v poznámkovém bloku) musel jsem naprogramovat VSC (VLO&SLO Compiler), který se staral o všechny životně důležité operace při psaní skriptu a hledání chyb a o automatické zálohy.
Důležitá otázka – jak vlastně začít psát vlastní AI? -Warzone 2100 obsahovala vlastní AI zvané 1.10 (podle verze hry ve které byla poprvé použita) BecomePrey 1.xx založena na modifikovaném skriptu 1.10 (2002) -Postupné oprošťování se od zastaralých metod AI 1.10 a postupný kompletní přepis všech interních skriptů BecomePrey 2.16 (2004) -přes 85% skriptu kompletně přepsáno -přibližně 50% skriptů nejen upraveno pro lepší výkon a kvůli podpoře nových postupů, ale od základů přepsáno do té doby nepoužitými metodami BecomePrey 2.86 (2005) -Všechny skripty nahrazeny -přes 90% skriptů používá revoluční metody -nejpokročilejší dynamicky přizpůsobivá AI pro Warzone 2100
Problémy: -kvůli předčasnému rozpadu Pumpkin Studios zůstalo v engine Warzone 2100 pár chyb. Problémy viditelné přímo ve hře byly odstraněny, ale některé interní funkce skriptů zůstaly poškozené. Navíc detekce chyb v určitých situacích v kódu totálně selhávala a nevracela číslo řádky s chybou pozdržení vývoje mnohdy i o měsíce. Příklady poškozených příkazů: takeOverSingleDroid(DROID droidToTakeOver, INT playerToGain) takeOverDroidsInArea(INT fromPlayer, INT toPlayer, INT x1, INT y1, INT x2, INT y2) takeOverDroidsInAreaExp(INT fromPlayer, INT toPlayer, INT x1, INT y1, INT x2, INT y2, INT level, INT max) CTD: -Pokud se někdo zajímá o programování, tyto 3 písmenka mu zajisté nahání husí kůži. Znamenají Crash To Desktop (pád na plochu). Při CTD program spadne bez jakékoliv chybové hlášky díky čemu je nemožné snadno chybu lokalizovat a odstranit. Pokud některý betatester poslal s předmětem CTD, bylo většinou zle no hodně dlouhou dobu. Mnohdy znamenaly revertování do předchozí verze a znovu-implementování všech změn.
Závěr: Ačkoliv vývoj BecomePrey AI zdaleka neskončil, tato dokumentace (i když velice zjednodušená) může sloužit jako nedocenitelný nástroj pro pochopení složitého skriptu BecomePrey a pomoci tak nové generaci talentovaných programátorů kteří se chtějí podílet na znovuzrození této klasiky. Krátce k historii Warzone 2100 Po neshodách mezi vývojáři a EIDOS se ke konci roku 1999 Pumpkin Studios dostává do finančních potíží a tým talentovaných programátorů je rozpuštěn. - RTS (strategie v reálném čase) napsaná počátkem roku 1998 společností Pumpkin Studios, distribuovaná společností EIDOS. Počátkem roku 2000 se zdálo, že Warzone 2100 je odsouzeno k zapomenutí. Byla však zformována organizace N.E.W.S.T. Sdružení dobrovolníků z celého světa odhodlaných udržet na slunci tuto revoluční a dosud nepřekonanou real-time strategii. NEWST, později Pumpkin-2 a RTS.net bojovali mimo jiné se společností EIDOS o vypuštění zdrojového kódu hry a prohlášení Warzone 2100 za open-source projekt. 30.prosince 2004 bylo jejich mnohaleté volání vyslyšeno, proto si všichni fanoušci tohoto herního žánru mohou být jistí, že jméno Warzone 2100 ještě uslyší…
„With BecomePrey on my side I can‘t lose, You will Become our Prey… „ 7h3 3nd