Realizace

Týmový duch let devadesátých

Na hře Hlava Kasandry jsme pracovali v nejmenším možném týmu ve volném čase, tzn. po večerech a víkendech. Když ve škole „nedávali“ nic zajímavého, tak jsme si mohli dovolit fulltime. Část vývoje jsme museli obětovat výzkumu, protože jsme 90 % problémů řešili poprvé v životě. Dnes si v takovém případě vývojář většinou najde množství internetových diskuzí, koupí literaturu, stáhne hotová řešení. To jsme bohužel nemohli a tak jsme se neskutečně mořili se spoustou věcí.

Master hry.
Jediný master hry, ze kterého byly pořízeny všechny oficiální kopie. Chvíli to trvá, než se vývojář k této metě propracuje.

Radost z výsledku byla o to větší, ale zároveň to vedlo k nekritickému pohledu na produkty našeho snažení. Když už se na něco přišlo, muselo se to ve hře stůj co stůj použít. Byli jsme přesvědčení, že když nám to dalo tolik práce, tak jsme asi jediní na světě, kdo to ve hře má.

Chyba! Ještě se k tomu určitě vrátím podrobněji, ale je jisté, že 90. léta přinesla kult technických featur, se kterým se doteď spousta vývojářů nedokázala rozloučit. My jsme svou nezkušeností vnesli do hry bohužel i jisté množství prvků, které značně komplikují její ovládání.

I když se můžeme chlácholit tím, že klacky se hráčům pod nohy v dané době házely zcela záměrně jako součást game playe, tak, viděno dnešní optikou, se jedná o chyby neomluvitelné. Řadou nesmyslných vychytávek, jako je povinné ovládání myší a joystickem (nikoli myší NEBO joystickem), jsme nastoupili do vlaku vývojářů, kteří považovali komplikovanost ovládání za herní prvek. Slepá kolej vedoucí v prastarém filmu k propasti jménem Cassandra. Jak příznačné, že jsme si vše uměli snadno odůvodnit. Pořád tu přece byl tištěný manuál a v něm téměř vše perfektně vysvětleno, takže remcat může jen ten, kdo hru ukradne… Čistý alibismus.

The Cassandra Crossing
Jako ve vlaku, co se řítí do propasti, se mohou cítit všichni vývojáři, kteří zapomenou na hratelnost a ženou se za kultem technických featur. The Cassandra Crossing (20th Century Fox, 1977)

Testování

Stejně, jak to dnes malé týmy dělají, jsme hru testovali tisíckrát během vývoje – vcelku i po částech, až jsme v ní dosáhli úplného mistrovství a mohla se nám zdát i snadná. Až finální hru jsme dali zahrát několika kamarádům, a to je opět nesmrtelná chyba. Nikdo si na nic nestěžoval, nikdo nic nehlásil… Buď nás na konci vývoje nechtěli ranit, nebo už za ty dva roky o hře slyšeli tolik, že jim nedělalo problém všechny nastražené špeky překousnout. Možná hru testovali velmi pokročilí hráči, navíc hráčský průměr byl tenkrát úplně někde jinde než dnes. Každopádně, dáte-li hru testovat hernímu vývojáři, bude mít z jakési profesní solidarity tendenci tolerovat a bagatelizovat některé nedostatky (i proto, že ani on neprodukuje dokonalá řešení).

S odstupem 20 let si uvědomuji, že jsme za prvořadou považovali funkčnost na pokud možno celé řadě Atari ST. Ta ostuda, kdyby to někomu nešlo spustit! Hratelnost jako taková se příliš netestovala. Bylo to dáno dobou, člověk si ani neuměl představit, jak by distribuoval případnou opravu. V tomto bodě se dnešní vývojáři mohou chovat úplně obráceně. Pro hry je to určitě dobře.

Atari Falcon 030
Když už jsme mysleli, že je hra hotová, dostal se nám na stůl Falcon030 – nejnovější člen rodiny TOS počítačů Atari. A vydání se odložilo na rok 1994…

Data

