64'ün Demoları

rüntüler yaratmak için bilgisayarı çeşitli şekillerde aldatmaya başladılar. Böylece ortaya çıkan yeni nesil programcılık başlı başına bir alan oluşturdu. Bu arada intro'lar da demo'larda kullanılan tekniklerden nasiplerini almışlardı. Dergimizin ilk sayısında verilen Hyperscreen adlı program ekran sinırlarının üst ve alt kısımlarını kaldırıyordu. Bunu başarmak için ROM'da, ekranı açıp kapatmakla görevli rutin şaşırtılıyordu. Rutinin tüm işlevi raster taraması belli bir satıra geldiğinde ekranı kapatmaktı. Programcılar ise, rutin belirlenen satıra iki üç raster satırı uzaklıktayken ekranı 24 satıra indirip, belirlenen satırı geçince tekrar 25 satıra çıkararak bu rutinin işlemesini engellemişlerdir. Böylece C-64'ün tasarımcılarının koyduğu ilik sınırla-

> m

Çe ma aşılmış oldu. Bu arada kırılmış olarak ülkemize gelen oyunlardan bir tanesinin başındaki intro hepimizi uçurdu. Programcı sadece ekranın alt taraaçmakla kalmıyor yanlarını da açıyordu. Önce kimse ne olduğunun farkına varmadı, ama sonra şöyle bir düşününce adamın ne yaptığını farkedip hayrete düştük. Ama daha göreceğimiz çok şey vardı... İşte burada bu demolardan örnekler verip ne tür teknikler kullanıldığını anlatmaya çalışacağız. Yazımız teknik olmayacak, yani hangi adreslerin kullanıldığından falan bahsetsek bile çok derinlere inmeyeceğiz. Amacımız, sizlerin de ekranda gördüğünüz bir şey karşısında çok şaşırmadan bunun ne olduğunu rahatça anlayabilmeniz. Şu anda bu demoların çok küçük bir kısmı piyasada bulunabiliyor ama bilgisayarınızın sınırlarının aşıldığını görmek istiyorsanız dergimize bir mektupla başvurabilirsiniz. Demolar Democuklar

Bir demo'yla karşılaştığınızda ilk gözünüze çarpacak olan şey büyük ihtimalle bir logo olacaktır. Demo hazırlayan gruplar kendilerini kanıtlayıp diğerlerinden önde olduklarını göstermek için devamlı olarak yarış halindedirler. Bu yüzden her bir demo'da kullanılan logolar farklı olacak ve C-64'ü sınırlarına kadar kullanacaktır. Logolar ekranın yaklaşık üçte birini işgal ederler. Bunun için koyulmuş bir kural yoktur ama herkes anlaşmış gibi logolarını hemen hemen hep aynı boyutlarda yapar. Yapılan bu logolor ekranda her zaman sabit durmaz; swing dediğimiz sallama efekti logolor üzerinde en yaygın olarak kullanılan görsel triklerden biridir. Burada, daha önce tanımlanan bir sinüs tablosuna göre logo ekranda sağa sola veya yukarı aşağı sallanır. Logolara ilgi çekmek için başka teknikler de uygulanabilir. Örneğin iki karakter seti yani logo tanımlanarak ilginç şekillerde bu iki ayrı logo arasında geçiş yapılabilir. Örneğin bir çizgi tanımlanarak bunun üzerinde bir logo altında diğer bir logonun gösterilmesi sağlanabilir. Daha sonra bu çizgiye hareket verilerek yukarı aşağı oynanması sağlanır. Böylece çizgi yukarı çıktığında alttaki, aşağı indiğinde de üstteki logo görünecektir. Ayrım çizgisinin düz olması da gerekmez, hareketi bir sinüs grafiğine de bağlanabilir. Logonun altında veya yerine göre üstünde de grup çeşitli mesajlar vermek için bir scroll (kayan yazı) kullanır. Scroll mesajlarında gruplar arkadaşlarına selam ve düşmanlarına lanetlerini bildirirler. Scroll mesajları programcılık henüz çok ileri değilken karakter karakter atlayarak yapılıyordu, yani siz de bir BASIC programla bu tür yazılar

