Obsah
1. Historie vývoje počítačových her (1.část – první milníky)
2. Milník první: hra OXO (1952)
3. Milník druhý: Tennis for Two (1958)
4. Herní scéna hry Tennis for Two
5. Technologie použitá při implementaci hry Tennis for Two
6. Milník třetí: hra Spacewar!
7. Další vývoj her odvozených od Spacewar!
1. Historie vývoje počítačových her (1.část – první milníky)
V předchozích šedesáti částech seriálu o historii výpočetní techniky jsme se zabývali především popisem technických parametrů různých typů historických počítačů, počítaje reléovými a elektronkovými počítači, přes klasické mainframy a minipočítače až po superpočítače vyráběné především společnostmi CDC a později Cray.
Obrázek 1: Manuál k první verzi FORTRANu určeného pro mainframy IBM 704.
Taktéž jsme se zabývali problematikou operačních systémů (pokud se vůbec tímto poněkud honosným označením mohou nazývat mnohdy značně jednoduché a jednoúčelové rutiny určené pro načtení a spuštění programů) a v neposlední řadě jsme si též řekli, jaké programovací jazyky se používaly na mainframech i na a dalších historických strojích [1][2][3][4][5].
Obrázek 2: Jedna z populárních dobových učebnic ALGOLU 68.
Ovšem při popisu postupného vývoje hardware i software nesmíme zapomenout na jednu zpočátku poněkud obskurní a odborníky mnohdy přehlíženou oblast. Jedná se o vývoj počítačových her, protože právě počítačové hry dosti podstatným způsobem ovlivnily jak vývoj programového vybavení (nové algoritmy, herní enginy, komunikace po počítačových sítích se vzájemnou synchronizací klientů), tak i vývoj hardware (speciální periferie, zobrazovací zařízení, grafické akcelerátory a později GPU, herní konzole, systémy virtuální reality atd.).
Obrázek 3: Užitečné a relativně často používané idiomy jazyka APL zapisované pomocí kombinace základních funkcí a operátorů.
Počítačové hry za sebou mají přibližně šedesát let vývoje, ovšem jejich velkému rozšíření napomohly před zhruba třiceti lety tři technologické novinky: vznik mikroprocesorů, relativně levné dynamické operační paměti a vývoj technologie řadiče rastrových displejů (CRTC). V následujícím textu i v navazujících částech tohoto seriálu si připomeneme některé významné události, které postupně vedly ke vzniku herních konzolí, domácích počítačů a následně i osobních počítačů (jejichž konstrukci v mnoha případech ovlivnil právě požadavek na co nejlepší podporu her).
Obrázek 4: Šestnáctibarevný grafický režim s rozlišením 128×128 pixelů (tento obraz byl generován sovětským počítačem Agát).
2. Milník první: hra OXO (1952)
Jak jsme si již řekli v úvodní kapitole, začal vývoj počítačových her již před zhruba šedesáti lety. Jedním z důležitých mezníků v této oblasti informatiky je přitom rok 1952, protože právě v tomto roce dopsal Alexander S. Douglas (student na univerzitě v Cambridge) svoji disertační práci na téma problematiky interakce člověka s počítačem. V rámci své práce naprogramoval Douglas na počítači EDSAC jednu z prvních skutečných počítačových her pojmenovanou OXO. Jednalo se o zjednodušenou variantu piškvorek hranou na herní ploše mající rozměry 3×3 políčka. Tato hra je v anglosaském světě známá právě pod názvem OXO (název je samozřejmě složen z tvarů symbolů používaných ve hře), popř. Tic-Tac-Toe nebo Noughts and Crosses. Zajímavé bylo ovládání této hry, protože se jako ovladač využíval otočný telefonní volič, který si pravděpodobně pamatujete z relativně nedávné éry používání telefonů (a dálnopisů) s pulsní volbou.
Obrázek 5: Telefonní volič pocházející zhruba z doby vzniku hry OXO.
Hra OXO již nabízela grafický výstup. Pro tento účel se využívala upravená obrazovka osciloskopu, která byla připojená k počítači EDSAC. Tato obrazovka nabízela možnost zobrazení bitmapy o skromných rozměrech 35×16 pixelů, což však bylo pro hrací pole dostatečné rozlišení. Jednotlivé pixely byly zobrazeny formou poměrně velkých stop, které na stínítku obrazovky zanechal elektronový paprsek.
Obrázek 6: Konzole počítače CDC 6600 s dvojicí displejů konstrukčně odvozených od obrazovky osciloskopu.
Zajímavé je, že obrazovka osciloskopu se na dalších přibližně deset let stala prakticky jediným dostupným zobrazovacím zařízením počítačů (pokud nepočítáme „statické“ výstupy na tiskárnu či na perové plottery) a proto se s ní taktéž setkáme i u některých dalších popisovaných her. Hra OXO mohla být spuštěna v emulátoru počítače EDSAC, přičemž samotný emulátor (určený pro starší systémy Macintosh) byl rovněž spuštěn v emulátoru. :-) Screenshot emulované varianty hry OXO i s jejími ovládacími prvky můžete nalézt na této adrese.
Obrázek 7: Ukázka využití jednoho z displejů počítače CDC 6600 pro zobrazení výsledků výpočtů.
3. Milník druhý: Tennis for Two (1958)
O další důležitý mezník ve vývoji počítačových her se postaral William Higinbotham. Jedná se o velmi zajímavého člověka, který se v období druhé světové války podílel jak na vývoji radaru, tak i na projektu Manhattan (vývoj atomové bomby); později se snažil o zastavení či alespoň o uklidnění závodů v jaderném zbrojení. V roce 1958 William Higinbotham vytvořil se svými spolupracovníky hru nazvanou Tennis for Two. Striktně řečeno se nejednalo o čistě počítačovou hru, protože namísto digitálního počítače byl použit analogový počítač, jehož části byly zkonstruovány pouze pro účely této hry.
Obrázek 8: William Higinbotham
Podobně jako v případě hry OXO se i pro hru Tennis for Two využívala obrazovka osciloskopu. Ta měla kulaté stínítko o průměru pouhých pěti palců, takže plocha displeje byla někde na pomezí mezi velikostí displeje smartphonu a netbooku. Na obrazovce se zobrazovala celá herní scéna, která byla velmi jednoduchá – obsahovala boční pohled na tenisové herní hřiště (což je zajímavé, protože mnohé další napodobeniny tenisu, mj. i světoznámá hra Pong, používala pohled na herní hřiště shora).
Obrázek 9: Osciloskop, na němž je zobrazena hra Tennis for Two
4. Herní scéna hry Tennis for Two
Tenisové herní hřiště bylo ve hře Tennis for Two dosti podstatným způsobem zjednodušeno na zobrazení (vodorovné) podlahy a svislé čárky, která představovala síť. Jediným dalším prvkem zobrazovaným ve hře byl míček, protože pro zobrazení hráčů a tenisových raket by bylo zapotřebí navrhnout již dosti složité (analogové) obvody. Míček – jakožto jediný pohyblivý objekt ve hře – se poměrně realisticky odrážel od země a po nárazu na síť ztratil část své rychlosti.
Obrázek 10: U příležitosti padesátého výročí vzniku hry Tennis for Two vznikla rekonstrukce původního analogového počítače, obou ovladačů i zobrazovací jednotky.
Oba protihráči (implementace počítačem řízeného protihráče samozřejmě byla mimo možnosti jednoduchého analogového počítače) mohli jakýmsi předchůdcem ovladače paddle měnit úhel rakety (ten však nebyl nikde zobrazen) a pomocí tlačítka volili, ve kterém okamžiku se míček má od rakety odrazit: v případě, že se míček nacházel kdekoli na vlastní polovině hřiště a tlačítko bylo stlačeno, změnilo se jednoduše znaménko horizontální rychlosti míčku. Navíc se v tomto okamžiku vygeneroval zvuk, takže se s velkou pravděpodobností jednalo o první ozvučenou hru na světě. I přes toto velmi zjednodušené ovládání, spartánské zobrazení herního pole a malou plochu displeje použitého pro zobrazení herní scény však tato hra sklidila velký úspěch (byla totiž předváděna na dnu otevřených dveří laboratoří Brookhaven Lab, kde Higinbotham pracoval).
Obrázek 11: Další pohled na osciloskop se hrou Tennis for Two.
5. Technologie použitá při implementaci hry Tennis for Two
William Higinbotham použil při návrhu obvodů analogového počítače určeného pro hru Tennis for Two prakticky všechny v té době dostupné technologie (kromě elektronek, které již byly díky tranzistorům na ústupu). Jednalo se o běžné pasivní elektronické součástky, tranzistory, ale kupodivu i relé. Zobrazení statické podlahy bylo relativně jednoduché, protože na obrazovce osciloskopu postačilo pro její vyobrazení pouze ve správný časový okamžik vygenerovat vodorovnou úsečku s využitím jednoduchého integračního článku. To stejné platilo i pro generování obrazu sítě, ovšem s tou výjimkou, že výška sítě byla volitelná.
Obrázek 12: Další pohled na osciloskop se hrou Tennis for Two (zde se jedná o zrekonstruovanou verzi).
Nejsložitější byl návrh obvodů, které měly generovat souřadnice používané při animaci pohybu míčku. K tomuto účelu se používala sada obvodů s tranzistory (jednalo se většinou o integrační články se zesilovačem), které generovaly trajektorii. Nejednalo se sice o ideální trajektorii, ovšem při velikosti použitého displeje a poměrně rychlém pohybu míčku to ani nevadilo. Při odrazu míčku, tj. při jeho nárazu do podlahy, popř. odrazu od rakety, došlo k přepnutí relé, které volilo jeden z těchto obvodů, takže se například namísto přičítání kladné hodnoty k horizontální složce rychlosti začala hodnota odčítat. Výsledný analogový „počítač“ tak byl po obvodové stránce poměrně jednoduchý, nikoli však levný, protože tranzistorová technika byla v roce 1958 poměrně velkou novinkou a kvůli špatné technologii výroby a velké zmetkovitosti byly tranzistory drahé a měly velký rozptyl pracovních hodnot – o tom jsme si ostatně v tomto seriálu již vyprávěli.
Obrázek 13: Část zapojení analogového počítače s implementací hry Tennis for Two.
Schémata zapojení hry Tennis for Two lze získat na těchto adresách:
- První část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic1.jpg - Druhá část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic2.jpg
6. Milník třetí: hra Spacewar!
Další hrou, o které se dnes zmíníme, je hra Spacewar! z roku 1962. S touto hrou jsme se již seznámili hned v první části tohoto seriálu. Připomeňme si tedy, že tuto hru vytvořil Stephen „Slug“ Russell z MIT pro minipočítač PDP-1.
Obrázek 14: Detail řídicího panelu počítače PDP-1.
Kromě S. Russella se na vývoji této hry podíleli i další autoři z tehdejších laboratoří umělé inteligence: Peter Samson (vytvořil pozadí hry složené ze skutečných souhvězdí, přesněji z hvězd viděných ze Země, jejichž relativní velikost přesahuje hodnotu 5,5), Martin Graetz (autor programové rutiny, která dovolovala raketám provádět hyperprostorové skoky), Wayne Witanen, Dan Edwards (autor rutiny pro výpočet gravitačních sil) či Alan Kotok. Hra Spacewar! byla naprogramována v assembleru počítače PDP-1 a pro grafický výstup byl použit – jak pravděpodobně sami uhodnete – vektorový displej konstrukčně odvozený od obrazovky osciloskopu.
Obrázek 15: Displej se hrou Spacewar!
Zatímco se v případě hry OXO jednalo o přímou a v rámci možností věrohodnou implementaci známé stolní hry a u Tennis for Two šlo o (značně zjednodušenou) simulaci reálného sportu, byla hra Spacewar! na svou dobu revoluční v tom ohledu, že alter ego lidského hráče umisťovala do herního světa, který neměl s jeho zkušeností z reálného světa téměř žádnou souvislost. Dnes nám to samozřejmě připadá normální, protože téměř každá moderní hra si vytváří svůj vlastní více či méně originální svět, ovšem v roce 1962 se jednalo o velkou novinku. Herní svět hry Spacewar! navíc byl oproti oběma předchůdcům poměrně komplikovaný. Na kruhovém displeji byla zobrazena část kosmického prostoru se sluncem umístěným uprostřed plochy. V tomto prostoru se pohybovala dvojice raket ovládaných hráči a taktéž se na displeji mohla zobrazovat torpéda, které po sobě rakety vystřelovaly. Skutečně se na dobu vzniku jednalo o složitou scénu, takže výpočty trajektorie raket i torpéd musely být zjednodušeny (na torpéda například nepůsobila gravitace, torpéda vybuchovala v blízkosti jiného objektu a nikoli až při přesné kolizi atd.).
Obrázek 16: Obrazovka originální hry Spacewar.
7. Další vývoj her odvozených od Spacewar!
Zajímavý byl i další osud hry Spacewar!, protože po přechodu některých pracovníků laboratoře umělé inteligence z MIT na Stanfordovu universitu byla hra Spacewar! přepsána pro počítač PDP-10 a v roce 1970 taktéž na mnohem slavnější počítač PDP-11. Všechny zmíněné varianty hry by se dnes mohly řadit do kategorie open source, neboť jejich zdrojový kód (resp. děrná páska s kódem) byl volně dostupný. V roce 1972 byla upravená verze této hry vydána i komerčně pod názvem Computer Space. Jednalo se o hrací automat vybavený černobílým rastrovým monitorem, což byl z technologického i vizuálního hlediska velký rozdíl oproti původnímu vektorovému displeji.
Obrázek 17: Hra Spacewar (resp. její úprava pro IBM PC) běžící v grafickém režimu 640×200 pixelů karty CGA.
Jedním ze společníků firmy, která tento herní automat vytvořila, nebyl nikdo jiný než Nolan Bushnell, který v témže roce založil známou firmu Atari (první herní automat vytvořený touto firmou, byl mnohem jednodušší – jednalo se totiž o implementaci hry PONG, tedy ideového nástupce hry Tennis for Two). Později se však firma Atari k původnímu tématu hry Spacewar! vrátila titulem Asteroids!, kterou si možná někteří ze čtenářů pamatují, ať už v automatové verzi využívající opět vektorový displej, nebo ve verzi určené pro osmibitové domácí počítače. Skutečný návrat k vektorové variantě hry nastal až s její předělávkou pro herní konzoli Vectrex (vektorová varianta) a dále předělávkou pro PC (rastrová varianta).
Obrázek 18: Zatímco originální hra Spacewar! vykreslovala všechny objekty jako sadu vektorů, ve hře Spacewar pro PC se používaly programově ovládané (rastrové) sprity.
8. Obsah následující části seriálu
V následujících částech tohoto seriálu si popíšeme některé další hry, které byly naprogramovány ještě před vznikem první generace herních konzolí a domácích počítačů. Jedná se například o velmi jednoduchou simulaci ekonomiky starověkého státu jménem Hamurabi (1968), známou textovku nazvanou Colossal Cave Adventure (1975), další textovku se jménem Zork (1977, po ní následovala celá série her), první MUD – Multi User Dungeon (1978) atd. Posléze se již zaměříme na herní konzole první generace a dále na hry určené pro domácí a osobní počítače.
Obrázek 19: Hra Adventure určená pro herní konzoli Atari 2600. Jedná se o jednu z prvních „bludišťovek“. Na screenshotu je hráč pro jednoduchost představován žlutým čtverečkem zobrazeným v levém dolním rohu (zelená příšerka představuje draka). Tato hra mj. obsahovala i jeden z prvních „eastern eggs“ – na jedné z místností vertikálně skroluje jméno autora této hry.
Obrázek 20: Herní scéna ze hry Golden Axe zobrazená kartou VGA (256 barev).
Obrázek 21: Hra Moon Patrol ve verzi pro herní konzoli Atari 2600.
9. Odkazy na Internetu
- Dennis M. Ritchie – home page
http://cm.bell-labs.com/who/dmr/index.html - Space Travel: Exploring the solar system and the PDP-7
http://cm.bell-labs.com/who/dmr/spacetravel.html - Yes, A video game contributed to Unix Development
http://people.fas.harvard.edu/~lib215/reference/history/spacetravel.html - Space Travel (video game)
http://en.wikipedia.org/wiki/Space_Travel_(video_game) - Computer and Video Game History
http://inventors.about.com/library/inventors/blcomputer_videogames.htm - OXO (Wikipedia)
http://en.wikipedia.org/wiki/OXO - Tennis for Two (Wikipedia)
http://en.wikipedia.org/wiki/Tennis_for_Two - Who really invented the video game?
http://www.atarimagazines.com/cva/v1n1/inventedgames.php - The Video Game Revolution
http://www.pbs.org/kcts/videogamerevolution/history/timeline.html - PDP-1 Web Pages
http://www.pdp-1.org/ - PDP-1 Restoration Process
http://pdp-1.computerhistory.org/pdp-1/ - Programmed Data Processor
http://en.wikipedia.org/wiki/Programmed_Data_Processor - Digital Equipment Corporation
http://en.wikipedia.org/wiki/Digital_Equipment_Corporation - PDP-1
http://en.wikipedia.org/wiki/PDP-1 - Ancient Computing Machinery
http://www.ee.ryerson.ca/~elf/ancient-comp/index.html - Spacewar – The first computer video game. Really!
http://www3.sympatico.ca/maury/games/space/spacewar.html - Programmed Data Processor-1 Handbook
http://www.dbit.com/~greeng3/pdp1/pdp1.html - The First Video Game?
http://www.bnl.gov/bnlweb/history/higinbotham.asp - První část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic1.jpg - Druhá část schématu analogového „počítače“ se hrou Tennis for Two:
http://www.bnl.gov/bnlweb/history/images/VideogameSchematic2.jpg