DUUM

Jiří Svoboda

Možná si vzpomínáte, že v roce 1994 vycházel ve FLOPu seriál o programováni v jazyce C. Já sám jsem se programováním v jazyce C začal zabývat krátce předtím a tak mě napadlo, že bych do FLOPu mohl přispět nějakým malým demonstračním prográmkem. Napadla mě textová konverzační hra, lidově řečeno textovka.

Jednou z výhod jazyka C je, že pokud něco naprogramujete standardními prostředky tohoto jazyka, zkompilujete takovou aplikaci bez větších obtíží na téměř libovolné platformě. To byla i má tehdejší myšlenka. Hru, jež jsem pojmenoval DUUM, jsem psal a ladil na mém počítači Amiga ve "standardním Céčku". Cílovou platformou mělo být osmibitové Atari a tomu jsem také přizpůsobil rozsah hry. Paradoxně, ačkoliv se v následujících letech hra rozběhla na mnoha platformách, osmibitové Atari si muselo počkat celých sedm let.

Krátce po dokončení programu již hra běžela nejen na Amize, ale i na Atari ST a PC (MS-DOS, zkompilováno překladačem Borland C++ 3.1) a také v ní již bylo nalezeno pár chyb. Na malém Atari jsme se o překlad nejprve pokusili pomocí Deep Blue C. Neúspěšně. Jak jsme vzápětí zjistili, tento překladač nepodporuje struktury, těch ovšem program hojně využívá. Po nějaké době přišel na řadu překladač cc65. Pro něj již struktury nejsou problém, ovšem tentokrát překlad předčasně skončil z daleko prozaičtějšího důvodu. Nedostatek paměti. Tuším, že Zdeněk Burian ještě činil nějaké pokusy s dělením kódu na menší části a postupným překladem, každopádně však neúspěch uvrhl tento projekt téměř do zapomnění.

29.12.1997 jsem projekt opět vytáhnul na denní světlo, opravil pár starých chyb a úspěšně zkompiloval MS Visual C++ 5.0 jako Win32 konzolovou aplikaci. Po dalším roce a půl, 6.7.1999, jsem program zkompiloval pod Linuxem překladačem GCC a jako takový byl k dispozici prostřednictvím telnetu na Internetu.

Zatím poslední zmrtvýchvstání (a konečně za účelem původně stanoveného cíle) se odehrálo několik dnů poté, co mi byla oznámena existence cc65 crosscompileru (o němž jsem také napsal článek do tohoto čísla FLOPu). 8.1.2001, po téměř sedmi letech od svého vzniku, se DUUM konečně rozběhl i na malém Atari. 20.4.2001 jsem opravil drobnou chybku v logičnosti jedné místnosti, upravil funkci Situace() tak, aby nepoužívala "b", poopravil vzhled zdrojového kódu tak, aby více odpovídal dnešním zvyklostem a tím připravil program k...

Uplynulo sedm let a seriál o programování v jazyce C již dávno nevychází. To však neubírá tomuto programu na půvabu. Nabízím vám jej a s ním samozřejmě i jeho zdrojový kód. A pamatujte, oheň se dá přenášet...