—> İl.

geçirebilirsiniz. Ama gittikçe gelişen teknikler sayesinde ekranda yazılar yumuşak bir şekilde geçmeye başladılar: smooth scroll devri başlamıştı artık. Tek karakterlik scroll'- lar, iki karakterlik scroll'lar derken sınırlar iyice genişletildi, bunlardan yeri geldikçe daha sonra bahsedeceğiz. Ekrana konan logo ve geçen başka efektler de yaratmak gerekir, aksi halde demo, demo değil düşük kaliteli (lame) bir intro olur ve programcıyla da aşağılayıcı anlamda “Tamer” lakabı takılır. Sonraları, tasarımı ve ekran düzenini zenginleştirmek amacıyla programa başka özellikler de eklemeye başlandı. Bu kadar karakter üzerine (Ta-ta! Bu da nesi?) sprite konulmalıydı. Şimdi bu karakter de neyin nesi diyebilirsiniz? Ekrana konulan logolar ve geçen scroll mesajları, genellikle işlemleri karakter seti üzerinden yapıldığı için karakter olarak yorumlanır. Ekranın aynı yerinde karakter setleri (logo halinde sıkıştırılmış veya scroll halinde) üzerinde danseden, oynayan, zıplayan sprite'lar konabilir. Sprite'lar ve karakter setleri aynı noktada üstüste bulunabilirler, çünkü bu bilgisayarınızın donanımından kaynaklanan bir kolaylıktır. Demo'larda göreceğiniz sprite'lar bir isim, bir mesaj veya bir animasyon halinde olabilirler. Ekrana renk katmak için de renk şeritleri konuluyordu. Bir zamanlar ülkemizde geniş olarak dağıtılan ve satılan Rudi Ratlos'un kopya programları paketinde, gökkuşağı renklerine sahip şeritler yukarı aşağı oynuyorlardı, ancak zamanlama sorunları yüzünden bu şeritlerde titremeler vardı ve kesinlik elde edilemiyordu. Kesin ve titremeyen renk şeritleri raster satırları kullanılarak yapılabilir. Bu sistemi ilk uygulayan bir Türk programcı oldu. Renk şeritleri bir raster satırı

(bir piksel — bir nokta) kalınlıktadır ve güzel renk geçişleriyle ilginç efektler sağlanabilir. Bu geçişlerin bir çubuk halinde olmasına ise raster-bar denir. Bu kadar görsel efektin yanı sıra demoların biraz da kulağa hitap et- * mesi gerekir. Müzik yazmak için hazırlanmış bir çok utility programı bulunmaktadır. Bunlardan en eskisi ve en tanınmışı ülkemizde de bulunmaktadır: Future Composer. 64'ün normal üç kanal sesiyle yetinmeyen bazı deli programcılar da bu ses sayısını dörde hatta beşe kadar çıkarmışlardır. Ancak beş ses tatmin edici bir sonuç vermediği için dört sesle sınırlandırmışlardır kendilerini. Yalnız, burada bahsettiğimiz dört ses programla elde edilen seslerdir; yani örneklemeye henüz girmedik, dağılmayın. Bu arada müziği daha da vurgulamak için grafik analayzerler yapılmıştır. Burada vurulan sesin şiddetine göre bir şeyler değişir. Ritm

THOMAR İN:

