Bu soruları da ben ele alıyım
Öncelikle hoşgeldin. Hemen bir yanlış anlaşılmayı düzeltelim. Demoscene derken, demo üreten insanların bulunduğu uluslararası camiayı kastediyoruz. Demoscene != demo
Önce ürün türlerini örneklerle açıklayayım
Demo kavramını anlamak için olayın tarihsel akışını anlamak gerekiyor. 1980 başlarında ticari oyunların kopya korumalarını kıran
crack grupları vardı, ki bunlar hala varlar ve crackscene olarak hayatlarını devam ettiriyorlar. Bu elemanlar arasında zamanla bir çekişme yaşanmaya başladı, oyunu ilk kim kırıp piyasa sürecek çekişmesi. Bununla birlikte başkalarının kırdığı oyunları kendi kırmış gibi dağıtan
lamer'lar türedi. Bu yüzden crack grupları kendi isimlerini oyun başına eklemeye başladılar. Bu oyunu hangi grubun kırdığını belli edecekti. Bu gelenek bir süre sonra grubun ismini sadece yazı değil de logo olarak gösterme haline geldi. Öğrendiğim kadarıyla bunun ilk örneği
şuydu. Bir süre sonra da bu logoların altına kayan yazılar (scroll text) eklenmeye başlandı. ışin görünür tarafında sadece crack gruplarının sevdikleri gruplara selam (greetings), rakip gruplara sabah (fuckings) göndermeleriydi. ışin görünmeyen tarafın ise bilgisayar destekli animasyonların devrinin başlamış olmasıydı.
Kırılan oyunun başındaki bu küçük animasyona
intro adı verildi. Ve zamanla oyunu-programı kırma süresinin yanında bu intro da önem kazanmaya başladı. Çünkü introlar sadece seyirlik gösteriler değil, grubun
coderlarının programlama yeteneklerini de gösteren kodlardı, tabi aynı zamanda çizim ve müzik yetenekleri de.
Bu yüzden grupta bazı elemanlar sadece bu introların yapımını üstlendi. Gruba crackingten anlamayan ama introlarda görev alabilecek elemanlar alınmaya başlandı. Bu elemanlar daha büyük introlar yapmaya hatta bu introların birleştirilip tek diskette sunulduğu
demolar (megademolar) yapmaya başladılar. En nihayetinde sadece intro-demo yapmak için demo grupları kuruldu ve demoscene doğmuş oldu.
Artık bu demo gruplarının yaptığı işlere demo adı verilmeye başlandı. Bu gruplar introlarını ise kırılan oyunlar için değil, kendi gruplarını tanıtmak, partilere başkalarını davet etmek ya da sadece sevdiklerine selam sevmediklerine sabah geçmek için
intro yapmaya başladılar. Cracklerin başındaki introlara da crack-intro'dan
cracktro adını verdiler. Intro kelimesinin anlamı da bu şekilde değişmiş oldu. Artık hemen hemen herkesin kabul gördüğü ayrım şu: eğer tek bir sahnede bir iki efekt varsa intro; çok sahnede bir çok efektin gösterimi varsa, olayda bir yazıdan çok bir hikaye bir akış var demo.
Intro kelimesi bir şeyin tanıtımı anlamına gelse de günümüzde bir başka kullanımı küçük boyuttaki demolar. Örneğin 64k olmasa baya demo sayılabilecek bir
ürüne boyundan dolayı intro denebilir, buna şaşmamak lazım. Ama bir üst paragraftaki intro tanımı daha yaygın.
Dentro ise intro demo arasında bir ürün. Mesela grubunuzu tanıtmak için bir intro yaparsınız ama bir değil de birkaç sahnede daha fazla efektle yaparsanız bunu, ama amaç hala grubunuzu tanıtmaksa bunun adı dentro olur.
Invitro ya da
invtro bir demopartinin tanıtımı için hazırlanan demolar ya da introlardır.
Örnek.
Meetro iki demo grubunun bi yerde buluşup ortaklaşa çalıştıkları bir günü temsilen çıkarılan introdur.
Greetro adı üstünde diğer gruplara selam yollama amaçlı introdur.
Fucktro diğer gruplara sabah yollama amaçlı introdur.
Bbstro bir BBS'nin tanıtımı için yapılan introdur. BBS nedir dersen o tanımı yapamayacak kadar yeniyim burda
Burada daha doyurucu cevaplar verecekler olduğunu biliyorum.
Trackmo bir demo çeşididir. Ama bu demoda ön planda olan bir hikaye bir akış yoktur. Demonun odağında müzik bulunur. şimdilerde MFX ve benzeri gruplar güzel bir elektronik parça yaptıklarında buna bir de trackmo yaparlar ki parçanın çalındığı disko gibi ortamlarda arka planda demosu da oynasın.
Örnek istersen.
(Trackmo'nun başka bi anlamı daha var, ben PC'dekini söyledim.)
Neyse tanımları burada bırakıp diğer sorulara geçeyim.
En çok kullanılan araç gereçlere gelince. Kodlamada en çok kullanılan dil C++. Bunu C ve ASM takip ediyor. Tabi platforma da bağlı ama tüm platformları ele alırsak demoların çok büyük çoğunluğu bunlarla programlanıyor. PC'de Turbo Pascal, Turbo Basic, Free Basic vb. kullanıldığını da gördüm ama. Olayın özünden biraz uzakta olsalarda Java ve Action-Script (flash) ile yapılan demolar da var.
Bunun dışında kullanılan kütüphanelere göz atacak olursak (ki sadece PC'de bilgi sahilinde sunuyorum.) 2000'lere kadar kendi grafik motorunuzu yazmanız önemliyken 2000'den sonra OpenGL ve DirectX'e rağbet arttı. Bunun dışında software grafik motoru kullanmak isteyenlerin en çok kullandığı kütüphane OpenPTC ya da daha ufak introlar için hazırlanmış TinyPTC. Yine bu PTC'leri yapan adam Pixel Toaster adında bir kütüphane yaptı. Bu kütüphanelerin ilk halleri GDI + DirectDraw kullanmasına rağmen bir çok platform için farklı sürümleri de mevcut ama zaten Win32 dışındaki platformlarda en yaygın grafik kütüphanesi SDL.
Ses konusunda bugün en çok kullanılan kütüphane FMod ve introlar için olan versiyonu miniFMod. Onu az bir farkla Bass takip ediyor. Diskten resim okuma için de Intel JPEG kütüphanesi çok yaygın.
Bu kütüphaneleri kullanmanın başlıca sebebi PC donanımın çok farklı olabilmesi. Örneğin ekran kartına erişim için driver okumak yerine DirectX kullanmak herkese daha cazip geliyor. Ama tabi kullanabilecekken kullanmadığınız her kütüphane not hanenize bir artı olarak geçecektir. Bu yüzden demoların infolarında kullanılan kütüphaneleri belirtmek hem etik açıdan hem de yeteneğinizi saklamamanız açısından önemlidir.
Müzik yapma konusuna gelince. Eskiden müzisyenlerin kendi seslerini programlamaları yani bir softsynth (software sintizayır) sayesinde bu sesleri oluşturmaları beklenirdi. Ama artık müzisyenler
tracker adı verilen ve
tracked müzik yapmaya yaran programları kullanıyorlar. Bu programlar sayesinde bulduğunuz hazır ses parçalarını (
sample) bir araya getirip müzik yapabiliyorsunuz. Ama PC üzerinde bile kendi samplelarını üretebilecek düzeyde programcılık da bilen müzisyenler daha çok saygı görür. Tracker olarak tavsiye edebileceğim sadece Modplug Tracker bulunuyor çünkü başkasını görmedim
Bu konuda müzisyen arkadaşlar daha çok yardımcı olacaktır.
Grafik konusuna gelirsek eğer ki hiç istemen bu konuda bilgim sıfıra yakın
Bi bildiğim MsPaint var şimdilik işimi görüyor
ılk akla gelen program Adobe Photoshop tabi ki ama bunu grafikerler değil PC coderları kullanıyor. Nedeni ise demonun orasına burasına koyacağı ufak şekilleri, katmanlar vs. grafikeri rahatsız etmeden olmadan kolayca halletmenize olanak sağlaması. Sanat olarak grafik işiyle uğraşanlar ise kesinlikle photoshopı tavsiye etmeyeceklerdir, onların da fikirlerini ayrıca belirtmeleri iyi olur.
Diğer soruya geçelim.
64k, 4k gibi boyutlarda demolar için yapılacak iki önemli iş var.
Bu işlerden ilki, kodu yazarken boyutu çoğaltabilecek her şeyden kaçınmak. Bu her şey ne olabilir? Öncelikle içinde 7 tane renk olan bir resmi 24bit saklamak olabilir, basit bir küp için mesh dosyası kullanmak olabilir, kısaca statik bilgileri yeterince sıkıştırmamaktır. Ama bi yerden sonra yeterince sıkıştırmanın bile işinizi görmediğini anlamaya başlayacaksınız. Bir sonraki aşama da bu statik dosyaları saklamak yerine program başında kodla üretmektir. Bu yöntem her zaman daha ufak dosyalar oluşturacaktır. Müzik dosyasında kullanılan sampleları, sahneler için kullanılan dokuları hatta sahnelerdeki binaları, nesneleri (hatta insanları) kodla oluşturmaya çalışmak demoscene'i diğer tüm programlama camialarından ayıran şeylerden biri. Bana inanmıyorsan Farbrausch'un 96kb'lık fps oyununa
bakabilirsin. Bunu sadece demoscene mümkün kılabilir
"Size coding"in en son aşamasında ise yazdığınız program satırlarının hangi assembly komutlarına dönüşeceğini bilmek ve ona göre kod yazmak geliyor. Örneğin çoğu durumda bir while, for'dan daha az yer kaplayacaktır. Programınızda bir yerde for(i = 0 ; i < 10 ; i++) ifadesi, i'nin başlangıç değerinin zaten 0 olduğu garantiyse, fazladan bir i = 0'a sahip oluyor. 64k'da değil belki ama 4k için çok önemli ayrıntılar bunlar.
Tabi bu olayları zaten çoktan aşmış olan ASM coderları var. Onlar da zaten 1kb ve daha düşük boyutlarda demolar yaparak dibimizi düşürüyorlar.
Küçük boyutta demo yapmak için yapılacak ikinci iş
cruncher adı verilen exe boyutunu küçültme programlarından kullanmak. Bu programlar, exe'yi paketliyor ve dosya başına bu paketi açmak için gerekli rutinleri ekliyor. Tabi her zaman için kendi cruncherınızı yazmak size daha fazla saygı sağlayacaktır. Zaten piyasadaki cruncherların çoğu demo coderları tarafından yapılmıştır.
Sonraki soru...
Gelmiş geçmiş en iyi demo ya da demo grubu diye bir ifade asla nesnel değildir. Ben desem ki şu grup şu demosuyla tarihe adını yazmıştır diye, biliyorum ki bir başkası diyecek ki "O platformda olabilir ama hiç Amstrad demosu görmeden nasıl böyle bir yargıya varıyorsun?" öteki diyecek ki "Onların devri geride kaldı şimdi olsa şu grupla asla baş edemezler." O yüzden daha fazla demo izleyerek bu kararı kendin ver diyorum
Candela'nın demosuna gelince ben o demoyu hiç çalıştıramadım
muhtemelen senin bilgisayarını çok kasmıştır. Bu onların ilk demoları ve çok şey vaadediyor. Mesele iyi rendersa Plastic'in demolarını incelemeni tavsiye ederim. Sana maharet size coding gibi geliyorsa hiç durma dal bu işin içine derim
Yazımı noktalarken de bi kaç not bırakayım.
Öncelikle yazdıklarımın çoğu olaya PC açısından bakmaktaydı. Amiga Atari diye gittiğimizde işler biraz değişecektir. C64, Amstrad, Spectrum denilirse bambaşka bir dünya karşımıza çıkar
Yazdıklarımın çoğu olaya coder, hatta newbie coder açısından bakmaktaydı. Bir müzisyenin ya da grafikerin yazıda birçok hata bulacağına eminim.
Son olarak yardımcı oldumsa ne mutlu bana