játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5485
FZoli:    4893
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2526

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2196
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Játékok és játékkészítés Commodore64-en! 2005.09.28 17:28


Mostani cikkem - és ezzel szerintem mindenki egyetért - rendhagyó lesz, ugyanakkor hasznossága megkérdőjelezhető, igaz nem is ez a célom vele. Szeretném felidézni azt a kort, amikor még PEEK-ek és POKE-ok alkották a programozás kulcsát, amikor a programozót furcsán, kockánként besatírozott, összevisszán, fura számokkal ellátott négyzetrácsos papírok vették barátian körbe és amikor kikapcsolódásként jót nevettünk a Mission Impossible digitalizált szövegelésein... vagy éppen tuning Corvettünkkel gyorsultunk picit illegálisan a haverokkal, ámuldozva a látványon, a csodaszép grafikán és szidva a Kinget ha kiszorított minket....


Fenti bevezetőm lehet nem ragadja meg azokat, akik még képről sem láttak C64-et - ellenben nagyon remélem hogy kedves emlékeket keltett mindazokban akik ismerték és szerették - , kedves új generáció, remélem fenti soraimmal nem sikerült elrettentenem titeket és továbbra is töretlen érdeklődéssel olvassátok cikkemet!

Mi is az a C64? Nos eme masina, a Commodore cég 1982-ben megjelent igazi sikergépe - 17 millió példány kelt el belőle világszerte, ami több mint minden más eddig eladott hasonló generációs számítógép.

A gépet a drága tervezők 1 Mhz-es, 8bites mikroprocesszorral, 64 Kilobájt címezhető RAM-mal, korszerű videochippel és korát megelőző hangchippel láttak el.

Lássuk mire képes a Commodore 64 a grafika terén! Az 1Mhz-es processzor alapesetben nem valami sok (ma már jó néhány telefon is jóval ez fölött ketyeg, de kortársai között sem volt ritka a 3-4Mhz-es processzor), ugyanakkor a gép fejlett videochipje rengeteg munkát átvállal: amellett hogy a szöveges képernyő mellett kétféle grafikus üzemmódot biztosít, képes legfeljebb 8 darab 24x21 képpontból álló sprite megjelenítésére (akár a szöveges, akár a grafikus képernyőn), továbbá ő figyel a joystickokra is. A Commodore 64 azonban színkezelése terén is kiemelkedő: nem sok kortársa volt amely 16 színből álló palettával rendelkezett.

A megjelenő képernyő alapesetben 40 oszlopból és 25 sorból áll. Ez jelenti számunkra a szöveges képernyőt, ilyenkor a gép oszloponként és soronként rajzol, még pedig ASCII kódok alapján mindenféle karaktert, kezdve az angol ábécé kis és nagybetűitől a számokon, speciális jeleken át a különféle vonalakig, grafikus szimbólumokig (összesen 256 félét). Ráadásul, mivel indításonként a ROM-ból minden a RAM-ba töltődik, lehetőségünk van (igaz, komoly küzdelmek árán) átszerkeszteni ezeket a karaktereket. A csoda azonban akkor következik be, ha levetkőzzük a szöveges képernyőt!

Akkor tehát lássuk közelebbről a grafikus üzemmódokat! Az egyik az akkoriban HI-RES-nek (High Resolution – nagy felbontás) becézett üzemmódban 320x200 képpont részletességű a képernyőnk, viszont színezési lehetőségeink korlátoltak: egy 8x8 képpontból álló mezőben a háttérszínen kívül egyetlen színt használhatunk fel. Sok esetben ez a jó választás, részletesebb képek, színes hátterek esetén azonban ez édes kevés. Ilyen esetekre érdemesebb a kicsit sutább felbontású (160x200 képpont) üzemmód mellett dönteni, ilyenkor mezőnként (ami ekkor 4x8 képpont) a háttérszínt is beleszámítva már akár 4 különböző színnel is festegethetünk, ami ügyes kezekben igazán szép képeket eredményez.

Ezenfelül pedig a már szintén emlegetett sprite-ok is igazi újdonságnak számítanak, főleg hogy a Commodore64 „szellemkéi”, amellett hogy tetszőlegesen mozgathatók a képernyőn, hardveres ütközésfigyeléssel vannak ellátva, egymást alárendeltség alapján kitakarhtatják, illetve lehetőségünk van x és y tengelyen való kétszeres nagyításukra is. Minden egyes sprite 24x21 képpontból épül fel, ha egy színt használunk fel, illetve 12x21 képpont ha hasonlóan a képernyő grafikus üzemmódjához több színnel szeretnénk dolgozni.