Málokdo z mladších vývojářů si umí představit týmový vývoj bez sítě, internetu, mailu, cloudu a dalších nezbytností. Na začátku jsme neměli ani harddisk… A nestěžovali jsme si, protože práce s 3,5″ DD disketou (720 kB) byla poměrně komfortní ve srovnání s magnetofonovou kazetou, se kterou jsem válčil ještě pár let před tím. Co jsme každý na svém počítači do hry přidali, to jsme si 1–2× týdně museli fyzicky předat.

V té době se žertem říkalo „kabelový přenos“, ale znamenalo to „dát disketu do kabely a přenést ji na místo určení“.

Následovala řehole zahrnující sjednocení kódu a testování, zda to vše dohromady funguje. Dokud jsme každý důsledně pracovali na jiné části hry, dalo se to zvládnout. Nastaly ale okamžiky, kdy jsme museli „hrábnout“ jinam, zavést nové proměnné nebo nadefinovat proceduru. To pak znamenalo zdlouhavou editaci na mnoha místech programu. Mladší ročníky si navíc musí zkusit představit systém bez multitaskingu, tedy třeba bez možnosti vyskočit z editoru do desktopu, nakopírovat soubory, přejmenovat, vrátit se do editoru… To vše v rozlišení 320×200 pixelů (OK, na monochromatickém monitoru 640×400). Jestli není představa úplná, doplňte si, že naše hra měla data roztahaná na 3 disketách. Já měl naštěstí harddisk, ale kolega s jednou FDD mechanikou byl doma, víte kde… Z dnešního pohledu to je jako zavázat si tkaničku na botě s rukama v kapsách (nejsnáze tedy zuby). A to pořád dokola, každý týden, než vás to přestane bavit a hru v zoufalství prohlásíte za hotovou. Abychom to zvládli, museli jsme jednotlivé kroky maximálně vyladit a vytvořit systém práce, který eliminoval chaos.

Omikron BASIC

Tady možná kroutíte hlavou. Nedivte se, byla to doba „chvíli po osmibitech“ a slovo Basic ještě nemělo pejorativní význam. Vše má své důvody a my jsme zvolili po docela zralé úvaze. Pro systém TOS byl výběr programovacích jazyků velmi slušný. Mohli jsme vybírat mezi interprety Pascalu, C, Basicu a dalšími včetně na hry specializovaného STOSu (na Amize velmi populární jako AmOS). Nakonec jsme z určité pohodlnosti zvolili Basic. Platforma jich nabízela několik, z toho jeden solidní (HiSoft) a dva excelentní velmi moderní, vyspělé a rychlé (GFAOmikron). Testovali jsme rychlosti, zkoušeli grafické možnosti.

Omikron BASIC nás šokoval rychlostí finálních programů i tím, jak snadno spouštěl kód přímo z editoru, což se nám v úvodní fázi prozkoumávání a pokusů zdálo jako skvělá vlastnost.

Významně to řešilo již zmíněný problém s neexistujícím multitaskingem. To jsme ještě netušili, že náš program naroste do obludných rozměrů a že později při jeho testování a ladění budeme stejně muset pokaždé kompilovat. Přesto se pro programování a optimalizaci jevil Omikron BASIC jako neskutečně pružný nástroj (zjednodušený přehled příkazů a syntaxe zde).

Compiler 3.5 pro Omikron BASIC.
Compiler 3.5 pro Omikron BASIC. Bez něj bychom nemohli vytvářet funkční aplikace pro Falcon 030.

Zajímavou historii má naše komunikace s vydavatelem Omikron BASICu. Vzhledem k tomu, že editor jazyka byl k dispozici zdarma a nějaká verze kompilátoru se také dala pořídit (v našem případě konkrétně za pár korun od pražského Atari klubu při 487. ZO Svazarmu), měli jsme od začátku potřebné nástroje. Nakonec jsme ale zapochybovali, jestli nám opravdová licence nebude chybět. Přece jen jsme hru chtěli nabídnout německému ST Computeru, případně dalším zahraničním vydavatelům. Úkol zněl, požádat Omikron GmbH o slevu na aktuální kompilátor.

