Bu sayfadaki yazılar
Sayfanın metni
Sayfa 18
Dane, Jailbird, Deekay
<spritus> Ya demo? : ) <nightlord> Favori demolarım: eskilerden Tower Power, Mathematica, Color of Code, Comalight 12. Yenilerden: Cycle, Tsunami, Demode, BoogieFactor, Throckmorton Device ve tabii Living :) <spritus> : ) <nightlord> Bu arada PC scene'de de Heaven Seven ve Iconoclast'ı çok beğendiğimi söylemeliyim. Özellikle Heaven Seven'in beni çok etkilediği bir gerçek. Bu beni kendi demolarımda da farklı arayışlara iten bir demoydu.
<spritus> Evet. Aslında güzel bir eser platform fark ettirmiyor değil mi? :)
<nightlord> Çok doğru. Hatta en güzel eserler başkalarına ilham kaynağı olan, onları da bir şeyler üretmeye tetikleyen eserler bence, hangi platform veya sanat dalı olursa olsun.
<spritus> Kesinlikle. Son olarak Türk demoscene'in durumu ve geleceğini nasıl görüyorsun? <nightlord> Türk demoscene'i hakkında düşünerek bayağı zaman harcıyorum aslında. İlginç bir scene'imiz var. Pek çok yönden farklı bir scene ve bu yüzden diğer ülkelerden farklı analiz edilmesi gerekiyor bence. Öncelikle pek çok grubun aktif olduğu 90'ların başlarıyla kıyaslandığında bugün daha az scener ve grup olduğu doğru. Ama bence bugünkü gruplar geçmiştekilerden daha üretken. Özellikle demolar alanında. Çoğu scener'ın Türk scene'in altın yılları diye düşündüğü Clique ve Accuracy'nin disk dergileri ile chart'ların tepesine oturduğu dönemle kıyaslanırsa şu anki scene bence daha zor bir alan olan demo yapma alanında daha aktif ancak şu anda bence en büyük sorunumuz yeterince büyük bir izleyici kitlesi olmaması. Mesela 7D5 partisindeki compo'lara katılım ve kalite bence çok iyiydi. Fakat gelen izleyici sayısı çok daha fazla olmalıydı. Scene'in sağlıklı bir şekilde yaşamını sürdürebilmesi için bir piramit kurulması gerekiyor. Bu piramidin tabanında çok sayıda demo izleyicisi olmalı. Aralarından bazıları gruplar kurup piramitte yukarı ilerlemeli. Grupların kalitesi arttıkça sayıları azalmalı. Bizde ise piramit biraz ters duruyor, bu gelecek için tehlikeli. Şu an kaliteli işler yapan ve aktif olan kitle scene'den uzaklaşırsa yerlerini doldurmak zor olabilir. Eğer ülkemizdeki demoscene hakkındaki farkındalığı artırabilirsek bu tehlikeden kurtulabiliriz. Bunun için eskiye göre işimiz daha zor. Eskiden oyunların başındaki introlar sayesinde daha çok insan gruplardan haberdardı ve en popüler bilgisayar dergilerinde scener'lar yazıyordu, şimdi ise introlar yok, dergiler word püfleri, excel tüyoları ile dolu. Umarım Plazma bu alanda pozitif bir etkiyi tetikler. Eğer bu olursa o zaman ben de Türk demoscene'in geleceğinden umutlu olduğumu söyleyebilirim :)
<spritus> Bu zevkli röportaj için teşekkür ediyoruz.. <nightlord> Ben de teşekkür ederim. <nightlord> Dergide başarılar ve kolaylıklar dilerim. <spritus> Teşekkürler
Spritus/Resident
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 19
- Haydi bakalım neymiş bu: ===========================
Once upon a time, diye başlayalım... Burda çok basit de olsa ufak bi yazı dizisi ile az çok basit bi demo framework tarzı bişi nasıl hazırlanır ondan bahsetmeye çalışacağım. Burda anlatacağım şeyin, yüzyirmisekiz byte, dört k v.b tarzı demolara pek apply edilemeyeceğini söyleyebilirim. Daha çok bahsetmek istediğim şey, yapısal olarak biraz da flexible bi design nasıl yaparız onun üstüne değineceğim.
Öncelikle bir design'a başlamadan önce temel yapı taşlarımıza bakalım. Neler lazım bize sonuçta. Düşünelim bakalım. Demo dediğimiz şeyi standart bir oyun application v.s. gibi şeylerden ayıran tarafı, user interaction kısmının hemen hemen hiç olmaması. Yani 'escape' dışındaki bir tuşu kontrol eden bir demo türüne henüz rastlamadım (çok enderdir, yok space'e basarsın secret music gelir falan filan...) Bu yüzden o açıdan epey bir şanslıyız. Yani user interaction yoksa her şey daha bi kontrol altında olur. Aslında temel yapacağımız şey bir müzik/ ses v.s. eşliğinde sunacağımız görüntüsel effectler zinciri tarzında, o anki yaptığımız makinada yapılması gerçekten zor olup ve görsel olarak da sanatsal bi tarafı olan bi yapıdır. Yani aslında... Film çekiyoruz... Başlar ve bir süre sonra da biter. Hiç bir şey farklılık göstermez. Çok enteresan şekillerde hazırlanmış bariz randomize effectler dışında her çalıştırdığımızda aynı saliselerde aynı görüntüleri görür.. aynı sesleri duyarız. O zaman burdan şuna gelebiliriz ki, en sağlam olması gereken yerimiz, bizim timing control'umuz diyebiliriz. Yani istediğimiz şeyleri, istediğimiz anlarda yapmamızı sağlayan bir yapı. Bunu öyle bir design etmeliyiz ki, ufacık bir değişiklik yapmak bize pahalıya patlamamalı.
Tamam timing olayı bir yana, bunun dışında neler gerekiyor. Temel bi gfx lib tasarımı !? ...Hmm tam olarak değil. Çünkü neticede 'standard'ın dışında bir şeyler yapacağımız için bize uygun bir library oluşturulabilinir mi bilemiyorum. Tıpkı AI library'leri gibi düşünün. Her oyunda kullanılabilecek bir AI library'si yazmak mümkün mü !? Hayır değil. Neticede AI dediğimiz şey, fake'lerden ibaret, oyununa göre yapacağın fake, veya izleyeceğin yöntem değişir. Ancak tabi ki bazı belli başlı yapılar var... Örneğin bir AI için bakarsak, ne bileyim ben bir path finding önemli yapı taşlarından biri. (Haaala anlamış değilim niye path finding'i AI sayarlar... o ayrı konu). Yani yapacağımız şeyin içine bunu koyabiliriz.. Ama general bişi yapmak imkansız... Aynısı demogfx lib'i için de geçerli. Ne koyabiliriz ki içine... Çok basit ve genel şeyleri !? Nedir bu... Bir grup tridi objeyi çok rahat bi şekilde ekrana istediğimiz shader'la basabilecek bir yapı !? Yoksa procedural texture hazırlayıp texture'u ekrana basan bi yapı !? Yoksa 3-5 pass'de hazırlanmış 3-5 texture'u alıp onlara screen space effect ile post-processing yapan bi yapı!? Yoksa hepsi mi !? Yani yok bunun tam cevabı. Mükemmelini de yapmak imkansız. İki gün sonra aklınıza "yaa hadi burda da bezierlerden 4. derece fractal bişii çizdirip arkasında da radiosity hodo hodosu" yapayım dediğiniz anda o library'den tek bir function çağırmıyor durumunda bulacaksınız kendinizi. Ama, bi çok şeyi kolaylaştırabilmemizi sağlayan bi yapı yapmak elbette mümkün. Buna değineceğiz.
Başka neyimiz var bunların yanı sıra??.. Müzik!.. Evet müzik veya ses effectleri. Burda yapılacak abartı miktarda bir şey yok açıkçası. Genel olarak ses effect'leri çok kullanılmaz. Yani ya direk müziğin içine gömülüdür o effectler ya da... Yoktur.. O yüzden demo'muz başladığı andan itibaren sadece 'play' diyip, arkasından her şeyi kendi haline bırakmak her zaman en güzel çözüm gibidir.
Temel bi bakışta bu üç component yeterli gibi gözükse de (timing/gfx/music) bunların yanı sıra arka planda olup da bizim işimizi cidden çok feci anlamda kolaylaştıran bi kaç yapı daha vardır. Bunların arasında, memory manager, resource manager (texture, sound, mesh..vs. gibi şeylerin yüklenme mekanizması ve demo tarafından erişebilirliği..) ve en önemlisi thread manager library'si. Biliyorsunuz artık günümüzde bir adet CPU diye bir şey kalmadı. Bir adet CPU bile olsa sistemde bir de GPU diye bi kavram var ki bunlardan maximum performansı elde etmek istiyorsak bunların senkronizasyonunu çok çok çok iyi bi şekilde sağlamak zorundayız. ki... Günümüzde hemen hemen bi çok kişide artık ya dual-pentium ya da en azından hyper-thread pentium ayarında aletler var. Kalkıp da CPU'nun %50'sini kullanan ve GPU ile sync olmayan (yani GPU çalışırken CPU bekler veya CPU çalışırken GPU bekler) bi yapı hazırladığımızda makinadan alacağımız performans kafadan üçte birine düşer. İşte buradaki sync olayları için kesinlikle bir thread manager, task manager vari bir yapı kesinlikle şarttır. Bi taraftan CPU'nun biri bi procedural texture'u hazırlarken (ki.. aslında GPU'da da mümkün) diğer taraftan diğer CPU mesh'leri sort ederken GPU'da bi önceki frame'i present etmek için, bi önceki frame'in sortedilmiş mesh'lerini çizebiliyor olmalı. Bunu çok rahat bir ortamda sağlayamadığımız bir durumda ortalık 1 - çöplük gibi olur, 2 - ciddi anlamda bir performans akışı sağlayamayız.