Azonban, sajnos a gép fent leírt képességei, bár papíron teljesülnek, a valóságban ezek nehezen varázsolhatók elő. Például a memóriakiosztásnak köszönhetően alapesetben nincs is hely mind a 8 sprite használatához, ezért előtte pár funkciót kénytelenek leszünk átcímezni, továbbá a gép Operációs rendszeréből igen nehézkes a grafikát programozni, főként azért, mert erre nincs parancs. Az alapvető BASIC parancsokon (print, input, data, for-next, if-then, gosub, goto stb.) kívül a grafika, hang illetve tulajdonképpen majdnem minden programozásához egyetlen egy parancs áll a rendelkezésünkre, ez pedig a POKE. Segítségével a memória egy bájtját írhatjuk át. Mivel RAM-ról van szó, a bájtok átírásával azonnal eredményre jutunk. A sprite-os példából kiindulva, a spriteok megjelenítésére vonatkozó bájtot a 53269. címen érhetjük el. Egy bájt ugye 8 bitből épül fel, minden egyes bit pedig egy egy sprite létrejöttét határozza meg. Tehát ha a bit 0, akkor nem létezik, ha 1 akkor létezik a sprite. Ha mind a 8 spriteot be akarnánk kapcsolni, akkor csupán a POKE 53269,255 parancsra lenne szükségünk. Persze a spriteokat nem elég bekapcsolni, meg is kell rajzolni. Egy sprite alakjához 63 bájt áll rendelkezésünkre. Ez ugye a sprite felbontásából adódik: a sprite minden képpontjáért, hogy az előtér vagy a háttérszínnel rajzolódik ki, egy bit felel, ami soronként (24 képpont) 3 bájtot jelent. Mivel 21 sorunk van, így 21x3 bájtra van szükségünk egy darab sprite megrajzolásához. A spriteok színét egy másik címen tudjuk megváltoztatni, valamennyi tulajdonságukkal egyetemben.

Hamar kiderülhet, hogy komoly számolások kellenek egyetlen egyszínű sprite megalkotásához, gondoljunk csak bele mekkora munka lehet teljes képernyőket, pályákat megrajzolni, és ezt a sok adatot bájtokra lebontva egyesével bevinni. Márpedig az alapértelmezett V2 BASIC-et (a Commodore 64 operációs rendszere) használva ez az egy megoldás van. Persze programozhatunk gépi kódban, használhatunk Assemblereket, vagy akár kibővíthetjük a BASIC-et is. Az általam személyesen ismert és kedvelt ilyen bővítmény a Simon's Basic, mely 100-nál is több paranccsal bővítette ki alapértelmezett társát. A parancsok között olyanok is szerepeltek mint a dot, line, circle, ráadásul a POKE-kat teljes egészében mellőzhettük, a beállításokra, grafikus mód váltásra is volt egy egy parancs, sőt, a memóriát is átcímezte (többek között elegendő helyet teremtve ezzel valamennyi sprite-nak), így nekünk már csak tényleg programoznunk kellett. Nagy hátránya volt, hogy nem fordította le a programot az eredeti V2 BASIC számára, tehát amit Simon's BASIC-ben alkottunk, azt csak is általa tudtuk futtatni.

A fentiek ellenére játékok szinte tucatjával jöttek ki hetente, persze voltak igen silány, házi készítésű próbálkozások, viszont születtek igaz gyöngyszemek is! Lássuk csak mi jut eszembe hirtelen:

Defender of the Crown:
Robin Hood korában játszódó körökre osztott stratégia, célunk a korona megvédése... A játékmenet frankó minigémekkel van kikövezve (éjszakai rajtaütés(oldalnézetben mászkálás, kardozás) Várostrom(Katapulttal való célzópróba) Lovagi Torna). A végén persze leléptünk a hercegnővel..

Laser Squad:
Haveri körökben nagy tiszteletnek örvendő játék, évekkel ezelőtt a hétvégi program szerves részét képezte... ez egy hangulatos körökre osztott taktikai gém, néhány fős csapatunkat kommandírozva kell a gonosz droidokat és alieneket eltenni láb alól. 2 játékos mód is van benne, ezért is vált olyan nagy kedvenccé..

Maniac Mansion:
Lucasarts-ék nagyszerű kalandjátéka, a point & click műfaj egyik ősapája, mellesleg remek grafikával és animációkkal, eszement poénokkal megáldott játék. Érdekesség, hogy egyszerre 3 karakter irányítunk (ami itt elsősorban inkább a játék könnyítését szolgálja, fejtöröknél nincs jelentősége)..

Creatures II: Torture Trouble:
Kedvenc játékom! Az első rész nem fogott meg igazán, ez a második viszont kellően morbid, poénos átvezetőivel, fejtörőkkel teletűzdelt pályáival és nagyszerű grafikájával magával ragadott. A feladatunk egy szörös kis izével pályáról pályára kiszabadítani testvéreinket, a pályán lévő tereptárgyak felhasználásával..

Newcomer:
Magyar fejlesztésű, a Valhalla Páholy gondozásában 1994-ben kiadott kalandjáték, mely talán mindenidők legjobb C64-es kalandjává nőtte ki magát... remek játékmenet és elképesztő grafika jellemzi, már már szétfeszíti a C64 korlátait...(nézd a képet és hasonlítsd össze a többivel...).