Napsal jsem dopis brutální školní němčinou, požádal o slevu pro studenty a nestačil se divit. Dopis jsem poslal v pondělí a už v pátek ráno ležela na zahradě za plotem tlustá obálka s Helmutem Kohlem Konradem Adenauerem na známkách.

Na rok 1993 nepochopitelná rychlost pošty je jedna věc, šokující byl ale vnitřek obálky – nejnovější Omikron Compiler optimalizovaný pro procesory 68030 a účtenka se 100% slevou. K úhradě DM 0,–. Vielen Dank!

Grafika

Základ grafiky je ve hře kreslený v editoru Degas Elite, v té době asi nejpoužívanějším. Když jsem ale poprvé vyzkoušel nástroje z balíku CyberStudio, doslova mi spadla brada. Najednou bylo možné v CyberPaintu obrázky přefiltrovat – zejména doplnit antialiasing. Úžasný pokrok. Statická 3D grafika je modelovaná v CyberSculptu, přičemž to bylo asi poprvé, kdy jsem si zkusil 3D modelování. Animovaná 3D grafika běží v mikroenginu, který jsem si napsal v Basicu. Modely jsou definované ručně, zapisoval jsem souřadnice vrcholů přímo do dat. To se bezva ladí, zkuste si to někdy 🙂

Populární grafické nástroje: CyberSculpt pro 3D modelování, CyberPaint a Degas Elite pro 2D grafiku.
Populární grafické nástroje: CyberSculpt pro 3D modelování, CyberPaint a Degas Elite pro 2D grafiku.

Zvuky a hudba

Zvukové efekty jsem samploval s využitím sampleru pro Atari ST. Kdybych chvíli počkal, mohl jsem zvuky vytvářet na Falconu. Nicméně zvolený postup stačil. Ovšem cesta zvuku do počítače byla zdlouhavá. Ne vždy jsem mohl zdroj zvuku donést až k počítači a tak jsem musel použít diktafon a následně samplovat z kazety. Zvuk motoru pro Theodorův transportér jsem nahrával v garáži. Stačilo zavřít diktafon pod kapotu a nastartovat rodičovic Favorit 136L. Famózní zvuk, surově kovový. Dnes bych podobný dlouhé minuty vybíral na internetu 😉 Úvodní skladbu nám zahrál a nahrál spolužák Richard Markuzy. Takže díky němu tam máme něco jako živou elektrickou kytaru.

Velmi užitečný doplněk k Atari STE – sampler Stereo Master.
Velmi užitečný doplněk k Atari STE – sampler Stereo Master.

Speciality

Pro hru jsme vymýšleli nesmyslné množství vychytávek. Vytvořili jsme vlastní okenní grafické rozhraní, protože GEM se nám pro hru nelíbil. Chtěli jsme mít ve hře české fonty, tak jsme psali podporu pro výpis nesystémových znaků. Chtěli jsme mít na některé texty segmentový display, tak jsme ho napsali (bez češtiny). Snažili jsme se využít možností STE, proto se například zvuky od STE výše přehrávají čistěji s využitím DMA. Vrcholem byl simulátor příkazového síťového systému, kde hráč měl hackovat zbytky internetu a získávat data důležitá pro hru. Kapitola sama pro sebe – to je paranoidní ochrana proti kopírování, o ní více jinde. Zaslouží si to, hydra jedna!

Dále doporučuji k přečtení články o záchraně projektu po 20 letech a důmyslné ochraně proti kopírování.

kasandra-lcd kasandra-centrala kasandra-network1 kasandra-network2 kasandra-czintro

Reklamy

Zanechat odpověď

Vyplňte detaily níže nebo klikněte na ikonu pro přihlášení:

Logo WordPress.com

Komentujete pomocí vašeho WordPress.com účtu. Odhlásit /  Změnit )

Google+ photo

Komentujete pomocí vašeho Google+ účtu. Odhlásit /  Změnit )

Twitter picture

Komentujete pomocí vašeho Twitter účtu. Odhlásit /  Změnit )

Facebook photo

Komentujete pomocí vašeho Facebook účtu. Odhlásit /  Změnit )

Připojování k %s