Grafika z cyfrowych prefabrykatów

Grafika z cyfrowych prefabrykatów

Semigrafika, cyfrowe prefabrykaty i elektryczna kredka

W jaki sposób zaprogramować „atrakcyjną” grę komputerową na system komputerowy o słabej wydajności, bez programowalnej grafiki (no programmable graphics) i bez tzw. duszków (no sprites)? Rozwiązanie pojawiło się już ponad 40 lat temu w postaci tzw. semigrafiki, zwanej też pseudografiką lub półgrafiką (semigraphics). Semigrafika przenosiła graczy w mało znany wtedy, przez co niezwykle pociągający, świat elektronicznych rozgrywek (zręcznościowych).

Semigrafika była właściwie jedynym sposobem zaprezentowania elementów graficznych (obrazowych) w trybie tekstowym. Jej główną zaletą była możliwość prezentacji obiektów o nieco bardziej zaawansowanych kształtach, np. obiektów abstrakcyjnych, postaci czy też odwzorowań statków kosmicznych. Odbywało się to przy pomocy odpowiednio dobranych znaków tekstowych, tzw. znaków specjalnych, znaków dodatkowych. Rozwiązanie to stosowano w latach 80. XX wieku, przeważnie w komputerach 8-bitowych (np. Mattel Aquarius). Nie wymagało ono użycia zaawansowanych układów graficznych i dużej ilości pamięci operacyjnej, które były wtedy relatywnie drogie.

Na semigrafikę składają się symbole w układzie bloków z adresowaniem wszystkich punktów, które łączono w celu symulacji wyświetlania graficznego (ryc. 1). Wiele systemów komputerowych wykorzystywało semigrafikę do obsługi tak zwanego „trybu graficznego” – małe bloki były „kreślone” na ekranach wyświetlaczy na podstawie współrzędnych lokalizacji [Ewell i in. 2019].

semigrafika Rycina 1. Adresowanie pół blokowych w semigrafice. Różne tryby półgraficzne (varius semigraphic modes) wykorzystują ten sam 96-pikselowy blok znaków co tryby alfanumeryczne, ale inaczej rozmieszczają piksele. Źródło: Margolis [1983].

Z semigrafiki korzystały m.in.: kasetowy system komputerowy z własnym wyświetlaczem Commodore PET (ryc. 2), który nie wyświetlał grafiki rastrowej tylko znaki graficzne zdefiniowane w pamięci ROM Read-Only Memory (ponadto znaki nie mogły być modyfikowane), a także komputery Amstrad CPC, Sinclair ZX80 i ZX81 czy też TRS-80 Color Computer [Ewell i in. 2019].

Commodore PET semigrafikaRycina 2. Commodore PET [Byte 1980]. Znaki alfabetu łacińskiego i rysunkowe (Latin and box-drawing characters) dla Commodore Pet Me, Pet Me 2X i Pet Me 2Y. Źródło: R.G. Bettencourt [2021].

Cyfrowe prefabrykaty

Semigrafika była generowana przy pomocy tzw. elementów blokowych lub pseudograficznych. W jedyny i drugim przypadku obiekty składane były ze swoistych, kanciastych prefabrykatów, które pozwalały generować mniej lub bardziej skomplikowane kształty. Elementy graficzne składane były z symboli i reprezentacji obrazkowych, natomiast tzw. semigrafika alfa (alpha semigraphics) stanowiła połączenie znaków alfanumerycznych (alfabet i cyfry) oraz symboli [Margolis 1983].

Wykorzystanie znaków semigraficznych dawało poczucie, że system komputerowy (ryc. 3) obsługiwał grafikę wysokiej rozdzielczości, podczas gdy w rzeczywistości działał w trybie tekstowym. Na wrażenie to składały się znaki przypominające pudełka, pojemniki, figury geometryczne, w tym trójkąty, okręgi, kropki i inne „graficzne bloki konstrukcyjne”. Ograniczenia wizualne i dźwiękowe, wynikające z możliwości technicznych ówczesnych systemów komputerowych sprawiały, że większość gier miała wtedy charakter zręcznościowy lub logiczny.

computer-system Rycina 3. Standardowy system komputerowy z lat 80. XX wieku – wizualizacja. Typowy komputer domowy miał wejścia klawiatury, joysticka i kasety oraz wyjście TV, drukarki liniowej i magnetofonu. Źródło: Margolis [1983].

Semigrafika składała się na oprawę graficzną gier komputerowych, np. Astrosmash, Mattel Electronics z 1982 roku (ryc. 4). Gra polegała na tym, aby trafić jak najwięcej meteorów, bomb, pocisków i latających statków UFO, nie dając się przy tym trafić. Innym przykładem jest gra Depthcharge z 1984 roku (wydawca: CCI). Rozgrywka polegała na zrzucaniu ładunków głębinowych ze statku celem zatopienia wrogich jednostek (ryc. 5). Były to gry zręcznościowe, których ogólnym celem było zgromadzenie jak największej liczby punktów.

aquarius Rycina 4. Astrosmash, Mattel Electronics (cartridge). Screendumps. Źródło: Steenoven [2012a].

aquarius Rycina 5. Depthcharge and Sheepdog (Games Pack 3), CCI (cassette). Screendumps. Źródło: Steenoven [2012b].

Elektryczna kredka

W latach 80. ubiegłego wieku uzyskanie kolorowej, „zaawansowanej” grafiki komputerowej nie było zatem łatwe. W wielu przypadkach było to osiągane poprzez zastosowanie dodatkowych komponentów, generatorów, kontrolerów. Za przykład posłużyć może komputer TRS-80 z podłączonym generatorem / kontrolerem kolorowej grafiki Percom Electric Crayon (ryc. 6), który pracował także w trybie semigraficznym [Kalinowski 1981].

Electric Crayon Rycina 6. Electric Crayon kosztowała 249,95$ (kwiecień 1980 rok). Urządzenie dostarczano z systemem EGOS, 1K-bajtową pamięcią wyświetlacza i obszerną instrukcją użytkownika. Źródło: 80 Microcomputing Magazine [1980].

„Elektryczna kredka” była w rzeczywistości niewielkim pudełkiem (12 cali szerokości i 9 cali głębokości), które wysyłało sygnał wideo sterujący monitorem lub telewizorem. Urządzenie było podłączane bezpośrednio do portu drukarki TRS-80 i nie obsługiwało tzw. sprite’ów [80 Microcomputing Magazine 1980, Kalinowski 1981].

Maria B. Garda [2014] słusznie zauważyła, że gry komputerowe są przedstawiane najczęściej jako „nowe media”, podczas gdy mają one już swoją ponad półwieczną historię. Ośmiobitowe, semigraficzne gry komputerowe, w które grano na całym świecie dają świadectwo postępu naukowego, technicznego i cywilizacyjno-kulturowego.

Źródła

Zastrzeżenie. Wszystkie wyżej wymienione znaki towarowe należą do swoich (odpowiednich) właścicieli. Nazwy firm i produktów użyte w tym opracowaniu służą wyłącznie do celów identyfikacyjnych.
Disclaimer. All trademarks and registered trademarks mentioned herein are the property of their respective owners. The company and product names used in this document are for identification purposes only.

Skip to content