Street Rod:
Azok a jó kis tuning fordok és Corvettek! Versenyek a kanyargós utakon, butykölés a garázsban, csavarozás, festés, miegymás... Az egyetlen autós játék C64-re mely le tudott kötni, sok sok autó, rengeteg alaktrész, különféle ellenfelek, illegális gyorsulás. Tök jó..

Zak McKraken and the Alien Mindblenders
A Maniac Mansion hagyományait követő kalandjáték, töménytelen mennyiségű helyszínnel, talán még szebb grafikával és még csavarosabb fejtörőkkel..

Pirates!:
Van egy olyan érzésem, hogy Sid Meyer úr mostanában elkövetett PC-s jákéka folytán a Pirates! név olyanoknak is sokat mond, akik életükben nem ültek le C64 elé. Nos, íme az előd, tengeri csaták, párbajok, kereskedés minden mennyiségben! Örök kedvenc!.


Nagyon tudom ajánlani ezeket a játékokat, ha van kedvetek kipróbálni őket, ezt PC-n emulátorral is megtehetitek.

emulátor: http://www.cafebaron.com/emulators/WinVICE-1.16.zip
játékok: http://web.externet.hu/sk/c64
további linkek itt: http://c64.lap.hu

Mivel a Commodore 64-el igazán fellendült a játékipar, hamarosan megjelentek az első játékkészítő programok is! Ilyen programok szinte minden játékkategóriához készültek idővel. Találkozhattunk például Shoot Em Up Construction Set, Pinball Construction Set, Adventure Construction Set, The Games Creator, Gary Kitchen's Game Maker és 3-d Construction Kit nevezetű csodákkal, bár ezek többsége valóban csak 3 napig tartott. Jómagam a Shoot Em Up CS-el és a GK's Game Makerrel foglalkoztam többet, ezekkel többnyire elfogadható játékokat lehetett kreálni, ráadásul ezek önállóan is futottak, sem a játékkészítő program sem más segédprogramra nem volt szükség.

Shoot Em Up Construction Kit:
Oldalnézetes, scrollozódó pályaszerkezetű lövöldözős mókák készítésére találták ki, és mint olyan, remekül működött. Emlékszem I. Világháborús repülős játékomat kb. 1 óra alatt sikerült összedobnom benne. Beépített sprite szerkesztő, szintén grafikus alapú pályaszerkesztő, event-ek alapján való programozás. Ha jól emlékszem még hanggenerátor is volt benne..

Garry Kitchen's Game Maker:
Ez már igen! Tulajdonképpen kellő kitartással bármilyen játék készítésére alkalmas program, beépített, könnyen érthető és egyszerű strukturált programnyelvvel, sprite és pályaszerkesztővel, rengeteg beálíltási lehetőséggel, valamint beépített zene és hangszerkesztőjének köszönhetően teljes mértékben kihasználhatju C64-ünk zenei képességeit. Sajnos azonban ennek is az a baja mint a mai játékkészítő szoftvereknek: Mivel próbálnak rugalmas szerkseztőt, korlátlan lehetőségekkel létrehozni, így bár a használata nem feltétlenül bonyolult, mégis idő és munkaigényes. Azért a demó játék jól néz ki.


Ennyit szerettem volna, remélem sikerült valamiféle nosztalgikus, retro érzést kelteni az olvasóban. Volt nekem egy kósza ötletem, hogy elkezdek itt C64-es programozási leckéket adni, de ebbéli ötletemet hamar elhesegettem, talán – ha lesz rá érdeklődés – majd máskor.

FZoli.

Értékelés: 9.75

Új hozzászólás
Oli76          2007.10.20 11:33
Általános iskolában Videoton számitógéppel játszogattunk, meg koliban is az volt még az én időmben. Aztán középiskolában számtech fakultáción lehetett C64-et használni és teljesen lenyűgözött hogy milyen jó a grafikája, hangja stb.
Kis szünet után sikerült vennem egy saját gépet és egy csodálatos évet töltöttem el vele. Néha összegyültünk a haverokkal és játszogattunk. Programozni is ezen a gépen tanultam meg, bár csak magnóm volt hozzá úgyhogy elég idegölő dolog volt. Assembly fordítóm nemvolt így csak úgy tudtam gépi kódú utasításokat alkalmazni, hogy lefordítottam "fejben" az utasítást majd DATA sorokba sorba beírogattam majd egy BASIC betöltő betöltötte a megfelelő helyre. Azért nagyon hosszú rutinokat nem mertem írni.

Most így utólag sok év után demo programokat nézegetek és sokszor most is ámulatba ejt, hogy egyesek mit ki nem hoznak a kis gépből. A játékok nagyrésze már nemhoz lázba, de van olyan amivel akármikor még most is szívesen játszom (pl GIANA SYSTERS).
Dookle          2007.09.02 09:51
Senki nem írt ide ?

Pedig ez a cikk szerintem nagyon kellett.Nekem személyszerint nagyon tetszik,bár lehet hogy csak azért mert annó rengeteget nyomattam a c64-et.Végül már csak gépi kódban írtam intrókat,és persze játékokat amelyeket sosem fejeztem be...

Nagyon tetszik a cikk grat