tutan veya notalara göre yanıp sönen ışıklar, kafasını müziğe göre sallayan adam grafikleri, vumetreler hep bu amaçla kullanılmaktadırlar. Demo'larda logo ve scroll dışında başka görsel efektler de kullanılır. Bunların hepsinin bir demo'da aynı anda kullanıldığını sanmayın ama gruplaşıp ortak çalışmalar olabilir. Yani bir grafik ekranı üzerinde sprite'larla bir animasyon hazırlanabilir. Örneğin bir çok grup demo'larında zaman zaman bir manzara resmi üzerinde kuşlar uçurmayı ve mavi renkle belirlenmiş sular üzerinde balık sıçratma efektini kullanmışlardır. Ancak grupların kalitesini yükselten unsur sadece programın İyi olması değildir; bir demo'nun beğenilmesinde en büyük etkenlerden biri bunların tasarımıdır. Birçok efekt aynı demo'da üstüste kullanılmış olabilir ancak bunlar göze hoş gelmiyorsa veya bütünlük sağlamı-

ELE yorlarsa demo pek beğeni toplamaz. Oysa çok basit efektler kullansa da büyük sükse yapmış birçok demo vardır. Örneğin Triangle adlı grubun çıkardığı Road Of Excess (Fazlalık Yolu) adlı demo bizim şimdiye kadar karşılaştığımız en kaliteli demo'lardan biridir. Şimdiki tekniklerle karşılaştırıldığında çok büyük programcılık dehaları olmasa da bu demo'daki bütünlük ve uyum diğer bir çok demo'ya göre üstündür. Bazı gruplar da demonun ortasına oyun koyarlar. Genelde çok basit olan bu oyunlar bazı durumlarda ilginç bile olabilir. Örneğin C- 64'te hiçbir zaman piyasada satılmamış değişik bir Tetris versiyon vardır. Bu oyun bir demonun içine konulmuştur ve normal Tetris'ten farklı bazı parçalara sahiptir, ayrıca düşen karakterler aşağı yavaş yavaş kaymakta, sekizer piksellik büyük atlamalar yapmamaktadır. Demolara geri döndüğümüzde karşımıza yeni bir teknik çıkıyor:

border. Aslında programcılar ken- - di aralarında bu terimi kullanmaktadırlar ve kelime sınır anlamına gelir. Yani ekranın üst veya yan sınırları kaldırıldığı ve burada bir işlem yapıldığı zaman bu işlem border-... olarak anılır. Aslında üst ve alt borderları kaldırmak hiç de sorun değildir, dergimizin ilk sayısındaki ilk program bu işi yapıyordu, border olarak anılan teknik genelde yan sınırların kaldırılması olan sideborder olarak isimlendirilir ama artık tüm lamer'lar (bu terimi hatırlıyor musunuz?) üstü ve altı açabildikleri için prensip olarak border denmektedir. Diyelim yan border açıldı ve buradan yazı kaydırıldı; demiştik ya border-... olarak anılır diye, buna hemen border-scroll deniyor. Eğer buraya logo konursa adı hemen ne olur!?.. Borderlogo tabii ki.

Biraz da Teknik...

DA

Â

Çok fazla teknik kullanılmadan yapılabilen, yani artık her demo'- da karşılaşabileceğiniz efektler bunlar. Daha karmaşık ve göz alıcı efektleri anlatmaya başlamadan önce, biraz yersiz olacak ama, programcılıkla pek ilgili olmayan arkadaşlara bazı temel bilgiler verelim. C-64'ün sekiz sprite'a sahip olduğunu ve ancak bu kadarının ekranda görünebileceğini sananlarınız olabilir. Aslında çeşitli tekniklerle ekranda 600'e kadar sprite gösterilebilir. Sprite'ların çok sayıda olabilmesi yine raster interrupt tekniğiyle sağlanır. Bu teknik raster taraması belli bir satıra gelince bir sekizlik grup sprite'ın, biraz aşağıda başka bir grup sprite'ın gösterilmesine dayanır. Bir aralar pek moda olan bir demo tekniği multiplexer bu sistemden kaynaklanıyordu. Bu sistemde sekizden fazla sprite ekranda dolaşabilir. Ancak sekizden fazla sprite bir raster satırı boyunca yanyana gelemez (aslında bunun tersini de daha sonra anlatacağız ama şimdilik siz idare edin). Karakter seti diye bangır bangır bağırdığımız şey nedir şimdi? Karakter seti bildiğiniz, ekranda gördüğünüz, yazarken kullandığınız karakterlerin toplamıdır. Bazılarınız biliyordur, bu karakterleri yeniden tanımlayıp kendi isteklerinize göre yeni tasarımlar yapabilirsiniz. Elyazısı falan gibi. Ancak bu karakterlerin bir başka kullanım alanı daha bulunmaktadır. Burada da bir grafik (genelde üç renklimulticolor olması tercihimiz) karakter setine aktarılabilir. Bu işlem için yazılmış özel programlar vardır ve orijinal grafik toplam karakter sayısı olan 256 karttan (8x8 piksellik grafik birimi) büyük olsa bile çeşitli sıkıştırma teknikleri ile bir karakter setine sıkıştırılabilir.

Böylece logoların hazırlanması ve ekranda gösterilmesi büyük oranda kolaylaşır, çünkü grafik ekranlarını swing etmek (sallamak demiştik hatırlarsanız) çok zordur. Sonuç olarak özel haller dışında tüm 10golor karakter setlerinde saklanır ve bunların üzerinde sprite'lar dolaşabilir. Özel haller dediğimiz durumlarda ise grafik tekniği olarak yeni bir şeyler denenmiş olabilir. Bunlara daha sonra değineceğiz. Aslında tüm teknikler raster interrupt sistemine dayanır, yani raster satırı belli bir yerdeyken gereken işlemlerin yapılması, sonra başka bir yerde tekrar istenen işlemlerin yapılması gibi. Böylece ekranda ince renk şeritleri, yan border açılarak scroll, multiplexer, logo swing yapılır. Bu aylık size temel bilgiler vermekle yetiniyorum. Gelecek ay teker teker demo'ları anlatmaya ve kullanılan teknikleri açıklamaya çalışacağım. Bir de yarışma olabilir, bir demo ekranı gösterip hangi sistemlerin kullanıldığını sorabilirim, tabi ödülünüzü alacaksınız. Son olarak kullandığımız terimleri şöyle bir tekrar edelim: border: ekranın üst ve alt veya (tercihen) sağ ve sol yanlarının açılarak burada görsel efektler uygulanması, border-scroll: border'dan yazı kaydırma, border-logo: border'a logo koyma. raster: ekran taramasının hangi satırda olduğu, bu sayı istenen yere geldiğinde programa girilerek çeşitli efektler sağlanır. raster-bar:

raster gereken yerde yakalanıp ek- * ranın rengi değiştirilerek elde edilmiş renkli çuuk, logo: bir grubun adını yazan grafiksel çalışmalar. scroll: kayan yazı mesajları. sprite: (bunu bilmeyen varsa bu yazıyı okumasın) ekranda en fazla sekiz (!) tane görülebilen hareketli grafik elemanlar. multiplexer: ekranda sekizden fazla sprite gösteren programlama tekniği. grafik elemanı: grafiklerin gösterildiği gösterim modu. karakter seti: düşük çözünürlüklü yazılarınızı yazdığınız ekranda gösterilen harfler, karakterler veya sizin tanımladığınız grafik matrisleri. demo: C-64'ün sınırlarına kadar zorlandığı gösteri programları. intro: bir oyunun veya programın başına koyulan tanıtma/reklam amaçlı küçük gösteri programı. lame: basit ve düşük kaliteli programlara ithaf edilen bir sıfat. lamer: lame programlar yapan programcı. swing: logonun ekranda sağa sola veya yukarı aşağı sallanması tekniği. analayzer: müziğin ritmine ve notlarına uygun grafiksel olarak değişen elemanlar.