********************************************************************************
EDİTÖRDEN
********************************************************************************

Herkese selam sevgi;

Script, Splash,  Cemetery News,  Eternal, Anarchy,  Tdsn, Yonga  ve daha  aklıma
gelmeyen birçokları. Gördüğünüz  gibi Türk demoscene'de  bitmek tükenmek  bilmez
bir diskmag çıkarma sevdası  var. Zaten scene'mizin  en başarılı olduğu  alanmış
zamanında. Saydıklarımdan  amiga ve  c64 sectiondan  olanların birçoğu  Avrupada
da bi hayli popüler olmuşlar.   Fakat son 4  yıldır Türkiye'de scene adına  elle
tutulur bir  canlanma olduğu  ve bu  sürede  4 parti  yapıldığı halde  bir  disk
magazinimiz yoktu.  Bu  4 yıl  boyunca  birçok  şey oldu  ve  yazılıp  çizilecek
yığınla şey yok  olup gitti,  çoğu unutuldu. Bu  hep aklımı  kurcalayan bi  konu
olmuştur.  İşte  tüm  bunları   yazılı  halde  insanlara  duyurmak,   potansiyel
scener'ları kendi  saflarımıza  çekmek,  scene  toplumu  olarak  kendi  aramızda
elektriğimizi  birbirimize  aktararak  süreklilik  sağlamak  ve  meydana   gelen
iyi/kötü  herşeyi  yazılı  olarak  kaydetmek  için  Plazma'yı  çıkarmaya   karar
verdik.

Aslında bu  fikri Antika  adıyla  ilk ortaya  attığımda pek  rağbet  görmemişti.
Aylar sonra Vigo/Bronx  böyle birşeyin gerekliliği  konusunda insanları  mantığa
davet ettiğinde herkesten  acayip bir onaylama  tufanı kopması beni  şaşırtmıştı
doğrusu. Sonradan bunu  Vigo'nun insanları gaza  getirme konusundaki  becerisine
bağladım.

İlk başlarda magazini c64, amiga ve pc platformları için ayrı  ayrı  arayüzlerle
çıkarmayı kararlaştırdık.  C64 arayüzünü  Skate/Glance, amiga'yı  Vigo/Bronx  ve
pc'yi  de   ben(Spritus/Resident)  yapacaktık.   Vigo,  amiga'sıyla   arasındaki
kapanmamış eski  bir  hesaptan  dolayı  amiga  versiyonunu  yazmaktan  vazgeçti.
Sonra Skate,  dergide denemeyi  çok istediği  yeni proportinal  rutinine  rağmen
anlayamadığım bir sebepten c64 versiyonundan vazgeçince elime  aldığımla  kalmış
oldum :) Neyseki scene  heyecanı ile dolup taşan  Madprogrammer isimli genç  bir
coder, forumda  işin kod  kısmına talip  olduğunu söyleyerek  ortaya çıkınca  bu
işten sıyrıldım.  Mad'i  gruba  almayı  da ihmal  etmedim  tabi  ;)  Fakat  daha
sonraki diskmag toplantılarında o şöyleydi bu böyleydi derken editörlük  işi  de
Sensei/Realtime ile birlikte  bana patladı. Kaderimden  kaçamıyordum ama  bundan
çok  da  şikayetçi  olduğumu  söyleyemem  çünkü  yukarda  da  bahsettiğim   gibi
diskmagazin fikrinin en büyük taraftarıydım.

Neyse sonuç olarak şu an Plazma'yı okuyorsunuz. Üzerinde epey  uğraştık,  umarım
değmiştir.

Spritus/Resident

********************************************************************************
SELAMLAR
********************************************************************************

Aardwark
Aliens
Analog
Ascraeus
Bronx
Crescent
Demodojo
Glance
Goblins
Manyetiq
Nakedhamsterz
Raven
Smog
Stillpsycho

********************************************************************************
HABERLER
********************************************************************************

- Madprogrammer  Resident  grubuna katıldı.  İlk  iş olarak  Plazma'yı  kodladı.

- Glance grubu  yine bir  dolaplar çeviriyor.  Her an  Living'ten daha  kaliteli
bir demo ile karşımıza çıkabilirler.

- İki yeni  demo grubu  kuruldu. Birincisi Bakkada  tarafından kurulan  Demodojo
diğeri  ise  Ragnor  ve  Chenmy'nin  kurduğu  Manyetiq.  Kendilerinden  bol   ve
kaliteli product'lar bekliyoruz.

- Nightlord'un ve Vigo'nun ortaklaşa organize edeceği Nightshift(Gece vardiyası)
demo   partisi  4-5 Mart  2006'da   İstanbul'da   yapılacak.   Partiyle   ilgili
ısrarlı  sorularımıza kaçamak cevaplar  veren Nightlord,  parti resmi  sitesinin
organizayon  tarihine  yakın  bir  tarihte açılacağını  bildirdi. Bunun  yanında
parti  mekanı İstanbul  Bilgi Üniversitesi olarak açıklandı. Yine de scener'lar,
parti isminden  de kıllanarak  sadece  gece  saatlerinde  kasabilecekleri, diğer
saatlerde ise  mekandan kapı  dışarı  edilecekleri  düşüncesiyle  tedirginler :)

- MaD'den:  Geç oldu  hem de  güç oldu  ama en  nihayetinde  Plazma  karşınızda.
Peki Plazma neden geç kaldı?
    a)  1  gün   kala  çıkmasına   progressbar  kodunda   bir  bug    yakaladım.
    b)  Çok  feci  hastayım matematiksel  işlem  yapamıyor  beynim  haliyle uzun
        sürüyor bazı işlemler :D
    c)  Skate  kişisinin  verdiği  algoritma  +  Ragnor  kişisinin  tool'u   çok
        abartısız    ortaklaşa   sıçış    gerçekleştirdiler.    Tüm    metinleri
        elimle düzenlemek zorunda kaldım.
    d)  Spritus  efendinin  istediği  gibi bir  menüyü  çıkmasına  1  gün kalaya
        kadar bitiremedim  :D. Aslında bitirdim  de hem de 3 farklı menü olarak,
        Spritus  adındaki   zat-ı  muhtereme  beğendiremedik   orası   ayrı   :P
    e)  E şıkkı bende  gizli ;) Devlet  sırrı hatta Resident sırrı olarak Plazma
        tarihine  gömüyorum.  Hiç  kasmayın  secret  part'ta  da   yazmıyor  bu.
        Kıssadan hisse: Bir secret part var! :))

********************************************************************************
İNCELEME : IRRATIONAL / CHORUS
********************************************************************************

2004 yılından  itibaren sayılı  Commodore grubu  demolarıyla dikkatleri  üzerine
çekmeyi başardı.  Bunlardan gözüme  ilk çarpan  2004 yılının  Ocak ayında  parti
harici yayınladığı "You Know The Routine" demosuyla "Camelot" oldu.  Aynı  yılın
Nisan ayında ise "You Know The Routine 2" ile "Breakpoint 2004"de  Commodore  64
Demo  yarışmasında  birincilik  aldılar.  Camelot'un  2004'deki  çıkışını   2005
yılında  "Fairlight",  "Booze  Design",   "Dekadence",  "Chorus"  gibi   gruplar
izledi. Aslında bunların arasında en göze batanı 2005 yılında 6  demo  çıkararak
son yıllarda aktivite bazında  bir rekor kıran  Fairlight grubu oldu.  Dekadence
de 2004-2005 yıllarında  kaliteli demolar,  4kb introlar ve  diğer bazı  ürünler
yayınladı. Booze Design'ın  da 2004'de 1,  2005'de 2 demo  çıkardı. Ancak  benim
gözüme  en  çok  batan  grup  tüm  bunların  arasından  bazı  farklı  yönleriyle
sıyrılan Chorus grubu oldu.

1994'de kurulan ve 1996'da yayınladıkları "Rush" isimli demodan  sonra  yıllarca
sessizliğini koruyan Chorus grubu 2004 yılında aktiviteye geri  döndü.  2004'den
itibaren çeşitli  demo,  4kb intro  ve  grafikler yayınlayan  grup  katıldığı  5
farklı partide  3 farklı  kategoride  8 ürünüyle  6  birincilik ve  2  ikincilik
aldı. Grubun en büyük özelliği ise eski ruhu korumasının yanı sıra  "Leon"  gibi
bir grafikere sahip olduğu  için görsel yönden tatmin  edici ve "Clarence"  gibi
bir codera  sahip olduğu  için ise  teknik yönden  yer yer  devrimsel  nitelikte
efektler içeren demolar yapabilmeleri.

2004'deki  "Demode"   isimli  demolarının   ardından  bu   sene   yayınladıkları
"Irrational"    demosunu     aşağıda    teknik     yönden     değerlendireceği


Irrational:

Demo,  iç  ekranın  kapanışının  ardından  çok  hoş,  full  border  bir   açılış
efektiyle başlıyor. Burada sağ  ve sol borderlar  ekran boyunca açılmış  durumda
ve her  iki yanda  da 2'şer  sprite bloğu  kullanılmış. Bu  4 sprite  tüm  ekran
boyunca multiplexer ile çoğaltılmış. Efektin diğer tamamlayıcı unsuru  için  ise
üst alt borderlar da açılmış ve burada iç ekran rengi  kullanılarak  borderların
dört  yönden   blok   halinde  ekrana   kayarak   gelmesi  efekti   bu   şekilde
gerçekleştirilmiş. Teknik  ve  görsel olarak  oldukça  güzel bir  açılış  efekti
olmuş.

Bu açılış efektinin ardından Leon'un çizdiği oldukça hoş  tam  ekran (mı acaba?)
bir koala  resim  ekrana geliyor.  Resmin  ekrana  gelişi de  güzel  bir  efekte
bağlanmış. 2x2 karakter  blokluk alanlara bölünmüş  ve her sıradan  4 tane  alan
aynı anda  fade efekti  ile oluşuyor  ve bu  oluşan alanların  üzerinde  beliren
spritelar sağdan ya da  soldan ekranı terk  ediyor. Bu efekt için  de 4x13 =  52
spritelık bir multiplexer kullanılmış. Teknik olarak çok zor gibi  gözükmese  de
grafik  ekrana  geldikten  sonra  4  ekran  yüksekliğinde  orjinal  bir  sinusle
kaymaya  başlayınca  fikrimiz  ister   istemez  değişiyor.  Resmin   çözünürlüğü
160x800, oldukça  hoş değil  mi?  Teknik olarak  oldukça güzel  kodlanmış  ancak
donanımsal  kaydırma   tekniğinden   kaynaklanan  biçimde   ekranın   ilk   dört
karakterlik  alanına  grafik  basılamıyor.  Clarence,  bunu  yan  borderlara  da
çıkarak sağa sola kayan  ve spritelardan oluşan bir  logoyla çözmüş ve o  alanın
da boş kalmasına izin vermemiş.  Buraya kadar iyi hoş  da asıl o alt  borderdaki
de ne  öyle! Alt  borderda bariz  bir şekilde  10 adet  sprite var  ve yan  yana
duruyorlar. Ufak  bir de  sinus  dalga hareketi  yapıyorlar. Bu  Commodore  için
kesinlikle ama  kesinlikle imkansız  bir durum,  VIC asla  böyle bir  şeye  izin
vermez.  Pekala  bordera  sprite  harici  birşey  basılamadığına  göre  bu   alt
borderdaki 9.  ve 10.  spritelar nerden  geliyor?  Aslında bu  $3fff ya  da  tüm
banklar için  genelleştirmek  gerekirse $xfff  hilesi  diye  isimlendirebiliriz.
Her bankın en  son byte'ı alt  ve üst borderlarda  gösterilecek grafik  datasını
taşır. Ancak normal koşullarda  bu tek byte'ı  kullanarak düzgün grafikler  elde
etmek, hele  ki  elde edilen  grafikleri  borderda hoplatmak  zıplatmak  oldukça
zordur ve  8  tane spriteın  birden  kullanıldığı bir  alanda  zamanlamaları  bu
derece   kusursuz   ayarlamak   gerçekten   de   tebrik   isteyen   bir   durum.

Bu demonun en  çok hoşuma giden  özelliklerinden biri Chorus'un  bizi 10  sprite
basabildiğine ikna etmesi. Çünkü  demonun notunda da yan  yana 10 sprite var  ve
iç ekranda yazıların  üzerinde dolaşıyorlar. Aslında  bu spritelardan ikisi  çok
zekice tasarlanmış birer  bob. Ama  gelin görün ki  hem demoda  alt borderda  10
tane sprite'ı yan  yana görenler  hem de  demonun notunda  iç ekranda  yazıların
üzerinde dolaşan  ve yine  aynı anda  yan yana  gelebilen 10  sprite'ı  görenler
ister istemez Chorus'un  10 sprite basmanın  bir yolunu bulduğunu  düşünüyorlar.
Hayır, hala 8'den fazla sprite aynı sıraya basılamadı. Ama Chorus'un  bu  konuda
güzel  bir  ikna  yeteneği  olduğunu  itiraf  etmek  lazım.  Ben  olsam   demoya
IRRATIONAL  yerine  RATIONAL   ismini  koyar  ve   bu  10  sprite   probleminden
kurtulurdum.

Bu bölümü seyretmeye  doyamıyoruz. Hele  ki 4  ekranlık grafik  bir harika.  Ama
sonunda istemeye  istemeye elimiz  space tuşuna  gidiyor ve  bir sonraki  bölüme
geçiyoruz. Bu cümleden de  anlayacağınız gibi bu demo  bir trackmo değil,  press
space demosu.  Sıradaki  bölüm  bir  AFLI  plazma.  Efekt  alanının  çözünürlüğü
280x140. 2 raster  satırında bir  tarama yakalatılarak  renkler değiştirilen  ve
tech-tech   mantığıyla   da   sola   kaydırılan   bir   efekt.   AFLI   modeunda
kullanılamayan  sol  üç   kolonluk  alan   multicolor  spritelarla   kapatılmış.
Aşağıdan geçen  kayan yazı  ve  yazının arkasından  dönerek ilerleyen  8  köşeli
yıldız      animasyonu      bölümü      tamamlayan      unsurlar       olmuşlar.

Bir  kez  daha  space'e  bastığımızda  bu  devirde  bir  çok  kişinin  kodlamaya
girişmeyeceği bir bölüm  karşımıza çıkıyor.  Yan borderlardan da  geçen 25  adet
kayan yazı. Kısacası iç  ekranın tamamı boyunca yan  borderlar açılmış ve  sağda
solda 3'er,  toplamda  bir  sırada 6'şar  sprite  kullanılarak  bir  multiplexer
yapılmış. Ancak bu bölümün  gerçekten de teknik  bazı zorlukları var.  Bunlardan
en  önemlisi  yan  borderları  da  kullanan  25  tane  kayan  yazıyı  aynı  anda
kaydırmanın mümkün olmaması. Ancak  zaten bu bölümde  buna çözüm bulunamamış  ve
yazılar duraksayarak  ilerliyorlar  ve  hep beraber  güzel  bir  dalga  görünümü
oluşturuyorlar. Ama  elbette  ki bu  duraksama  yalnızca hoş  bir  efekt  olarak
değil, zamanlamanın 25  sıra yazıyı birden  kaydırmasına yetmeyeceğinden  dolayı
konulmuş. Bu  bölümde göze  hoş görünen  şeylerden biri  de arka  plan  renginin
geçen raster renkleriyle  değişmesi. Yan border  açma konusunda eğitici  döküman
olabilecek bir bölüm bu kayan yazı bölümü. Ancak yine de günümüzde  demo  efekti
olarak çok da ilgi çekici olduğunu söyleyemem.

Yalnızca 4  bölümden  oluşan bu  kısa  ama  tatmin edici  demonun  son  bölümüne
geldiğimizde bizi  öncelikle  Leon'un güzel  bir  grafiği karşılıyor.  Bu  resim
ekranı terkettiğinde  ise  split  benzeri güzel  bir  ekran  karşımıza  çıkıyor.
Sinus hareketine  bağlı  bir  şekilde her  raster  satırında  ekran  istenildiği
yerden ortadan ikiye bölünüyor. Arkadan kayan renkler multiplexer  spritelar  ve
ekran ise 320x200  hires grafik ekranı.  Aslında herhangi bir  split söz  konusu
değil.  Efekt   yalnızca   hafızaya   açık  olarak   yazılmış   hızlı   transfer
rutinlerinden ibaret. Bu son bölüm için demonun geneline göre görsel  ve  teknik
anlamda zayıf bir bölüm diyebiliriz.

Demo tekrar eden  bir yapıda, son  bölümden sonra yine  başlangıç bölümüne  geri
dönüyor. Bu da  akıllara 2004 yılının  en çok beğenilen  demolarından biri  olan
"Booze Design"ın "Cycle" demosunu getiriyor.

Genel bir  değerlendirme  yapmak  gerekirse  Irrational,  Chorus'un  geçen  sene
yayınladığı Demode  isimli  demosuna göre  daha  az bölümden  oluşuyor  ve  daha
basit bir demo. Ancak yine de çok temiz programlanmış olması,  Leon'un  kaliteli
grafikleri  ve  "Drax",  "Fanta"   ikilisinin  müzikleriyle  birleşince   ortaya
bambaşka bir  sonuç  çıkıyor.  Press  space  tipi  olması  ise  80lerin  90ların
demolarıyla  büyümüş  scenerlarda   hoş  bir   nostalji  uyandırıyor.   Kısacası
Irrational  çok  uzun  bir  demo   olmamasına,  "Arok"  partisinde  alel   acele
bitirilmiş  olmasın  rağmen,  Arok  partisinin  birincisi  ve  2005  yılının  en
iddialı demolarından biri olmayı başardı.

Chorus grubu şu  an için hemen  hemen Clarence ve  Leon'dan ibaret  sayılabilir.
Diğer bütün elemanlar gruptan ayrılmış durumda. Ancak bu iki scener 10   kişilik
bir  gruba   bedel  faliyet   gösteriyor.  Özellikle   Leon'un   son  zamanlarda
yayınladığı "Dream  Land",  "Death  Land" ve  "Nightmare"  gibi  seri  halindeki
grafikleri ile grup  demo harici de  aktivitelerini sürdürmekte. Chorus  yeniden
aktivite  göstermeye  başladığından  beri  2004'de  yayınladığı  1  demo  ve   1
grafiğin ardından 2005  yılında 1  demo, 1  4kb intro  ve 9  grafikle aktif  bir
şekilde yoluna  devam ediyor.  Ben  de Chorus'un  bir destekçisi  olarak  onlara
2006'da da  başarılar diliyorum.  Umarım 2006'da  aktivite yönünden  Fairlight'ı
geçerler ve bu sayede eski  ruhla kaliteyi birleştiren nice demolar  seyrederiz.

Commodore  64  demo   gruplarına  oy  kullanacağınız   zaman  Chorus   aklınızda
bulunsun, oylarınızı sonuna kadar hak eden bir grup. Eğer benim  gibi  demoların
tasarımından  çok  teknik  programlamasına  ilgi  duyuyorsanız,  Chorus   favori
grubunuz olma yonunda ilerliyor. Yeni Chorus demolarını dört  gözle  bekliyoruz.
Başarılar Clarence, başarılar Leon.

Benimle irtibata geçmek isteyenler için e-mail adresim;
[b]skate@glance.ws

Emir Akaydın
Skate / Glance[/b] 

********************************************************************************
İNCELEME : 2005 PC DEMOLARI - BÖLÜM 1
********************************************************************************

"Hangi bahar?  İlkbahar  mı  sonbahar  mı?"  geyiklerini  bir  kenara  bırakacak
olursak, her sene olduğu gibi 2005'de de Mart gibi yeni demolar  ortaya  çıkmaya
başladı. Seneyi  kış haricinde  3  mevsime böldüm  ve  bu ayın  review köşesini
ilkbaharda çıkan demolara ayırdım.
İlkbahardaki  en   önemli   etkinlik   tabi   ki   Breakpoint'ti.   Geçen   sene
Winnerdemo'yu  birinci  yapan  Breakpoint  oylayıcısının  fikirlerini  göz  ardı
ederek review edilecek dört demo seçtim.

Breakpoint dışarısından Fair Play to the Queen gibi görülmesi gereken  bir  demo
çıktı.   Bunun   dışında   listeye   Nesnausk'un   yeni   demosu   da   eklendi.

Birazda  review  edilenlerin  dışındaki  demolardan  bahsedelim.  Breakpoint'ten
Matt  Current'ın  Rapid   Eye  Movement'ı  da   hatırlanası  bir  demoydu.   The
Gathering'de de Portal  Process'in Meet  the Bios isimli  demosu kayda  değerdi.
Fakat  Portal  Process  bu  senenin  en  güzel  demoları  listesine  daha  sonra
çıkardıkları demolarla imza attılar.

Neyse bu  kadar özet  yeter. Bir  dahaki aya  2005 yaz  demolarını  işleyeceğiz.
Şimdi sizi bahar demolarıyla baş başa bırakıyorum.

[b]STS-03: BUTTERFLY THOUGHTS - Traction (Breakpoint  2005   Onikincisi)[/b] 

Güzel müzik,  sallama  olmayan efektler,  fraktallar,  tüneller,  senkronizasyon
oyunları ve bol  bol part... Benim  için bunlar bir demoyu  güzel yapmaya  yeter
de artar bile. Butterfly Thoughts'da da hepsi var.

Demonun partları ortak bir  konu üzerinde değil  ama müziğin yarattığı  atmosfer
ve ona uyumlu efektler  demoda tutarlılığı büyük  ölçüde sağlıyor. Gfxler  biraz
ben nerdeyim diye soruyor ama kod oldukça tatmin edici. Traction'a  özgü  ilginç
vektör oyunları  ve  çizgi  efektleri  demoyu  izlenir  kılan  önemli  unsurlar.

Demo, labirent  yüzeyli  küp  ve  plazma yordamıyla  gfx  gösterme  gibi  ilginç
fikirler  de  içeriyor.  Fraktal  ise  güzel  kodlanmasına  rağmen  biraz   daha
süslenebilirdi. Demonun geri  kalanı ise bilindik  ama kesinlikle vasat  olmayan
efektlerle dolu.

Sonuçta elimizde, bir  haftasonu sabahı elimizde  kahve fincanıyla sonuna  kadar
kopmadan izleyebileceğimiz bir  demo var. Traction  zaten tekrar tekrar  izlemek
istediğim demolar yapan bir  grup, Butterfly Thoughts da  bu duruma bir  istisna
değil.

(Not: 6)

[b]STS-03: AEON FLUX - Synesthetics (Breakpoint   2005   Sekizincisi)[/b] 

2005'te  ortaya  çıkan  gruplar  arasında   en  büyük  çıkışı  yapanı   şüphesiz
Synesthetics oldu.  İsmine  rağmen  Aeon  Flux grubun  ilk  demosu,  en  azından
bizimle paylaştıkları ilk demoları.

Demo belli  bir hikaye  üzerine  kurulu değil.  Zaten demo  boyunca  izlediğimiz
görüntüler fazla  değişmiyor. Ama  bu  durum ne  demoyu  sıkıcı kılıyor,  ne  de
harika olmasını  engelliyor. Başlangıçta  etrafta uçuşan  2d boblar  yerini  bir
süre sonra benzerleri  bir kübe  bırakıyor ve uzun  bir süre  bu kübün  şekilden
şekle girmesini  izliyoruz. Demonun  sonunda ise  ilginç bir  uzay gemisiyle  bu
ortamdan  ayrılıyoruz.  Dediğim  gibi   hikaye   olarak   fazla   şey  sunmuyor.

Demodaki 2d bob ve  3d objelere bir çeşit  çizgi film havası verilmiş.  İkisinin
çizim teknikleri çok  farklı olmasına  rağmen güzel  bir tutarlılık  yakalanmış.
Aslında dizayn bakımından tek  numarası da bu denebilir.  Ama Aeon Flux'ın  asıl
dikkat çeken elemanı tabi  ki müziği. Başlarda  raggae tadı yakalayan  melodiler
birden  hızlanıp  oldukça   gaz  bir   trance  parça   oluşturuyor  ve   demonun
çekiciliğini sonuna kadar üst seviyede tutuyor.

Çok çeşitlilik içermese de  hoş görüntüler ve gaz  bir müzik eşliğinde  izleyeni
sıkmadan kendisini  sonuna  kadar götürüyor.  Kod  açısından da  çok  etkileyici
olmamasına rağmen  estetiğiyle öne  çıkan  bir demo  Aeon  Flux. Son  olarak  da
buraya  yazıyorum,  Synesthetic'in  adını   da   ileride  bol   bol   duyacağız.

(Not: 7)

[b]AETHER - Mfx (Breakpoint 2005 İkincisi)[/b] 
Geçen sene X-Mix gibi olağanüstü bir demoyla Breakpoint'e katılan Mfx,  bu  sene
de bekleneni yaptı ve harika bir demo çıkardı. Aether, yüzeyinde bir takım  demo
stili  nesnelerin  yaşadığı  Platonik   bir  gezegende  başlıyor.  Ama   demonun
etkileyici  kısmı  bu  nesneler  değil,  nesnelerin  çiziminde  ya  da  yardımcı
öğelerde kullanılan particlelar.  Basit 2d bloblarla  ne kadar güzel  görüntüler
oluşabileceğine tanık oluyoruz.  Zaten demonun ismi  (dilimizde esir) de  uzayda
maddenin olmadığı yerleri  kaplayan element anlamında.  "Bu güzel efektler  hava
olmaz  su   olmaz,   olsa   olsa   esirdir."   mantığıyla   verilmiş    kanımca.

İlk  kısmın  sonunda  gezegenden  ayrılıyor  ve  uzay  boşluğunda,  yani  esirin
kollarında  yol  alıyoruz.  Ve  demonun  sonunda  tekrar  gezegene  dönüyor   ve
bahsettiğim nesnelerden birinin dansını izliyoruz. Nesne diyorum  çünkü  elleri,
ayakları, kafaları  olan  ama  bu  organlarının tamamı  eş  yapıda,  ucubik  bir
yaratık bu.  Dans  ederken  zıplayıp  elleri  üzerinde,  sonra  kafası  üzerinde
hareket  etmeye  başlıyor.   Bir  süre  sonra   hangisi  kafa,  hangisi   ayaktı
unutuyorsunuz. Mfx daha sonra, sadece bu dans eden ucubenin olduğu  "The  Ballet
Dancer"  isminde  yeni   bir  demo  çıkardı.   Yalnız  orada,  Aether'deki   kar
tanelerinin yerine kan damlaları kullanılmış. Daha mı güzel olmuş,  izleyip  siz
karar verin.

Demoda görülen 2d çizimler, Visualice'in karakalem çalışmaları.  Çizimler  güzel
ama görüntüdeki  öğelerin çokluğu  sebebiyle ikinci  planda kalmışlar.  Yine  de
onlar olmadan demonun çok  daha zayıf gözükeceği açık.

Little  Bitchard   ve  Mel   Funktion'ın  Aether   için  hazırladıkları   müzik,
Protozoa'daki  çalışmalarını  çok  fazla  andırıyor.  Ama  yine  de  Aether'deki
ortamın  havasını  yakalamayı   başarmışlar.  Şarkının  ortalarındaki   cizziyup
dızzurt efektleri  olmasa daha  güzel olabilirmiş  tabi. Ne  olursa olsun  demo,
uzunluğuna rağmen sıkıcı olmamasını müziğe borçlu.

Dediğim gibi  Aether'in en  göze  çarpan özelliği  içerdiği çok  güzel  particle
efektleri. Particlelar  demoyu kolayca  şekilsizleştirebilir. Bu  yüzden  vektör
ağırlıklı   çizimler    kullanılır.   Ama    Aether,   particleların    başarılı
kullanıldıklarında neler  yapabileceklerini  kanıtlıyor. Son  söz  olarak,  yine
ilginç Breakpoint  oylayıcısı  yüzünden  bu  sene  de  birinci  olamayan  Mfx'in
Aether'inin, 2005'in  en  hatırlanır  demolarından biri   olduğunu   söyleyelim.

(Not: 8)

[b]195/95 - Plastic (Breakpoint 2005 Birincisi)[/b] 

Plastic  deyince   aklıma   iki   şey  geliyor.   Birincisi,   en   son   grafik
teknolojilerinin kullanıldığı ve bu yüzden ya hiç çalıştıramadığım ya  da  keşke
çalıştırmaz olaydım dediğim  demolar; ikincisi ise,  gerçekten şahane  modellere
sahip, enfes müziklerle  bezeli ve imkansız  görüntü kalitesinde demolar.  Geçen
sene "Your Fingers  so Gently on  My Skin" ismi altında  bunları harfiyen  yapan
bir demo çıkaran Plastic,  bu sene de onu  aratmayacak bir kardeşiyle  karşımıza
çıktı. 

Demo daha  hemen  başlarda,  arkadan  hoş tınıların  geldiği  bir  modern  sanat
müzesinde yapılmış  kamera kaydı  gibi geliyor.  Bunun sebebi  tabi ki  çok  iyi
kaplanmış ve  oldukça gerçekçi  şekilde  renderlanmış soyut  modeller.  Özellike
dansçı modeline  baktığınızda, annenizden  dayak  yememek için  düşmeden  sağlam
bir yere koyma isteği doğuruyor içinizde.

Müzik  hızlanmaya  başladığında  ise  bir  demonun  içinde  olduğunuzu  anlayıp,
gerçek yaşama  geri  dönüyorsunuz. Tabi  ki  bu, görüntü  ve  model  kalitesinin
düşmesi yüzünden değil, modellerin wireframe gösterilmesi gibi daha  demo  tarzı
bölümlerin başlaması sayesinde oluyor.

Hemen ardından ise  demo tarihinin  en gerçekçi tüneline  giriyoruz. Bu  tünelde
aşağı  doğru  yuvarlanan  bir  mermer  parçasını  takip  ediyoruz.  Ardından  da
maalesef demo sona eriyor.

Biliyorum bir  on sene  sonra  çizgi film  tadı  alacağız bu  görüntülerden  ama
bugün,  gerçek   zamanlı   bilgisayar   grafiği   teknolojisinde   gerçekçiliğin
sınırlarında demek  zorundayız. Görüntülemedeki  profesyonelliği tabi  ki  ekran
kartlarına borçluyuz.  Yumuşatmalar ya  da environment  mapler modellerin  biblo
gibi  görünmesini  sağlayan  unsurlardan  bir  kaçı.  Bu  yüzden  böyle  demolar
hazırlamakta coderlara fazla  iş düşmediği  iddia edilebilir.  Çünkü demoda  çok
fazla tanıdık efekt  yok. Efektler  genel olarak  demonun görünümünü  belirleyen
kodlar halinde.  Ama yine  de  yeni teknolojileri  herkesten önce  uygulayan  ve
muhtemelen zamanının çoğunu shader kodu yazmakla geçiren Bonzaj'ı  takdir  etmek
lazım.

Harika modelleri tasarlayan Witja, model ve arka plan  kaplamalarını  hazırlayan
Xenusion ve  bu  güzel  müziği  hazırlayan  Cdnalsi'yi   de   unutmayalım  tabi.

Bu arada RGBA  manyaklarının bu  demoya bir 64k  remake yaptığını  hatırlatalım.
Müzikte biraz  (?)  farklılık var  ve  bir kaç  part  eksik ama  bu  haliyle  de
insanın aklını  başından  alıyor. Parti  sürümünün  ardından Bonzaj,  RGBA  için
demonun datalarını açtı  ve onlar  da daha iyi  bir final  sürümü çıkardılar.  O
demoyu da 195/95/256 ismiyle bulabilirsiniz.

(Not: 8)

[b]FAIR PLAY TO THE QUEEN - Candela (Birdie Birincisi)[/b] 

Tüneller,  bloblar,  kamera  yolları,  senkronizasyon,  iskelet  animasyonu   ve
görüntü filtreleri  vs. son  2-3  yılda çıkan  hemen  hemen tüm  demolarda  olan
şeylerden. Bunların  hepsini  ya  da çoğunu  yapabiliyorsanız,  hemen  art  arda
partlar yazıp,  aralara  geçişler  ekleyip  bi kaç  yere  de  gfx  eklediniz  mi
genelde  başarılı  bir  demo  çıkar  ortaya.  Ama  herkesin  yıllar  sonra  bile
konuşacağı bir  demo yapmak  için  biraz daha  fazlasına ihtiyaç  var.  Demonuzu
diğerlerinden farklı  kılacak  bir  şeye. Yukarıda  saydığım  elemanların  hepsi
Fair  Play   to   the  Queen'de   var   ama    işte   o    bahsettiğim   farkla.

Demomuz  bir  robotla  başlıyor  ve  bu  robot  koşmaya  başlıyor.  Evet  sadece
koşuyor. Ama  birazdan  robotu  platform oyunu  açısından  izlemeye  başlıyoruz.
Robot enfes bir  blob efektinin yanından  geçiyor ve sonra  bir tünele  dalıyor.
Tünelin çıkışında tekrar  bir platform  oyunu kahramanı  gibi koşmaya  başlıyor.
Bu esnada arka  planda greetz  geçiliyor. Tam  "Nerde senkronizasyon  oyunları?"
derken müzikle  birlikte yanan  küplerle  karşılaşıyoruz. Küplerin  sonunda  yol
sona eriyor ve  robotumuz kendisini aşağı  atıyor ve aşağı  doğru eğimli  farklı
bir yola düşüyor. Ama  o da ne? Yol  yıkılmaya başladı! Robotumuz Indiana  Jones
edasıyla kaymaya başlıyor ve  bize de bu  heyecanlı saniyeleri izlemek  düşüyor.
Yolun sonunda  da bölüm  sonu  kapısından geçerek   sonraki bölüme   ulaşıyoruz.

Evet sadece  bir  iki tanıdık  efekt  var demoda  ama koşan  robot  tüm  demonun
çehresini değiştiriyor. Tetrisi  tetris yapan şeyin  düşen kareler olması  gibi.
İyi    bir     fikir    çoğu    zaman     en     basit     fikir     olabiliyor.

Demonun  müziğinde   de   aslında  benzer   bir   durum  söz   konusu.   Country
melodileriyle süslenmiş bilindik dımp tıs demo müziği desem bi şey  ifade  etmez
sanırım. Galiba dinlemeniz şart.

Kafadan GeForce  6800  istediğini söyleyen  Fair  Play  to the  Queen  sizde  de
çalışmazsa maalesef videosuyla  idare edeceksiniz. Ama  bence göz atmaya  değer,
böyle orjinal fikirlerle sık karşılaşmıyoruz.

(Not: 10)

[b]IN.OUT.SIDE: THE SHELL - Nesnausk![/b] 

Asıl  çıkışını  geçen  sene  Syntonic  Dentiforms  ile  yapan  Litvanyalı   grup
Nesnausk!, bu sene bir  demoparti için değil  de Microsoft'un ImagineCup'ı  için
bir demo hazırlamayı tercih etti.

In.Out.Side:  The  Shell,  Nesnausk!'un   grafik  motoru  Dingus  ile   yapılmış
teknoloji odaklı bir  demo. Efekt  olarak fazla sürprizleri  yok ama  modelleme,
karakter animasyonu  ve  görüntü  kalitesi hayli  yüksek.  Demoda  bir  elemanın
(robot?) boş  bir  odada  gözlerini  açması  ve  etrafını  anlamaya  çalışmasını
izliyoruz. Elemanımız odanın boş sıvasını ilginç güçleriyle yok  edip,  ardından
çıkan bir  kapıdan  başka bir  odaya  geçiyor  ve burada  başka  kendine  benzer
elemanlarla karşılaşıyor. Cube filmini izlediyseniz bu hikaye size  çok  tanıdık
gelecektir. Demo "İçinizdeki gücü keşfedin." gibisinden gudik bir  mesajla  sona
eriyor. Sondaki  scrollda da  elemanın  bir  kaç  random  hareketini  izliyoruz.

Evet pek  sürükleyici  bir  hikayeye  sahip  değil  ama  benzerlerinden  kolayca
sıyrılan  bir  görüntü  kalitesine  sahip.  Özellikle  ilk  izlediğimde  sıvanın
altından çıkan  kaplamalara  oha  diye tepki  verdiğimi  hatırlıyorum.  Elemanın
iskelet yapısı da jelimsi güzel bir efektten oluşuyor.

Elemanı yönetecebileceğiniz bir  interaktif moda sahip  olması ve devasa  boyutu
da demoyu  2005'in ilk  yarısının hatırlanan  demoları arasında  sokmaya  yardım
ediyor.

(Not: 6)
[b]Anesthetic / Resident[/b] 

********************************************************************************
RÖPORTAJ : NIGHTLORD
********************************************************************************

<spritus>  Selam nightlord. kendini  kısaca tanıtır mısın? Gerçek ismin,  yaşın,
işin vs.
<nightlord>   Merhaba... gerçek  adım Bilgem  Çakır, 28  yaşındayım,  elektronik
mühendisiyim        yazılım         mühendisi        olarak         çalışıyorum.

<spritus>   Demoscene  maceran  nasıl  başladı? bu  sefer  kısaca   olmasın   :)
<nightlord>    Benim  neslimdeki  çoğu  scener  gibi  ben  de  ilk  olarak  oyun
başlarındaki introlardan kıllandım önce  :) bişeyler oluyor birileri  birilerine
mesajlar atıyor diye.  Daha sonraları introlardaki  scrollerin tamamını  okumaya
başladım.  Ardından  90   başlarında  commodore  dergisinde   demolar  ve   demo
gruplarının  tanıtıldığı  bir   yazı  yer  aldı,   derken  sonunda   Ankara'daki
bilgisayarcıları  dolaşıp   oyunlarınızı   kimden   alıyorsunuz   diye   sormaya
başladım. Sonunda bir  gün bir bilgisayarcıda  falcon/accuracy ile  karsılaştım.
Ben  bu  soruları  sorarken  duyup  benimle  tanıştı  ve  beni  inox  grubu  ile
tanıştırdı. Resmen  scene'e girişim  ilk olarak  inox grubuna  üye olarak  oldu.

<spritus>   Hmmm.. daha  önceden programlamaya  bulaşmıştın ama  değil mi?  Hani
basic'le  o  gördüğün   introlardan  umutsuzca  kodlamaya    çalıştın   mı?   ;)
<nightlord>   Hehe..  Tam  sayılmaz  ilk olarak  basic  ile  oyun  tarzı  şeyler
yapmayı denedim. Öğrendiğim  ilk komutlardan sonra  text adventure  kodlamıştım.
Ardından spriteları kullanarak  bir shootem up  oyunu yazdım. Derken  background
için bitmap grafik kullanma ihtiyacı doğdu  :) ve bitmap grafikler c64  kullanma
kılavuzunda anlatılmıyordu
<spritus>  :)
<nightlord>  O  aralar Programcının  El Kitabını  aldım. Orada  makine dili  ile
tanıştım. Zaten her ay commodore  dergisini alıyor ve oradaki tutorial  yazıları
takip ediyordum,  fakat  çoğu  bana  çok ağır  geliyordu.  Buna  rağmen  hepsini
okuyup anlamaya çalışırdım.  Bu sayede  yavaş yavaş bir  yazıdan öğrendiğim  ile
başka  yazıda  anlamadığım  yerleri  bağlamaya  başladım  ama  bütün   commodore
dergilerindeki bilgiler  ve  Programcının  El  Kitabı  bile  grafik  programlama
adına çok az  şeyden bahsediyordu.  Kısacası ben basicten  makine diline  geçmem
gerektiğini  erken  bir  aşamada  farketmiştim.  O  yüzden  fazla  basic   intro
girişimim olmadı

<spritus>  Sen  her ne kadar  iyi bir  coder olarak bilinsen  de grafikerlik  ve
müzisyenlik yönünün  de  olduğunu  biliyoruz.  o  zamanlar  klasik  grafiker  ve
müzisyenlerin yaptığı gibi  koala painter veya  future composer ile  ilgileniyor
muydun yoksa sadece yaptığın introlara müzik  ve grafik yapmak için mecburen  mi
uğraştın?
<nightlord>   Ben  grafik  ve müzik  programlarıyla  inoxla  bağlantıya  geçince
tanıştım. Ondan  önce bilgisayarcılarda  böyle programlar  bulamamıştım.  Grafik
için art  studio ile  birkaç denemem  oldu, hayli  kötü şeylerdi.  Müzik  içinse
future composer kullandım.  O zaman elimdeki  future composer kopyasının  içinde
bir müzik vardı, o  müziği silip hazır enstrümanları  kullanarak 5-6 tane  müzik
yaptım. Aslında  o zamanlar  coder olarak  çok önemsenmiyordum,  müziklerim  ise
fena değildi. Hatta  inoxa müziklerim yüzünden  alındım desem yeridir.  Ardından
dmc ile bayağı müzik  yaptım. Hatta çok kişi  bilmez ama 94 yılında  accuracy'ye
geçmiştim ve o  yıl accuracy adına  bir müzik collection  çıkardım. Ardından  96
yılında accuracy dağıldıktan sonra aesrude  grubunu kurmuştuk. Aesrude adına  da
o yıl  bir müzik  collection çıkarmıştık.  97 içinde  de başka  bir şey  release
edemeden  scene'den  ayrıldım.  Yani  bu  birinci  scene  döneminde  iki   music
collection çıkarmaktan başka  birşey yapamamıştım. Silik  ve ezik bir  scenerdim
:)

<spritus>  Eheheh.. Inox grubu nasıl  bir gruptu? Büyük müydü, mesela  dışarıdan
elemanları var mıydı?
<nightlord>   Hatırladığım kadarıyla  hiç dışarıdan  elemanı yoktu.  İstanbul'da
zaz ve  corpse  nickli  iki  kardeş grubun  kurucusuydu  galiba,  Bursa'da  cody
(slowhand)  ve  Ankara'da  hellcat  vardı.  Sonradan  cody  ayrılmış   psychopat
katılmıştı. Sonra ben ve  norvax katıldık ama fazla  zaman geçmeden ve  herhangi
bir    inox     ürünü          çıkaramadan    ben     ve     norvax     ayrıldık

<spritus>  Accuracy grubuna  girişin nasıl oldu?  Sanırım sen girdiğinde  parlak
günlerini geride bırakmışlardı
<nightlord>  Öyle  de denebilir.  Digahole ve mr  brain gibi  iki önemli  eleman
hala aktifti,  ancak kadem,  mr.dj,  falcon, axl  dönemi değildi.  Biz  norvaxla
inoxtan ayrıldıktan sonra kendi  grubumuzu kuracak olduk.  Hatta ilk olarak  bir
diskmag yapalım  dedik.  Bu diskmagde  falcon/acy  ile röportaj  yapalım  dedik.
Falconla röportaj yapmaya  gittiğimde falcon  bizi accuracy'ye  davet etti,  biz
de reddedemedik
<spritus>  :)
<nightlord>  Ben zaten  kadem hayranıydım. İlk olarak  inoxtayken color of  code
demosunu görmüştüm. Bu demo  beni çok etkiledi. Bir  Türk coder'in böyle  birşey
yapabildiğini görünce bana  çok ilham kaynağı  oldu. O zaman  ilk olarak  vector
efektlerinin üzerine gitmeye  karar vermiştim. Accuracy'ye  girmek büyük  onurdu
benim için.  O dönemde  ilk  line vector  denemelerimi yapmıştım.  Bir  accuracy
meetinginde grup  üyeleri  ona  baktılar  ve  oradan  sonra  bizi  almaya  karar
verdiler

<spritus>  Yeteneğinin  takdir edilmesi  gerçekten güzel duygu.  İlk ciddi  demo
projesini     ne     zaman     ve     hangi     gruptayken      gerçekleştirdin?
<nightlord>  Dediğim  gibi 94-97  arası dönemde  bol bol  demo izlemekten  başka
birşey beceremedikten  sonra sceneden  ayrıldım. 95  97 arasında  filled  vector
rutinleri  yapmaya  çalıştım.   97  sonunda   filled  vectorlerimi   tamamlamayı
basardım.  Fakat   bunu   bir  demo   haline   getiremeden  çıktım.   Ama   evde
bilgisayarımda kendi yaptığım ve  yayınlarsam ses getireceğini bildiğim  birşeyi
izleme duygusunu ilk o zaman yaşadım.  Bugün bile demo yaparken en çok  sevdiğim
duygu budur.  Şu  an  önümdeki makinede  çalışan  rutin  yayınlandığında  herkes
şaşıracak ama bunu şu  an sadece ben  biliyorum. Bu duygu  işte. O duyguyu  97de
yaşadım ama demo  çıkaramadım ve  scene'i bıraktım.  Sonra 6  yıl boyunca  scene
ile ilgilenmedim.  Bu  süre boyunca  hep  aklıma geldikçe  rahatsız  oldum.  Ben
filled vektor yaptım ama bunu kimse  bilmiyor diye. Sonunda 2003te bir gün  şans
eseri internette c64 sayfalarına  rastladım. c64.sk ve  csdb üzerinde gecen  bir
iki haftadan sonra c64  scene'in hala çok aktif  olduğunu hatta 97dekinden  daha
iyi oldugunu  gördüm. Bu  beni yeniden  gaza getirdi  ve 2003  ocakta yeniden  3
boyut  motoru  programlamaya  başladım.  2003  martında  Aesrude  markasıyla  bu
demoyu çıkardım.  Sonunda ilk  demomu çıkarmış  oldum. Üstelik  3d  efektleriyle
beraber. Bir  bakıma  scene'e  gerçek  giriş tarihimi  2003  sayarım  bu  yüzden

<spritus>  Demonun ismi water'dı sanırım?
<nightlord>  Evet
<spritus>   Yıllar  sonra  Türkiye'de  halen  aktif  bir  scene  olduğunu  nasıl
farkettin? Eminim çok heyecanlanmışsındır.
<nightlord>   Ben  ilk  scene'e döndüğümde  yabancı  forumlara  mesajlar  attım.
Aktif Türk  grubu var  mi diye,  ama  o sıralarda  kimseden cevap  gelmedi.  Bir
dönem Türkiye'de  kalan  son scener  olduğumu  zannediyordum. Ardından  bir  gün
bronxwhq sitesini  buldum  fakat o  site  de uzun  süredir  update  edilmemişti.
Şimdi tam hatırlamıyorum ama  ya guestbooka mesaj attım,  ya da birilerine  mail
attım. Hydrogen/bronx'tan  cevap  geldi. O  zaman  gerçekten şaşırdım.  Bana  7d
partilerinden  söz  etti.  O  zaman  ilk  olarak  birilerinin  hala  scene   ile
uğraştığını  anladım.  Zaten  ardından  7d4'e  gittim  ki  o  hafta  sonu  benim
hayatımın en unutulmaz  haftasonlarından biri oldu.  7d4teki bütün sohbetler  ve
özellikle de compolar beni  çok heyecanlandırdı. Wisdom,  vigo, turbo gibi  uzak
efsane  isimlerle  yüzyüze  tanışmak  büyük  zevkti.  Buna  ilaveten  benim  ilk
dönemimden tanımadığım  hydrogen, skate,  endo,  datura gibi  isimler,  resident
grubu ve ilk dönemden de tanıdığım  arcane ile yüzyüze tanışıp arkadaş olmak  da
çok   güzel   oldu.   O   partiyi   herhalde   hiç   bir   zaman   unutmayacağım

<spritus>  Bu  partiden sonra da  bir şeyler  oldu ve sessiz  sedasız geçen  bir
dönemden sonra  7d5'te  bombanızı  patlattınız. Bu  dönemi  de  özetleyebilirsen
sevinirim
<nightlord>  Heh  he... O dönem  ilginç bi  dönem oldu. O  sıralarda ben  ikinci
demom  olan  mist'i  çıkarmıştım.  Bu   demoya  çok  emek  sarf  etmeme   rağmen
yurtdışında beklediğim kadar  iyi tepkiler almamıştı.  Çok tek başıma  kaldığımı
ve tırmaladığımı  düşünüyordum.  Daha  iyi demolar  için  daha  büyük  ekiplerle
çalışmak istiyordum.  Partiden  az önce  forumlarda  coop demo  yapabilir  miyiz
diye  konuşuyorduk.  Partide  hydrogenle  de  bunu  konuştuk,  ardından  partide
wisdomla tanışıp  çok  iyi anlaşınca  ben  acaba wisdom'a  grup  kurmayı  teklif
etsem kabul eder mi diye düşündüm.  Zaten ben wisdom'ın hep inanılmaz  yetenekli
oldugunu  kim  bilir  evde  disketlerinde  ne  cevherler  oldugunu   düşünürdüm.
Onların release  edilip dünya  tarafından bilinmemesi  fikri beni  kahrederdi  (
hala da eder ).  Ardından partiden hemen  sonra wisdoma ulaştım.  O da tam  aynı
şeyleri düşünmüş meğerse. Partide gaza gelen  arcane'i de aramıza katıp yeni  bi
Türk grubu  kuralım diye  gaza  geldik. Ben  acayip  güçlü bi  grup  olacağımızı
düşünürken daha  da  inanılmaz bir  şey  oldu. Organizatör  dörtlünün  bronx'tan
ayrılması gündeme geldi. Ben bu  olayları fazla detaylı bilmiyorum. İzmir'de  ve
uzaktaydım, ama sonuç  olarak partiden  birkaç ay  sonra yedi  kişilik bir  grup
olduk.  Hemen  başta  bir  karar  aldık.  İlk  demomuz  çıkana  kadar  kendimizi
duyurmayalım diye. Ayrıca bir  diğer karar da "demo  grubu" olmaktı,. bu  yüzden
diskmag vs gibi  ürünlere de  hiç yönelmedik.  Daha sonra  parti ertesi  gazının
azalmasıyla  uzun  bi   dönem  sessiz  geçti.   Sonra  mart  başlarında   wisdom
breakpoint için  "living" konseptli  bir  demo yapma  fikrini ortaya  attı.  İlk
olarak o zaman  glance olarak gerçekten  ciddi bi çalışmaya  girdik. Bu  dönemin
hemen  başında  wisdom  glance'ten  ayrılmaya   karar  verdi,  ama  grubun   ilk
kurulmasının ve ilk  demosunun tohumunu  böylelikle wisdom  atmış oldu.  Sonraki
dönemde çok hararetli bir çalışmaya girdik.  Bir ay gibi bir sürede  grafiklerin
neredeyse tamamı ve efektlerin önemli  bir bölümü tamamlandı, fakat  breakpointe
yetişemedik.  Ardından  benim  iş  hayatım   biraz  karıştı.  O  esnada   benden
kaynaklanan yaklaşık 2 aylık bir  gecikme yaşandı. Sonra temmuz sonlarına  doğru
ben yeniden demoya  dönebildim. Bundan  sonra grup  yeniden gaza  geldi ve  geri
kalan herşeyi  7d5'e  kadar  tamamladık.  Her  şey  tam  istediğimiz  olgunlukta
bitmese de  bir noktada  sonuçtan hepimiz  memnun olduk  ve böylece  hem  glance
grubu    hem    living    aynı    anda    scene'e    release    edilmiş     oldu

<spritus>  Şu an yeni bir demo projeniz  var mı? (Gerçi hileli bir soru oldu  bu
: ) ) 
<nightlord>    Yine   bişeylerle  uğraşıyoruz   tabii  :)   Ama  glance   olarak
ürünlerimizi  çıkarana  kadar  haklarında  konuşmama  kararımız  sürüyor.  Bunun
yanında benim kişisel  olarak da  7d4'te %70 olarak  yayınladığım OMOT  demosunu
tamamlama projem var

<spritus>   Hmm..  Yeniden  sana  dönelim.  C64  dışında  başka  bir  platformla
ilgilendin mi?
<nightlord>  İşim gereği çok  çeşitli embedded platformlarda geliştirme  yaptım.
Fakat  demoscene   anlamında   bugüne   kadar   c64   dışında   bir   platformla
ilgilenmedim.    Şu    anda    PC     üzerinde    de    geliştirme     yapıyorum
<spritus>  Yine işin gereği tabi
<nightlord>  Evet. Ancak  zaten her platformdan ayrı  zevk alıyorum. Bazen  evde
kendi kendime pc projeleri yaptığım da  oluyor. Bunlar daha çok kendi  çalışmamı
kolaylaştıran küçük araçlar  şeklinde. Bazen  c64 demoları  için bazı  efektleri
yaparken pc de kullanmak üzere  araçlar yazıyorum veya günlük işlerimi  organize
eden araçlar vs
Zaten işim gereği  şu an bütün  gün ofiste pc üzerinde  oyun geliştirme  projesi
yürütüyorum

<spritus>    Sohbetimizin  sonlarına  doğru  yaklaşırken  favori  grup,   coder,
müzisyen, grafiker ve demonu da soralım : )
<nightlord>    Hmm  aslında  bu  dalların  her  birinde  birkaç  cevabım  olacak
Favori   gruplarım:   eskilerden   oxyron   ve   reflex   (93   -   96   dönemi)
Şu  anki  favori  gruplarım  booze  design,  fairlight,  triad  ve  chorus.   bu
grupların  booze  design  haricinde  hepsinde  sevmediğim  yönler  de  var  tabi
Favori  coderlarım:  yine  eskilerden  TTS,  Slammer,  Quiss,  yenilerden   HCL,
Clarence, Krill biraz da Crossbow
Favori Müzisyenlerim PRI, Jeff, GRG
Favori Grafikerlerim 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  scenede  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  bi  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 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 scenerin  Türk  scene'in altın  yılları  diye
düşündüğü  Clique  ve  Accuracynin   disk  dergileri  ile  chartları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 compolara  katılım
ve kalite  bence  çok  iyiydi.  Fakat  gelen  izleyici  sayısı  çok  daha  fazla
olmalıydı.  Scenein  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 sceneden 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 isimiz  daha zor. Eskiden  oyunların başındaki  introlar
sayesinde  daha  çok  insan  gruplardan  haberdardı  ve  en  popüler  bilgisayar
dergilerinde scenerlar yazıyordu
şimdi ise introlar yok,  dergiler word püfleri excel  tüyoları ile dolu.  Umarım
plazma bu alanda  pozitif bi  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


[b]Spritus/Resident[/b]

********************************************************************************
ÖĞRETİCİ DÖKÜMAN : LORD OF THE DEMOS - BÖLÜM I
********************************************************************************

- Haydi bakalim 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,  yuzyirmisekiz 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.
Nelerlazım bize sonuçta.  Düşünelim bakalım.  Demo dediğimiz  şeyi standart  bir
oyunapplication v.s.  gibi şeylerden  ayıran tarafı,  user interaction  kısmının
hemenhemen hiç  olmaması. Yani  'escape'  dışındaki bir  tuşu kontrol  eden  bir
demotürüne henüz rastlamadım  (çok enderdir, yok  space'e basarsın secret  music
gelirfalan  filan...)  Bu  yüzden  o  açıdan  epey  bir  şanslıyız.  Yani   user
interactionyoksa  herşey   daha  bi   kontrol   altında  olur.   Aslında   temel
yapacağımız şey  birmü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  dasanatsal  bi  tarafı  olan bi  yapıdır.  Yani  aslında...  Film
çekiyoruz...  Başlarve  bir  süre  sonra   da  biter.  Hiç  bir  şey   farklılık
göstermez.  Çok  enterasanş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  zamanburdan ş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
libtasarı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  kullanilabilecek
bir AIlibrary'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  gurup tridi  objeyi çok  rahat  bi  şekilde
ekrana istedigimiz şader'la  basabilecek bir  yapı !?  Yoksa procedural  texture
hazırlayıpo texture'u  ekrana basan  bi yapı  !? Yoksa  3-5 pass'de  hazırlanmış
3-5 textureu  alıp  onlara screen  space  effect ile  post-processing  yapan  bi
yapı!? Yoksahepsi  mi  !? Yani  yok  bunun  tam cevabı.  Mükemmelini  de  yapmak
imkansız. İki  günsonra  aklınıza "yaa  hadi  burda da  bezierlerden  4.  derece
fractal bişii  çizdirip arkasında  da radiosity  hodo hodosu"  yapiim  dediğiniz
anda o library'den tek bir function çağırmıyot 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  yani  sıra??..Müzik!..   Evet  müzik  veya   ses
effectleri. Burda yapılacak  abartı miktarda birşey  yok açıkçası. Genel  olarak
seseffect'leri  çok  kullanılmaz.  Yani  ya  direk  müziğin  içine  gömülüdür  o
effectlerya da... Yoktur..  O yüzden  demo'muz başladığı  andan itibaren  sadece
'play' diyip, arkasından herşeyi kendi haline bırakmak herzaman 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  anlamdakolaylaştıran  bi  kaç yapı  daha  vardır.  Bunların  arasında,
memory  manager,   resource   manager  (texture,sound,meş..vs.   gibi   şeylerin
yuklenme mekanizmasıve demo tarafından erişebilirliği..) ve en  önemlisi  thread
manager  librarysi.Biliyosunuz  artık  günümüzde   bir  adet  CPU  diye   birşey
kalmadı. Bir  adet CPUbile  olsa  sistemde bir  de GPU  diye  bi kavram  var  ki
bunlardan maximum performansı  elde etmek  istiyosak 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ıkya dual-pentium ya da en azından  hyper-thread  pentium ayarında
aletler var. Kalkip da CPU'nun %50'sini kullanan ve GPU ile sync  olmayan  (yani
GPU  calışırken   CPU  bekler   veya  CPU   calışırken  GPU   bekler)  bi   yapı
hazırladığımızdamakinadan  alacağımız  performans  kafadan  üçte  birine  düşer.
İşte burdakisync olayları için kesinlikle bir thread manager,  task  managervari
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  meşleri
sortederken GPU'da  bi onceki  frame'i present  etmek için,  bi önceki  frame'in
sortedilmiş  meş'lerini   çizebiliyo  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.

- Tamam guzeldir, nedir yani şimdi bu bahsettiklerimiz:
========================================================

Özetle şöyle basit bir şekil çizelim ascii miz ile:

   thread/task manager    resource manager
                                |           |--> audio render
timer -----> demo flow -- demo core engine -|                  (AV layer)
                                |           |--> video render
                          memory manager
                          
Her  bi   component   aslında  kendi   başına   bile  kitap   olabilecek   kadar
detaylı.Fakat demo  durumunda  bu  detayları  mümkün  olduğunca  atabiliriz.  Ve
işimizeyarayan kadarı  üstüne  konuşup  bi  design  çıkartabiliriz.  Hangisinden
anlatmayabaşlayacağım ben de  bilmiyom ama, şöyle  basitçe bi timer'dan  girelim
bakalımnerelere  gidiyor  durum.  Tabi  bunu  design  ederken  her  zaman  diger
component'larıgözümüzün  önünde   bulundurmalıyız  ki,   sonuçta   çıkaracağımız
design düzgünbir yapı  olsun ve  istediğimiz deişikliği  parmak şıklatana  kadar
yapabilelim.

- Let the time flow:
====================

Evet timer. GetTickCount(), GetPerformanceCounter(), Gettime(),  ... Bunlar  boş
şeyler. Yani önemli  olan time'i  nasıl aldığımız  değil. Hiç  de bir  önemiyok.
İki gün sonra  function'ın adı belki  de "GiveMeTheTimeMothaFucker()"  olabilir.
Dediğim gibi hiç bi önemi  yok. Önemli olan burada  bu time olayını nasıolup  da
sisteme entegre  edeceğiz.  Bunun  üstüne  değineceğiz.  Demonun  akışı  tamamen
time'a bağlıdır. Belli  bir zaman geldiğinde  belli şeyler yapılması  istenilir.
Bunun design'ını yaparken  bir başka istediğimiz  husus, rahat debug  edebilmek.
Yani  belki   de   istiyoruz  ki   bütün   demo...  Aslında   yavaş    çalışsın.
Normalzamanın  ne  biliim  ben  9.3562   de  birinde.  Çünkü  o  zaman  belki de
görülmeyen bir bug'ı yakalayabiliriz. 

Aynı yapı  oyunlarda da  çok sık  kullanılır. Rahat  debug edebilme,  'constant'
fpssağlamak, gerektiğinde  başka  bi  virtual  timer  ile  değiştirmek,  kafadan
40.saniyeden başlatabilmek...v.s.  timeline gibi  düşünün.  nasıl ki  ben  35.ci
saniyeden film  playlesin diyosam  demo'da da  bunu diyebilmeliyim.  ve her  şey
ona göreduzgun bir şekilde akmali.

Tabi bütün bunların dışında en önemli sorun (ki bi çok kişinin  dikkat  etmediği
mevzu...) Constant frame rate. Nasıl olur da sağlanır. ? Bıraktım  defoyu  bugün
bi çok profesyonel  oyun bile  adam gibi  sağlayabilmiş durumda  değil bunu.  Bi
pixel ilerletirsin  adamı/arabayı/yaratığı...frame  rate 75fps'den  35'e  düşer.
... "u-uh..  No!..  Bad design"..  Eee  napacaz  !? Hah  çözüm  bulduk!..  Bütün
olayi35 fps'ye setleyelim o  zaman. O zaman düşmez.  Yani bütün demo'ya  bakalım
en düşük kaç  fps oluyo ona  bakalım. Ona setleriz bütün  akışı.. Yooo  dostuuum
yooo zaman cpu  o 75fps yapabildiği  yerde boş  kalıyor mu olacak  ?! Yok  böyle
bişii."unused system resource" exception fırlatılır suratına!  Madem  ki 2 cpu 1
gpu'muzvar dibine  kadar  kullanıp.  Mümkün olduğunca  da  constant  frame  rate
nasıl sağlanır.bunu  kasmak gerekmektedir.  (bu arada  design temelini  2 cpu  1
gpu muş gibi varsayıyorum.  Şu an için  sizde böyle bi  sistem olmasa da  bundan
sonra böyle olacak bu  iş.. Hatta yakında  4/8 cpu 2/4  gpu olması an  meselesi.
(slı  cards,  multiplecpu  boards...etc..  Fiyatları  her  geçen  gün   düşüyor)

O zaman nasıl yaklaşmalıyız  olaya. Oyunlarda çok  sik kullanılan bir  yontemden
bahsetmek istiyorum  burda. Bu  yöntemin bir  dezavantajı var.  Her şey  totalde
bir frame geriden takip  ediyor. Yani şu  an hesaplanan bir  frame var fakat  şu
an çizilmekte (audio/video) olan frame aslında bi önceki frame. Basit  bi  delay
özetle. Oyunda insanlar  bunun kurtardığını söylüyor  (50 fps hesabimiz varsa 20
ms  lik  bi  delayden  bahsediyoruz)..   Demo  da  hayli  hayli  kurtarır.   Ama
flexibleve     constant     time      control     çok     önemli     bi    konu.

İlk vermemiz gereken  karar  demomuzun  kaç  fps  olacağına  karar  vermek. "eee
abicim varsın  gitsin  1000 fps...süper  işte  baksana okuz  gibi hızlı..."  yav
kime ne  canim  kardeşim  1000  fps ne...  Ayni  frame'i  1000  kere  hesaplayıp
basmanın kime  ne  faydası  var""olur mu  ya  bak  760 fps  idi...  1000  fps'ye
çıkardım..."boş laflar bunlar.  Basit bi filme  bakalım sinemada gördüğümüz  bir
film  24   fps.televizyonda  gördüğümüz   sahneler   25  fps'dir.   (50fps   ama
interlaced) bunun  böyle  yapılmasının sebebi  insan  gözünün onun  ötesinde  ki
frame'leri aslında  kaçırıyor  olması.  Yani  arka arkaya  akan  30  frame'e  bi
saniye de  bakarsanız  aslında  göz biyolojik  sebeplerden  bu  frame'lerin  6-7
tanesini kaçırır. Orda öyle bi resim gördüğünüzü bile bilmezsiniz. O  yüzden  bu
fps'yi insanin nasıl  algıladığına yakın  bir şekilde  seçmek kesinlikle  makine
acısından  ve  düzgün  resource  kullanımı   açısından  en  güzel  seçim   olur.
Oyunlarda bu biraz daha yüksek tutulur.. Örneğin 50-60fps oyun için  yeterli  bi
fps'dir. Normal film  fps'sinden biraz  daha yüksek olmasının  sebebi ortada  bi
user-interaction'in olmasından  kaynaklanıyor.  Yani tam  frame'in  başında  bir
hareket yaptığınız anda  onun etkisini40ms sonra  ekranda görmek biraz  delay'li
olabiliyor (25fps = 40ms per frame)ama 20ms'lik bi delay açıkçası çok  da  belli
olmuyor.. (yani  50  fps)  ama  başta  da  dediğimiz  gibi  demo  olayında  user
interaction yok. Herşey kontrolümüz  altında her turlu  fake'e açığız. O  yüzden
birazcık    daha    düşük     fps    hedeflemek     açıkçası    bize     koymaz.

Bi  ikinci  husus   bu  hedef  fps   yi  seçerken,  (hani   demiştim  ya   diğer
componentlara da  bakmak  lazım)  gfx  lib'imizi de  göz  önünde  tutmak  lazım.
Ekranımızın  tarama  frekansı  da  çok  önemli.  Yani  ekran  update   hızımızın
monitor'un refreshrate'inin  rational bi  katı olması  çok önemli  örneğin  60hz
tarayan bi monitorde kalkıp da 47fps lik bir rakamı oluşturmak biraz  zor.  Yani
ekran  update'imiz  monitor  ile  sync  değilse  eğer,  monitor  ışın  tabancası
ekranın ortalarında  bir yerde  ise,  biz ekranın  üst kısmini  update  işlemine
giriyor  olabiliriz. Sonra update hızı monitor işin tabancasını yakaladığı  anda
da monitor  tabancasının  alt  kısmındaki yerleri  update  ediyor  oluruz  (tabi
tabanca durmuyor o  da devam ediyo  yürümeye)o zaman monitor  üst kısmi  birinci
frame'den tabancanın  alt kısmını  da ikinci  frame'den göstermeye  başlar..  Ve
ortada böyle bi  çizgi gibi birşey  görmeye başlarız. Bu da  aynı  önceki gibi..
"u-uh.. No  ...  Olmaz"  gibi  bir  durum. Yani  öyle  bi  ayarlamalıyız  ki  ya
monitorun refresh  hızında bir  fps seçelim  ya da  onun bi  katı (yani  integer
katı.. Ama  inverse.. 1/2  1/3 1/4  gibi)diyelim açacağımız  ekran 75  hz'lik  o
zaman 75  fps  seçebiliriz.  Bu  da  bize  frame  başına  13.33333ms  gibi  bişi
bırakır. Baktık  bu süre  yeterli değil  bizim için(ki  aslında 75fps  de  fazla
hani...) O zaman 37.5fps  gibi bi fps seçebiliriz.  26.6666 ms ayırıyoruz şu  an
frame başına ve her  iki taramada bir frame  update geçiyoruz. 37.5 fps  oluyor.
Ama.. Yok kardeşim.  Ben böyle  ondalık istemiyorum diyosak  o zaman..  60hz'lik
bi ekranda 2  framede bir update  ile 30fps'lik bir görüntü  veya.. 80hz'lik  bi
ekranda 2 framede  bir update ile  40 fps'lik  bir görüntü (ki  bu durumda  25ms
kalıyo frame  başına).  Örnek  olarak  40fps'yi hedef  seçelim  diyelim  ki.  Bu
durumda bizim  hedefimiz ekranımızı  her  25ms'de bir  update etmek  olucak.  Ve
monitor refresh problemini  halletmek için  de 80hz'lik  bir mode  açıp her  iki
taramada bir update çekicez.  (bu demek degil  ki monitor taramayacak...tabi  ki
o  framebuffer'da  ne  varsa  onu   tarayacak.  Biz  sadece  her  25ms'debir   o
framebuffer'i update edecez o kadar.)

Şimdi izleyeceğimiz yöntem şu şekilde:
Bizim bir  timeline'imiz  var  di  mi  ?  Yani  sıfırıncı  ms'de  başlayıp  öyle
giden...

0-------------25------------50-----------75---------100----------125-----------
  1.frame          2.frame      3.frame     4.frame      5.frame       ....
  
Hah aynen böyle.. Programımız  başlar (demo!) Ve biz  normal bir şekilde yapıyor
olsaydık, timer'dan  her  25  ms'de  bir  'update'  event'i  yaratıp  ekranımızı
update ediyo olurduk. Yani.. 0.ci ms'deyiz.  Hesaplayacaklarımızı  hesaplıyoruz,
o sırada tabii ki  time akıyo durmuyo time..  Oluyo diyelim 15ms.. Sonra  cpu'ya
diyoruz ki "alo hadi  yaptık biz yapacağımızı  sen iyisi mi  çiz!. Cpu hali  ile
gpu'ya signal yolluyo  "bak insanlar bekliyo  çizim gerekiyo şu  an hadi  göster
kendini"  diye.  Gpu'da  haşırt  çizmeye  başlıyor.  Ancak!  Biz  eğer   monitor
taraması ile  kendimizi  sync  etmek  istiyorsak,  şöyle  durumlar  olabiliyor..
(1.frame'i zoomluyorum.)

                                1. Frame total usage
Time 
0------------5-------------10---------------15------------20-----------25


       _____________________________________________
Cpu   |            cpuwork                          |_______cpuidle____________
                                                    

                                                    __________________
Gpu   _____________gpuidle_________________________|   gpuwork        |_waitvbl


Burada gösterdiğim standart  bi cpu ve  gpu graph'i. Biraz  kötü design  edilmiş
bi  oyunun  veya  demonun  çalışma  şekli.  Cpu  ve  gpu'ya  farklı   zamanlarda
erişilerek, birbirlerinin paralel çalışması engellenmiş  ve  olabilecek  minimum
performans  alınmış.  İşte  bütün  bunları  engellemek  için  insanlar   çeşitli
yöntemler bulmuş. Çünkü hedef grafik:


                                1. Frame total usage
Time 
0------------5-------------10---------------15------------20-----------25


       ________________________________________________________________________
Cpu   |
                                                    

                  _____________________________________________________________
Gpu   ___________|

Buna yakın  bişii  olmalı.  Bu tabe  imkansız.  Yani  kimse bu  kadar  iyi  sync
yapamaz.ama elimizden  geleni ardına  koymamalıyız  ve  ona  göre  düşünmeliyiz.

Şimdi bunun için  nasıl bi timing  tekniği kullanacağımıza bakalım  öncelikle...
Bu teknik için  2 adet timer  varmış gibi düşünüyoruz.  Birincisi gerçek  timer,
ki bu  sistemden  gidip gerçek  time  value'sunu alan  birim.  İkincisine  sanal
timer diyebiliriz.  Bu  da  aslında  sistemin  kullanacağı  timer.  Şimdi  bütün
programımızı bu  noktada azıcık  task oriented  düşünüyoruz. Sistem  standard'ın
birazcık dışına  çıkıyor. Buna  daha sonradan  şu task/thread  manager  kısmında
baya bi değineceğim.

Şimdi.. Programımız aslında bi  nevi iki timer'i da  kullanıyor. Ana olan  bütün
olaylar  gerçek  timer'i  kullanıyor..  Ancak  hesaplama  çizme  gibi   kısımlar
virtual timeri.
Şöyle   oluyor.    Hep   beraber   time'la    birlikte   ilerleyerek    bakalım.
0.ms -> başlyıoruuuuuuuuuuuuuuuuuuz...
4.ms -> diyelim aha bu noktada ekrana  bi cube gelmesi gerekiyor. Hemen  o  kübü
          getiren task'i  (dikkat!!!!!! - execute  etmiyoruz)..  Gereken  task'i
                         bi   queue'ya   atıyoruz.   Daha   çalışmadı    kodumuz
13.ms ->  aha  burda da  diyelim  o  sırada bi  texture  hesaplanması  gerekiyor
diyelim
        (tamamen  uyduruyorum  bunları) o texture'u da hesaplamıyoruz.  Ve direk
        queue'ya atılıyor.

Taam diyelim ilk frame'de  bunlar oluyor. Gerçek  zaman.. Gerçekten ilerledi  ve
bu tip işlemlerin olacağını gördü. Ve bunlar bi şekil queue'da  toplandı.  Sonra
real-timer bakıyo ki..  25.ms oldu..  .hah işte  bu noktada  artık frame  update
olması gerekiyor. Çünkü bu  frame için yapılması  gereken iş listesi  belirlendi
ve  artık  frame  update  gerekiyor.  Ama  geldik  frame'in  sonuna  henüz  bişi
yapılmış  değil  evet...   Bu  işlemlerin   yapılışına  aslında   bu  frame   de
başlayacaz...pekiiiii... Ne zaman gösterecez... Cevap: bi sonraki  frame..  Yani
tamamen bi  frame delay  yiyoruz. (halbuki  bu frame'de  göstermemiz  gerekirdi)
ama sağladığı avantaj: o frame'i çizmeye başladığımız andan itibaren  bir  frame
oluşturulması gereken işleri aslında  bi nevi sort ettik.  Ve 25.ci ms'de şu  an
cpu biliyo nelerin yapılmasını 1.frame'i çizerken.. Arka arkaya  onları  execute
ediyor. (hiç bi  stop yok cpu'da..  Hali ile gpu'da da  (zati fraklı  thread'ler
de  calışıyor  ekran   update  gibi   olaylar..  Buna  da   değineceğim  şu   an
kurcalamasın ortalığı)..) Cpu  direk olarak full  güç execute ediyor  ve hiç  bi
wait yemiyor. Ve ayni  anda gpu'da full güç  tüm drawing olaylarına başlıyor  ve
hiç   bi    wait    yemiyo    taaaaaaaaaa    ki..    İşleri    bitene    kadar..
Yani gerçek  ikinci frame'in  (yani bizim  aslında birinci  frame) başlangıç  ve
bitiş
Grafiğine bakacak olursak eğer:

                                2. Frame total usage
Time 
25------------30------------35--------------40------------45-----------50


       ______________________________
Cpu   |                             |__________________________________________
                                                    

          __________________________________________________
Gpu   ___|                                                  |__________________


Şekline  uygun  bi  yapı  çıkar.  Cpu  başladı  çalışmaya.  Biraz  yaptı   işini
(öncelikle gpu  için  gerekenleri  falan..) Sonra  dan  gpu'da  başladı  çizmeye
yapılanları... Ve  ayni  anda biri  hazırlananları  çizerken diğeri  de  gereken
diğer işlemleri  yapmaya devam  ediyor. Ve  %90 ihtimalle  cpu işini  daha  önce
bitiriyor.  Ve  gpu  azıcık  daha   çizmeye  devam  ediyor.  Eee.  Hani   boşluk
kalmayacaktı... Hah işte kalmayacak.. Demek ki kotu bişii yapmışız.  Yani  bizim
program şu an  haaaaaaaala resource  kaldırabilecek durumda..  (tabi bu  arada..
Bu 2.frame'deyken..  Bizim 2.ci  frame için  gereken task'larda  bi yandan  demo
flow tarafında queue'ya push'lanmaya devam..diyelim buframe'de hodo  hodo  noise
hesaplanması gerekiyor.  Execution  yok.. Sadece  basit  bi push  işlemi  olduğu
için sistemi zati kullanmıyor. O hodo hodo noise aslında 3.cu  frame'de  execute
edilecek. Yukardaki örneğimizde aslında belki de o hodo hodo  noise'u bu  framee
taşıyabilirdik.. Gördüğümüz  gibi haaaaaala  imkanımız var  o işlemleri  yapacak
gpu ve cpu belli bi kısımda boş.. Ama artık o boşluğun nerede olacağı  ne  zaman
olacağı tamamen  kontrolümüz altında.  Yükü ağırlaştırıp  hafifletmek  elimizde.
Örneğin belki bi  rotation işlemi  (varsayalım 40000,40000,40000  lik bi  volume
texture'u böyle  sinus hodo  cosinus bişii  yapıyoz... Ama  dönmesi biraz  yavaş
olması bizim  için  çok da  problem  değil. O  zaman  bunu biz  2  frame'de  bir
döndürelim. Ve  gene ayni  şekilde buna  benzer gene  çok zaman  yiyebilecek  bi
başka process'de  var diyelim  o da  gene aynı  şekilde 2  frame'de bir  çalışsa
problem olmayacak. O zaman bunları hesaplayacak tasklarımızı bu  tip  frame'lere
bölersek kesinlikle çok daha performanslı sonuçlar alabiliriz..  Bunlara  sırası
ile task a ...ve task b diyelim.

Time  0------------25------------50--------------75------------100----------125
         1.frame         2.frame        3.frame         4.frame         5.frame
          
     push task-a    process task-a process task-b process task-a process task-a
                    push task-b    push task-a    push task-b 
                      
Gibi bi  görüntü  çıkacak. Yani  belki  bazı frame'lerde  tam  istediğimiz  gibi
gözükmeyecek yani hem  task a'nin o  saniye'de ki hali  ve hem de  task b'nin  o
saniyede ki  hali...ama..bi  nevi  process'lere bölüm  scheduling  sistemi  bunu
yükten kurtaracak. Obur turlu yaptığımızda belki de 40fps'lik  olayımız  aslında
20fps olacaktı..  Yani olayı  bi nevi  workcompression gibi  duşunun.  (bilenler
için.. Pal görüntü  gibi.. Odd fıelds  - even fıelds... Her  frame'de sadece  ya
odd field'slar gönderilir..  Ya da even...  Ancak ve ancak ikisi  bir olunca  bi
frame olur.. Ama  birinci frame'in  odd'u geldiğinde..  Aslında ikinci  frame'in
even'i olabilir  elimizde.  Ek  bi  bilgi olarak  yuv  encoding  de  benzeri  bi
prensiple çalışır.)

Bu sistemin  getirdiği  başka  bi  avantaj  ise,  birden  çok  cpu'muzun  olduğu
durumlar için  geçerli. Yani  elimizde her  zaman execute  edilmesi beklenen  bi
group task  var.  Ve bunların  execution'ini  biz aslında  birbirinden  bağımsız
olarak değişik processorlere yaptırabiliriz. Hali ile

                                2. Frame total usage
Time 
25------------30------------35--------------40------------45-----------50


        ___________
Cpu1   |           |___________________________________________________________
        ___________
Cpu2   |           |___________________________________________________________
                                                    
         __________________________________________________
Gpu   ___|                                                  |__________________

  
Haline dönüştürebiliriz.  Bu da  aslında  bizim için  işlemciye çok  daha  fazla
yüklene bileceğimiz  manasına  geliyor. Neticede  her  task bi  iş  yapıyor.  Ve
tasklar birbirinden tamamen  bağımsız. Ve  eğer hangi sıra  ile yapıldıkları  da
önem taşımıyosa o zaman bi task/thread manager gibi bi birim vasıtası  ile  eşit
miktarda cpu'lara bölüştürüle  bilinir. (tam  eşit olmaz tabii  ki ama..  Olduğu
kadar)... Bunun nasıl olacağına o birimi incelerken değineceğim. Ama  çok  basit
mantığını anlatmam  gerekirse  iki  thread olduğunu  düşünün  ve   bunların wait
state'de olduğunu  düşünün.  Ve ortada  bi  queue  var. Eğer  queue'ya  yeni  bi
task/mesaj  bişii  gelirse  bunlardan  biri  uyanıyor  ve  queue'dan  onu   alıp
execute'a başlıyor..  Sonra bi  adet  daha gelirse  ikincisi de  uyaniyor.  V.s.
Eger birisi  işini  bitirirse  tekrar  wait  state'e  gelmeden  queue'ya  tekrar
bakıyor ve eğer queue'da daha bi kaç adet task daha varsa gene  onlardan  birini
alıp execute mode'una giriyor.  Neyse fazla kafa  karıştırmadan bunu daha  sonra
anlatiim.

Neyse umarım bu timer konusu ve sync olayları hakkında bi bilgi verip  temel  bi
designin  nasıl  olması  gerektiği  konusunda  aydınlatabilmişimdir.  Bu  yazıya
devam  edeceğim   kaldığım  yerden   şimdi   diğer  konulara   dallanırsam   çok
uzayabileceği inancındayım.  Bir  sonraki yazımda  task/thread  manager  kısmına
değinmeyi düşünüyorum.  Daha ilerci  bölümlerde ise  memory manager  /  resource
manager ve temel  şeyleri yapan bir  gfx lib'i nasıl  yapmalıyız şeklinde  devam
edeceğim  ilk  designimıza.  'Lord  of   the  demos'  adlı  yazı  dizisi   devam
edecektir.


ciao!

[b]~sensei/rt - csermen@gmail.com[/b] 

********************************************************************************
ÖĞRETİCİ DÖKÜMAN : SDL_MIXER İLE SES VE MÜZİK

SDL_Mixer SDL  kütüphanesinde  ses  ve  müzik  kullanımını  kolaylaştırmak  için
geliştirilmiş bir  kütüphanedir. Ses  ve müzik  dosyalarını yüklemek  ve  çalmak
üzere işinizi kolaylaştıracak  birçok fonksiyona  sahiptir. Öncelikle  SDL_Mixer
kütüphanesi ile kullanabileceğiniz dosya formatları;
- WAVE/RIFF (.wav)
- AIFF      (.aiff)
- VOC       (.voc)
- MOD       (.mod .xm .s3m .669 .it .med ve fazlası)
- MIDI      (.mid)
- OggVorbis (.ogg)
- MP3       (.mp3)
 
Hemen  kullanımını  anlatmaya  geçiyorum.  Projenize  SDL_Mixer'ı  eklemek  için
derleyiciye  -lSDLMixer  bayrağını  eklemeniz  gerekmektedir.  Include   etmeniz
gereken   tek bir  dosya  var, SDL_Mixer.h  dosyası. Bunun  dışında  SDL_Mixer'ı
kullanırken dikkat etmeniz  gereken birşey daha  var. SDL_Mixer'ı  kullandığınız
sırada  SDL'in    kendi  içindeki  ses   sistemi   ile  ilgili   birkaç   komutu
kullanamıyoruz. Bunlar;
SDL_OpenAudio 
    Yerine Mix_OpenAudio 'yu kullanın.  
SDL_CloseAudio 
    Yerine Mix_CloseAudio 'yu kullanın. 
SDL_PauseAudio 
    Yerine Mix_Pause(-1) ve Mix_PauseMusic'i kullanın.
    Yerine Mix_Resume(-1) ve Mix_ResumeMusic'i kullanın.
SDL_LockAudio 
    Bu işi SDL_Mixer sizin için hallettiği için kullanmanız gerekmeyebilir.
    Yine de kullanmak problem yaratabilir.
SDL_UnlockAudio
    Bu işi SDL_Mixer sizin için hallettiği için kullanmanız gerekmeyebilir.
    Yine de kullanmak problem yaratabilir. 


Aşağıdaki komutları ise rahatlıkla kullanabilirsiniz.

SDL_AudioDriverName 
    Normal şekilde çalışacaktır. 
SDL_GetAudioStatus 
    Bu da sorunsuzca çalışacaktır, ama büyük ihtimalle sessiz durumdayken
    bile SDL_AUDIO_PLAYING değerini döndürecektir.
 
SDL_Mixer içindeki fonksiyonlara  ve kullanımlara  gelirsek, önce  Mix_OpenAudio
ile başlamalıyız.  Bu  komut  ile  SDL_Mixer    ses  sistemini   açmaya   yarar.
 
int Mix_OpenAudio(int frequency,  Uint16 format, int  channels,  int  chunksize)
 
frequency ses  çıktısının frekans  değerini belirtir.  Oyunlar   için uygun  bir
değer olarak  MIX_DEFAULT_FREQUANCY  adıyla   tanımlanmış  olan  22050  değerini
kullanabilirsiniz. Ayrıca  44100 değerinide  kullanabilirsiniz  ki bu  değer  CD
audio    frekans  değeridir.  Ama  bu  değer  daha  fazla  CPU   gücü   tüketir.

format   ses   çıktısının   formatını    belirtir.   Özel   bir   durum    yoksa
MIX_DEFAULT_FORMAT değeri işinizi görür.
 
channels ses  çıktısının kaç  kanallı  olduğunu belirtir.  Stereo için  2,  mono
için 1 değerini verin.
 
chunksize ise ses çıktısı için kullanılacak byte'lardır.
 
Format için kullanabileceğiniz diğer seçenekler:
AUDIO_U8 
    İşaretsiz 8-bit sesler
AUDIO_S8 
    İşaretli 8-bit sesler
AUDIO_U16LSB 
    İşaretsiz 16-bit samples, little-endian byte düzeninde
AUDIO_S16LSB 
    İşaretli 16-bit samples, little-endian byte düzeninde
AUDIO_U16MSB 
    İşaretsiz 16-bit samples, big-endian byte düzeninde
AUDIO_S16MSB
    İşaretli 16-bit samples, big-endian byte düzeninde
AUDIO_U16 
    AUDIO_U16LSB ile aynı (geriye  uyumluluk  için  büyük  ihtimalle)
AUDIO_S16 
    AUDIO_S16LSB ile aynı (geriye  uyumluluk  için  büyük  ihtimalle)
AUDIO_U16SYS
    İşaretsiz 16-bit samples, sistemin byte düzeninde
AUDIO_S16SYS 
    İşaretli 16-bit samples, sistemin byte düzeninde
	
MIX_DEFAULT_FORMAT AUDIO_S16SYS ile aynıdır.
 
Chunksize  için   uygun  bir   değer  olarak   4096  verebilirsiniz.   Ama   ses
efektlerinin  arkaplanda  gereğinden  uzun  süre  sürdüğünü  düşünüyorsanız   bu
değeri  küçük   tutmayı   deneyebiliriniz.   Yalnız   değer   küçüldükçe   yavaş
sistemlerde ses çıktısının atlanması olasıdır.
 
Fonksiyon başarılı olarak sona  ererse 0, hata verirse  -1   değerini  döndürür.
 
ses ortamını açmak için örnek kod:
if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1)
{
    fprintf(stderr, "Mix_OpenAudio:    %s\n", Mix_GetError());
    exit(2);
}
 
veya:

if(Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096)==-1)
{
    fprintf(stderr,   "Mix_OpenAudio:    %s\n",   Mix_GetError());    
    exit(2); 
} 
 
Ses   sistemini   açtıktan    sonra    kapatmak    için     ise    MixCloseAudio
fonksiyonunu kullanırız. Kullanımı oldukça basittir.
 
kapatmak için örnek kod:
Mix_CloseAudio();
 
Ses sistemini  açıp kapatabiliriz.  Şimdi sırada  biraz ses   çıkarmak  var  :).
SDL_Mixer ile birçok  yaygın formattaki ses  dosyasını kolayca hafızaya  yükleip
çalabilirsiniz.    SDL_Mixer'da     çalacağınız     dosyalar     iki     tiptir.
1- Sample
2- Music
 
Sample'lar basit ses  efektleridir diyebiliriz.  Veya ufak  ses dosyaları.  Daha
da basitçe  müzik  parçası  olmayan  ses   dosyalarıdır  dersek  sanırım  yanlış
olmaz.  Hafızada  bir  sample   verisi  saklarker  kullanacağımız  yapının   adı
Mix_Chunk 'tır. Ses  dosyasını hafızaya  yüklerken   kullanacağımız komutun  adı
da  Mix_LoadWav()  'dır.   Adı  sizi  yanıltmasın,   bu  fonksiyon  sadece   wav
dosyalarını değil; wave, aiff, riff, ogg ve voc dosya  formatlarını  okuyabilir.


wav yüklemek için örnek kod:

Mix_Chunk *sample;
 
sample=Mix_LoadWAV("sample.wav");
if(!sample)
{ 
    fprintf(stderr, "Mix_LoadWAV: %s\n", Mix_GetError());
    // hata olursa diye 
} 
 
Programımızı kapatırkende yüklediğimiz  ses dosyalarını   hafızadan silmek  için
Mix_FreeChunk komutu kullanılır.
 
örnek: 
Mix_FreeChunk(sample);
sample=NULL;
 
Ses  dosyalarını  çalmak da   bu  kadar  basit,   Mix_PlayChannel    komutu  ile
gerçekleştiriliyor.
 
çalmak için:

if(Mix_PlayChannel(-1, sample, 1)==-1)
{ 
    fprintf(stderr, "Mix_PlayChannel: %s\n", Mix_GetError());
}


İlk parametre ses dosyasını  çalacak kanalı belirtir. -1  değeri  ilk uygun  ses
kanalına bu  görevi verir.  İkinci  parametre   çalınacak olan  ses  dosyasıdır.
Üçüncü parametre  sample'ın   kaç defa  çalacağını belirtir.  Bir hata  oluşurdu
sample çalınamazsa fonksiyon -1 değerini döndürür.
 
SDL_Mixer  içinde   ayrıca   ses   dosyalarını  çalarken   basit      efektlerde
uyguluamanızı sağlayan  fonksiyonlar bulunmaktadır.   Örneğin  Mix_FadeInChannel
fonksiyonu ile bir ses  dosyasını  (sample) fade  in(yavaş yavaş  ortaya  çıkma)
efekti uygulayarak  çalabiliriz.
 

if(Mix_FadeInChannel(-1, sample, 1, 1000)==-1)
{
    fprintf(stderr,"Mix_FadeInChannel:    %s\n",Mix_GetError());    
} 

 
Bütün parametreler  Mix_playChannel  fonksiyonu  ile aynıdır  bu    fonksiyonda.
Sadece  son  parametre  olan   1000  değeri  efektin   kaç    milisaniye   sonra
başlayacağı   değerini   bildirir.   Birde    bu   fonksiyonun   tersi    olarak
Mix_FadeOutChannel fonksiyonu bulunmaktadır.
 
Mix_FadeOutChannel(int channel, int ms);
 
Bu fonksiyon ile belirtilen kanal belirtilen milisaniye içinde   sesi  kısılarak
kapatılır. Bu  komut  zaten  çalmakta  olan bir  kanala  uygulanacağı  için  ses
dosyasını  belirtmeye  gerek  yoktur.  Ayrıca  Mix_HaltChannel  komutuyla   sesi
anında kapatabilirsiniz.
 
Mix_HaltChannel(int channels);
 
şeklinde uygulanır.  Kanal  değeri  olarak ya  o  kapatmak  istediğiniz  kanalın
numarasını yada bütün  kanalları kapatmak  için -1  değerini verebilirsiniz.  -1
değeri diğer  bütün  fonsiyonlarda da  aynı  şekilde bütün  kanalları  belirtir.
Kanallarla   ilgili   yapabileceklerimiz   arasında   kanalın   ses   seviyesini
değiştirebilirsiniz.
 
Mix_Volume(int channel, int volume);
 
Channel ile kanalın numarası yada -1 ile bütün kanallar  belirtilebilir.  Volume
ise sesin  yüksekliğinin  belirtildiği  değişkendir. Bu  fonksiyonun  birde  ses
dosyasına  özel  ses   seviyesi   belirtebileceğiniz   versiyonu  bulunmaktadır.
 
Mix_VolumeChunk(Mix_Chunk *chunk, int volume);
 
Chunk  değişkeni   ile    verilen   ses   dosyasının   ses   yüksekliği   volume
değişkenine göre değiştirilir.
 
Sırada müzik dosyaları ile ilgili işlemler var.
 
Mix_Music *music;
 
Mix_Music   veri    yapısı    hafıza     müzik    dosyalarını     saklayacağımız
yapıdır.
Müzik dosyaları Mix_LoadMus fonksiyonu ile yüklenir.
 
if(!music=Mix_LoadMUS("music.mp3");)
{ 
    fprintf(stderr,"Mix_LoadMUS(\"music.mp3\"):  %s\n",  Mix_GetError());   
} 
 
Bu fonksiyon ile  wav, mod,  midi, ogg  ve mp3   dosyalarını  yükleyebilirsiniz.
 
Mix_FreeMusic(music); 
music=NULL;
 
Yukarıdaki  yöntem  ilede  işimiz  bittiğinde  yada  programı  kapatırken  müzik
dosyalarının verilerini hafızadan temizleriz.
 
Müzik dosyalarını çalmak için Mix_PlayMusic fonksiyonu kullanılır.
 
if(Mix_PlayMusic(music, -1)==-1)
{
     fprintf(stderr, "Mix_PlayMusic: %s\n", Mix_GetError());
} 

music parametresi çalınacak  müzik dosyasını  belirtir. -1  değeri ise  dosyanın
sonsuz döngüde  çalınacağını belirtir.  -1 yerine   parçanın  tekrar  edilmesini
istediğimiz sayıyı yazabiliriz.
 
Fade  in  efektini  sample'lar   gibi   müzik   dosyalarınada   uygulayabiliriz.

if(Mix_FadeInMusic(music, -1, 2000)==-1)
{
    fprintf(stderr, "Mix_FadeInMusic: %s\n", Mix_GetError());
}

Fade in  efekti  olduğu  gibi  Fade  out  efektide  vardır.  O  ise  sadece  tek
parametre  alır.   Fade   out   efektinin   süresi    (milisaniye    cinsinden).
 
Mix_FadeOutMusic(3000);

Mix_PlayMusic  fonksiyonu  ile  aynıdır  herşey.   Sadece  son  değer  Fade   in
efektinin    tamamlanacağı     süreyi     milisaniye     cinsinden     belirtir.
 
Bir müzik  dosyasının  çalmasını  durdurmak  için  iki  fonksiyonumuz    vardır.
Mix_HaltMusic  ve  Mix_PauseMusic.  Mix_HaltMusic   müzik    çalınmasını   hemen
durdurur.  Bütün  fade  efektlerinide   keser.  Mix_PauseMusic  fonksiyonu   ise
çalmakta  olan  müziği  sadece    duraklatır.  Mix_ResumeMusic  fonksiyonu   ise
duraklatılan yerden çalmaya devam edilmesini sağlar. Bu  fonksiyonu  durdurulmuş
(Halt),  duraklatılmış(Pause)   veya   çalmakta   olan   müzik   ile   kullanmak
güvenlidir, hataya neden olmaz.
 
Mix_HaltMusic();
Mix_PauseMusic();
Mix_ResumeMusic();
 
Evet bu  döküman  ile SDL_Mixer  kullanımına  giriş yaptık.  SDL_Mixer'ın  bütün
yeteneklerini anlatmadım  size  ama  anlattıklarım  ile  SDL_Mixer    kullanmaya
hemen   başlayabilirsiniz.   Gerisi   için   şimdilik    orijinal      SDL_Mixer
dökümantasyonuna        (http://jcatki.no-ip.org/SDL_mixer/SDL_mixer_frame.html)
bakmalısınız. Daha  sonra  SDL_Mixer'ın  daha detaylı  kullanımını  anlatan  bir
döküman daha yazabilirim.
 
Not: 1 saniye == 1000 milisaniye; ;)
[b]Ragnor/Manyetiq[/b] 

********************************************************************************
ÖĞRETİCİ DÖKÜMAN : C64'TE PİXEL ÇİZİM İÇİN PÜF NOKATALARI (Hydrogen/Glance)
********************************************************************************

I-Giriş

II-Commodore 64'ün grafik modları

1-Commodore 64'ün temel grafik modları
2-Commodore 64'ün geliştirilmiş grafik modları
3-Commodore 64'ün interlace grafik modları
4-Commodore 64'ün daha kompleks grafik modları

III-Commodore 64'ün grafik programları

IV-Çizim için teknik ve öneriler

V-Sprite ve Karakter Seti çizimleri


I-Giriş

Bir çok kişinin deneyip  yanılarak öğrenmek zorunda  kaldığı, bir çoklarının  da
bir  çizim  programı  bulamadığı  veya   eline  geçirdiği  programdan  bir   şey
anlamadığı  için  uğraşmaktan  vazgeçtiği  bir  olaydı  C64'le  grafik   çizmek.
Programların  dökümanlarının  Türkiye'ye  gelmemesi   ve  orjinallerini     alma
imkanının  da   olmaması,   1980'li   yıllarda  C64'ün   bir   oyun   makinesine
dönüşmesindeki  en   büyük   faktörlerdir.  Çizim   programlarının   temini   ve
anlaşılmasındaki  diğer  bir  zorluk  da,  bu  utilitylerin  bir  çoğunun  büyük
bilgisayar firmalarının  değil  de,  çizim  utilitysi  bulamayan  programcıların
kendileri için  yaptıkları, dökümandan  ve  kullanıcı dostu  arabirimden  yoksun
programlar olmalarıydı.  Bu programları  o zamanlar  bulmak swapper  (Yurt  dışı
ile  mektupla  disket  alışverişi  yapan  kişiler)  değilseniz,  imkansız   gibi
birşeydi.
Günümüzde  internet'in  yaygınlaşması  ve  geniş  bir  arşive  sahip  bilgisayar
gruplarının (Success-The Rulling Company gibi) arşivlerini ftplere  açması  ile,
hemen  hemen  her  programı  bulmak  mümkün  hale  geldi.  Ancak  bu  sefer   de
internetteki çoğu  bir  düzene  ve dökümana  sahip  olmayan  program  bolluğunun
içinde  neyin  işe  yarayıp,  neyin  yaramadığını  anlamak  iyice  zorlaştı.  Bu
dökümanda  C64  ile  grafik  çizimi   için  bilinmesi  gereken  bir  takım   püf
noktalarına   ve   internetten   de   download   edilebilecek   çeşitli   grafik
programlarının basit açıklamalarına değineceğim.


II-Commodore 64'ün grafik modları

1-Commodore 64'ün temel grafik modları
Commodore 64'ün  16  değişmez  renge  sahip, Vic  adı  verilen  bir  ekran  çipi
vardır. Dikkat edilmesi  gereken, bu  16 rengin  değişmez olması,  yani bir  çok
renk barındıran bir paletten seçme şansımız olmaması. Bu renkler  siyah,  beyaz,
kırmızı, türkuaz,  mor,  koyu  yeşil,  koyu  mavi,  sarı,  kahverengi,  turuncu,
pembe,  koyu  gri,  orta   gri,  açık  mavi,  açık   yeşil   ve   açık   gridir.
Vic ekran çipi iki  temel grafik modunu  destekler. Bunlardan birincisi  320x200
Hires,      ikincisi      160x200      Multicolour      grafik       modlarıdır.
Vic'in dizaynı nedeniyle  C64'ün grafik ekranı  8x8 piksellik  hücrelerden(multi
colour modunda 4x8)  oluşur.Ve ekranda 40x25 adet 8x8 piksellik  hücre  bulunur.
Bu hücreler ekranda görünmezler ancak çizim yaparken kullanacağınız  renkler  bu
hücreler  içerisinde  sınırlıdır.  Şimdi  C64'ün  bazı  temel  grafik  modlarını
inceleyelim.

320x200 Hi-res  Grafik Modu:  Hi-res grafik  modunda her  8x8 piksellik  hücrede
biri arkaplan biri çizim  rengi olmak üzere  sadece iki renk  kullanabilirsiniz.
Bu grafik  modu  sizin çok  renkli,  cıvıl cıvıl  resimler  oluşturmanıza  imkan
vermez. Sadece iki renk  kullanılacak, ve ayrıntı  içeren resimler için  tavsiye
edilebilir.  Çözünürlük  ise,  Commodore'un  yüksek  çözünürlüğüdür   (320x200).

160x200 Multicolour (MC)Çizim Modu: Multi-colour çizim modu,   ekranı  hi-resten
farklı  olarak  4x8  piksellik  hücrelere  böler.  Bu  4x8  piksellik  hücreler,
hi-res'in  8x8'lik  piksellik  hücreleriyle   aynı  boyutta  olduğu  için,   bir
multicolour  pikseli,  bir  hires  pikselinin  yatayda  iki  katı  boyutundadır,
dikeydeki  boyutları  ise  aynıdır.  Bu  durumda  çözünürlük  de  320x200  değil
160x200 pikseldir. Bu  modun avantajı  ise, 4x8  piksellik hücreler  içerisinde,
bir backround  ve  3 çizim  rengi  olmak  üzere 4  renk  basabilmesidir.  Dikkat
edilmesi gereken husus
4x8 piksel içerisine  16 rengi  birden basamamamız,  gene sadece  3 çizim  rengi
basabiliyoruz.  Multicolour  çizim  modunda  çok  renkli  resimler  yapabiliriz,
ancak daha  geniş  pikseller  kullanırız,  ve  çalışmalarımızın  detay  seviyesi
hi-resdeki gibi olmaz. Çözünürlük, Commodore'un  düşük  çözünürlüğüdür (low-res,
160x200)

3-Commodore 64'ün geliştirilmiş  grafik modları:  Geliştirilmiş grafik  modları,
doğrudan  C64'ün  donanımından   gelmeyen,  programcılar  tarafından   yazılımla
yaratılmış grafik  modlarıdır.  (Not:Bunu  geliştirilmiş zemin  rengi  modu  ile
karıştırmayalım)  Bu   grafik  modlarının,   bir  takım   hileler   kullanılarak
yapılması  bazı   avantajları   ve   dezavantajları   yanında   getirir.   Şimdi
geliştirilmiş       grafik       modlarından       bazılarını       inceleyelim.

160x200 Fli (Flexible Line Interrupt) Çizim Modu: Multicolour çizim  modu  gibi,
160x200lük çözünürlük  kullanır  ancak büyük  bir  farkı vardır.  4x8  piksellik
hücreler  içerisine  her  yatay  4  piksel  için  2  si  farklı  ve  biri  diğer
satırlarla  ortak  olmak  üzere  3   renk  kullanabilirsiniz.  Yani  bir   çizim
karesinin içine  C64'ün  16  rengini  birden basabilirsiniz.  Bu  çok  ufak  bir
sınırlama ile,  renkleri  dilediğiniz  gibi basma  özgürlüğü  veren  bir  grafik
modudur ve  mükemmel  resimler ortaya  çıkarılabilir.  Ancak bu  grafik  modunun
programcılar için  kullanımı zordur.  Çünkü kullanılan  özel teknik,  C64'ü  çok
fazla  zorlar  ve  yapılacak  diğer  aksiyonları  (Ekrana  sprite  basmak  gibi)
oldukça  güç  hale  getirir.  Gene   de  bu  zorluklar  yetenekli   programcılar
tarafından aşılabilir.

320x200  Advanced-fli  (A-fli)   Çizim  Modu:  Fli   tekniğinin  hi-res   ekrana
uygulanmış  halidir.   320x200  çözünürlük   kullanır.  Hi-res'den   farkı   8x8
piksellik hücrelerin her satırında  farklı bir (1) arkaplan  ve (1) çizim  rengi
kullanılabilmesi. Yani  her satırda  değiştirebildiğimiz  çizim rengi  ile,  8x8
piksellik hücreler  içerisinde  16 rengi  de  basmamız mümkün.  Ancak  bu  çizim
modunu    kullanmak    çok    zahmetlidir    ve    büyük    uğraş    gerektirir.

4-Commodore 64'ün  interlace grafik  modları: C64'de  iki grafik  ekranının  çok
hızlı bir şekilde ardada gösterilmek sureti ile çözünürlüğü iki  katına  çıkaran
interlace sistemi  ile yapılan  grafik modları  da sıkça  kullanılır.  Interlace
grafik modunun  en  büyük dezavantajı,  sürekli  olarak titremesidir.  Ancak  bu
titreme ile birlikte
160x200   olan    çözünürlükler    320x200'e,   320x200    olan    çözünürlükler
640x200'e   yükseltilebilir.   Bazı   interlace   grafik   modelarını    aşağıda
açıklanmıştır.

Hires-Interlace  (HI)Çizim  Modu:  320x200  çözünürlüğünde  iki  hi-res   grafik
ekranının  ardarda  görterilmesiyle   oluşturulur.  Yeni  çözünürlük   640x200'e
çıkar. 16x8'lik piksellik  hücrede mantıklı  olarak biri  backround, biri  çizim
rengi  olmak  üzere   iki  renk  kullanılabilir.   Mantıklı  olaraktan   kastım,
dilediğiniz   gibi   basabileceğiniz,   1    çizim   rengi   olmasına    rağmen,
1,3,5,7,9,11,13,15'inci  sütunlarda   birinci  rengi   ve   2,4,6,8,12,14,16'ncı
sütunlarda ise  2.  çizim  rengini  kullanabilecek  şekilde  16x8'lik  piksellik
hücrelere 2 çizim rengi  de basabilmeniz. Ancak bu  şekilde çizim yapmak  pratik
olmadığından bir  çok  çizim programı  interlace'in  bu özelliğini  iptal  eder.
(evet  bu   özel   durum   bütün   interlace   modlarda   normalde   geçerlidir)

Multicolour-Interlace (MCI)  Çizim Modu:  160x200  lük iki  multicolour  ekranın
ardarda gösterilmesi  ile  elde  edilen  320x200  lük  çizim  modudur.  8x8  lik
piksellik hücrelerde  3  çizim rengi  basabilir.  Mci, en  kullanışlı  interlace
çizim modlarından biridir.

Interlace-Fli  (IFLI)  Çizim   Modu:  160x200  lük   iki  Fli  ekranın   ardarda
gösterilmesi    ile     elde    edilen     320x200    lük     çizim     modudur.
8x8 piksellik hücrelere,  her satır  için 2'si farklı,biri  bütün satırlar  için
ortak olmak  üzere  3  renk   kullanabilir.  Dolayısıyla  8x8  piksellik  alanda
C64'ün 16  rengini basabilirsiniz.  En etkileyici  grafikler bu  çizim  modundan
çıkar.

5-Commodore  64'ün   daha  kompleks   grafik   modları:  Bu   modlar,   standart
tekniklerden   daha   farklı   şekillerde,   değişik   özellikler   kullanılarak
hazırlanmış, daha ziyade  özel kullanımlar için  yaratılmış modlardır.  Örneğin,
afli  tekniği   ve   spriteların  üstüse   basılarak   interlace   yapılmasından
faydalanan,  ve  renk  sayısını  karışımlar   ile  128  e  çıkaran   Super-hires
interlace fli  bunlardan  biridir.  Bu  tür modlar  çok  özel  modlar  olduğunda
bunlara      bu      dökümanda      daha      fazla      yer      ayırmayacağım.

III-Commodore  64'ün  grafik  programları:   Bu  bölümde,  bir  önceki   bölümde
açıklanan grafik modlarını  kullanan grafik  programlarını inceleyeceğiz.  Bütün
özelliklerini teker teker  anlatmak yerine, avantaj  ve dezavantajları  üzerinde
duracağız.

Hi-res çizim programları:

Ocp    Art     Studio     (Art     Studio    One,     Hi-res     Art     Studio)
Developer:Rainbird Software

Artstudio, C64 ile  hi-res modda  çizim yapacakların  tek alternatifidir.  Gerçi
Artstudio'dan önce  Doodle adında  bir çizim  programı vardı,  ancak  Artstudio,
Doodle'dan daha üstün bir programdır. 
Art Studio, Rainbird software'in satışa sunduğu ticari bir program  olduğu  için
menüleri son derece kullanışlı ve anlaşılabilirdir.
Line, Circle, box, ray, spray, pen, brush desteklediği  toollardan  bazılarıdır.
Bu programın  en güçlü  özelliği ise,  window(şimdiki standart  grafik  programı
özellikleri  cut,copy,paste  özellikleri)  özelliğidir.  Ekranda  pencere  içine
aldığınız  bir   alanı   kesip,   yapıştırabilir,   yeniden   boyutlandırabilir,
mirror'ını alabilirsiniz.  Program 2x,4x  ve 8x  lik zoomu  destekler.  Renklere
kolay ulaşımı ve  cycle modu  ile çok  kolay çizim  yapmanızı sağlar.  Özellikle
1351 mouselu  versiyonu çok  kullanışlıdır. En  büyük dezavantajı  zoom  modunda
4x8 lik hücreleri göstermeyişidir.  4x8 lik veya  8x8 lik hücreleri  göstermeyen
programlarda  ekrana   basabileceğiniz   renkleri   planlayamadığınızdan   ötürü
sürekli  olarak  renk  bozulmalarıyla   karşılaşırsınız.  Bu  genellikle   hücre
içerisindeki  daha   önce  bastığınız   bir   renk  grubunun   tamamının,   renk
sınırlamasını aştığınız  anda, en  son bastığınız  rengi alması  halidir ki  hiç
istenmeyen bir durumdur.

Yöntem: 4x8  veya  8x8  lik  hücreleri  göstermeyen  programlarda  eğer  ekranda
bulunduğunuz  pikselin  koordinatını  gösterme  özelliği   varsa,  4  ve  8   in
katlarını hesaplayarak hücrenin  başını ve  sonunu bilebilir ve  ona göre  çizim
yapabilirsiniz.Örnek  olarak  art  studio   koordinatlara  0  a  0   noktasından
hesaplamaya başlar. 0 dan  7 ye kadar koordinatlar  x de ve y  de  ilk  hücrenin
sınırlarıdır. Eğer multicolour modda çalışsaydık ilk hücrenin sınırları x  de  0
dan 3 e, 
y de 0 dan 7 ye dayanacaktı.

Multicolour Çizim Programları:

Koala Painter (Koala Paint, Koala)
Developer: Audio Light

Koala painter,  C64'de  çıkan ilk  toplu  multicolour çizim  paketi idi. (Onunla
aynı zamanda  çıkan Blazing  paddles  isimli bir  program  da var  ancak,  Koala
painter Blazing Paddles'dan daha üstün  olduğu için  standartları belirlemiştir)
Koala painter, standart  tooların (Line, circle  vs.) birçoğunu destekler.  Kaba
ve  kullanışsız  bir  renk  karıştırma  toolu  vardır.  1984  yılında   olsaydık
kesinlikle önereceğim ilk program  olurdu, ancak bu çağa  göre çok kaba,  hantal
bir programdır. Özellikle tool menüsünden çizim ekranına geçmek çok  zordur.  Ve
bir müddet  sonra çizim  olayını  kabusa dönüştürür.  Gene de  Koalapainter  C64
için bir çizim standardıdır  ve hemen hemen  bütün Multicolour programlar  Koala
formatında  yükleme  ve   kaydetme  yapabilir.  Koala   dosya  isimlerinin   ilk
karakterlerinde inverse edilmiş  kalp sembolü bulunur.  Bu dosyaları bu  şekilde
tanıyabilirsiniz.

Advanced Art Studio (Art Studio II)
Developer: Rainbird Software

Artstudio 1 ile hemen  hemen aynı arabirime ve  benzer toollara sahiptir.  Fakat
160x200   multicolour   modda   çalışır.   En   kullanışlı   multicolour   çizim
programlarından biridir. Bu programın da gene en büyük eksiği zoom modunda   4x8
piksellik hücreleri  göstememesidir. 2x,  4x  ve 8x  zoom desteklemesi  ve  zoom
ekranında  2x,  4x  ve  8x  arasında  geçiş  yapılabilmesi  büyük  bir  artıdır.
Artstudio'nun   Amiga   mouse    kullanabilen   bir    versiyonu   da    vardır.

Zoomatic
Developer: Cp-Verlag

Zoomatic'in   en   önemli   özelliği   çizim    için    klavye    kullanmasıdır.
4x8 lik piksellik  hücreleri zoom modunda  göstermesi, ve her  4x8 lik  hücrenin
renk   değerleri   ile   sonradan   oynayabilmeniz,   bu   programın       güçlü
özellikleridir. Eğer çizim  yapmak için keyboard  kullanacaksanız size en  büyük
tavsiyem bu programdır.

Draz Paint
Developer: Noice

Drazpaint, kullanımı kolay bir multicolour çizim programıdır. Zoom  modunda  4x8
piksellik  hücreleri   göstermesi  ise   programın   bir  artısıdır.   Sade   ve
anlaşılabilir bir programdır.

Interpaint
Developer: Interactivision

Bu programı multicolour çizim programları altında açıklasam da,  interpaint  hem
multicolour,     hem      de      hi-res      modunda      çizim      yapabilir.
Programın en büyük  artısı tartışmasız  Amiga mouseu  da kullanabilmesidir.  Çok
kaliteli Amiga mouse  desteği sayesinde, çok  hızlı çizim yapabilirsiniz.  Line,
rectangle, circle  gibi komutları  ve  toplu bir  arabirimi vardır.  Copy  paste
yapabilen bir  window özelliği,  Art  studio kadar  gelişmiş olmasa  da  vardır.
Eğer Amiga  mouse kullanıyorsanız, bu program sizin  vazgeçilmez  utilitynizdir.

Malesef bu program da 4x8  piksellik hücreleri gösterme yeteneğinden  yoksundur.

Amica Paint
Developer: O. Stiller & Sky

Kendim çok fazla kullanmamış olsamda, en popüler ve en çok çizim  aracına  sahip
programlardan  biri  amica  painttir.   Tuşlar  yardımıyla  kolay   ulaşılabilen
kullanıcı arabirimi  başlangıçta  biraz  karışık görünse  de  bir  çok  ihtiyaca
hızlı bir  şekilde cevap  verir. Bu  programın geometrik  çizim rutinleri  elips
dahil bir  çok  geometriyi  destekler  ve  C64'ün  en  hızlı  çizim  rutinlerini
kullanır.

FLI çizim programı

Fli editor
Developer: Fbi Crew

Bulunabilecek en iyi Fli çizim editörüdür. Malesef C64 için yazılmış  çok  fazla
çizim aracına sahip  bir fli  programı yapılmamıştır  ve fbi  fli editörü  hemen
hemen tek  alternatifinizdir(Diğerleri  çok  kullanışsız).  Programın  artıları,
ekranın üst  yarısında resmin  bir  bölümünü normal  çözünürlüğünde  gösterirken
alttaki  yarısında  8x  zoomda  çizim  yapmanızdır.  Bu  şekilde  zoom   modunda
çizdiğiniz grafiği zoomout modunda  da takip edebilirsiniz.  Bu program 8x8  lik
hücreleri gösterir.  Çok az  opsiyona  sahiptir. Line  komutu vardır.  Ve  block
fill (Yani üstünde bulunduğunuz 8x8 lik hücrenin rengini belirleme)   yapabilir.
Negatif yönleri; değiştirilemez arka planıdır ve daima siyah  olmak  zorundadır.
Bir de  fli'nin özelliği  gereği ekranın  sol üç  kolonu yani  12x200  piksellik
alanı kullanamazsınız.  Aynı zamanda  çizimlerinizi yaparken  geometrik  tooları
sıkça kullanıyorsanız, sadece  kullanışlı zoom ekranı  olan bu programda zorluk
çekebilirsiniz.
Bu programı yüklerken  kartuş kullanıyorsanız  fastload özelliği  var ise  iptal
edin. Çünkü disk menüde kilitlenme yapıyor.

Multicolour Interlace Çizim Programları

True Paint
Developer: Robert Grabowski

Tek  kelimeyle   mükemmel   bir   çizim   programıdır.   Sadece   bu   programın
özelliklerinden dolayı  Mci modda  çizim yapmak  isteyebilirsiniz. Dosya  menüsü
oldukça   iyidir.   Disketlerdeki   resimlerinize   bakabilirsiniz   ve   onları
yükleyebilirsiniz. Artstudio ile çizilen Hi-res ve low-res  resimleri  yükletip,
mci formatına convert  edebilirsiniz. Zoomout ekranı  amica paint'inki ile  aynı
şekilde dizayn  edilmiş  ve  temel  geometrik  seçenekler,  fill  imkanı  ve  en
önemlisi, seçeceğiniz  8x8  lik  hücrelerdeki mesela  bütün  mavi  renkleri  C64
paletindeki  herhangi  bir  renkle  değiştirme   olanağı  sunar  ki  bu   birçok
programda olmayan  çok  iyi  bir  özelliktir. Mesela  mavi  tonlamalı  bir  logo
çizdiniz ve  logonun renklerini  beğenmediniz ve  kırmızı tonlara  geçeceksiniz.
Bir   çok   programda   bütün   logodaki   renkleri   tek   tek    piksellemeniz
gerekirken(yani  logoyu  baştan   sona  boyamanız)  bu   özellik  sayesinde   bu
programda dilediğiniz renkleri istediğiniz piksellere  anında  çevirebilirsiniz.
Tabi klasik  copy,paste  araçları ve  daha  bir  çok çizim  aracı  bu  programla
geliyor.
Zoom-in penceresi  Fbi  Crew'un fli  editorundeki  gibi. Ekranın  üst  bölümünde
orjinal boyda resmin  bir kısmını  görürken alt  kısımda 8x  zoom modunda  çizim
yapıyorsunuz. 8x8 piksellik hücreleri  ve 1nci ve  2nci multicolour renkleri  de
gösterir. Bu renkleri göstermesi sayesinde 1,3,5,7nci ve  2,4,6,8'nci  kolonlara
ayrı renkler basarak fazladan renk elde etmemizi daha kolaylaştırır. (Daha  önce
hi-res interlace modunda anlatmıştım) Bu özellik renkli interlacelerde  çok  işe
yaramıyor gibi görünse de hayat kurtarıyor.

Drazlace
Developer: Noice

Draz paint'in interlace çizim  yapanı. Çok temiz  bir arabirime sahiptir.  Ancak
açıkçası sunduğu  seçenekler nedeniyle  True Paint'in  gölgesinde kalan  (bence)
bir program. Sadece  disk menüsünde herhangi  bir 1541  turbosu kullanmamasından
dolayı,  fd2000,  C64   hd  gibi  cihazlarla   sorunsuz  save-load   yapabilmesi
sebebiyle bir ara  kullanmıştım. Gene de  electric/extend, poison/singular  gibi
grafikerler   bu   program   yardımı   ile   uçuk   grafikler    çizebiliyorlar.


Interlace-Fli çizim Programları

Fun Paint II
Developer: Manfred Trenz

Turrican, R-type,  Katakis gibi  oyunların C64  versiyonlarının  programlamasını
yapan Manfred Trenz  tarafından yapılmış,  I-fli gibi C64'ü  kasan ve  hafızanın
neredeyse  tamamını  kullanan   bir  mod  için   çok  gelişmiş  çizim   araçları
barındıran bir editördür.  Geometrik toollar,  copy&paste gibi  araçları hem  de
normal  çizim  ekranında  kullanabilmesi  çok  iyi  bir  özelliktir.  Bu   arada
I-fli'nin özelliğinden dolayı  sol üç kolon  (24x200 piksel) kullanılamaz.  Aynı
zamanda zoomout  modunda  pointer'ı  dolaştırırken  ekranın  solunda  çıkan  boş
kareyi önemsemeyin  o  fli'den  kaynaklanan bir  programlama  hatası.  Programın
zoomin modu  gerçekten çok  rahat bir  çizim olanağı  sunuyor. Gördüğüm  en  iyi
joystick  hareket  rutini  ile  çok  rahat  joystick  piksellemesi  yapabiliyor.
Bu programın en büyük  eksisi ise çok sayıda  hatasının olması, sık sık  uçması.
Backround   rengi   fbi   fli   editörün   aksine   siyahtan   farklı   renklere
değiştirilebiliyor.  Ancak  bunu  kesinlikle  önermiyorum.  Çünkü  bu  programda
backround rengi  siyahtan  farklı bir  renk  yapıldığında, siz  ekrana   bir kaç
piksel koymak  istediğinizde  program  bazı pikselleri  siliyor  ve  bir  yerden
sonra çizim yapamaz oluyorsunuz. Ancak siyah arka planda program  genelde  sorun
çıkarmıyor. Gene  de zoomout  modunda uzun  süre sahipsiz  bırakmayın  programı,
uçabilir. Bir diğer  hata (Bu  Fbi fli  editörde de  olabiliyor,aslında tam  bir
hata  değil,   colour   ram'deki   rengin  hangisi   olduğunu   programın   size
göstermemesinden kaynaklanıyor)   siz  8x8  piksellik hücrede  renk  kullanımını
doğru da yapsanız  bazen yeni renk  basma zorluğu yaşıyorsunuz.  Mesela siz  bir
satırda 2  renk  kullandığınız  ve  daha  1  renk  fazlanız  olduğu  halde  bunu
basamayabiliyorsunuz. Bu  durumda  size  tavsiyem  temiz  bir  8x8  lik  hücrede
resmin bu  kısmını aynen  pikselleyerek block  copy yardımı  ile, bozuk  hücreye
pastelemeniz   veya   bozuk     hücreyi    silerek     yeniden    piksellemeniz.
Uyarı: Fli  özelliğini  kullanan  programların çoğu  bu  tarz  hatalara(?)  açık
olabiliyor ve sorun çıkarabiliyor.
Funpaint'in bir  güzel özelliği  de disk  ekranında dosyayı  sıkıştırarak  kayıt
yapabilmesi ki, I-fli  gibi çok yer  kaplayan bir mod için  hayati bir  özellik.
Funpaint'in bir  versiyonu  daha  var.  Fli  rutini  değiştirilmiş  ve  renkleri
tuşlarla  seçebilme  opsiyonu  eklenmiş.  Onu  bulmanızı  tavsiye  ederim.  Daha
sorunsuz ve rahat.


Gun paint:
Developer: CP-Verlag

Fun paint kadar çok opsiyonu olmasa da, Gun paint fun paint'den daha  az  hatalı
bir program.  Genelde  daha stabil  çalışıyor.  Zoom modunda  hucre  kopyalaması
yapabiliyor.
Eğer ben zoom modunda çizim yapacağım, fazla hata ile uğraşamam  diyorsanız  gun
paint'i size önerebilirim.


IV-Çizim için teknik ve öneriler

Piksel çizim için püf noktaları

a) Bütün çizim modları  için geçerli olan bir  kuralı başta verelim. Eğer  sizin
resim yeteneğiniz  güçlü  ise,  piksel  çizim yapamamanız  için  hiç  bir  neden
yoktur. Olay tamamen  yetenek ile başlar  ve biter. Eğer  resime yeteneğiniz  ve
ilginiz yoksa  piksel  çizim  yapabilmeniz  mucizelere  kalmıştır.  Tabi  piksel
çizimde hayalinizde  canlanan imajları  tam  olarak yansıtabilmek  için  gerekli
teknikleri  öğrenmek  çok  zaman  alan   bir  iştir  ve  bir  resmi   tamamlamak
genellikle kağıt-kalem kullanarak  yapılan çizime  göre daha  uzun sürer.  Ancak
temelde  resim  sanatında   kullanılan  hemen  herşey   piksel  çizim  için   de
geçerlidir.

b) Bir piksel resmin güzel olup olmayacağı başlangıçta belli  olmayabilir.  Size
sürekli yanlış  bir şeyler  varmış gibi  gelebilir, ancak  resimleri final  hale
getirmeden yarıda  bırakmamanızı tavsiye  ediyorum.  Sonuçta resmin  güzel  olup
olmayacağı   eğer    çok    tecrubeli   değilseniz    son    piksellere    kadar
anlaşılmayabilir.  Mesela  i-fli   modda  çizdiğiniz   bir  grafikteki   titreme
hatalarını henüz düzeltmemişseniz bu sizin gözünüzü çok rahatsız  edecektir.  Ve
belki de resmin kötü  olduğu yanılgısına düşmenize  sebep olacaktır. Bazen  koca
bir  resmi  batıran  şeyin  sadece   basit  bir  yanlış  renk  seçimi   olduğunu
farkedecek  ve   onu  değiştirince   resmin  gayet   güzel  bir   hal   aldığını
farkedebilirsiniz ki bu tecrubeli piksel artistlerin bile başına  gelebilen  bir
hadisedir.
Kısaca resimlerinizi  final hale  getirin. Gene  de bir  şeye benzemiyorsa  çöpe
atın. En azından tecrübe kazanmış oldunuz.

c)  Computer   scene'de,   önemli   artistlerin   çalışmalarına   veya   çeşitli
fotoğraflara  bakılarak  yapılan  pikselleme,  kabul  gören  bir  grafik   çizim
yöntemidir.   Ve  iyi  grafikerler  arasında  bu  tarz  çalışmaların  bilgisayar
versiyonlarını            piksellemek             oldukça             yaygındır.
Ancak konunun  ve tasarımın  tamamen size  ait  ve orjinal  olması da  artı  bir
puandır. Ve işin  "artist"lik yönüdür.  Siz de  ünlü ressamların  çalışmalarının
C64 versiyonlarını  yaparak piksel  grafik yeteneklerinizi  sergileyebilir  veya
kendi tasarımlarınızla  sanatsal yönünüzü  ve piksel  yeteneklerinizi bir  arada
konuşturabilirsiniz.

d)  Piksel   artistliğin   en  önemli   yanı,   grafiğin  baştan   sonra   sizin
piksellerinizden oluşmasıdır. Malesef  digitize resimleri pc'den  C64'e  çeşitli
converterlarla çeviren ve  yarışmalara piksel grafik  kategorisinde katılan  bir
çok ahlak yoksunu  şahıs hep vardı  ve her  zaman var olacaktır.  Siz siz  olun,
scanner, converter vs. gibi zararlı aletlerden uzak olun. Zira  convert  edilmiş
bir  grafiği   tecrubeli   bir   piksel  artist   1000   km   den   tanıyabilir.

e)  Eğer   fotoğraftan  veya   bir   sanat  çalışmasından   bakarak   pikselleme
yapıyorsanız, bunun tam  olarak o çalışmaya  benzemeyeceğini, bir C64  versiyonu
olacağını aklınızda tutun.  Çünkü C64'ün  çoktan seçmeli bir  paleti yoktur.  Ve
kullanabileceğiniz  renkler  ve  elde  edeceğiniz  benzerlik  sınırlıdır.  Ancak
C64'de piksellenemeyecek  hiç bir  şey de  yoktur. Bu  yüzden, çalışmak  zorunda
olduğunuz  renkler,  orjinal  renklerden  çok   farklı  da  olsa,  devam   edin.

f) Resimlerde  çok fazla  boş alan  bırakmamaya gayret  edin. Bir  bölgenin  çok
uzun süre aynı renk gitmesi, resimlerinizi tekdüze hale getirir. Çok  düz  giden
yerlere az da olsa bir  gölge, bir iki piksellik  bir tonlama yapın. Çünkü  stil
olarak bu  şekilde olması  gereken (Mesela  cartoon tarzı)  çalışmalar  dışında,
kompleks çalışmalarda  aynı  rengin basıldığı  geniş  alanlar resmi  olumsuz  ve
basit kılar.

g) Çizdiğiniz obje  için arzuladığınız detay  seviyesini önceden belirleyin. Ve
objenin ekrandaki boyutunu ona göre ayarlayın. 
Örneğin  bir   insan   yüzü   için   5x5   piksellik   bir   alan   ayırdıysanız
yapabileceğiniz  burun  detayı,  burun  için  kullanacağınız  pikselin   rengini
belirlemekten ibaret kalacaktır.

Hi-res Çizim teknikleri

Hi-res modunda 320x200 çözünürlük ve biri çizim biri backround olmak  üzere  8x8
lik hücrelerde  2  renk  kullanabileceğimizi biliyorduk.  Şimdi  ufaktan  hi-res
çizimde     dikkat     edilmesi     gereken     püf     noktalarına     geçelim.

Eğer hi-res olarak tam ekran boyunda bir resim yapacaksak önce  kendimize  resim
boyunca  değiştirmeyeceğimiz  bir  arkaplan   ve  çizim  rengi   belirlemeliyiz.
Karakalem  çalışır  gibi  arka  planı  beyaz  ve  çizim  rengini  siyah   olarak
belirleyebiliriz. Ancak  monitörde beyaz  çok  göz aldığı  için ve  tv'de  beyaz
üzerine siyah  bozulmalara  yol  açtığı  için  genel  olarak  açık-gri  arkaplan
üzerine koyu  gri  çizim  rengi  tercih  edilir.  Bu  hem  göz  yormaz.  Hem  de
pikselleriniz kolaylıkla ayırt edilebilir.

Hi-res çizim yapmanın(Hatta daha  genel olarak piksel  çizim yapmanın) en  büyük
püf noktası önce  çizimin ana  hatlarını oluşturmak  sonra detayları,  ışıklanma
ve  gölgelenme  etkilerini,  bir  dolu-bir  boş  piksellerle  tonlayarak  ortaya
çıkarmaktır.
Çizdiğiniz cisimlerin  geometrisini  ortaya  çıkarmak  için  kullanacağınız  tek
renklik paleti aynı zamanda ışıklanma ve gölgelenme için de  kullanacak  olmanız
hi-res çizmenin  en zorlu  yanıdır. Resminizde  kolayca, istenmeyen  bir  piksel
kaosu oluşabilir.
Bunu  aşmak  için,  önce  resmin  sadece  geometrisini  ayrıntılı  bir   şekilde
çizmelisiniz.     Burada     pikselleri      dilediğiniz     gibi      kullanın.
Ardından bir dolu bir boş piksellerle taramalar yaparak  ışıklandırmayı  ekleyin
resminize. Son  olarak gölgelenme  etkisini gene  bir dolu  bir boş  piksellerle
ekliyoruz.

Dikkat: Işıklandırma  çok parametrik  olmalıdır. Sizin  ışıklandırma  tekniğiniz
ne  olursa  olsun  eğer  düzenli  değilse  çizdiğiniz  nesnenin  geometrisi  ile
karışır. Mesela  genç  bir bayan  portresine  bakan gözlerimiz,  ışıklanma  için
kullanılan   piksellerle   geometri   için   kullanılan   piksellerin    farkını
algılayamıyorsa, genç bayanımızın yüzünde istenmeyen  kırışıklıklar  oluşabilir.
Aynı şey gölgelenme için de geçerlidir.

 Zaman  içerisinde tonlamaları  tamamladıktan sonra  başlangıçta çizdiğiniz  ana
hatları yavaş yavaş silmeye ve resime yedirmeye başlamalısınız.  Gerçek  hayatta
belirgin   çizgiler   pek   fazla    bulunmaz   bunu   aklınızdan    çıkarmayın.

Resmin çiziminde  genel  resim çizim  kurallarına  dikkat ettiğinizde  ve  resim
tamamen  bir  karakalem  çalışması  gibi  tonlamalardan  oluşmaya   başladığında
başarılı çalışmalar ortaya koyabilirsiniz.
Hi-res tonlama en basit tonlama şeklidir ancak diğer tüm modlar için  bir  örnek
teşkil eder.
Hi-res tonlama  teknikleri için,  genellikle iki  renk çizilen  çizgi  romanları
incelemenizi  öneririm.  Bir  çok  çizgi  roman  hi-res  çizime  uyarlamak  için
uygundur. Bir  grafikerin    resmi  önce kara  kalemle  bir  kağıda  çizmesi  ve
ardından bu çizime  bakarak hi-res'te  pikesellemesi da son  derece kabul  gören
bir metoddur.

Çok renk çizim teknikleri 

Çok renk  çizim  teknikleri  hi-res'e  göre  daha  fazla  ek  bilgi  gerektirir.
Bunların en önemlisi  renk bilgisidir. Hangi  renklerin hangi renklerle  yanyana
geldiğinde güzel bir renk geçişi oluşturabileceğini bilmelisiniz.  Aynı  zamanda
C64'ün hücre  bazlı  grafik  sınırlamaları nedeniyle  renk  kullanımında  mümkün
olduğunca dikkatli  olmalı,  hücrelerin içerisine  desteklenen  renk  sayısından
fazlasının gelmemesine  dikkat etmelisiniz.  C64'ün  16 rengini  mümkün  mertebe
bir uyum  içerisinde  kullanmalısınız.  Bizlerin kullanacak  16.7  milyon  rengi
olmadığından  grafiği  sıradanlıktan  kurtaracak  her  renge  ve  bu   renklerin
çeşitli  kombinasyonlarına  ve  karışımlarına  ihtiyacımız  olacak.  Bazen  öyle
olmaz   renkler  mükemmel  sonuçlara   yok    açar  ki  gerçekten  şaşırırsınız.

Gelecek ay çizim  tekniklerine kaldığımız yerden  devam edeceğiz. C64'de  piksel
çizimle  ilgili   sorularınız   için   c64hydrogen@yahoo.com   adresine   e-mail
atabilirsiniz. Görüşmek üzere.

[b]Hydrogen/Glance[/b] 

********************************************************************************
ÖĞRETİCİ DÖKÜMAN : AURA İLE BULUT YAPALIM (Spritus/Resident)
********************************************************************************

Herkese selam;

Bu yazımızda  hep beraber  (en azından  grafikle ilgilenenlerle  birlikte)  Aura
ile kolaylıkla  nasıl bulut  yapıldığını göreceğiz.  Eskiden çizim  yaparken  en
sevmediğim şeylerden biri  bulut çizmek zorunda  kaldığım durumlardı. Çünkü  çok
uğraşmama rağmen  istediğim  gibi  çizemiyordum.  Sonra  pixel  dahisi  Lazur'un
çizimlerini gördüm. Kendine  has stili  ile çizdiği  grafikleri gerçekten  nefes
kesicidir. Bir grafikerin pixellerle uzun süre oyalanmayı aşıp  resmin  geneline
duygu vermeye yoğunlaştığı  zamanlarda ortaya  etkileyici sonuçlar  çıkabiliyor.
Bunu yeni keşfettim : )

Şimdi  dersimize  geçelim.   Öncelikle  kullanacağımız   program  Newtek   Aura.
Gerçekten 2d  24bit çizim  yapmak isteyen  bir grafikerin  isteyeceği hemen  tüm
araç ve  özelliklere  sahip.  Birçok  kişi  Photoshop'u  çizim  programı  olarak
addeder. Yanlış.  Photoshop ismi  üstünde bir  photo editing  programıdır.  Aura
ise gerçek bir çizim programı.

Programımızı    açtıktan    sonra    karşımıza    gelen    oluşturulacak    yeni
canvas'ın(tuvalin) boyutunu ayarlayacağımız diyalog kutusuna  400x300  ayarlayıp
"ok"  diyoruz.   Tuvali   kapatan   "layer"  panelini   ekranın   altına   doğru
sürükleyelim.     Böylece     rahat     bir     çalışma     ortamı     sağladık.

Gökyüzü rengini  seçmek için  "color picker"  panelindeki sliderları  kullanarak
güzel bir mavi  tonu seçelim. Daha  sonra floodfill aracıyla  ekranı tamamen  bu
renge  boyayalım.   Buraya   kadar  basit   hazırlıklarımızı   yaptıktan   sonra
bulutumuzu çizeceğimiz katmanımızı layer panelinden oluşturalım.  Bulutun  genel
dış hatlarını  belirlemek  için freehand  select  aracına ihtiyacımız  var.  Ama
önce, bulutu  çizeceğimiz  yere  bi  hayli  zoom  yapalım  ki  kontrolsüz  mouse
hareketlerinden doğacak  türlü  hatalardan uzaklaşalım.  Zaten  bildiğiniz  gibi
sürekli zoom'da çalışmak  zorundayız. Aksi halde  istediğimiz kalitede  çizimler
yapmamız çok zor olur.  Zoom olayını hallettikten  sonra tekrar freehand  select
aracına  geçebiliriz.  Şimdi  bulutun  dış  hatlarını  örnekte  görüldüğü   gibi
çizmeye çalışın.  Ardından  koyu gri  tonlu  bir renk  ayarlayıp  floodfill  ile
seçili alanın içini  boyayın. Seçimi kaldırmadan,  main panel'den freehand  line
aracını daha sonra tool  panel'den airbrush'i seçin  ve color picker  panelinden
orta tonlu yumuşak  bir turuncu seçin.  Airbrush'ın size'ını %12'ye  düşürdükten
sonra seçim  alanının sol  kenarını  takip ederek  örnekteki gibi  boyayın.  Hiç
bozmadan size'ı %7'ya düşürüp tool panelindeki "color" yazılı  araca  tıklayarak
efektlerin listesini  açın  ve burdan  "add"  efektini seçin.  Şimdi  yine  aynı
kenarları üzerinden  bi kaç  defa gelip  giderek boyayın.  Güzel şeyler  çıkmaya
başladı değil mi?  Freehand select aracını  kullanarak yaptığımız çizime  benzer
bir şekilde fakat biraz  sağa bir bulut hattı  daha çizelim. Yukarda  anlattığım
adımları takip  ederek bu  katmanı da  farklı renk  tonlarıyla çizin.  Keyfinize
göre başka katmanlar da çizebilirsiniz.
Eveeet.  Gelelim  son  adıma.   Bulutlarımızın  kenarlarını  parçalayarak   daha
gerçekçi  görünmesini  sağlayabiliriz.  Bunu  yapmak  için  de  tool   paneldeki
warpbrush'tan faydalanıyoruz. Bu aracı seçtikten sonra şiddetini  düşürmek  için
size'ı 3.5 ve power'i %1 ayarlayın. Sonra bulutların kenarlarına  rastgele  kısa
veya uzun  darbelerle  dokunun  ama abartmayın.  Sizinkini  bilmem  ama  üzerine
birkaç efekt daha geçtikten  sonra benimki resimde  görüldüğü gibi  sonuçlandı.

Tekrar görüşmek üzere bol pixelli günler..
[b]Spritus/Resident[/b] 

********************************************************************************
ÖĞRETİCİ DÖKÜMAN : BASİT BİR GEÇİŞ EFEKTİ : FADE IN/OUT (Scg)
********************************************************************************

Bu  yazıda  basit  geçiş  (transition)   efektlerinden  biri  olan  "fade"   den
bahsedeceğim. Efekt birden  fazla yöntemle yapılabilir.  Detaya girmeden  yazıda
anlatılacak yöntemlere bir bakalım :

1) Frame Buffer ile Blending. (Opengl ve fixed pipe ile)
2) Render to Texture (Opengl ve fixed pipe ile)
3) Pixel Shader (Direct3D ve programlanabilir pipe ile)

Görüldüğü gibi  herkes  için  bişeyler var  (  sensei  için bile  hehe  :)  )  .
Tutorial populer  grafik  api   ları  ile  tecrübesi olan  (ileri  seviye  bilgi
gerekmiyor)  coder   lar  düşünülerek   hazırlandı.  Yeri   gelmişken   söylemek
istediğim birşey var. Yazıda çok miktarda ingilizce kelime (çoğu  teknik  terim)
olabilir. Grafik programlama terminolojisini bilenler için sorun  olmaz  sanırım
ama türkçeleştirme için ekstra efor sarfetmicem. Yani gidipte texture  map  için
doku eşlemi falan  demicem ama gereken  yerlerde de terimler/kavramlar  hakkında
gerekli açıklamaları yapacam.

Birisi Fade in mi dedi ?? 

Ne  anlattığımızı  detaylıca  açıklamanın  vakti  geldi.  Farz  edelim  bi  demo
yapıyorsunuz.  Sahneler  (yada  part  lar  mı  diyelim..)  arası  geçişlerin  de
yumuşak olmasını  istiyorsunuz..  Yani  ani ,  kütük  gibi  geçişler  olmayacak.
Mesela ekranın  yavaşca  kararması yada  kararmış  bir ekrandan  sahnenin  yavaş
yavaş  görünür  hale  gelmesi   gibi  şeylerden  bahsediyorum.  Sanırım   yapmak
istediğimiz şey anlaşılıyor. Şimdi gerekli tanımları yapalım : 

Fade in  :  Gösterilmek  istenen  sahnenin yavaş  yavaş  görünür  hale  gelmesi.
Genellikle siyah ekrandan başlanır  ve sahne zamanla  görünür hale gelir. Siyah
renk zorunluluk değil tabii ki. İstediğiniz renkten başlayabilirsiniz.

Fade out  : Sahnenin  yavaş  yavaş gözden  kaybolması durumu.  Genellikle siyah
renge  doğru  gidip  ekranı  karartırız.  Siyah  dışındaki  renklere  de  gitmek
mümkün.

Tamam şimdi bu iki efekti nasıl yapabiliriz ona bakalım. 

1) Frame Buffer ile Blending Yöntemi

Bu  yöntem  için   yapılması  gerekenleri   kısaca  bir   sıralayalım  ,   sonra
detaylarına girecez.

- Sahnenizi normalce çizdirin.
- Depth Test i kapatın.                                                        
                
- Orthografik projeksiyona geçin.                                              
        
- Alpha Blending i aktif hale getirin.                                         
         
-   Screen   Alingned   Quad    (Tüm   ekranı   kaplayan   dörtgen)    çizdirin.
- Alpha Blending i kapatın.                                                    
            
- Tüm çizdirim işlemlerini bitirin.                                            
            

Bu yöntem  full -  screen alpha  blending kullanıyor.  Önce sahneniz  neyse  onu
çizdiriyorsunuz , ondan  sonra orthografik  projeksiyon moduna  geçip tam  ekran
bir dörtgen çizdiriyorsunuz.  Dörtgeni çizdirirken ,  dörtgeni oluşturan  vertex
lerdeki alpha değerlerini  zamanla 0 dan  1 e yada  1 den 0  a doğru  çekiyoruz.

Frame Buffer ile Blending ve Doğru Blending Faktörlerini Seçmek

Yöntemin ismine frame  buffer ile  blending dedim.  Peki nedir  fame buffer  ile
blending? OpenGL  yada Direct3D  ile çalışırken  texture stage  ler arasında  da
(multi-texturing yaptığınızı  düşünün)  blending  yapabilirsiniz.  Texture  lari
oluşturan texeller blending hesaplamalarina girerler ve oluşan  texel  değerleri
diğer pipeline seviyelerine  (esasında eğer  varsa  per  fragment  operations a,
yoksa frame buffer  a)  yollanır  . Frame  buffer ile blending  de ise  blending
hesaplamaları frame buffer da  yazılı olan  pixel   değerleri (destination, dst)
ile  pipeline  dan  gelen  (rasterizasyon  ve  texture  mapping  sonucu   oluşan
pixeller) yeni pixel  değerleri (source  , src) arasında  olur. Bu  hesaplamalar
OpenGL pipeline ının  en sonunda  "per fragment operations"  denen kısımda  olur
ve alpha blending olarak bilinir. Alpha blending işlemi frame  buffer  okumaları
(destination pixellerin  de hesaba  katıldığını unutmayın)  da içerdiğinden  çok
sık yapılması önerilmez. Bizim yöntemimizde viewport taki tüm  pixellerle  alpha
blending yapacağız.  Performans  bakımından  günümüz  kartları  için  pek  fazla
sorun yok esasında.
Source  ve  destination  pixeller  anlaşıldıysa  blending  faktörlerinin   nasıl
seçildiğine bakalım:

OpenGL de Alpha  Blending yaparken önce  Blending state ini glEnable(GL_BLEND);
ile aktif hale getiririz.
Sonra glBlendFunc(srcfactor,dstfactor); ile  de source  ve destination  pixeller
için blending faktörlerini ayarlarız.

Not : glBlendFunc a  argüman olarak srcfactor ve  dstfactor yazdım. Bunu  sadece
ilk argümanın  source pixeller  için ,  diğerinin de  destination pixeller  için
olduğunu belirtmek için  yaptım. Bu  argümanlar GL_ONE,GL_SRC_COLOR   vs..  gibi
OpenGL de  tanımlı  sabitler  olacak.  Bu sabitlerin  tam  listesi  için  OpenGL
referanslarına bakın.

İşin  matematiğine   geçmeden  önce   belirtmem   gereken  bişey   var.   Burada
bahsedeceğim blending yöntemi additive blending diye bilinen  yöntemdir.  OpenGL
spesifikasyonu sadece  bir blending  yöntemi tanımlar.  O da  additive  blending
dir.  Additive   blending   dışındaki   yöntemler  :   subtractive   (   reverse
subtractive) ve  min-max blending  yöntemleridir. Direct3D  de de  bu  yöntemler
tanımlıdır.  Mesela  aşağıdaki  kod  parçası  kullanılacak  blend   operasyonunu
subtractive olarak seçer.

device->SetRenderState(D3DRS_BLENDOP,D3DBLENDOP_SUBTRACT);

Direct3D için  SDK  da D3DBLENDOP  Enumerated  Type isimli  kısma  bakarak  daha
fazla bilgi  edinebilirsiniz.  OpenGL  e  geri dönersek  ,  OpenGL  de  additive
blending   dışındaki   yöntemler    extension   mekanizmasıyla    programcıların
kullanımına sunulmuştur.
Genel blending yöntemlerini şöyle özetleyelim :

Kullanacağım notasyon şöyle olacak :

Cf --> Blending operasyonları sonucu oluşan renk (final color value)
Cs --> Source pixel in rengi
Cd --> destination pixel in rengi
S --> Source pixelin blend faktörü
D --> Destination pixelin blend faktörü

 Additive Blending :

Cf  = Cs * S + Cd * D    olur ve 

if ( Cf > 1.0 )
        Cf = 1.0
else if(Cf <= 1.0)
        Cf = Cf 

Yukardaki if - else bloğuyla işlemin saturated olduğunu  anlatmak  istedim. Yani
oluşan renk değerleri 1.0 ın üzerine çıkamaz.

 Subtractive Blending :

Cf = Cs * S - Cd * D olur ve 

if ( Cf < 0.0 )
         Cf = 0.0
else if (Cf >= 0.0)
         Cf = Cf 

OpenGL için GL_EXT_blend_subtract extension ına bakın.

 Reverse Subtractive Blending :

Cf = Cd * D - Cs * S olur ve 

if ( Cf < 0.0 )
         Cf = 0.0
else if (Cf >= 0.0)
         Cf = Cf 

ve yine GL_EXT_blend_subtract extension ına bakın.

MinMax Blending :

minimum için : 

Cf = min ( Cs , Cd )  olur.

Sonuç  source ve destination  piksellerin  minimumudur.. Tabii bu  işlemin  renk
bileşenleri (RGBA) bazında yapıldığını unutmayın. 

maksimum için : 

Cf = max ( Cs , Cd) olur.

GL_EXT_blend_minmax  extension ına bakın.

 

Bu hatırlatmadan  sonra esas  konumuza geri  dönelim. Additive  Blending  işlemi
matematiksel olarak  ağırlıklı  toplamadan  (weighted sum)  başka  bişey  değil.
Matematiği ise şöyle:

Rs,Gs,Bs ,As --> Tek bir source pixel i belirtren 4 lü olsun.
Rd,Gd,Bd,Ad --> Tek bir destination pixel i belirten 4 lü olsun.

Sr,Sg,Sb,Sa ---> Tek bir source pixel in blend faktörlerini belirtsin
(ağırlık parametreleri)
Dr,Dg,Db,Da ---> Tek bir destination pixel in blend faktörlerini belirtsin
(ağırlık parametreleri) 

Blending sonucu oluşan renk:
color = (Rs * Sr + Rd  * Dr) , (Gs * Sg + Gd * Dg) ,  (Bs * Sb + Bd * Db) ,  (As
* Sa + Ad * Da)

final RGBA değeri yukarda  görülüyor. Şimdi bu  bilgi  işimize  nasıl yarayacak?

Not : 
Alpha değerinin 1 olması opaklık durumudur.
Alpha değerinin 0 olması transparanlık durumudur.

Fade in  durumunu  ele alalım.  Sahnemiz  siyah ekrandan  görünür  hale  gelsin.
Şimdi böyle bir senaryoda  ekrana çizdireceğimiz quad  ın renginin siyah  olması
, alpha değerinin de 1  den 0 a gitmesi  gerekir (nedeni aşağıda detaylı  olarak
anlatılacak..). Çünkü böyle bir durumda :

 Sahne --------> Destination
 Quad  --------> Source olur   ve 

blending faktörleri  de GL_SRC_ALPHA  ile GL_ONE_MINUS_SRC_ALPHA  seçilir.  Yani
Sr,Sg,Sb,Sa 1  den  0  a gider  (Quad  ın  alpha  sını 1  den  0  a  götürüyoduk
unutmayın..) , Dr,Dg,Db,Da 0 dan 1 e gider çünkü bunlara 1 - Quad  Alpha  değeri
atanır.

Sınır koşulları için  (Quad alpha değerinin  1 ve 0  olduğu durumlar)  yukardaki
blending eşitliğini yazarsak :
Quad Alphası = 1 (source pixellerin alphası = 1 ) için , Sr = Sg = Sb  = Sa  = 1
dir ve Dr = Dg = Db = Da = 0 dır.

color = (Rs) , (Gs), (Bs) , (As) olur. Quad ı görürüz.

Quad Alphası = 0 için Sr = Sg = Sb = Sa = 0 dır ve Dr = Dg = Db = Da = 1 dir.

color = (Rd) , (Gd) , (Bd) , (Ad) olur ve sahneyi görürüz.

Benzer şekilde  Fade out  içinse  Quad ın  alpha değerinin  zamanla  0 dan  1  e
gitmesi gerekir. 

 

2) Render To Texture Yöntemi : 

      Bu  yöntemin bir  kısıtlaması  var. Sadece  siyah  renk için  fade  in/out
yapabiliyoruz (yani tüm  ekranın siyaha gitmesi  yada siyahtan sahnenin  görünür
hale gelmesi gibi..).

    Yöntemi anlatabilmek için  OpenGL texturing fonksiyonları  hakkında bir  kaç
şey söylemem lazım. Texture mapping yaparken texture u  uygulayacağınız  yüzeyin
rengini tamamen ihmal  edebilirisiniz böylece yüzeyin  rengi sadece texture  map
den gelir. Ayrıca bir   yüzeyin rengini texture  map den gelen renklerle  modüle
( çarpma  )  edebilirsiniz. Standart  OpenGL  size 4  tane  dokulama  fonksiyonu
sunar. Bunlar GL_DECAL , GL_REPLACE , GL_MODULATE  ve GL_BLEND. Bu  fonksiyonlar
glTexEnv{if}(......)  komutu  ile   aktif  hale  getirilirler.     Bu   yöntemde
GL_MODULATE i kullanacağız.

Cf   ---> sonuç renk değeri
Cs  ---> yüzeyin rengi
Ct   ---> texture map de tutulan renk

Cf = Cs  * Ct                  GL_MODULATE  in yapacağı işlem bu. Bu  bilgiyi
şöyle kullanacağız : 

- Tüm sahne bir texture a çizilecek. Yukardaki eşitlikteki Ct değeri bu.
- Bir  önceki adımda  sahnenin  çizildiği texture,  bir  screen  aligned  quad a
uygulanacak. Screen aligned quad Cs verisini tutuyor.
-  Mapping  yapılırken  glTexEnvf  (  GL_TEXTURE_ENV  ,  GL_TEXTURE_ENV_MODE   ,
GL_MODULATE); komutu kullanılacak ve yüzeyin rengi :

Fade  in       için  : 0  dan  1  e
Fade out  için : 1  den  0 a   zamanla çekilecek.

Daha açık yazarsak şöyle bir işlem uygulanıyor : 

(Rt,Gt,Bt) ---> Texture un rengi. (Çizdirdiğiniz sahne)
(Rs,Gs,Bs) ---> Texture u uyguladığınız full - screen Quad ın rengi.

Color = (Rt * Rs) , (Gt * Gs) , (Bt * Bs)

Sınır değerler için yukardaki eşitliği incelersek :
(Rs , Gs, Bs)  ---> (0.0,0.0,0.0) için :
Color = (0.0) , (0.0) , (0.0)  (siyah ekran)

(Rs,Gs,Bs)  ---> (1.0,1.0,1.0) için :
Color = (Rt) , (Gt) , (Bt)       (sahne)

olur.

Quad  ın  rengini  mesela  fade  in  için  şu  şekilde:  glColor3f(t,t,t);    (t
değişkeni zamanla 0 dan 1 e götürülerek) ayarlanabilir. 

Peki render to texture adımını nasıl yapabiliriz ? 
Opengl bize 3 farklı seçenek sunuyor.
1) glCopyTexImage  yöntemi  :  Sahne  backbuffer a  çizdirilir  ,  backbuffer  a
çizdirilen sahne   glCopyTexImage    ile bir  texture a  kopyalanır.  Backbuffer
tekrar temizlenir (glClear  (GL_COLOR_BUFFER_BIT); ) .  Sonra yukarda  anlatılan
yöntemler uygulanarak elde edilen texture screen aligned  quad a  uygulanır. (En
yavaş yöntem budur.)

2)  PBuffer  (Pixel  Buffer)  yöntemi  kullanılabilir.  Bu  yöntemde  pencerenin
kullandığının dışında  farklı  bir  render context  yaratılır  ve  sahne  buraya
çizdirlir.  Sonra  wglARBRenderTexture  extension   ı  kullanılarak  bu   render
context  in  içeriği  texture  olarak  kullanılabilir.  Pbuffer  ları   kurmanın
karmaşıklığı yüzünden  ve  de  render  context  switching  hakkındaki  trickleri
bilmiyorsanız ( her frame de render context switcing  var :   pbuffer --> window
-->pbuffer...  GeForce  3 , Radeon  8500 altı kartlarda  sürünürsünüz)   PBuffer
ile render to  texture dan  uzak durun. Pbuffer  lar başlı  başına bir  tutorial
konusu olabilir. Bu yüzden burda kesiyorum.

3) EXT_framebuffer_object  extension  ınını  kullanabilirsiniz.  Gerek  kullanım
kolaylığı ve hız açısından  en uygun yöntem bu  bence. Fakat detaya  girmiyorum.
Bu da kendi içinde bir tutorial olabilir. 
  
 

3) Pixel Shader Yöntemi : 

Huh , şimdiden  baya uzun  bir  tutorial oldu. Bu  kısmı  okuyacak  arkadaşların
direct3d   ile  tecrübesi olduğunu  varsayıyorum.  Yani en  azından  burada  api
detaylarına girmicem. Mesela  texture nasıl  yüklenir yada  .fx dosyaları  nasıl
hazırlanır gibi.. çünkü bunlar başka bir tutorial konusu olabilir. 
Shader lar ile  fazla haşır neşir olmamış scener  lar için  bu  shader  konusuna
çok kısa bir giriş yapalım.
Demolar (ve  bilgisayar  oyunları)  gerçek  zamanlı  bilgisayar  grafikleri  ile
ilgili olduğundan , bizim  shader diyince anlamamız gereken  şey şu olmalı :  3D
işhattını (pipeline)  modifiye  eden  programlar.  Bu  programlar  GPU  üzerinde
(vertex ve pixel  processor ler)  çalışır. Günümüz  GPU teknolojisinde  pipeline
nın belli kısımları  programlanabilir haldedir  ve pipeline nın  kabaca iki  ana
hattan oluştuğunu söyleyebiliriz : Vertex hattı ve pixel hattı.

Yukarda yazılanlara göre bazı tanımlar yapabiliriz:

Vertex Shader  : Pipeline  a giren  her vertex  üzerinde çalışan  programlardır.
Vertex shader ile  GPU nun  vertex processor denen  donanım kısmı  programlanır.
Vertex shader  lar  girdi  olarak  (dolayısıyla  vertex  processor)herhangi  bir
geometrik  dönüşüme  uğramamış  vertex  ler  (object  space  de  tanımlı)  ,  bu
vertexlerle ilişkilendirilmiş renk  , doku koordinatı  , normal vektörleri  vs..
gibi verileri  alırlar. Çıktı  olarak  ise clip  space de  vertex  koordinatları
(rasterizer a  gitmeden  önce, vertex  shader  dan sonra  arada  başka  pipeline
seviyeri var  ,  mesela  backface  culling yada  homojen  divide  gibi..  bunlar
programlanamaz)  ve  rasterizer  ı  besliyecek   her   türlü   veriyi  (modifiye
ettikleri doku  koordinatları  , normaller  vs..)  verirler. Vertex   shader lar
yeni vertex ler üretemezler , var olan vertexleri modifiye ederler.

Pixel  Shader  :  Rasterizasyon  sonucu   oluşan  her  pixel  üzerinde   çalışan
programlardır. Pixel  shader  ile  pixel processor  programlanır.  Input  olarak
rasterizer dan gelen verileri alırlar ve çıktı olarak da color ve  depth  buffer
a hesapladıkları piksel  değerlerini yazabilirler. Piksel  shader dan sonra  son
pipeline seviyesi  olan per  fragment operations  (yeni gelen  piksel  değerleri
ile frame buffer da  yazılı olan piksel değerleri  ile ilgili her türlü  işlemin
yapıldığı kısım.. depth test , alpha test , alpha blending fog vs..) gelir.

Esas konumuza  geri dönersek.  Fade In/out  işlemi bir  post processing  işlemi.
Yine sahnemizi bir texture a  çizdirecez ve bu texture  u alıp bir quad  üzerine
map  edeceğiz.  Pixel  shader  piksel  değerlerine  doğrudan  erişemediği   için
texture lookup yapacaz.  Bu yüzden  her frame texture  a çizdiriliyor(Render  to
Texture). Tutorial  yeterince uzadığından  nasıl  screen alingned  quad  çizilir
yada render  to  texture nasıl  yapılır  o  konulara girmicem  ,  sadece  shader
lardan bahdisecem. 

Fade In/Out için pixel  shader da lineer  interpolasyon yapacaz. İlk  anlattığım
yönteme (Frame Buffer  ile blending) dikkatle   bakarsanız lineer  interpolasyon
formunda olduğunu görürsünüz. Bildiğimiz iki değer arasındaki  değerleri  bulmak
için interpolasyon kullanırız. Şimdi lineer interpolasyonu bi anlayalım.
Mesela x ekseninde, x1 koordinatından x2 koordinatına gidecez :

LERP = x1 + (x2 - x1) * t 


dediğimiz  zaman  x1  ve   x2  nin  arasındaki  her   değeri  t  yi   kullanarak
bulabiliriz. t nin izin verilen değer aralığı [0,1] dir.  t = 0 için x1 , t =  1
için x2 deyiz. Interpolasyon bilgisayar grafiklerinde, özellikle animasyonda çok
kullanılan matematiksel bir araçtır. Lineer in dışında çeşitli  spline  eğrileri
kullanan interpolatörler de vardır.

Bizde  pixel   shader  da   texture  ile   fade  rengi   arasında  lerp   işlemi
uygulayacağız.

Not : Lineer interpolasyon lerp olarak da bilinir.

Daha önceden yazdığım .fx dosyasına bakalım ve en azından shaderlara  bir  parça
kendimizi alıştıralım. 

ilk olarak  uniform değişkenler  karşımıza çıkacak.  Uniform değişkenler  shader
ın etkilediği  her pixel  yada  vertex için  aynı kalan  değişkenlerdir.  Mesela
burada mWorldViewProjection,  transformasyon  matrisidir.  (object  space  ---->
clip space e) Shader ın etkilediği geometrideki her vertex için  aynıdır. t  ise
lineer interpolasyonda  kullanılan  parametredir  ve  her  pixel  için  aynıdır.
width ve  height vertex  shader da  doku koordinatları  için   offset  değerleri
hesaplanmasında kullanılır. Çünkü direct3d sampling kurallarına  göre  ekrandaki
pikseller ile  texturdaki  texellerin  1:1  eşleşmesi  için  doku  koordinatları
(u,v) yerine : u+ = offset_u , ve v+ = offset_v olmalıdır.

offset_u = (1.0/2.0 ) * (1.0/width) // width : screen width
offset_v = (1.0/2.0) * (1.0/height) // height : screen height

Esasında  HLSL   de  uniform   keyword   u  uniform   değişkenleri   belirtmekte
kullanılır. Fakat  global  değişkenlerde (shader  kodları  gövdelerinde  olmayan
değişkenler) buna gerek  yok , global değişkenler uniformdur..  Genelde  uniform
değişkenler uygulamadan shader a  gönderilen değişkenlerdir .   Her vertex  yada
her pixel için ayrıca hesaplanmazlar. 

float4x4 mWorldViewProj;
float t;
float width,height;

.fx dosyalarının bir güzelliği  de texture address  ve filtreleme modlarının  bu
dosyalar içersinde tanımlanabilmesidir. t0 pixel shader ın  kullanacağı  texture
u belirtir. s0  ise pixel  shader ın  bizim texture  umuza erişirken    (look up
için) kullandığı sampler dır. 

texture t0;
sampler2D s0 = sampler_state
{
  Texture = (t0);
  AddressU = CLAMP;
  AddressV = CLAMP;
  MagFilter = LINEAR;
  MinFilter = LINEAR;
  MipFilter = NONE;
};

Bu kısımda  ise  piksel  ve  vertex  shader  ların  kullandığı  veri  yapılarını
görüyoruz. C structlarından  pek bir farkı  yok. Göze çarpan  tek fark  değişken
isimleri yanındaki kolonlar ve bazı keywordler. Bu keywordlere  semantics  denir
ve  görevleri  ise  pipeline  dan  gelen  verilerle  ilgili  GPU  registerlarını
birbirlerine  eşlemektir.  VS_IN  struct  ına  bakarsak  pos  değişkeni  homojen
koordinatlarda (x,y,z,w) bir noktayı  temsil eder ve  vertex processor un  input
registerlarına (position  registerı ,  v0) alınacağı  POSITION0 semantic  i  ile
belirtilir.  VS_OUT  a   da  baktığınızda    pos  değişkeni,  vertex  shader  da
transform edilmiş  bir  noktayı  temsil  eder  ve  vertex  processor  un  output
register  ına  (output   position  registerı,oPos)   alınacağı  yine   POSITION0
semantici i  ile belirtilir.   HLSL  de input   ve  output registerlarının  aynı
semanticlerle belirtildiğini görebilirsiniz.

struct VS_IN
{
  float4 pos : POSITION0;
     float2 uv0 : TEXCOORD0;
};

struct VS_OUT
{
   float4 pos : POSITION0;
   float2 uv0 : TEXCOORD0;
};

Aşağıda VS isimli vertex  shader ımıza bakalım.  mul intrinsic (shader  compiler
ına gömülü  fonksiyonlardır)   fonksiyondur.  Matris  çarpımlarında  kullanılır.
Shader  larda   işlemler   vektörel   yapıldığından   (x,y,z,w   yada   r,g,b,a)
komponentleri açıkça  yazmanıza  gerek  yok.  In.pos  vertex  buffer  dan  gelen
koordinat bilgilerini taşır  ve her  bir vertex  in koordinatları  WorldViewProj
matrisi ile çarpılır ,  clip space deki konumları  bulunur. Bu vertex shader  da
gelen  doku  koordinatları  üzerinde   de  modifikasyon  yapıyoruz.  Daha   önce
bahsettiğim     nedenden      dolayı     offset      değerlerini      ekliyoruz.

VS_OUT VS(VS_IN In)
{
  VS_OUT Out; 
  Out.pos = mul(In.pos,mWorldViewProj);



//offset
  Out.uv0.x = In.uv0.x + 0.5 * (1.0/width);
  Out.uv0.y = In.uv0.y + 0.5 * (1.0/height);

  return Out;
}

Şimdi  esas   aksiyonun  olduğu   kısıma  geldik.   PS  fade   in/out  efektini
gerçekleştiren piksel shader ımız.
Bu shader da yapılan iş şu :

Color = Texture + (FadeColor - Texture) * t

t uygulamadan ayarlanıyor(  Herhalde bir timer  class ınız falan  vardır ha?  Ne
biliyim işte t 5 saniye içersinde  1 den 0 a yada belki  0 dan 1 e gitsin  tarzı
şeyler programlamanız gerekecek de) . t uniform değişken.  0 dan 1 e  götürürsek
fade  out   ,   1   den   0   a   götürürsek   fade   in   efekti   gerçekleşir.
Shader da tex2D  intrinsic fonksiyonu ile  texture a erişip  look up  yapıyoruz.
Görüldüğü gibi argüman  olarak bir  sampler ve  texture koordinatlarını  alıyor.
Bu eriştiğimiz  texture  un göstermek  istediğimiz  sahnemiz olduğunu  bir  kere
daha hatırlatıyim. Fade color için ben bu shader da beyaz  rengini  (istediğiniz
rengi seçmekte serbestsiniz)  seçtim ve  float4(1.0,1.0,1.0,1.0) ile  ayarladım.
Bu  vektörel  bir  veri  tipi  ve  RGBA  rengi  temsil  ediyor.  C++  tipi   bir
constructor ile  initialize  ettim.   Yukardaki  interpolasyon  eşitliğini  lerp
intrinsic fonksiyonu  hesaplıyor.  Son  olarak piksel  shader  hesapladığı  renk
verisini ilgili register a (COLOR0) yolluyor.

float4 PS(VS_OUT In):COLOR0
{
     float4   color  =   lerp(tex2D(s0,In.uv0),   float4(1.0,1.0,1.0,1.0),   t);
   return color;
} 

Aşağıdaki  kısım   ise   hazırladığımız  efektle   ilgili   bilgiler   içeriyor.
Uygulamadan bu efekte FadeinOut ismi ile erişebiliriz. Tekniğin  ismi  FadeinOut
ve tek pass den  oluşuyor. Ayırca bazı render  state leride bu teknik  içersinde
ayarladım.  (Tüm  direct3d   state  lerine  .fx   dosyaları  içersinden   erişip
ayarlayabiliriz.). Son  satırlar  ise  yazdığımız  shaderların  shader  compiler
tarafından hangi  shader  profiline  göre derleneceğini  belirtiyor.  Burada  VS
vertex shader 1.1 e göre , PS de piksel shader 1.1 e göre derleniyorlar.

technique FadeinOut
{
  pass p0
 {
   Lighting = FALSE;  
   CullMode = NONE;
   VertexShader = compile vs_1_1 VS();
   PixelShader = compile ps_1_1 PS();
 }
}

 

Huh , bu tutorial burada biter , scg de yatağa gider.

 

Not : tutorial ile ilgili  her türlü  sorun için  (eksik , yanlış , anlaşılmayan
yerler vs..) beni rahatsız etmeyin, forumları kullanın puhaaaaaa ...

Sinan "scg" Çanga

********************************************************************************
ÖĞRETİCİ DÖKÜMAN : TEST PLATFORMU (Skate/Glance)
********************************************************************************

Günümüzdeki güçlü PCler  ile birçok  demo efektini  yapmak oldukça  kolaylaşmaya
başladı ancak Atari 800XL, Atari ST, Spectrum, Amstrad, Commodore 64,  Amiga  ve
benzeri bazı  eski  platformlarda efekt  yapmak  hala zorluğunu  koruyor.  Amiga
bunların  arasından  sıyrılmayı  biraz  başarsa  da  elbette  ki  Amiga   500'de
çalışacak bir demo  yazmak istiyorsanız  yine aynı  sorunla karşı  karşıyasınız.

Yazınınn hemen  başında  belirtmeliyim  ki hayatım  boyunca  adam  akıllı  Linux
kullanmadığım için  anlatacağım  yöntemlerin  hepsi  Windows  platformuna  bağlı
olacaktır. Ancak PC  scene'inde en çok  kabul gören platform  Windows olduğu  ve
son yıllarda  DirectX'in  de  OpenGL'e  scenede  sağladığı  üstünlük  göz  önüne
alınırsa, 2005  yılı  itibariyle  platform  seçimimden  rahatsız  olmayacağınızı
ümit ediyorum.

Şimdi asıl konumuza gelelim.  PC'de demo efekti yapmak  kolay mı? Bence  oldukça
kolay çünkü  kullanabileceğiniz  yüzlerce  dil  var.  Bu  dillerden  birine  iyi
derecede hakim  olmanız  ve bu  dilden  grafik ekranına  erişebilmeniz  yeterli.
Ancak demoscenede kabul  görmeniz için  yeterli değil. PC  Scene'inde 15  yıldır
(zaten çok daha uzun bir  geçmişi yok PC sceneinin) kabul  gören ve bence de  en
iyi ikili  Assembler&C/C++'dır.  Ne  var ki  günümüzde  birçok  hazır  kütüphane
(library) kullanıldığı  için Assembler'a  eskisi  kadar ihtiyaç  duyulmuyor.  Bu
durumda herşey dönüp  dolaşıp C/C++'da  bitiyor. Peki C  mi C++  mı? Eğer  dosya
boyutunun  küçük   olmasını  istiyorsanız,   örnek  olarak   4KB'lık  bir   demo
hazırlıyorsanız, ANSI C kullanmanız  en ideali olacaktır.  Ancak büyük bir  demo
projesine  giriyorsanız,  nesneye  yönelik   programlama  (OOP)  ve   sınıfların
(class) kullanımı işinizi  kolaylaştırabilir (tabii  kolaylaştırmaya da  bilir).
Bu durumda C++ tercihiniz olmalı.

Bu ön bilgilerden  sonra gelelim  konumuza yani "test  platformu"ndan kastın  ne
olduğuna.  PC'de  Visual  C++,  Borland   C++,  LCC  ve  benzeri   derleyicileri
kullanarak aklınıza  gelen  bir demo  efektini  hızlıca test  etmek  tecrübe  ve
önceden  hazırlanmış  taslak  projeler  gerektirir.   Eğer  bu  tür  bir   bilgi
birikiminiz yoksa  efekti  hızlıca  test etmek  için  açtığınız  derleyici  size
bakar,  siz  derleyiciye.  Daha   sonra  kendinizi  Google'da  kaybolmuş   halde
bulabilirsiniz. İşte  bu döküman  yeni başlayanlara  bazı şeyleri  hızlıca  test
etme yöntemleri göstermek ve  PC harici platformlarda  efekt yapan kişilerin  de
efektlerini  PC'de   test  edip   kendi  platformlarına   nasıl  uygun   biçimde
aktarabileceklerini anlatmak amacıyla hazırlandı.

Öncelikle Windows'un  üzerinde gelen  hazır bazı  yapı ve  dillerle  başlayalım.
Test platformu için kullanışlı olanlar:

1) HTML ve ona  bağlı temel scripting dilleri  olan JavaScript, VBScript ve  VML
(Vector Markup Language).
2) VBScript  ve  JavaScript'in  HTML  harici,  VBS  ve  JS  dosya  uzantılarıyla
kullanımı ve ActiveX kontrolleri.
3) TinyPTC kütüphanesi.

Windows'un  üzerinde   hazır  gelmese   de  kullanımı   çok  basit   olan   bazı
kütüphaneler  vardır.   Bunlardan  benim   karşılaştığım  en   basit   kütüphane
TinyPTC'dir.

Elbette ki efektleri hızlıca  test etmenin QBasic, Turbo  C++ gibi başka  pratik
yolları  da   var  ancak   günümüzde   Windows  versiyonları   ilerledikçe   DOS
uygulamalarının  çalışmamaya   başlaması  nedeniyle   bu  yöntemleri   anlatmayı
gerekli görmüyorum. DarkBasic,  PureBasic, BlitzBasic gibi  basic dillerini  ise
kullanışlı olmaları  ve yüksek  kaliteli  sonuçlar üretmelerine  rağmen  scenede
kabul görmedikleri  için (ve  ben de  kullanmadığım için)  pas geçiyorum.  Ancak
elbette ki  bu basic  dilleri ve  Python, PHP  gibi diğer  scripting dilleri  de
benzer amaçlarla kullanılabilirler.

Şimdi   sırayla    yukarıda    maddelenen   konuları    anlatmaya    başlayalım.

HTML, Scripting Dilleri ve VML:

Aslında HTML tek başına efekt programlamada hemen hemen hiçbir işe  yaramaz.  En
fazla ekran  düzeni  gibi şeyleri  görmemiz  için kullanışlı  olabilir  ki  bunu
herhangi bir çizim programıyla da yapmamız mümkün. Ancak HTML'in  içersinde  yer
alan  form  objeleri,   DIV,  SPAN   gibi  bazı   tagler  scripting   dilleriyle
birleştirilince çok  güzel kullanım  alanlarına  sahip oluyorlar.  Özellikle  ön
hesaplamalarda (precalculation) çok  hızlı bir şekilde  kullanımı mümkün.  Hemen
bir örnek ile başlayalım.  HTML kullanarak bir  sinus tablosu hesaplatıp  ekrana
yazdıralım.

Standart HTML yapısıyla sinus tablosu oluşturma:

sinus1.htm
<html><head> <title>Sinus Hesaplama</title></head><body><script
language="JavaScript"><!--for(i = 0; i < 256; i++){ a = Math.sin(i / 128 *
Math.PI); document.write(a + "<br>");}//--></script></body></html>
 

Pratik yoldan sinus tablosu oluşturma:

sinus2.htm <script>for(i = 0; i < 256; i++){ a = Math.sin(i / 128 *
Math.PI); document.write(a + "<br>");}</script>
 

Her iki texti  de Notepad'de yazıp  .HTM ya da  .HTML uzantısıyla  kaydettiğiniz
ve bu dosyaları  açtığınız taktirde  browser ekranında  aynı sonucu  görürsünüz.
Elbette ki  çok  eski  ya  da  çok  tanınmamış  browserlarda  ikinci  yol  sorun
çıkarabilir ancak  günümüzde  kullanılan Internet  Explorer,  Firefox,  Mozilla,
Netscape,  Opera   gibi  browserlarda   her   iki  versiyon   da   çalışacaktır.

Burada  kullandığımız  dil  JavaScript.  Detaylı  bir  JavaScript  dersi  vermek
yerine;

http://www.w3schools.com/js/default.asp
http://javascript-reference.info/
http://www.dayanahost.com/downloads.cfm 

Bu  URL'leri,   matemetik   fonksiyonları   kullanmak   için   "Math"   sınıfını
kullanmanız  gerketiği  ve   ilk  harfinin   büyük  olmak   zorunda  olduğu   ön
bilgilerini veriyor ve bu konuda gerisini size bırakıyorum.

Peki   HTML+JavaScript   kullanarak   yalnızca   hızlı   ön   hesaplamalar   mı
yapabiliyoruz? Başka  bir espirisi  yok mudur?  Olmaz mı.  Gelin  JavaScript'den
bir küp çevirelim.

küp1.htm <html>
<head>
<title>Cube3D Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
</head>
<body bgcolor="#000000" onResize="return false" onContextMenu="return false"
onSelectStart="return false" onScroll="return false">
<script>
// Küplerin Köşelerini Temsil Eden Grafik Parçalarının Yer Aldığı Tabakaları
Hazırla
for(i = 0; i < 8; i++)
    document.write("<div id='v" + i + "' style='position:absolute; left:0px;"
+ "top:0px; width:30px; height:30px; z-index:1'><b id='s" + i +
"'>•</b></div>");

// Global Değişkenleri Tanımla
var firstCoorX = new Array(100, 100, 100, 100, -100, -100, -100, -100);
var firstCoorY = new Array(100, 100, -100, -100, 100, 100, -100, -100);
var firstCoorZ = new Array(100, -100, 100, -100, 100, -100, 100, -100);
var coorX = new Array();
var coorY = new Array();
var coorZ = new Array();
var zoom = 300, dist = 350;
var midX = 200, midY = 200;
var PI = 3.1415926535;
var angleXaxis = 0, angleYaxis = 0, angleZaxis = 0;
var hexN = new Array();
hexN[0] = "0";
hexN[1] = "1";
hexN[2] = "2";
hexN[3] = "3";
hexN[4] = "4";
hexN[5] = "5";
hexN[6] = "6";
hexN[7] = "7";
hexN[8] = "8";
hexN[9] = "9";
hexN[10] = "A";
hexN[11] = "B";
hexN[12] = "C";
hexN[13] = "D";
hexN[14] = "E";
hexN[15] = "F";

// Küp Çevirme Fonksiyonu
function rotateCube()
{
    for(i = 0; i < 8; i++)
    {
        // X Ekseninde Çevir
        coorY[i] = firstCoorY[i] * Math.cos(angleXaxis / 180.0 * PI) + 
        firstCoorZ[i] * Math.sin(angleXaxis / 180.0 * PI);
        coorZ[i] = firstCoorY[i] * Math.sin(angleXaxis / 180.0 * PI) -
        firstCoorZ[i] * Math.cos(angleXaxis / 180.0 * PI);
        // Y Ekseninde Çevir
        coorX[i] = coorZ[i] * Math.cos(angleYaxis / 180.0 * PI) + 
        firstCoorX[i] * Math.sin(angleYaxis / 180.0 * PI);
        coorZ[i] = coorZ[i] * Math.sin(angleYaxis / 180.0 * PI) - 
        firstCoorX[i] * Math.cos(angleYaxis / 180.0 * PI);
        // Z Ekseninde Çevir
        temp = coorX[i];
        coorX[i] = coorX[i] * Math.cos(angleZaxis / 180.0 * PI) + 
        coorY[i] * Math.sin(angleZaxis / 180.0 * PI);
        coorY[i] = temp * Math.sin(angleZaxis / 180.0 * PI) - 
        coorY[i] * Math.cos(angleZaxis / 180.0 * PI);
    }
    // Dönüş Açılarını Arttır
    angleXaxis = (angleXaxis + 1) % 360;
    angleYaxis = (angleYaxis + 2) % 360;
    angleZaxis = (angleZaxis + 3) % 360;
}

// İzdüşüm ve Plot Fonksiyonu
function setCube()
{
    for(i = 0; i < 8; i++) // Her 8 Köşe İçin
    {
        if(coorZ[i] + dist > 0) // Eğer Görünür Durumdaysa
        {            // FORMÜL: projection_x = x / (z + distance) * zoom
            px = coorX[i] / (coorZ[i] + dist) * zoom;            // FORMÜL:
projection_y = y / (z + distance) * zoom 
            py = coorY[i] / (coorZ[i] + dist) * zoom;            // FORMÜL:
vertex_position_x = center_of_the_area + projection_x
            document.all("v" + i).style.left = midX + px;            //
FORMÜL: vertex_position_y = middle_of_the_area + projection_y
            document.all("v" + i).style.top = midY + py;
            document.all("s" + i).style.fontSize = (300 - coorZ[i]) / 5;
            document.all("s" + i).style.color = "#" +               
conv2Hex(parseInt((550 - coorZ[i]) / 3, 10)) + "0000";
        }
    }
}

// 10'ludan 16'lı Sayı Sistemine Dönüşüm Fonksiyonu
function conv2Hex(decval)
{
    leftval = parseInt(decval / 16, 10);
    rightval = decval % 16;
    hexval = hexN[leftval] + hexN[rightval];
    return hexval;
}

// Ana Rutin
function cubeAnim()
{
    rotateCube(); // Kübü Çevir
    setCube(); // İzdüşüm Al ve Çiz
    setTimeout("cubeAnim()", 20); // 20 Milisaniye Sonra Bir Sonraki Ekranı
Çiz
}
cubeAnim(); // İlk Ekranı Hesapla</script>
</body>
</html>
 

Not: Sayfa  genişliğine  sığması için  bazı  alanlar alt  satıra  kaydırılmıştır
ancak kes&yapıştır yöntemiyle alındığında program çalışacaktır.

Bu örnekte de  görüldüğü üzere HTML  ve JavaScript temel  bazı demo  efektlerini
yapmak için yeterlidir. Zaten Demoscene'de "Scripting" isimli bir  demo  yarışma
kategorisinin oluşumunda Action Script'in ardından en önemli dillerden  biri  de
Java Scripttir.

Yukardaki kodu  açıklamıyorum, yalnızca  bir örnek  olarak veriyorum.  Ancak  bu
örnekte dikkatinizi çekmek  istediğim bir nokta  var. O da  küpün yalnızca  köşe
noktalarından ibaret olması. O  noktalar da aslında  birer ASCII karakter.  Peki
bizim bu noktalar yerine wireframe yani çizgilerden oluşan bir  vektör  yapmamız
mümkün değil  mi? Aslında  pek  de mümkün  sayılmaz.  Çünkü HTML  üzerine  pixel
basmak diye  bir mantık  yok. Pixel  basmak yerine  her bir  hücresi 1x1  pixele
denk gelen tablolar oluşturulabilir. Ancak bu tabloların da  boyuları  büyüdükçe
HTML  inanılmaz  derecede  yavaşlamaktadır.   Örnek  olarak  320x200  bir   alan
kullanmak imkansıza  yakındır.  Aksi taktirde  saniyede  1 frame  bile  görmemiz
mümkün olmayabilir.  Peki ne  yapmak gerekiyor?  Bu durumda  VML (Vector  Markup
Language)  yardımımıza  yetişiyor.  Hemen  ilgili  linkleri  verip  bir   örneğe
geçiyorum.

http://www.w3.org/TR/1998/NOTE-VML-19980513
msdn.microsoft.com/library/default.asp?url=/workshop/author/vml/default.asp


küp2.htm <html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>Cube3D Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<style>
        v\:* { behavior: url(#default#VML); }
</style>
</head>
<body bgcolor="#CCCCCC" onResize="return false" onContextMenu="return false" 
onSelectStart="return false" onScroll="return false">
<script>
// Küplerine Kenarlarını Temsil Eden Grafik Parçaları
for(i = 0; i < 12; i++)
    document.write("<v:line id='l" + i + "' from='0 0' to='0 0'/>");

// Global Değişkenleri Tanımla
var firstCoorX = new Array(100, 100, 100, 100, -100, -100, -100, -100);
var firstCoorY = new Array(100, 100, -100, -100, 100, 100, -100, -100);
var firstCoorZ = new Array(100, -100, 100, -100, 100, -100, 100, -100);
var coorX = new Array();
var coorY = new Array();
var coorZ = new Array();
var px = new Array();
var py = new Array();
var zoom = 300, dist = 350;
var midX = 200, midY = 200;
var PI = 3.1415926535;
var angleXaxis = 0, angleYaxis = 0, angleZaxis = 0;
var hexN = new Array();
hexN[0] = "0";hexN[1] = "1";hexN[2] = "2";hexN[3] = "3";
hexN[4] = "4";hexN[5] = "5";hexN[6] = "6";hexN[7] = "7";
hexN[8] = "8";hexN[9] = "9";hexN[10] = "A";hexN[11] = "B";
hexN[12] = "C";hexN[13] = "D";hexN[14] = "E";hexN[15] = "F";

// Küp Çevirme Fonksiyonu
function rotateCube()
{
    for(i = 0; i < 8; i++)
    {
        // X Ekseninde Çevir
        coorY[i] = firstCoorY[i] * Math.cos(angleXaxis / 180.0 * PI) + 
                   firstCoorZ[i] * Math.sin(angleXaxis / 180.0 * PI);
        coorZ[i] = firstCoorY[i] * Math.sin(angleXaxis / 180.0 * PI) - 
                   firstCoorZ[i] * Math.cos(angleXaxis / 180.0 * PI);
        // Y Ekseninde Çevir
        coorX[i] = coorZ[i] * Math.cos(angleYaxis / 180.0 * PI) +
                   firstCoorX[i] * Math.sin(angleYaxis / 180.0 * PI);
        coorZ[i] = coorZ[i] * Math.sin(angleYaxis / 180.0 * PI) -
                   firstCoorX[i] * Math.cos(angleYaxis / 180.0 * PI);
        // Z Ekseninde Çevir
        temp = coorX[i];
        coorX[i] = coorX[i] * Math.cos(angleZaxis / 180.0 * PI) + 
                   coorY[i] * Math.sin(angleZaxis / 180.0 * PI);
        coorY[i] = temp * Math.sin(angleZaxis / 180.0 * PI) - 
                   coorY[i] * Math.cos(angleZaxis / 180.0 * PI);
    }
    // Dönüş Açılarını Arttır
    angleXaxis = (angleXaxis + 1) % 360;
    angleYaxis = (angleYaxis + 2) % 360;
    angleZaxis = (angleZaxis + 3) % 360;
}

// İzdüşüm ve Plot Fonksiyonu
function setCube()
{
    for(i = 0; i < 8; i++) // Her 8 Köşe İçin
    {
        if(coorZ[i] + dist > 0) // Eğer Görünür Durumdaysa
        {
            // FORMÜL: projection_x = center_of_the_area + (x / (z + distance)
                       * zoom)
            px[i] = midX + (coorX[i] / (coorZ[i] + dist) * zoom);
            // FORMÜL: projection_y = middle_of_the_area + (y / (z + distance) 
                       * zoom)
            py[i] = midY + (coorY[i] / (coorZ[i] + dist) * zoom);
        }
    }
    // Taban Yüzeyini Çiz
    drawLine(0,1,"l0");
    drawLine(1,3,"l1");
    drawLine(3,2,"l2");
    drawLine(2,0,"l3");
    // Tavan Yüzeyini Çiz
    drawLine(4,5,"l4");
    drawLine(5,7,"l5");
    drawLine(7,6,"l6");
    drawLine(6,4,"l7");

    // Tavan ve Taban Yüzelerini Birleştiren Çizgilerini Çiz
    drawLine(0,4,"l8");
    drawLine(1,5,"l9");
    drawLine(2,6,"l10");
    drawLine(3,7,"l11");
}

// 10'ludan 16'lı Sayı Sistemine Dönüşüm Fonksiyonu
function conv2Hex(decval)
{
    leftval = parseInt(decval / 16, 10);
    rightval = decval % 16;
    hexval = hexN[leftval] + hexN[rightval];
    return hexval;
}

// Çizgi Çizen Fonksiyon
function drawLine(p1, p2, obj)
{
    document.all(obj).from = px[p1] + " " + py[p1];
    document.all(obj).to =
    px[p2] + " " + py[p2];
}

// Ana Rutin
function cubeAnim()
{
    rotateCube(); // Kübü Çevir
    setCube(); // İzdüşüm Al ve Çiz
    setTimeout("cubeAnim()", 20); // 20 Milisaniye Sonra Bir Sonraki Ekranı
Çiz
}
cubeAnim(); // İlk Ekranı Hesapla
</script>
</body>
</html> 

Not: Firefox  gibi  bazı  browserlar  henüz  VML'i  desteklemiyorlar.  Yukardaki
script  en   güvenli   biçimde   Internet   Explorer'ın   yeni   versiyonlarıyla
çalışacaktır.

Evet, gördüğünüz  gibi  derleyici  bile  yok,  yalnızca  Notepad'i  açıyoruz  ve
yazıyoruz. Ancak  amaç demomuzu  HTML platformunda  yapmak değil.  Burdaki  amaç
hızlıca aklımıza gelen  bazı efektleri test  etmek ya da bu  efektler için  veri
üretmek.

VBS ve JS:

Evet, gelelim  HTML  harici  scripting dillerinin  kullanımına.  HTML  scripting
örneklerinde JavaScript kullanmıştık.  Her iki  dilin de  yapısı hakkında  genel
bilginiz olması için  HTML harici kullanımda  Visual Basic Script  kullanacağım.

İlk  olarak  JavaScript'den  ilk   yaptığımız  örneği  uygulayalım,  yani   HTML
kullanmadan Visual Basic Script'den bir sinus tablosu üretelim.

sinus1.vbs Dim i, a
Const pi = 3.1415926536

For i = 0 to 255
    a = a & sin(i / 128 * pi) & ", "
Next
MsgBox a
 

Evet işte oldu...  mu? Tam olarak  değil. Çünkü çıktıyı  artık browser  ekranına
veremiyoruz. Mesaj kutusu kullanarak ekrana yazdırdık ancak yine  sorunlar  var.
Birincisi mesaj çok uzun  olunca tamamı ekrana  gelmiyor. İkincisi mesaj  olarak
ekranda görsek de kes&yapıştır işlemini gerçekleştiremiyoruz. Peki  ne  yapmamız
gerekiyor? En iyi yöntem  sonuçları bir dosyaya yazdırmak.  Bunun için de  artık
ActiveX kullanmaya başlayabiliriz.

sinus2.vbs Dim i, a
Dim oFSO, tf
Const pi = 3.1415926536 
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set tf = oFSO.CreateTextFile("sonuclar.txt", True)
For i = 0 to 255
    tf.WriteLine(sin(i / 128 * pi))
Next
tf.Close
Set tf = Nothing
Set oFSO = Nothing
			
 

İşte  şimdi   oldu.   Ancak   sonuçlara   dikkat   edecek   olursanız   bazıları
"4,90676743275773E-02"  şeklinde  biçimlendirilmiş.  Bu  sorunu  gidermek   için
Visual  Basic   ve   Visual   Basic   Scripting'in   desteklediği   FormatNumber
fonksiyonunu kullanabiliriz. Bu durumda scriptin son hali;

sinus3.vbs Dim i, a
Dim oFSO, tf
Const pi = 3.1415926536 
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set tf = oFSO.CreateTextFile("sonuclar.txt", True)
For i = 0 to 255
    tf.WriteLine(FormatNumber(sin(i / 128 * pi), 7))
Next
tf.Close
Set tf = Nothing
Set oFSO = Nothin
 

Bu hale  geliyor. Burda  FormatNumber'a  verdiğimiz ikinci  parametre  değeriyle
virgülden sonra  7  basamağa hassas  bir  sayı olarak  biçimlendirmiş  oluyoruz.

ActiveX kullanımıyla birçok  şey yapmak, hatta  hatta OpenGL, DirectX  kullanmak
da mümkün ancak  Visual Basic  Script ya da  Java Script'i  bu amaçla  kullanmak
pek de anlamlı olmayacaktır. Bu scripting dillerini bu tür küçük  hesaplar  için
kullanmanızı tavsiye ederim.

TinyPTC:

Aslında TinyPTC yalnızca  ekrana nokta basmaya  yarayan bir grafik  kütüphanesi.
Yani çizgi  çizmek için  bile kendi  rutinlerinizi yazmanız  gerekiyor. Eğer  bu
tür şeylerin hazır geldiği  bir kütüphane istiyorsanız OpenPTC  ya da SDL  sizin
için daha  uygun olacaktır.  Ancak  kullanımı en  basit  ve en  temel  kütüphane
olması nedeniyle TinyPTC ile başlamayı uygun gördüm.

TinyPTC yalnızca 3 fonksiyondan oluşuyor.

• ptc_open
• ptc_update
• ptc_close

Hepsi bu kadar. Kullanımları  da oldukça basit. Aşağıda  çok basit bir  kullanım
örneği bulabilirsiniz.

test.c #include "tinyptc.h"

#define WIDTH 320
#define HEIGHT 200
#define SIZE WIDTH*HEIGHT

int buffer[SIZE];

int main()
{
    if(!ptc_open("Test Platformu", WIDTH, HEIGHT)) return 1;
    while(1)
    {
        // Programınızı Buraya Yazabilirsiniz
        ptc_update(buffer);
    }
    ptc_close();
    return 0;
}

Hepsi bu  kadar.  Yukarıda  tanımlanan  "buffer"  dizisine  24  bitlik  değerler
vererek  RGB  (kırmızı,  yeşil,   mavi)  renkler  tanımlayabiliyorsunuz.   Bunun
haricinde geri  kalan kullanım  DOS'dan  tanıdığımız 13h  (320x200x256)  moduyla
aynı.  Yani   (x,   y)  koordinatına   pixel   basmak  için   buffer   dizisinin
[y *  WIDTH +  x]inci elemanına  değer vermeniz  gerekiyor. 320x200  çözünürlüğü
için [(y  << 8)  +  (y <<  6)  + x]  şeklinde  optimize edilebilir.  Bu  elemana
vereceğiniz değer ise;

buffer[y * WIDTH + x] = (red << 16) | (green << 8) | blue;

Şeklinde ifade edilebilir. Burdaki  "red", "green" ve  "blue" 0-255 arası  değer
alabilen birer byte olarak verilmelidir.

Elbette  ki  TinyPTC  kütüphanesinin  yukardaki  dosya  haricinde  10  civarında
program dosyası ve  proje dosyaları  var. Ancak  siz yalnızca  tek bir  dosyayla
uğraşarak istediğinizi yapabiliyorsunuz. Bunun yanı sıra  "tinyptc.h"  dosyasını
düzenleyerek de  projenin çeşitli  parametrelerini değiştirmeniz  mümkün.  Örnek
olarak projenin  DirectDraw,  GDI ya  da  VFW arabirimlerinden  herhangi  birini
kullanmayı seçebiliyorsunuz.  Ayrıca  programınızın  tam  ekran  ya  da  pencere
modunda  çalışmasını,  pencere  modunda  çalışacaksa  pencere  özelliklerini  bu
dosyaya  yalnızca  comment  (açıklama,   yorum)  sembolleri  ekleyip   çıkararak
düzenleyebiliyorsunuz. Örnekler:

DirectDraw kullanmak için:
#define __PTC_DDRAW__
//#define __PTC_GDI__
//#define __PTC_VFW__

GDI kullanmak için:
//#define __PTC_DDRAW__
#define __PTC_GDI__
//#define __PTC_VFW__

VFW kullanmak için:
//#define __PTC_DDRAW__
//#define __PTC_GDI__
#define __PTC_VFW__

TinyPTC'yi indirebileceğiniz web adresi:

http://gaffer.scene.org/tinyptc/ 

Eğer TinyPTC'yi Visual Studio  ile kullanmak isterseniz  işiniz çok kolay  çünkü
zaten yukarıdaki linkten  indirebileceğiniz örnek proje  Visual Studio 6.0  için
hazır geliyor. VS.NET'e de kolayca çevrilebiliyor.

Ancak TinyPTC Assembler da kullanıldığı  için proje derlenirken NASM'ye  ihtiyaç
duyuyor.  Bu   tool  elinizde   yoksa  aşağıdaki   adreslerden  indirebilir   ve
kurabilirsiniz.

http://www.geocities.com/SiliconValley/Heights/1295/                            
http://nasm.sourceforge.net/doc/html/nasmdoc1.html

Projeyi LCC ile derlemek  isterseniz projede yalnızca  bir iki küçük  değişiklik
yapmanız gerekiyor.  Bunun haricinde  üretilen  objeleri linkleyecek  bir  batch
dosyası  hazırlamanız  ya   da  LCC   için  yazılmış  bir   arabirim  bulup   bu
arabilirimden linker ayarlarını  yapmanız gerekiyor. LCC  ile kullanım için  bir
batch dosyası örneği:

compile.bat @echo off
del test.exe
del ddraw.obj
del convert.obj
del test.obj
lcc ddraw.c -nw
lcc convert.c
@echo on
lcc test.c
lcclnk test.obj  mmx.obj ddraw.obj  convert.obj -o  test.exe -subsystem  windows
pause
test
 

Ancak LCC kullanmaya çalışırken başka problemler de  yaşayabilirsiniz.  Bunların
hepsinin çözümleri  Google'da biraz  dolaşarak  bulunabiliyor ancak  kolay  yolu
seçmek isterseniz Visual C++ 6.0'ı tavsiye ederim.

Bu Yöntemlerin Başka Platformlar İçin Kullanılması:

Yukardaki yöntemler ile PC'de  hızlıca bir efekti test  edebilir, daha sonra  bu
efektin daha profesyonel  bir biçimde  programlanmasına girişebilirsiniz.  Ancak
yukardaki  yöntemler  PC'de  olduğu  kadar   Commodore  64,  Amiga  gibi   diğer
platformlar için de  oldukça pratik  olabiliyor. Hatta  hatta diğer  platformlar
için scripting dilleri  ya da C/C++  kullanarak kaynak kod  bile üretmek  mümkün
ki zaten bu  sıkça kullanılan bir  yöntem. Bu sayede Commodore  gibi işlem  gücü
ve matemetik  fonksiyonları  konusunda  sıkıntı çeken  platformlar  için  birçok
tablo hazırlayabiliyor,  yalnızca  Commodore  kullanarak  hesaplatılması  günler
hatta  aylar  alabilecek  efektleri  (örnek:  vector  city)  hızlıca  hesaplatıp
Commodore'a aktarmak mümkün  olabiliyor. Ayrıca PC'nin  bizlere sağladığı  güçlü
toollar sayesinde bu efektler çok daha kaliteli olabiliyor. Ancak  PC'nin  başka
platformlarda demo yapmak için nasıl kullanıldığı çok kapsamlı bir  konu  olduğu
için bu  konuyu başka  bir sayıda  ele almayı  düşünüyorum. Şimdilik  bu  kadar.
Sizlere bol test platformlu günler diliyorum.

Benimle irtibata geçmek isteyenler için e-mail adresim;
skate@glance.ws

Emir Akaydın
Skate / Glance

********************************************************************************
DEMOSCENE'İN VADETTİKLERİ (Nightlord/Glance)
********************************************************************************

Belki de  birçok  insan için  ilk  defa  tanışılan bir  kavram  olan  demoscene,
herhangi bir  hobi olmaktan  ötedir. Bu  hobiye sahip  olmak insana,  hem  kendi
içinde, hem de  günlük yaşantısında  büyük getiriler  sağlayabilir. Hem  teknik,
hem profesyonellik adına,  iş yaşantısında  size değer katacak  çok kritik  bazı
yaklaşımları kazandırabilir.
 
Buna  karşılık  demoscene  ile  ilgilenip  bu  ödülleri  elde  edebilmek   kolay
olmayabilir.  Genellikle   normal  okul   ve   iş  yaşantınızın   dışında,   boş
vakitlerinizin önemli bir bölümünü, zaman zaman bu hobiyle ilgili  araştırma  ve
çalışmalara   ayırmanız   gerekebilir.   Bu   ayırdığınız   zamanda   kendinizde
gördüğünüz ilerleme,  her  zaman  sabit bir  hızda  olmayabilir.  Özellikle  bir
demoscene ürününü bir  tarihe yetiştirmeye çalıştığınız  son sıkışık  dönemlerde
geceli gündüzlü çalışmanız gerekebilir. 
 
İşte bütün bu  ödül ve  bedelleri bir  bütün olarak  gördüğünüz takdirde,  kendi
kendinize "evet  bu  ödüller  bu  bedellere  değer"  diyebiliyorsanız,  o  zaman
demoscene'e  ilk  adımınızı  attınız  demektir.  Bu  yazıdaki  amacım  özellikle
Türkiye   koşullarında,   çeşitli   büyüklüklerdeki   şirketlerde    çalışırken,
bireylerin  ve   ekiplerin   başarısına   çok  etkisi   olduğunu   gördüğüm   ve
demoscene'de  kazanılabileceğini  düşündüğüm   iki  temel  alışkanlığı   sizlere
anlatmak. Biraz felsefi görünmekle  beraber aslında bu  yazıda son derece  somut
sebep sonuc  ilişkileri  ortaya  koymaya  çalışacağım.  Çünkü  bu  alışkanlıklar
aslında son  derece mekanik  yöntemlerle kazanılabilir  düşüncesindeyim. Bu  iki
alışkanlığa  ben  "sonunu getirebilme"  ve  "takım  ile çalışabilme"  diyeceğim.
 
Sonunu Getirme
Değinmek istediğim birinci  alışkanlık bu. Ülkemizde  en büyük eksiklerden  biri
olduğuna inandığım bu kavram, tahmin edebileceğiniz gibi başladığı  işi  bitirme
alışkanlığı anlamına  geliyor.  Hem  profesyonel şirketlerde,  hem  amatör  hobi
gruplarında  herkesin   bi  takım   projelere  büyük   gaz  içinde   başladığını
görürsünüz.  Şirketlerde,  çeşitli   birimlerden  insanların  toplanıp,   ateşli
konuşmalar yaptığı büyük toplantılar yapılır. Başlanan projenin ne  kadar  büyük
kazançlar  sağlayacağı,  bol  renkli  Powerpoint  sunumlarıyla  dile  getirilir.
Fikir çok iyi  bir fikirdir.  Planlanan şey planlandığı  zamanda biterse  harika
olacaktır.    Satış    grubu     milyonlarca    dolarlık    kar   öngörmektedir.
 
Aynı şekilde  2  üniversiteli  arkadaş  bir araya  gelirler.  Canları  bir  oyun
yapmak  istemektedir.   Aralarından  biri   3D   Studio  Max   kulanarak   model
yapabilmektedir.  Diğeri  de   opengl  ile  birkaç   kutu  göstermiştir.   Biraz
çalıştıktan sonra  birisinin yaptığı  modeli diğeri  kendi 3d  gösterme  koduyla
render edebilmeye  başlar. Tamamdır  artık önlerinde  hiçbir engel  kalmamıştır.
Hemen bir  de  web sitesi  yaparlar.  Yeni fps  oyunlarını  yapmaya  girişirler.
Oyunu bitirdiklerinde harika olacaktır.
 
Gelin görün  ki malesef  profesyonel şırkette  olaylar şöyle  devam eder.  Proje
yapılmaya  başlanır.  Teknik  bazı   problemler  çıkmaya  başlar.  Teknik   ekip
yaklaşık proje zamanının  yarısı geçtiğinde  hala geç  kaldığının farkında  bile
değildir. Son çeyreğe girerken geç kaldığını bildirir. Satış  ekipleri  kıyameti
koparır. "Time to  market" kavramının çok  önemli olduğu, bu deyimi  bir kaç  ay
önce  ekonomist  dergisinde  ilk   defa  okumuş  olan   genç  ve  ateşli   satış
elemanlarınca  savunulurken,  teknik  ekipler   de  sürekli  proje   speklerinin
değişmesinden  yakınırlar.  Bu  yüzden   geciktiklerini  söylerler.  Proje   ilk
planlanan zamanın son çeyreğine  girdiğinde, son tarih bir  ay ileri atılır.  Bu
ileri  atmalar  yaklaşık  5  ila   15  kere  daha  yapıldıktan  sonra   projeden
vazgeçilir. Onca para ve  zaman boşa gitmiştir. Fakat  daha kötüsü kimse  nerede
yanlış yapıldığını da  tam bilememektedir. Çünkü  farklı birimlerin  savlarından
hangilerinin doğru  olduğunu  bilecek  kadar,  değişik  birimlerde  yapılan  işi
tanıyan yöneticiler yoktur.  Çünkü yönetici  zaten bir birimde  yükselmiş ve  en
sonundan yönetici olmuştur.  Yani şirket bu  kayıptan  hiçbirşey  öğrenmemiştir.
 
Oyun yapan  iki  kafadarın  hikayesi  ise genelde  çok  daha  hızlı  gelişir  ve
sonlanır. Genelde  yaz  tatili  dönüşü  başlayan  proje  ikinci  vizeler  civarı
tamamen durmuştur. Zaten sonraki dönem aynı dersleri almayan ekibimiz  iyice  az
görüşmeye başlar.  Tabii  web sitesi  daha  birkaç yıl  ayakta  kalabilir.  Daha
kötüsü bu arkadaşlar  daha sonra başka  arkadaşlarıyla üniversite boyunca  böyle
4 oyun daha  yarım bırakırlar. Sonra  zaten biri bankacı  olur, diğeri  database
uygulamaları   geliştiren   bi   şirkette   SQL  Queryleri    yazmaya    başlar.
 
Neden
Bu iki  hikayede de çok tanıdık "sonunu getirememe" örnekleri var. Başlanan  bir
işin sonunun gelebilmesi  birkaç şeye bağlıdır.  1- İş büyüklüğünü  öngörebilmek
2-  Proje  yapılmaktayken,  işin  ne  kadarının  bitip  ne  kadarının  kaldığını
ölçebilmek 3- Projenin  sonucuna odaklı  olmak. Yani "proje  esnasında çıkan  bi
problemi çözmek  için bir  araç  yapmaya karar  verip,  o aracı  yaparken  çıkan
başka  bir  problemi  çözmek  için  başka  bir  araştırma  yapıp,  o   araştırma
esnasında  çıkan  bi  konuyu  derinleme  incelemeye  karar  vermek..."  şeklinde
davranmamak.
 
Bir projenin  büyüklüğünü öngörebilmek,  çok temel  bir ihtiyaçken  nedense  bir
türlü  gereken  önem  verilmez.   Bugüne  kadar  gördüğüm  şirket   ortamlarında
yöneticiler  hep  bu  soruyu  sorar.  "Bu   işi  kaç  adamla  ne  kadar   sürede
yapacaksınız". Gelin görün  ki ne  cevabı veren bu  öngörüyü doğru  yapar ne  de
yönetici    yanlış     bir    öngörüyü    erken    farkedebilecek    durumdadır.
 
Öngörü adı  üstünde  bir tahmindir  ve  hata payı  her zaman  vardır.  Fakat  bu
hatayı azaltmanın  yolları  da  vardır.  Bunlara tasarım   ve  planlama   denir.
 
Bir proje ilk önce kağıt üstünde, alt işlere ve o alt işler de  kendi  içlerinde
sürekli daha  küçük  parçalara  bölünebilir.  Bu  şekilde  küçük  parçalar  için
yapılan tahminler toplandığı zaman elde edilen sonuç, projeye kocaman  bir  blok
olarak bakılıp  yapılan tahminden  çok daha  gerçekçi olacaktır.  Bütün olay  bu
kadar basittir.  Ama bu  basit  olayı çok  az  insan uygulamaktadır.  Bir  proje
küçük iş  parçacıkları listesi  haline getirildiğinde  ekip ilk  defa  kafasında
projeyi gerçekten görür.  Bundan önce  ekip kafasında  projenin sadece  sonucunu
görebilmektedir (şanslıysa). Bir projenin bittiği zamanki halini  görmek  başka,
projenin      yapım      sürecini      görebilmek      bambaşka       şeylerdir.
 
Aynı bölümleme sonradan  proje esnasında da  ölçüm amaçlı kullanılabilir.  Zaman
olarak tam  ne kadar  işiniz  kaldığını ölçemeseniz  bile kalan  iş  kalemlerini
böylelikle görebilirsiniz.
 
Bu  ölçme   size   proje  esnasında   refleks   gösterme  şansı   tanır.   Olası
değişiklikler veya  bir  iş parçasının  beklenenden  uzun sürmesi  halinde  bunu
erken   farkedebilir   ve   önlem   alabilirsiniz.   Örneğin   bir   ekip    ile
çalışıyorsanız, geciken  iş  parçacığına  daha fazla  kaynak  kaydırabilir  veya
alternatif çözümler  arayabilirsiniz. Bu  "yaa  nasıl olsa  daha 8  ayımız  var"
demekten daha sağlıklıdır.
 
Son olarak projenin sonucuna odaklı olmak, sizin sonuca doğru  ilerleyen  yoldan
mümkün olduğunca az saparak yürümeniz demektir. Bu özellikle  teknik  insanlarda
sık görülen  bir  davranış  desenidir. Teknik  kişiler  bazen  ilgilerini  çeken
konularda  daldan  dala  konarak  hedeflerinden  uzaklaşırlar.  Amaç  ile  aracı
karıştırırlar.  Bu  kişisel  bir   disiplini  gerektirir.  Düzenli   aralıklarla
kişinin  ben  ne  yapıyorum  ve   niye  yapıyorum  diye  kendine  sorması   bunu
çözebilir. Ayrıca yine  iş parçacıkları  planında gecikme veya  sürekli yeni  iş
parçacığı     eklemek     durumu,     bunun     farkedilmesini     sağlayabilir.
 
Başlanılan  işin  sonunu  getirebilme   alışkanlığı,  bu  üç  temel   yaklaşımın
benimsenmesi ile  kazanılabilir.  Demoscene  bu  alışkanlığı  kazandırmakta  rol
oynar. Çünkü demoscene'de  yapılan parti ve  yarışmalar esnasında demo  çıkarmak
önemlidir. Bu da  sabit ve esneyemez  bir proje son tarihi  demektir. Bu  yüzden
scenerlar   genelde   bir   demoyu    bir   partiye   yetiştirmeye    çalışırken
yaşadıklarından çok şey öğrenirler.
 
Belki de en temel  öğrenilen şey şudur. Yazılım  geliştirmek zor ve  sürprizlere
açık bir  süreçtir. İster  amatör ister  profesyonel olarak  yapılsın, en  küçük
yazılım  projelerinde   bile  beklenmedik   problemler  her   zaman   çıkabilir.
Scenerlar genelde  bunu ilk  intro çalışmaları  esnasında öğrenirler.  En  küçük
bir intro  bile bir  scenerın  kendi yetilerini  tanımasını sağlayan  zorlu  bir
proje olacaktır. 
 
Demolar genelde  ard  arda  gelen efektlerden  oluştuğu  için,  ekipler  halinde
çalışan scenerların,  bir demodaki  efektleri  bölüşmesi de  nispeten  kolaydır.
Efektlerdeki bu  bağımsızlık  genelde  scenerlara, bir  projeye  daha  küçük  iş
parçacıklarının   bir   bütünü   olarak    bakma    alışkanlığını    kazandırır.
 
Diğer bir temel  nokta, scenerlar  genelde yarı bitmiş  bir şeyi  yayınlamazlar.
Bu yüzden  de  sonuca  odaklı  olmaya  öğrenirler.  Bir  demoscene  ürünü  ancak
yayınlandığında bitmiştir. Bir scener da ancak bitirdiği ürünler  kadar  vardır.
Ürün bitirmeyen adamlar ne  kadar yetenekli olurlarsa  olsunlar, her zaman  ürün
bitirenlerin gerisinde  kalırlar. Scene  ortamının ürün  bitirme konusundaki  bu
zorlayıcı havası scenerların genelde çok küçük yaşlardan itibaren  sonuç  odaklı
olmasını sağlar.
 
Takım Çalışması
Sonunu   getirebilmek   dışındaki   temel   bir   özellik   de   takım   halinde
çalışabilmektir. Yine  başta verdiğim  şirket örneğinde  en temel  problemlerden
biri  buydu.  Takım  çalışması,  ağızlarda  sakız  olmuş  ve  geyik   motivasyon
konuşmalarında sıkça değinilen  bir konu  olmasına karşın  çok insan  tarafından
anlaşılmaktadır. İnsanların takım olarak çalışabilmesi birkaç  kavrama  bağlıdır

1- İletişim
2- Uzlaşabilme
3- Sorumluluk ile beraber insiyatifi de paylaşabilme
 
Eğer bir takımdaki bireyler aynı dili konuşamıyorsa, bir  kişinin  söylediğinden
iki kişi farklı şeyler  anlıyorsa ortada takım olamaz.  Bu iletişim konusu  önce
insanların dinleme yeteneklerine  baglıdır. Bu ozellığın  nasıl kazanılacağı  bu
yazının konusu değil. İletişimin bağlı olduğu bir temel unsur daha  vardır.  Çok
yönlülük.
 
Çok yönlü insanlar,  yalnızca kendi uzmanı  oldukları dalda değil,  başkalarının
uzman  olduğu  dallarda  bile  biraz  olsun  fikir  sahibi  olurlar.  Böylelikle
problemleri tartışırken  ekip  arkadaşlarının  gözünden bakabilir  ve  daha  iyi
iletişim kurabilirler. İşte bu  scene de çok  karşılaşılan bir durumdur.  Pekçok
scener birden  fazla  alanda aktiftir.  Sadece  bir alanda  aktif  olanlar  bile
diğer alanlarda pekçok şey öğrenmek zorundadır.
 
Bu şekilde  iletişim kurabilen  bireyler arasında  uzlaşabilme şansı  doğar.  Bu
şans bireyler  uzlaşmaya  meyilli olursa  gerçeğe  dönüşür. Scenerlar  bir  demo
çıkmadıkça emeklerinin  karşılığını  alamadıkları için  projelerde  birbirlerine
daha hoşgörülü  ve uzlaşımcı  olmayı ilk  bir kaç  ürünlerinde öğrenirler.  Bunu
öğrenemeyen  scenerlar   yalnız  kalır   ve  silinir.   Scene  tamamen   gönüllü
takımlardan oluştuğu  için bir  scene grubunun  ayakta kalması  o  gruptakilerin
birbirine hoşgörüsüne ve uzlaşımcı yaklaşımına bağlıdır.
 
İnsanların sıklıkla  gözden  kaçırdığı  son  konu  da  sorumluluk  ve  insiyatif
paylaşımıdır.  Özellikle   şirketlerde  görevler   insanlara  dağıtılır   ve   o
insanların makine gibi o  görevleri yapması beklenir. O  işle ilgili bazı  seçim
ve kararlar  yöneticilerce  alınır.  Bu durum  genelde  çalışanların  motivasyon
kaybetmesine ve yaptığı işi sahiplenmemesine sebep olur.
 
İnsanlar makine  değildir. Kendilerine  verilen  bir sorumluluk  bölgesi  içinde
problem çözmeyi ve  insiyatif kullanmayı severler.  Bu onların yaptıkları  işten
duydukları tatmini  artırır. Tamamen  gönüllü bir  hobi olan  scenede de  hiçbir
scener ekip arkadaşına "sen şunu yap bunu yap tam olarak şöyle  olsun"  diyemez.
Eğer öyle derse arkadaşı  bunu yapmaz. Herkesin  yaptığının zevkli ve  tatminkar
olmaya devam etmesi  doğal bir  zorunluluktur. Scenerlar  bu doğal  zorunlulukla
daha ilk  projelerinde karşılaşır  ve bu  çok temel  dürtüyü belki  de  farkında
olmadan kazanırlar.
 
Sonuç
Bu yazıda  ülkemizde  var  olduğunu  ve  önümüzü  tıkadığını  düşündüğüm  "proje
bitirememe" problemini  analiz  etmeye  ve bu  probleme  çözüm  olabilecek  bazı
davranış  biçimlerinin  demoscene'de  nasıl  kazanılabileceğine  dair  tespitler
yapmaya çalıştım.  Umarım hem  hali  hazırda scener  olanlar, hem  scener  olmak
isteyenler    için     bazı     temel    sorular     üzerine     düşüncelerinizi
tetikleyebilmişimdir.   Demoscene   üyelerinin   arttığı   ve   bunun   ülkedeki
üretkenliğe  ve  süreçlere  etkilerinin   yansıdığı  bir  Türkiye   dileğiyle...

[b] Nightlord/Glance [/b]

********************************************************************************
TÜRKİYE SCENE'İ (Vigo/Bronx)
********************************************************************************

Merhaba  sevgili  "Scener"lar.  Belkide  ilk   kez   (eskiden  çıkan  bir  dergi
varmış, TDSN hariç ) kendi   dilinizde,  çok  güzel  ve  kaliteli  bir  DiSK-MAG
( disk-dergisi ) ile  karşınızdayız.  Bu  bölümde,  size  Türkiye'deki DEMOSCENE
faaliyetlerinden,GRUPLAR'dan ve  çıkan  işlerden (  PRODUCTION  )  bahsedeceğim.

7D5 Demoscene  Party'i  baz  alarak  yazıyorum;  şuanda  aktif  olarak  faaliyet
gösteren gruplar :

- Aardwark  -  Analog  - Ascraeus  -  Bronx  - Cornercut  -  Crescent  -  Glance
- Goblins  -  Naked Hamsterz  -  Raven -  Realtime  - Resident  -  Still  Psycho

şeklinde  sıralanmakta.   Umarım   unuttuğum  grup   yoktur.   Aslında,   umarım
unutmuşumdur da, belki  o unuttuklarım  biraz kızar ve  yeni bir-iki  demo/intro
"RELEASE"ederler ve beni utandırırlar! ;]

1989 yılından beni "SCENE" ile ilgili bir kişiyim. 1972 doğumluyum ve  yaşım  şu
anda  33.  Yani   sizin  anlayacağınız,   yaklaşık  15-16   yıldır  bu   işlerin
içerisindeyim. Yoğun  olarak  uğraştığım dönemler  1990-1995  yıllarına  tekabül
eder.  O   yıllarda  olsun,   şuan   olsun,  ne   yazıkki  sıkıntı   hep   aynı.

NEDEN TÜRKİYE'DE YETERİ KADAR "SCENER" YOK ?

Valla bu sorunun  cevabını bulana ne  isterse ısmarlıyorum ...  Açıkçası ben  de
bu soruyu yıllardır  çözmeye çalışıyorum. Bizim  zamanınızda ne internet  vardı,
ne de bugün ki  kadar kaynak. Ama  biz bir şekilde,  içimizde heves ve  istekle,
hep kendimizi  geliştirmeye  çalıştık, hep  öğrenmek  istedik ve  hep  birşeyler
yapmak istedik.  Benden  sonra  gelen  jenerasyonlar da  da  aynı  sorunlar  hep
mevcut oldu.

Yaklaşık 4  yıldır,  ülkemizde  muhteşem bir  organizasyon  düzenleniyor.  Genel
ismi "7DX PARTY". Bu  parti bir seri şeklinde  oluyor. Bu yıl "7D5"  düzenlendi.
( Sizlere  minik  bir  ip  ucu. 7DX  hexdecimal  yani  16'lık  sayı  sisteminden
geliyor.  İlk  paritinin  adı  7D2  idi.  7D2,  16'lık  bir  sayıdır  ve   bizim
anladığımız sayı  sistemine -yani  10'luk- çevirince  : 2002  çıkar ve  bu  2002
yılı anlamındadır. )

Diğer yıllara oranla, 4.cüsü  yapılan partiye bu yıl  katılım geçen 3 yıla  göre
gayet iyiydi. Parti resmi sitesinde, partiye katılım formunu yaklaşık  110  kişi
doldurmuştu. Ama  katılım  aynı  miktarda  olmadı. Ama  en  azından  50-60  kişi
katıldı. Bu yıl,  partinin bir  sponsoru vardı  ve neredeyse  herşey bedava  idi
partide. Giriş,  ulaşım,  konaklama,  yemek...  Bu  yıl  ekstra  olarak,  parti,
"Teknoloji Televizyonu"'ndan CANLI olarak da yayınlandı. Bu  kadar  atraksiyona,
günler  öncesinden  yapılan  tanıtımlara   rağmen,  bu  mükemmel   organizasyona
katılımın daha fazla olacağını  düşünmüştüm. Ne acıdırki,  aynı tas aynı  hamam.



YETER  ARTIK,   OYUN   VE  CHAT   YAPMAK   DIŞINDA  DA   KULLANIN   BİLGİSAYARI!

Biraz  sert  bir  üslup  oldu  ama!...  Arkadaşlar,  bilgisayarınızla  çok  daha
yaratıcı ve zevkli şeylerle uğraşabilirsiniz. Hiç merak etmiyor  musunuz?  nasıl
oluyor bu oyunlar  diye? Yada,  hiç düşün dünüzmü?  -Acaba bende  bilgisayarımda
başka neler  yapa  bilirim?-  diye...  Yazımın  sonunda,  sizlere  çeşitli  site
adresleri vereceğim. "DEMOSCENE"  ile ilgili. "DEMOPARTY"  lerle ilgili.  Umarım
o sitelere  bakarsınız  ve  belkide  "7D6" da,  sizde  kendi  çapınızda  bişiler
yaparınız. Şunu  da  belirtmek  istiyorum. Herhangi  bir  DEMOPARTY'ye  katılmak
için, illaki  GRUP ya  da  PRODUCTION üreten  biri  olmanıza gerek  yok.  Sadece
konuya ilginiz  olması  yeterli  Sizler DEMO'ları  izlemezseniz,  DEMO  yapanlar
boşuna uğraşmış olur.


TÜRKİYE'DEKİ GRUPLAR VE SON DURUMLARI

Alfabetik sıra ile gidiyorum.

- Aardwark :
  Fazla bildiğim bir  grup değil. 7D5'deki katılımlarından tanıyorum.  64K-Compo
  ya katılmışlar ve 2. olmuşlardı. Umarım bu arkadaşlarımız, aynı  heycanı  kay-
  betmeden,  daha da fazla  ürün çıkarmaya, partilere  katılmaya devam  ederler.
  Başarılarının  devamını diliyorum  ve sadece partiden  partiye bişi  yapmayın,
  her zaman "RELEASE" yapın diyorum.

- Analog :
  Aslında şuan  için pek aktif sayılmasalarda,  grup bazında, belkide ilk  parti
  düzenleyenler  arasındadır  Analog.  1999  yılında,  yanılmıyorsam,   İzmir'de
  "SUMMER ASSEMBLY" adında bir  parti düzenlemişlerdi. Keşke, bu parti, her  yıl
  düzenlenebilse... Analog  grubu, 2002  yılındaki "7D2"   partisine   katılmış,
  hatta "Grafik"  ve "Müzik" yarışmalarına katılmışlardı.  STRANGER ve GOD  adlı
  arkadaşlar gelmişti. Daha  sonra ben bu  arkadaşlardan  GOD'ı  7D5'de  gördüm.
  Hatta  kendisi,  "7D6'da   bizde  bişiler  yapıcaz, çok  gazlandık!"  demişti.
  Haydi beyler... Biraz hareket ...


- Ascraeus :
  HI3S  grubunun dağılması ile  yeniden kurulan,  ( eskiden beri  varolan )  bir
  grup. Şuan  HADES ve AEGIS'dan oluşuyor.  7D5 partisinde C64'de yaptıkları  iş
  lerle 256B-Compo'ya  katıldılar. 7D4 de ise,  "Blue Illusions" adında bir  mü-
  zik disk ( C64 ) release ettiler. Tüm müzikler SLOWHAND  tarafından  bestelen-
  miş harika parçalar. Umarım ürünleri devam eder.

- Bronx :
  Kendi grubum için ne diyim  bilemiyoum ;]. Bir çok platformda, halen, son  bir
  umutla bişiler yapmaya çalışıyoruz.  Sadece aktif 4-5 kişi kaldı. Grup  olarak
  tüm 7DX  partilerine katıldık ve  her partide en az  2-3 STUFF release  ettik.
  Eylemlerimiz devam  edecektir. ( Gençler, artık  emekli olmak istiyorum.  Hadi
  artık,   bizlere   ihtiyaç   kalmasın,  sizler  sırtlayın  biraz da  yükü!  :)

- Cornercut :
  Benim açımdan yeni  bir grup. Umarım hep  varolurlar. 7D5 de adlarını  duydum.
  Müzik yarışmasına  katıldılar. Yeni müzikler ve  daha fazla aktivite  bekliyo-
  rum sizden.

- Crescent :
  Her 7DX  partisine katılan,  bizleri C64  müzikleriyle mest  eden bir   grup!.
  1993-1996  sanırım, çok release  yapan ama  son 5 yıldır  fazla üretemeyen  bu
  grup, sıkı  müzikleriyle bizleri mutlu ediyor.  WISDOM ve IMPETIGO'yu  tanıyo-
  rum.  WISDOM aslında süper  bir CODER  ama nedense hep  müzik release  ediyor.
  Kendisinden söz  aldım, 7D6'da artık sadece  müzik ile katılım  yapmayacaklar!

- Glance :
  Ülkemizin C64  dalında  medar-ı  iftihari. Varlıklarını  ilk kez  7D5  partide
  duyduğumuz bu grub,  eski bronx elemanları, ascraeus  ve bir kaç eski  scener-
  dan  oluşmakta. LIVING adlı  C64 demoları,  hem partiyi, hem  de yurt  dışında
  bulunuan  diğer  yabancı  scener'ları  salladı.  Aynı   şekilde,   kendilerine
  başarılar   diliyor   ve    daha   da   süper   yeni  demolarını   bekliyorum.

- Goblins :
  İşte Türk Scene'ninde taze  kan! Flash / Action Script katılımlarıyla  partide
  boy gösteren bir ekip. RETURN  OF THE GOBLINS demoları ile ilgi  çektiler.Par-
  tiye gelemediler  ama yaptıklarını  gönderdiler. Umarım  7D6'da kendileri   ve
  RELEASE'leri ile birlikte görüşürüz.

- Naked Hamsterz :
  İzmir'den bir  grup. Bizim için  sürpriz oldu ve  çok mutlu olduk.  DEMO-COMPO
  katılımları oldu. Umarım daha fazla  RELEASE leri olur ve her zaman güzel  iş-
  ler çıkarırlar.

- Raven :
  2.ci  jenerasyon demo  gruplarından   raven, 7D5'de  DEMO-COMPO  kategorisinde
  yarışanlardan. Sanırım uzunca  bir zamandır sesleri çıkmıyordu fakat  onlarıda
  aramızda görmekten  çok mutluyuz. Umarım  parti "gaz" ı  çabuk geçmez ve  yeni
  RELEASE'lerle aramızda olurlar.

- Realtime :
  Bu yıl en azından  varlıklarıyla boy gösterdiler partide. Umarım seneye  demo-
  larıyla  da ortalığı sallarlar.  Sanırım şu an birtek  SENSEI arkadaşımız, tek
  tabanca  bir şekilde  grubun varlığını  devam ettiriyor!  Helal olsun  SENSEI.
  (  Adam  ne  de  olsa  editörlerden,   biraz   yağlamak  ve  gazlamak  lazım )

- Resident :
  İlk kez 2002'de 7D2 partisinde  tanıdıım, fırtına gibi SCENE'e giren, son  za-
  manların  en sıkı grubu.  Her partiye  katıldılar ve her  seferinde çok  güzel
  işler çıkarttılar.  İstanbul, Ankara, Van ve  Bilecik'ten oluşan süper  ekibe,
  "daha  çılgın release'ler  bekliyorum, hatta sadece  PC değil,  C64, AmigA  da
  olsun" diyor, başarılarının devamını diliyorum.

- Still Psycho :
  Her partiye  katılan, hatta bazen partiye  sponsor olan eski gruplardan.  Mut-
  laka "ON THE FLY" da  release yaparlar. Sessizce gelirler, bişiler release  e-
  derler. Sadece  partiden partiye bişi yapmasalar,  her zaman bişiler  çıkarsa-
  lar daha süper olur...

Grupların internet siteleri ise :

Bronx        : http://www.bronxwhq.org/
Crescent     : http://kilic.org/crescent/
Glance       : http://www.glance.ws/
Goblins      : http://spaces.msn.com/members/ebolax/
Raven        : http://www.rdgnet.org/raven/
Resident     : http://resident.tr-demoscene.info/
Still Psycho : http://www.stillpsycho.net/
Manyetiq     : http://manyetiq.tr-demoscene.info/
Demodojo     : http://demodojo.tr-demoscene.info/

7DX Parti    : http://www.7dx-party.org/

Eğer sizinde  grubunuz  var  ise,  yada yukarıdaki  gruplardan  biri  iseniz  ve
internet   siteniz   yazılmamış    ise,   lütfen    bana    e-posta    gönderin.

[b] ViGO/bRONX {vigo@bronxwhq.org}, 14 Kasım 2005 Pazartesi 16:52. [/b]

********************************************************************************
1987'DEN 2005'E SCENER OLMA ÇABALARI (Bakkada/DEMODOJO)
********************************************************************************

Bir sene öncesi  yada sonrası  olabilir belki ama  yanılmıyorsam bilgisayar  ile
tanışmam 1985 senesindeydi. İlk kişisel bilgisayarım olan Atari 800 XL'e   sahip
olmuştum daha  doğrusu  abimle  beraber  olmuştuk.  Bu  sahipliğinde  garip  bir
hikayesi var aslında.  Bir aksam  babam bizi(abimi  ve beni)  arıyor önce  annem
konuşuyor babamla ardından  bize veriyor  babanız sizle  konuşmak istiyor  diye.
Şaşırıyoruz çünkü babam  telefonla çok  konuşmasını seven  biri değildir.  Babam
bize oğlum gelirken  size hediye  ne alayım  diye soruyor?Tabi  ki soruyu  soran
baba olunca limit de  olmuyor. Ben o  zaman 4 yaşındayım  hangi akla hizmet  bir
belgeselden mi  esinlendim,seyrettiğim  bir  çizgi  filmden  mi  özendim  bilmem
babamdan kocaman bir panda istiyorum,abimse benim anlamadığım bir  şekilde  baba
bize "atari"  al  diyor. Telefon  kapanıyor  heyecanlı bir  bekleyişin  ardından
babam aksam  eve geliyor  ve  elinde gerçekten  istediklerimiz var.  O  zamanlar
boyum küçük  olduğundan standarttan  biraz büyük  bir pelüş  bebek bana  kocaman
geliyordu ve bana göre kocaman bebekle uzun bi sure ilgilenmiştim. Bu  arada  da
abim gelen atariyi acıyor. Model 800XL. Yanında bir de oyun  vermişler.  Bırakın
ingilizceyi o zamanlar daha  okuma yazmamız bile yok  ama hangi ustun  yetenekle
olduysa oyun yüklemesini  çözebilmiştik. İlk  oyunumuz Pac-Man  türevi bir  oyun
gerçek adini bilmiyorum ama uzun  bi sure bizim için  o oyunun adi "Seker"  yada
"Hap-Hap" olarak  kaldı. Bizde  uzun sure  o oyunlarda  kaldık. Bir  sene  sonra
hatırlayamadığım yada o zamanlar algılayamadığım bazı sebeplerden  dolayı  Atari
800XL'imiz ortadan kayboldu. Büyük bir üzüntü olmuştu bizim için, sanırım  babam
bu  üzüntümüze  dayanamamış  bir   arkadaşından  ödünç  Commodore  64   almıştı.
Yaklaşık  bir  iki  ay  bizde   kaldıktan  sonra  geri  gitmişti  ama   800XL'in
gidisinden daha  kotuydu çünkü  nerdeyse  salya sümük  ağladığımı  hatırlıyorum.
Sonra da  uzun  sure  bir  bekleyiş  başladı.  1987'nin  sonunda  C64C  modelini
almıştık. Artık  tamamen  bize  aitti  geri gitmeyecekti.  Bir  çocuk  başka  ne
isterdi ki. Yeni serüven başlamıştı. . .

Yaklaşık bir  sene boyunca  eski  oyunlar oynandı,commodore'suz  gecen  yılların
acısı çıkarıldı sanki.  Bir senenin  ardından yani oyun  arayışları başladı.  Bu
arayışlar bizi  Beşiktaş Bilgisayar'a  doğru  itti,ardından da  "64ler"  dergisi
ile  tanıştık.  Bir  sure  sonra  zamanımızın  çoğunun  Beşiktaş   Bilgisayar'da
geçmeye başladığını farkettik ama  bir eksik vardı. Su  oyun var mı  dediğimizde
aldığımız cevapların  çoğu "O  oyun kasete  olmaz" idi.  Kasete olmaz  ise  neye
olur  gibi  aptal  bi  soru   gelirdi  aklımıza.  Bize  sorarsan  Commodore   64
klavye,dataset (ki o zamanlar  biz buna teyp  derdik) ve  joystick'den ibaretti.
Kısa bir araştırmadan sonra öğrendik ki commodore için disket ve  disket  sürücü
denen birşey var.  Uzun sure  disket sürücü  edinmek için  para biriktirdik  ama
tabiki yetmedi ve o anda kurtarıcımız biricik dayımız bir aksam  elinde  1541-II
disket  sürücü   ile   kapıdan   içeri   girdi.   sanırım   hayatımda   en   çok
heyecanlandığım anlardan biriydi. artık o oyun yok bu oyun yok  gibi  sözcükleri
duymiycaktık ,bütün oyunlar bizimdi.  Bir açıdan da  baktığımda belki de  scener
olma çabalarımın  2005 yılına  kadar hala  devam etmesinin  ana nedeniydi  oyun.
Farkındaysanız ilk bilgisayarımı  edinişimden itibaren yaklaşık  5-6 sene  geçti
ama hala  bilgisayar ile  oyun yükleme  dışında bir  şey yapmış  değildim.  Bazı
zamanlarda kullanıcı  kitaplarındaki  hazır  programları  yapar  ve  waow  süper
derdik ama  bundan  ibaretti.  Bazı  introları  ve  bazı  isimleri  hayal  meyal
hatırlamaktayım TRSI  ve  Zombie  Boys  gibi  nedense  Bronx  kalmamış  aklımda.
Zıplayan topları ve  gecen yazıları  görüyordum ve  imreniyordum ama  yazılardan
bir kelime  bile anlamıyordum.  Bi sure  sonra eee  gene bakıcam  bakıcam  bişey
anlamicam dürtüsü  ile oyunun  ana  ekranına kadar  space tuşuna  basmak refleks
olmuştu. Alışkanlıklar  insana  zarar  verir derlerdi  inanmazdım  space  tuşuna
basma  alışkanlığı  belki  sonunda  Türkçesi  yazan  yada  direkt  Türkçe   olan
introları kaçırmama  bişeyler  öğrenebileceğim insanlara  ulaşmama  engel  oldu.
Geçen zaman  içerisinde bebeklikten  çıkıp çocuk-genç  arası garip  bir  safhaya
geçtik. Oyunlar  hala zevkliydi  ama Commodore  ile başka  ne yapılabilirdi.  Bu
araştırmalar   kısa   surede    disket   kopyalama   programlarını    kullanmayı
öğrenmeyi, disketlere  format    atıp   yeniden    kullanabilmeyi,koala    paint
programını,ismini su an  hatırlayamadığım müzik programlarını  ve hızlı  yükleme
kartuşlarını bize  getirdi. Bunlar  iyice karıştırıldı  ama asil  sorun  bunları
bir araya getirmekti.  Nasıl oluyor  da o introlar  ve oyunlar  yapılabiliyordu.
Bu arada  yaptığım  sayısız  ve  saçma  başarısız  deneme  vardır  ki  bunlardan
bazıları saçmalama  derecesine  varmış  bilgisayarımın  benim  düz  yazı  olarak
yazdıklarımı algılayıp  bu isteklerden  bana  bir oyun  derleyeceğini  düşünmeme
sebep olmuştur. Zaman  commodore'un ve  benim aleyhime  isliyordu eskiden  belki
günde beş oyun  çıkarken simdi 5gunde  bir oyun çıkıyordu. Bu  donemde de  artık
oyun almak yerine  değiştirmeyi akil etmeye  başlamıştık. İlk acemice  kopyalama
partilerimizi  de  o  zamanlar  yapmıştık.  2-3  arkadaş  toplanır  birbirimizde
olmayan oyunları-programları  kopyalardık. Bir  buluşma sırasında  Erkan  isimli
bir arkadaşım  cebinden  ActionReplay  diye mavi  bir  kartuş  çıkardı.  Şimdiye
kadar gördüğüm  kartuşlar ya  hızlı yükleme  içindi ya  da oyundu.  Bu  kartuşun
neler yapabileceğini bilmiyordum. Allahtan Erkan arkadaşımız da  çok  bilmiyordu
ki  kartuşu  kendisinden  uzun  bir  sure  ödünç  alabilmiştim.  Serüven   devam
ediyordu. . . . 

Kartuş bize  ilk  scener  aktivitelerinin  ki biz  o  zaman  scener,scene  nedir
bilmiyordum. Aklımdaki  tek  şey  bir  oyunun  başında  ismim  geçen  bir  intro
hazırlamaktı. Kartuşun üzerinde iki  adet kırmızı küçük  bu ton vardı.  Bunların
ne ise yaradığını  az çok  deneme yanılma yöntemiyle  öğrenmiştim. O  zamanlarki
deyimimizle bize  oyunun kodunu  veriyordu. Ama  nasıl bir  dilde veriyordu  onu
tam hatırlamıyorum. Bu  şekilde oyunu kırdığımız  zaman(biz nedense buna  kırmak
diyorduk) oyun  içinde  gecen  yazıları  bulabiliyorduk  ve  oyunun  istediğimiz
yerine atlayabiliyorduk.  Hemen  kod  araklama  oyun  değiştirme  çalışmalarımız
başladı.  Oyunların  içindeki  yazıları  değiştiriyorduk  ama  bir  türlü  bizim
yazdığımız yazılar gözükmüyordu.  Bir şeyleri yanlış  yapıyorduk ama  neyi(kaldı
ki sene 2005 olmasına rağmen hala neyi yanlış yaptığımızı  bulabilmiş  değilim).
Bir çok başarısız deneme  sonucunda tam artık bu  kartuşdan bi şey olmaz  derken
keşfettiğimiz birkaç  programla  beraber  koala paintte  çizdiğimiz  bir  resmin
altından yazı geçirmeyi başarmıştık.  Tam bunun üstüne müzik  ekleme ve bunu  da
oyunun basına  koyma çalışmaları  yapıyordum ki  kartuş sahibine  geri döndü  ve
sene 1991-1992-1993  geçişi idi.  Artık Beşiktaş  bilgisayardan elimiz  hep  bos
dönmeye başlamıştık. Artık  commodore için  tek tük  oyun çıkıyor,64ler  dergisi
son nefesini  veriyordu. Commodore  kutusuna  kaldırıldı. ve  dolabın  üstündeki
yerini aldı. Uzun sure bilgisayarsız kaldık. Ara ara commodore'u  çıkartıp  gene
bikaç oyun oynuyor bikaç  grafik çizmeye çalışıyorduk  ama nafile. 95  senesinde
Escort ile PC kervanına katildik. Commodore'dan gelen alışkanlıktan  olsa  gerek
ilk denediğimiz  şey oyunlardı  tabiki.  Ardından 1996-1997  senesinde  İnternet
paketleriyle tanıştık.    Bu  tanışmayı şaşalı  bir  törenle  birleştirmek  için
kutusunda   sakladığımız   C64'umuzu,disket   sürücümüzü,bütün    disketlerimizi
elimizde C64  ile  ilgili ne  varsa  bi  güzel götürüp  çöpe  atmıştık  Herkesin
interneti bilgi  için kullanacağımızı  sandığı  bir dönemde  ödediğimiz  telefon
faturaları genelde IRC  deki chat  odaları(bunlar bilgi  paylaşımlı hat  odaları
değildi geyik saçma sapan  chat odalarıydı) yüzündendi.  PC'ye girişimizi de  bu
şekilde  harcamıştık.  .  Basit  bir  masaüstü  kullanıcısından  başka  bir  şey
değildi o  anda konumumuz.  Seneler seneleri  kovaladı tabiki  bilgisayarda  3-5
bir  şey  öğrendik   ama  elle   tutulur  parmakla   gösterilecek  bir   gelişme
kaydedemedim. 2000  senesinde  bilgisayarla  hiç  bir  şey  yapamamanın  verdiği
eziklikle  isi  birazda  inada  bindirerek  Bilgisayar  Programcılığı   bölümüne
kaydoldum. 2  sene boyunca  programcılıkta  tek öğrenebildiğim  klasik  kalıplar
oldu IF  THEN  gibi  şartlı  kodlar,karar  mekanizmaları,girdi  çıktı  süreçleri
basit algoritmalar.  Hocam ekrana  ne  zaman bir  şey basıcaz  sorusuna  aldığım
yanıtta  burada  programcılığın  temelini  öğreniceksiniz  bunlarla  istediğiniz
herşeyi yapabilirsiniz.  Burdan bunu   söyleyen  hocamı da  saygı ile  anıyorum.
2002 yılında bilgisayar  programcılığı bölümünden x  sayıda öğrencinin y  sayıda
dersten aldığı  notların ortalamasını,hangi  dersten geçip  kaldığını yazan  bir
program(cık) yapacak  şekilde mezun  oldum.  Hayaller yerlerde  tatminler  sıfır
scene isteğini(hala adinin ne oldugunu bilmiyorum o senelerde)  nerdeyse  bitmiş
okuldan mezun  olduk ve  hayat  kavgası başladı.  Serüven nerdeyse  mutsuz  sona
ulaşmak üzere. . . 

2004 senesine  kadar  IT  sektöründe  kendime yer  edinmeye  çalıştım  ki  o  da
olmadı. Belki mezun olduktan  sonra biri beni  yanına alır programcılık  üzerine
geliştirir,bişeyler  öğretir   diye  bekledim   ama  en   iyi  ihtimalle   çağrı
merkezlerinde yer bulabildim  kendime. Uzun bi  süre bilgisayar ve  programcılık
adına hiçbirşey  yapmadım.  2004 senesinde  çok  alakasız bir  müzik  forumundan
AmigaOne ile ilgili  bir yazı  gördüm. Bu  yazı ile  ilgili araştırmalarım  beni
Türkiyedeki Commodore  Amiga kullanıcılarının  sitelerine formlarına  ulaştırdı.
Ardından eskileri yad etmek  için A500 ve C64  aldık. Serüvenin taaaa en  basına
gittik ulan  ben  bi  zamanlar  bireyler yapmaya  çalışıyordum  bu  alette  hala
yapamadım ama  bu  saatten sona  da  yapılır mı  soruları  aklimizi  tırmalarken
birçok yerden birçok doğru  yanlış bilgi edindik.  Sonunda da Türkiyedeki  aktif
scenerların forumuna ulaştım.  Sene 2005  scene'de ilk  aktivitem 7D5  partisine
katılmak oldu. Şu  anda o aktiviteden  ve Skate'den de almış  olduğum gazla  C64
için bir taraftan ASM kasarken bir taraftan da DemoDojo isimli bir  grup  kurdum
ve aktif  scene  hayatı başladı.  .  Derseniz  ki elime  ilk  kartuş  geçtiğinde
yaptığım yanlışı bulup düzeltebildim mi? Hayır :)

[b]BAKKADA/Demodojo[/b]

********************************************************************************
SCENE 2015 (Skate/Glance)
********************************************************************************

Uzay 1999'u  bir  çoğunuz  hatırlayacaktır.  Hani  küçüklüğümüzün,  hatta  benim
ceninliğimin  dizisi.  Hani  şu  ünlü  Maya'nın  olduğu  ve  annemin   anlattığı
kadarıyla ağabeyimin gecelerce kabus  görmesini sağlayan nostaljik bilim  kurgu.
1999 yılında gerçekten  uzaya çıkabildik  mi? Esasen 1961'de  çıktık. Peki  Uzay
1999'daki    teknolojiye    erişebildik    mi?    2005    itibariyle    "hayır".

İnsanoğlunun hedefleri birçok konuda  sınırları zorlayıcı, zaman zaman  imkansız
olmuştur. Bu yüksek  hedeflerin iki  türlü geri dönüşü  olur. Birinci  senaryoda
hedefin yüksek  seçilmesi yüzünden  hiçbir zaman  sonuca gidilemez  ve  projeler
amacından sapar ya da  tamamiyle başarısızlıkla sonuçlanır.  Tabii ki her  zaman
sonuç negatif  değildir. Zaman  zaman imkansız  gibi görünen  hedeflere  ulaşmak
için gerekli  kilit noktalardan  biri çözüldüğü  gibi projeler  amaçlarını  aşan
sonuçlara  ulaşmışlardır.  George  Lucas'ın  filmlerinde  ve  oyunlarında   daha
gerçekçi modeller  kullanılması  için ayrıdığı  araştırma-geliştirme  bütçesinin
biraz  fazla  olması,   üç  boyutlu  bir   tarayıcı  yapmaya  çalışırken   beyin
tomografisini (MR)  bulmasına  ve sağlık  sektörüne  büyük bir  katkı  yapmasına
neden olmuştur.  Bu  da  projelerin amaçlarını  aşmasına  en  güzel  örneklerden
biridir.

URL:
http://www.urmc.rochester.edu/smd/about/newsletterArchive/newsletter06022005.cfm

Uzay, Lucas'ın,  benim  ve  bizim  gibi yüzbinlerce  kişinin  çözmek  ya  da  en
azından anlamak istediği gizemli bir  konudur. Ancak gama ışın patlamaları  gibi
birçok konu  henüz  sağlam temellere  dayandırlarak  açıklanamamakta,  günümüzde
bile  birbiriyle   tutarsız   bazı   teorilerle   açıklanmaya   çalışılmaktadır.

Uzay teknolojileri konusunda Türkiye'nin şu  anda içinde bulunduğu durum  malum.
Basında  yıllardır   "Türkiye   Uydu   İhraç   Edecek"   gibisinden   haberlerle
karşılaşıyoruz. Uyduyu  yaptık da  ihraç ediyoruz.  Ancak uydu  yapmak,  insanlı
bir uzay  gemisiyle  uzaya çıkmaya  göre  çok  daha mantıklı  bir  hedef.  Bence
Türkiye yakın  bir zaman  diliminde  kendi uydusunu  yapıp fırlatacak  ve  ihraç
edecektir. Peki bu hedef  mantıklı ama yeterli mi?  Uydu yapımı bittikten  sonra
daha gelişmiş  uydular mı  hedeflenecek  yoksa doğrudan  bir mekik  inşasına  mı
geçilecek? Türkiye  uzaya  mekik  yollamayı  başarırsa  maaşlarını  düşük  bulan
işçiler ayaklanır  mı? Bu  konuda onlarca  saçma sapan  soru ortaya  atılabilir.
Ancak tek bir gerçek  unutulmamalıdır. Dünya'da uzay teknolojilerinde  istenilen
noktaya gelinememiştir.  Türkiye  ise Dünya'nın  çok  gerisindedir.  Türkiye'nin
Dünya'yı yakalamak için yapacağı her hareket  uzun vadede faydalı olsa da  anlık
olarak fuzuli görülecektir.

Dünya'da uzay teknolojisi  oldukça gelişmiştir diye  düşünenler olabilir.  Ancak
uzay istasyonlarındaki  bilgisayarların  soğutulması  için  kullanılan  fanların
çıkardığı gürültü  ve  bu  gürültünün  Astronotlar  ve  Kozmonotların  en  büyük
kabusu olması  bile  çok  basit  gibi  görünse  de  günümüz  için  çözümsüz  bir
problemdir. PC'lerde her geçen gün  gelişen fan teknolojilerinin buna bir  çözüm
olacağını ümit edelim.

Dünya'da uzay  teknolojisi  istenilen  yerde  değil,  peki  Türkiye  ne  yapsın?
İntahar mı etsin? Belki de  etmeli. Edirne'den Hakkari'ye patır patır  camlardan
atlamalı, bileklerimizi  kesmeliyiz.  Var  mı  bizde o  yürek?  Yok.  Biz  ancak
düşmanı denize dökmeyi  biliriz zaten. O  zaman bu işin çözümü  nedir? İpin  ucu
kaçsa  da  peşinden  koşmalı  ve  Dünya'nın  çok  hızlı  ilerlememesi  için  dua
etmeliyiz.      Ne       bu       karamsarlık       ya?       Öyle       işte...

Türkiye Dünya'yı  ne zaman  yakalar?  İşte gelmek  istediğim nokta  burası.  Bir
çoğunuz yazının  giriş, gelişme  bölümünü çözmeye  çalışıyorsunuz. Aslında  daha
girmedik bile. Buraya kadar olanlar  aklımdan dökülüverdi. Ancak çok da  rasgele
bir  şekilde  dökülmedi  bu  düşünceler  dimağımdan.  Scene  2015  benim  baştan
bilinçli  bir  şekilde  seçtiğim  bir  başlıktı.  2015  bir  hedef  benim  için.

2015'in özellikleri:

• Tek sayıdır.
• Beşe tam bölünebilir.
• 20  Mart  2015'de   Kuzey   Atlantik'ten  tam  güneş  tutulması   izlenebilir.
• 13    Eylül      2015'de      yarım       güneş     tutulması     izlenebilir.
• 31 Aralık 2015'de  Adolf Hitler'in "Mein Kampf"  adlı kitabının telif  hakları
  düşecektir.
• Back  To The  Future Bölüm  2'de  Marty McFly  1985'den 2015  yılına  yolculuk
  yapar.
• Star  Trek:  Deep  Space  Nine'ın "Past  Tense"  bölümü  2015  yılında  geçer.
• 2015   yılında   7DX   Partileri'nin   sonuncusu   olan    7DF   yapılacaktır.

Aha! İşte  bu.  7EX  serisi eğer  yapılacaksa  başka  organizatörler  tarafından
yapılacak, çünkü  ben  2015'den sonra  bu  işlerde yokum.  Birçok  kişi  scene'i
2000'li  yıllara  girmeden  bıraktı  ancak  takip  etmeye  devam  ediyor.  Pouet
userlarından  biri  olan   Alien/Antitrax'ın  en  son   katıldığı  büyük   scene
partisinin 1984 yılında olması  ve scene'i 1988'de  bırakması ancak bunca  zaman
geçmesine rağmen hala scene'i  adım adım takip etmesi  ve şu ana kadar  4200'den
fazla ürüne yorum yazmış  olması beni cesaretlendirdi. Bu  demektir ki en  ideal
koşullarda 2015 yılında  aktif scene  hayatıma son verecek  olursam 2035  yılına
kadar takip etmem  olası. 55  yaşımdan sonra  scene falan  dinlemem zaten,  full
rock&roll takılırım. Çocuklarım  da "baba, yine  mi rock&roll takılıyorsun,  çok
banal..." gibisinden yorumlar yaparlar.

Konuyu dağıtacağımız kadar dağıttık, hadi  toparlayalım. Göreceksiniz ki şu  ana
kadar   yazdığımın   dağınık   şeylerin   buluştuğu   iki   temel   nokta   var.

1)  Türküz,   Türk   kalacağız.   Dünya'nın   gerisindeyiz   ama   yılmayacağız.
2)  Dünya   yeterince  ilerde   değil.   Her  zaman   bir  adım   ilerisi   var.

Şimdi bu iki maddeyi çöpe atıp  sınırları kaldırmak istiyorum. Diyelim ki  Dünya
dediğimiz bu  güzel  gezegen tek  bir  ülkeden  ibaret ve  diğer  ülkeler  diğer
gezegenler.  Olayı  gezegen   boyutuna  çıkardığımızda  hedeflerimiz   yükselmek
zorunda. Çünkü diğer  gezegenlerdeki scene  hakkında en ufak  bir bilgimiz  yok.
Ya onlar ilk kübü  yüzbin yıl önce çevirdiyse?  En zor savaş bilinmeyen  düşmana
karşı   verilen   savaştır.   Bu   durumda   çıtayı   yükseltmek   zorundasınız.

2005 itibariyle  Türkiye'de kendime  rakip  görmüyorum. Bu  cümle hiç  de  alçak
gönüllü bir  cümle değil.  Ancak aslında  ilk akla  gelen anlamıyla  kullanmadım
burdaki cümleyi.  Her zaman  benden iyiler  oldu, bundan  sonra da  olacak.  Ama
eğer  Türkiye'de  ve  Türk  Scene'inde   yer  alıyorsa  zaten  aynı   taraftayız
demektir. Eğer  herkes  olayı  benim  ve benim  gibi  birkaç  scenerın  gözünden
görmeye başlarsa  üretilen  demolar  çok  daha  kaliteli  olmaya  başlayacaktır.
Çünkü eğer  yaptığımız şeyleri  kendi aramızda,  kendi çapımızda  yarışmak  için
değil  de  Dünya   ile  yarışmak  için   yapmaya  başlarsak,  demoların   kalite
standartları ister  istemez  yükselir. Yok  Dünya'yı  da kaale  almazsak,  diğer
gezegenleri hedef seçersek  işte o zaman  "kalite" kavramı demolarımıza  sempati
duymaya başlar. Bu  güne kadar  aklıma gelen  birçok orjinal fikri "yok   canım,
eğer yapılabilseydi  bu  güne  kadar  biri  çoktan  yapardı"  felsefesiyle  heba
ettim. Her zaman  da biri yaptı.  Artık bu "biri" olmaya  karar verdim.  Sizlere
de tavsiye ederim.

Yıl 2005, hedef 2015. 10 senelik bir  süreç var önümüzde. Benim hedefim 10  sene
sonra aktif scene hayatım sona  erdiğinde Dünya'da imza attığım demolarla  saygı
gören bir  scener  olmak  ve  2035'e kadar  bunun  keyfini  sürmek.  Bu  hedefte
yanımda yer  almasını  istediğim kişiler  ise  kısaca 7DX  partilerinden  en  az
birine katılma  nezaketini göstermiş  eski scener  arkadaşlarım ve  bu  günlerde
aramıza katılan  ve bu  günden  sonra aramıza  katılacak yeni  scenerlar  olarak
özetlenebilir.

Bu bilerek  karmaşık yazılmış  yazıdan bir  sonuç çıkarabilirseniz  bana 10  yıl
daha rahatlıkla tahammül edebilirsiniz.  Yok eğer "bu ne  biçim yazı ya,  hiçbir
şey anlamadım" sizin şu anki duygularınızı  daha iyi ifade ediyorsa, o zaman  10
yıl boyunca  bana katlanmak  zorundasınız.  Ama her  iki  durumda da  ben  burda
olacağım, kusura bakmayın.

Şu andan sonra  Türkiye'de yayınlanmak  üzere yapılan tek  şeyin Plazma  Magazin
olması dileğiyle.

Benimle     irtibata     geçmek     isteyenler     için     e-mail      adresim;
[b]skate <at> glance <dot> ws
Emir Akaydın
Skate / Glance[/b] 

********************************************************************************
7D5 PARTİ RAPORU (Peandoas/Resident)
********************************************************************************

Geçtiğimiz 17  - 18  Eylül'de  ülkemizde demoscene  (scene de  olur...)  hatrına
güzel bir  parti  yapıldı.  Her  sene yapılan  7DX  partilerinin  4.sü  bu  sene
Teknoloji Televizyonu sponsorluğunda gerçekleştirildi. 7D5 adı  verilen  partide
bizde Resident grubu  olarak full  kadro katıldık.  Fazla söze  gerek yok  parti
raporuna geçeyim artık...
 
Resident basından sorumlu  müdürü olarak  partiye daha başlamadan  12 saat  önce
gittim. Erik/RDT  öğlenden  parti  mekanına kapağı  atmıştı.  Tanışıp  muhabbete
meyillendik.
Resident scenergil  olaraktan özellikle  yemekleri  çok beğendik.  Ayrıca  bulup
buluşturmuşlar herkese  birer pc  ve güzel  kameraman kızlar  serpiştirmişlerdi,
ne yazık ki kameraman kızlar herkese yetecek kadar fazla değildi,  ayrıca  parti
sonrası o  tek güzel  kameraman  kızı kim  kaldırdı  bu çok  tartışıldı.  Ayrıca
bunun yanında partide çeşitli oyunlar vardı, bunların en zoru  kattaki  tuvaleti
bul yarışmasıydı, sonra bir ara sürpriz yumurtaya logo çizdirme  gibi  birşeyler
de oldu. 
Parti tarihinde  ilk defa  bu kadar  kalabalık yakalandı  ayrıca, oyun  yapımına
meraklı olanlar, amatörler  de scenerlar kadar  yer tutuyordu (bilmiyorum  turbo
ve vigo'yu göz önüne aldığımızda tutmuyor sanırım.)
 
Neyse nerede  kalmıştık, evet  ilk  gün Gazogen'den  çeşitli insanlar  bide  bir
oyun yapımcısı konuştu. Sonra  oyun turnuvası oldu,  herkes ağzı açık  heyecanlı
heyecanlı maçları ve  Barbarian roundlarını izledi.  Bir konuya değinmek  lazım,
partiye show amaçlı o  kadar fazla old  skool hardware geldi  ki, aynı anda  3-4
kişi bunlarla oyun  oynadığı halde parti  boyunca açılmayan bilgisayarlar  oldu,
bide  Skate/GLANCE  gibi   çalışmayan  tonlarca   hardwareini  sergilemek   için
getirenler  vardı,  bide  toplarken  zor  olcak  gibi  birşeyler  geveledi   ama
neyse... Sonra product izlemek için kocaman ekranlı salon vardı, hatta  biz  RDT
olarak gerektiğinde ağırlığımızı  koyup  saatlerce demo  izledik orada, ha sonra
gelip  GLANCE   bizi   kovdu   ama  olsun...   Ayrıca   önemle   vurgulanmasının
gerekliliğini hissettiğim bir  konuda 68060  işlemcili bir  tower Amiga  1200'ün
cıvır AGA  çipseti ile  bize  demo izletmek  üzere hazır  bulunmasıydı.  Heralde
Datura'nındı o  makina...  Buradan  Datura/GLANCE'e  teşekkürü  borç  bilirim...
 
Sonraaaa... biraz  daha  detaylara inmek  istiyorum.  Ragnor demoscene  ile  bir
oyun yapmaya  başlamıştı, kodu  neredeyse tamamlamış  ancak grafikler  konusunda
başarısız olduğu  ortaya  çıkmıştı ki  Ragnor'u  tutup Turbo'ya  götürdü,  Turbo
sanırım grafikleri  yaptı  ama  ben  en  son  Turbo'nun  Ragnor'u  şöyle  tehdit
ettiğini hatırlıyorum:
- Bak usta  grafikleri hazırlıyorum, eğer  ki bu Bronx  tayfası gibi  yaptırıpta
kullanmazsan üstüne otururum...
 
Tabii çalışan  scenergil yanında  boş  duran, çene  çalan  bol scener  da  oldu,
ayrıca 2 satır  bilgisayar bilen herkesin  yaptığı gibi linux  daha çıtır  yoksa
windows mu daha geç boşalıyor gibi espriler, muhabbetler  döndü.  CRESCENTcanlar
SID yayını yaptılar  bu arada...  Tabii devlet  bizi unutmamıştı  bu arada  bize
hizmet  etsin   ve  vergilerini   toplayıp  derebeylere   götürsün  diye   PS2ci
kantinciyi  başımıza   vermişti,  kantinciyi   herkes  çok   beğendi,  sık   sık
scenerlara playstation  oynattı,  sabaha  kadarda  başımızda  durdu  sağolsun...
 
Compo Günü
 
Compo sabahına uyanmaktansa uyanık  girmek isteyen pek  çok scener var  gibiydi.
Ancak gece  ilerledikçe  hepsi  uyumak için  birer  birer  köşelerine  çekilmeye
başladılar, 2  koltuğu birleştirenler,  masalara yaslananlar,  yerlere  yatanlar
oldu... Bazıları klavyelerin üzerine kafalarını koyup uyumuşlardı,  ancak  tabii
uyumayan,  sabaha  product  kasanlarda  vardı...  Gözüme  çarpanlar;  Wisdom  ve
Impetigo/CRESCENT, Turbo/BRONX, Tesla/RESIDENT, Ragnor ve şu  an  hatırlamadığım
pek çok scener vardı...  Bende o aralık 7d5  parti rapor blogunu doldurmak  için
bulunuyordum.  Sabaha  kadar  yine  ilginç   şeyler  yaşandı.  bir  abi   (adını
hatırlamadım kusuruma  bakma usta)  gözümden daha  büyük taneleri  olan  üzümler
dağıttı herkese, bunun  gibi bir çok  şey oldu (yazacak  olay bulamamanın  derin
hüznü)...
 
Sonra sabah oldu,  ürünler toplandı.  İzlenecek ve oy  verilecekti. Uykum  aşırı
derecede  bastırdığından  buraları  pek  hatırlamıyorum  ama  yüzümü  yıkadıktan
sonra salonun  yolunu  tuttum Anes  ile  Tesla'nın arasında  bir  yere  oturdum.
Ürünleri  izledik  verdik  oyları  yukarı  çıktık,  asıl  olay  muhabbet   sonra
başlıyordu, çünkü  kimsenin  sırtında  yükü  kalmamıştı  ve  yarışma  heyecanıda
bastırıyordu. En  kral muhabbetler  zaten bu  saatlerde oldu...  Ancak  maalesef
biz ve  bizim gibi  uzun yoldan  gelen scenerların  ayrılma vaktide  gelmişti...
Okulun  sarı  otobüslerine   binmiş,  geri  dönerken   kulaklarıma  habire   c64
müzikleri geliyordu, aynı  şey Tesla'ya da  olmuştu, delirdiğimize karar  verdik
ve daha güzel partilerde buluşmak üzere anlaştık...
 
Sonuç...
 
Parti harbiden  güzel  oldu,  eğlenceli geçti.  Organizatörlere  ve  sponsorlara
teşekkür eder,  saygı  ve sevgilerimi  buradan  iletirim. Ayrıca  bizi  producta
garkeden scenerlara da ekstra teşekkürler...
 
 

[b]Peandoas/RESIDENT
Her  türlü   scene,   scener,   disket,   demo   işleri   itina   ile   yapılır.
resident.tr-demoscene.info member no.:43
peandoas_rdt@yahoo.com.tr[/b] 

********************************************************************************
7D5 PARTİ RAPORU (Ragnor/Manyetiq)
********************************************************************************

İlk gün websitesinden  aldığım adresi  bulma telaşı ile  başladı. Tarifteki  bir
kritik noktayı başta şaşırsamda  biraz yürüyüş ve  biraz gecikmeden sonra  parti
alanına varabildim.  Üniversite  kampüsünde  parti  alanını  ararken  oy.org'dan
doganbir'e rastlamışım  sanırım.  İkimiz beraber  bulduk  ama ortama  daha  yeni
gelmiştim ve  üzerimdeki yabancılık  hissini  atamamıştım. Adamla  doğru  düzgün
tek kelime bile etmedim. Hatta onun o olduğunu bile o gece o gittikten  çok  ama
çok sonra  öğrendim.  Bu  da  ne  demekmiş.  Böyle  sosyalleştiğimiz  ortamlarda
yabancılık hissinin  bizi elegeçirmesine  izin vermeyeceğiz.  Sonuçta o  ortamda
bulunan herhangi  biri  ile  hayatımın  başka bir  evresinde,  başka  bir  yerde
tanışsam büyük  ihtimalle  arkadaş olurdum  zaten.  Neyse partiye  dönelim.  İlk
geldiğimde hala  gelmeyenler falan  vardı.  Parti mekanı  toparlanıyordu,  bende
boş boş  gezindim  etrafta ve  birileri  ile kaynaşığ  muhabbete  daldım.  Ortam
süperdi. Kafamı nereye çevirsem  bir Amiga bir  Commoder hatta Atari  çıkıyordu.
Tek üzüntüm  eli boş  gelmiş  olmamdı. Neyse  efenim  işte böyle  böyle  partiye
giriş yaptık.

Zaman  aktıkça  insanlar  akmaya  başlamıştı  partiye.  Bronx  ekibinin   gelişi
gürültülü olmuştu.  Açıkcası  onları  tanımıyordum  (yüzleri  tanıdık  geliyordu
gerçi) ama  parti  mekanına  geldiklerinde  milletin  çıkardığı  seslerden  (ooo
selam baba  vb.  selamlama  çığlıkları diyebiliriz.  :))  bu  adamların  önemli,
sevilen adamlar  olduğunu  anladım.  Bilmiyordum tabii  o  zaman  bombadan  bile
gürültülü olduklarını :).

Neyse  efenim  bronx'tu  resident'ti  crescent'ti  ascreaus'tu  (galiba   yanlış
yazdım)  geldikçe ortam  renklenmeye ve gürültülü bir  hal almaya başladı.  Vigo
geldiği gibi demo sergilemeye  başladı. Şöyle bir baktım  ama benim ilgim  başka
yerlerdeydi  (gerçi  neyle  ilgileniyodum   o  sırada  hatırlamıyorum,   belkide
kalabalık  yüzünden  izleyecek  yer  bulamamışımdır  o  da  olabilir  yani   :))
crescent c64 ile müzik yayınına başladı anında. Bir yandan Vigo, bir  yandan  da
crescent bizi sid'e boğdu  :).

Bende o  sıralarda boş  oturmaktan  sıkılmış ama  "ulan  şimdi başlasam  on  the
fly'a ama  ne  yapacam ki?"  diye  kendi kendime  tartışıp  duruyordum.  Sonunda
iyice gaza geldim yada sıkıldım ve başladım dev-cpp+sdl'i  download'a.  Bağlantı
hızlıydı anında indiler ve başladım programlamaya.
 
En iyi bildiğim şey oyun yapmaktı ve ne yapacağımı biliyordum. Partiden  1-2  ay
önce şans  eseri  Mazzembly diye  bir  roguelike ile  karşılaşmıştım.  Bir  demo
grubu Assembly demo  partisi ile dalga  geçmek ve protesto  etmek için  yapmıştı
bu oyunu. Neyse efenim  gördüğünüz gibi konuyu çaldım  ve kodu yazdım. Ama  oyun
için bir  isim  gerekiyordu  ama  aklıma birşey  gelmiyordu.  Tam  da  o  sırada
crescent c64'te show must  go on'u çalıyordu. Ve  isim bulundu. Bayılıyorum  yaw
şu Queen'e.  Freddy  Mercuy  (cinsel  tercihi  ne  olursa  olsun)  muhteşem  bir
müzisyendi. Yazık oldu genç yaşta ölmesi.

Bu  arada   söyleşilerden   bahsetmeyi  unuttum.   İlk   önce  D4D   Design   ve
geliştirdikleri   Gazogen ile  bir  sunum ve  ardındanda bir  söyleşi  yaptılar.
Eğlenceliydi  açıkcası.     Adamlar   zevkle  iş   çıkarıyorlar.  Güzel   sistem
geliştirmişler. İşin tek kötü  yanı müşteri kitleleri  pop gençliği. Asla  sahip
olmak istemeyeceğim  bir  müşteri kitlesi  ama  iyi para  kazandıran  bir  kitle
itiraf etmeliyim :). Yani o  kitleye satabileceğin  çok  ama çok fazla şey  var.

Ogan Kandemiroğlu'nun söyleşisine  gelirsek, bir miktar  Mevlüt Dinç tadı  aldım
açıkcası. Haklı  bir gaz  vardı  ortada. Sonuçta  döneminde birçok  sağlam  oyun
projesinde çalışmış bir   adam. Ve şimdi Türkiyede  oyun yapıyor. Yeni  oyunları
için şunu  söyleyebilirim  ki  görsel olarak  iyiler  ama  kullandıkları  sistem
biraz amatörce geldi  bana. Yani  GameMaker en fazla   hobi  oyunlar için  uygun
gibime geliyor.  Ne  bileyim  ben  kod yazarken  bir  başkasının  sürükle  bırak
yapmasını sevmiyorum  belkide  :).  Türkiyedeki  firması  ile  öncedende  birkaç
eğitim yazılımı  geliştirmiş  sanırım.  Şu  sıralarda  yaptığı  oyunlarda  genel
olarak   edutainment    kapsamına   girebilir.    Şu   Kurtarma    helikopterini
kullandığımız oyun biraz ilgimi çekti. Ama uzun vade de iyi  midir  bilemiyorum.
Şimdi düşününce görevler  farklı farklı ama  yaptığımız şey hep  aynı. Ufak  bir
oyun olarak yinede iyi.  Ama Cumhuriyet oyunu  için aynı şeyi  söyleyemeyeceğim.
Belki arkadaşlarla  oynamak için  o  kadarda kötü  olmayabilir ama  tek  kişilik
modda neyin nesi?  Yani işin mücadelesi  nerede?? Çok kişilik  modda bile  bence
oyuncunun ilgisini  çekebilecek yeterlilikte  bir mücadele,  bir challenge  yok.
Ama  hakkını  vermeliyim  oyunun  grafikleri  vs.  süper.  Açıkcası  kendisinden
aldığım tek gaz, bunlar satılacak seviyede ise benim yaptığım  oyunlarında  para
etmesi  gerektiği   idi  ama   grafiker  yok.   Neyse  girmeyelim   bu   konuya.

Birde oyun  turnuvası oldu.  3 oyunun  turnuvası vardı.  Emiliyn Hughes  Soccer,
Kick  Off   ve  Lotus.   Lotus  haricindekilere   katıldım.  Aslında   katılmayı
düşünmüyordum ama baktım katılımcı  sayısında açık var  katılayım en azından  bu
efsane  oyunlarıda  oynamış  olurum  dedim,  iyide  ettim.  Burdan   diğerlerine
sesleniyorum: "Babalar, niye katılmıyosunuz? Ne olacak yani  unutmuşsanız?  Amaç
eğlenmek değil mi?". Turnuvalarda  ilk maçımda kaybettim  ikisinde de. Ama  Kick
Off'ta biraz  direnebildim. En  azından maç  penaltılara kaldı  ve 5  penaltıdan
sonra yenildim :).

Gece uykusuz,  bol  geyik  ve  kod  ile geçti  ve  oyunumu  bitirdim.  Bu  arada
Spritus'a teşekkürler. Onun gazı ile Turbo'dan oyunum için  grafikeri  yapmasını
istedim. O da sağolsun,  kırmadı, şirin şirin scener'lar  çizdi bana :).  Ayrıca
spritus oyuna bir  müzik eklemem konusunda  da çok yardımcı oldu.  O olmada  çok
boktan bir oyun olacaktı. Sağol Spritus :).

İkinci  güne   biz  erken   başlamıştık.  Malum   hiç  uyumayınca   güne   erken
başlayabiliyorsun :). Ama  diğerlerinin gelmesi biraz  vakit aldı. Saat  10:00'a
kadar oyundaki  birkaç  hatayı düzelttim.  Daha  sonra ise  heyecanla  compoları
beklemeye başladım. AmigaOS4'ün  sunumu sağolsun zaman  kolay geçecekti.  Öylede
oldu, beklediğim gibi olmadıysada. En ön sırada olmama rağmen yarım  saat  sonra
sızmışım, bi  halt  öğrenemedim  OS4  hakkında :).  Sonrada  bakkada  ile  biraz
konuştum    bu    konuda.    O    olmuş    dedi    bende    iyi    dedim     :).

Günün bir diğer olayı ise Tesla'nın her makinada çalışan ama  compo  makinasında
çalışmayan oyunu  oldu.  Anlaşılan o  ki  Java'nın "write  once,  run  anywhere"
iddiası pratikte her zaman işlemiyor. Tabii Bill Gates godoşunada  bu  sorundaki
katkılarından kolay  teşekkürlerimizi yolluyoruz  :).  Bu sorun  yüzünden  Tesla
oyun kategorisinde yarışamadı ama wild'a girebildi.

Compo'lar  başladı  sonra.  Geçtik  yerlerimize  ve  izlemeye  başladık.   Hepsi
birbirinden  güzeldi.  Salonda  herkesin   haklı  gururu  yüzlerine   bakmadanda
kolayca hissediliyordu. O ortamda bulunmak çok zevkliydi :). Oylamada  zor  oldu
haliyle. Geriye sonuçları beklemek kaldı.

Parti bittikten  sonrada  mekanda  takılacaktım  ama  arkadaşım  ilede  buluşmak
istiyordum hazır istanbula  gelmişken onu görmemek  olmazdı. Alelacele  ayrıldım
parti   mekanından.    Ve   böylece    bir   parti    macerasıda   sona    erdi.
[b]Ragnor/Manyetiq[/b] 

********************************************************************************
TOPOLOJİ (Erik/Resident)
********************************************************************************

Topoloji tam bir  tanımıyla soyut  kümeler ailesi üzerinde  verilmiş bir  kuralı
tanımlar, bu kural soyut kümelerin açıklık yada  kapalılık  özelliklerini içerir
ve bu kuralların  bulunduğu uzaylara bir  topoloji yada bir  topolojik uzay  adı
verilir. Topolojinin  3b  geometri  ile  doğrudan  bir  bağlantısı  bulunmamakla
birlikte   diferansiyel   geometri   ve   cebirsel   geometri   gibi   matematik
disiplinleri üzerinden  bu bağlantı  sağlanır.  Topoloji nin  etimolojik  kökeni
Latince uzay  anlamına  gelen  topos  (bu arada  lat.  topos  kelimesinin  bizim
dilimizde birebir  anladığımız  uzay kelimesini  tam  anlamıyla  karşılamadığını
düşünmekteyim) ve bilim anlamına gelen logos  kelimelerinden oluşur. Yine de  bu
uzayın  bizim  günlük  kullanımda  anladığımız  uzayı  kastetmediğini  belirtmem
lazım, örneğin  matematiksel  anlamda sayı  doğrusu  adı verdiğimiz  reel  eksen
yani üzerinde reel  sayıların olduğu  doğru bir uzaydır  ve bu  uzaya reel  uzay
adı verilir. Ben bu reel uzayda  bir kural tanımlayabilirim  (örneğin (a,b) gibi
aralıklar  açık  kümeler  olsun  gibi.)  ve  bu  kuralıma  uyan  tüm   kümelerin
oluşturduğu kümeye, gerekli  topolojik aksiyomları da  sağladığı zaman  topoloji
adını veririm. Bu aynı zamanda  bir boyutlu (hailz to  anes:) ) reel uzay  adını
alır,  istersem  bu  şekilde  iki   doğruyu  dik  olarak  kesiştirip   kartezyen
koordinat sistemi adını  vereceğim bir  sistem tanımlarım  (isteğe bağlı  olarak
eğik olarak da  kesiştirip kartezyen  olmayan bir  sistem tanımlayabilirdim  ama
burada pratik  olması açısından  bunu görmezden  gelelim)  ve bu  uzay |R  x  |R
sıralı  ikililerinden   oluşan   bir   kümedir,   bunu   kısaca   |R²   ile   de
gösterebilirim. Şimdi  bu  küme  üzerinde bir  kural  tanımlayabilirim  (örneğin
(a,b]x(a,b] lerden oluşan kutucuklar açık kümeler olsun) ve bu kurala göre  yine
yukarıda  belirtildiği  gibi  topolojimi  oluşturabilirim.  (Kartezyen)   çarpım
uzaylarında tanımlanan bu topolojiler kartezyen anlamda  kutucuklardan  oluştuğu
zaman bunlara kutu topolojisi adı verilir. Ancak benim  topolojilerimin ille  bu
şekilde olması  gerekmez  (örneğin  kural  {1}x(a,b)  şeklindeki  çizgiler  açık
kümeler olsun),  kutu topolojisi  olmadığı  halde kartezyen  çarpımlı  uzaylarda
tanımlanmış topolojilere  çarpım topolojisi  adı verilir  ( çarpım  topolojileri
yine derin bi konudur  bu konuda varlığı  bence çok manasız  gelen bir ?  (büyük
pi harfi) şeklinde  izdüşüm (projeksiyon)  fonksiyonu vardır.  Neyse daha  ileri
gidip |R^3  ,  |R^4,  ...  şeklinde istediğim  boyutta  çarpım  uzayları  ve  bu
uzaylar üzerinde topolojiler tanımlayabilirim.  Burada son  bir ayrıntı daha var
bu da  sonsuz  boyutlu  topolojik uzayların  özellikleri  hakkında.  Aslında  bu
topoloji ile  değil daha  çok kümeler  teorisi  hakkında o  da şöyle  ki  sonsuz
boyutu   tanımlamak   için    sonsuz   bir    kartezyen   çarpımın    tanımlanıp
tanımlanamayacağı konusu. Bu  konuda bir matematikçi  bu kartezyen çarpımın  var
olabileceğini kabul  ederek, tümevarım  yoluyla  bu çarpımı  oluşturan  herhangi
bir kümenin boş  küme olması durumunda  çarpımın sonucunun da  boş küme  olacağı
aksi halde bildiğimiz  alışıldık şekilde  kümenin tanımlanabileceğini  söylüyor.
Burada bir ispat yerine sadece bir kabul söz konusu, en  azından benim  bildiğim
elle tutulur bir ispat  yok sadece kümelerin  sonsuz kartezyen  çarpımlarının da
var olabileceği  kabul edilmiş.  Buraya  kadar anlatılanlar  topolojinin  teorik
matematikle ilgili kısımları,  ilginç gelebilir ama  topolojinin dolaylı  yoldan
geometriler  üzerinde   uygulamaları   var.   Dolayısıyla   ucundan   uygulamalı
matematik  de  topolojiye  bulaşmış  durumda.  Bu  uygulamalardan  en   bilindik
örneklerden  birisi  düğüm  kuramı.  Düğüm  kuramı  kapalı  bir  ipte  (iki  ucu
birleştirilmiş, paket lastiği gibi) hangi türden  düğümlerin  açılabileceği yada
açılamayacağını  inceliyor.  Mantıksal  açıdan  zaten  düğümsüz  ve  kapalı  bir
ilmeğe (lastiğe) yapılacak her dönüşümle elde edilecek  düğüm  (aslında düğümden
burada kastedilen  iplerin  üzerine  binmesi  sonucu  oluşan  karmaşık  yapılar)
görünüş  olarak  ne  kadar  karmaşık  olursa  olsun  çözülebilirdir.  Ancak  ben
lastiği kesip bildiğimiz  bi düğüm attıktan  sonra yeniden birleştirebilirim  ve
bu lastik  kapalıyken  açılamayacak bir  düğüm  olur. Çok  ayrıntılı  bilmemekle
birlikte yanlış  hatırlamıyorsam eğer  ilmek üzerinde  ipin birbirini  üzerinden
geçerek kestiği  noktalara bakarız,  eğer  bu noktalarda  aynı tel  iki  noktada
birden  üstten  geçiyorsa  o  zaman   bu  düğüm  çözülebilirdir,  daha   doğrusu
topolojik anlamda  hiç düğüm  atılmamış ilmeğe  eşdeğerdir. Örneğin  bu tür  bir
yapıya  1  adını  verelim.  Daha  sonra  düğüm  karmaşıklaştırılabilir,  örneğin
bildiğimiz basit düğümde her  tel bir alttan  bir de üstten  geçer ve iki  komşu
ilmekte hiçbir  ip  aynı  anda üstten  geçmemektedir.  Bu  oluşturulabilecek  en
basit düğümdür  ve  bu yapıya  da  2 adını  verelim.  Düğümler  karmaşıklaştıkça
numaralandırmaya  devam  edebiliriz.  Şimdi   elimizde  bize  nası   yapıldığını
bilmediğimiz bir düğüm  verildiğinde bunun çözülebilir  olup olmadığını  (bundan
sonra  çözülebilirlik   yerine   1   numaralı  yapıya   denk   olup   olmadığını
araştıracaz)  yada  en  sadeleştirilmiş  şekliyle  hangi  yapıya  denk  olduğunu
araştırabiliriz. Bundan  başka  cebirsel  geometri ile  topolojinin  de  ucundan
bulaştığı graf teori  adı verilen  bir matematik  disiplini daha  vardır, bu  da
çoğumuzun bildiği oklidyen iki boyutlu düzlemde verilmiş bir  haritanın  en az 4
renk kullanılarak  boyanabileceği probleminin  ait olduğu  matematik  konusudur.

Hazır  matematikten   konu   açılmışken  belki   bi   ara  Cantor   ve   Russell
paradokslarına da değinip matematiğin acaba gerçekten de  yeterince sağlam  olup
olmadığını tartışabilirim bi ara vakit olursa...
[b]Erik/Resident[/b]

********************************************************************************
STRACHWARE MANİFESTOSU (Ragnor/Manyetiq)
********************************************************************************

Bölüm Bir: Devrime Önsöz

Oyun Dünasının Çarkları zıvanadan çıkmış durumda.

Yaratıcı  Vizyona  hizmet  etmek  yerine  onu  bastırıyor,  yokediyor.  Yeniliği
teşvik etmek  yerine onu  engelliyor. Hedefini  en yaratıcı  zihinlerimize  göre
belirleyeceğine, geçen ayın PC  Veri listesine (sanırım  bir çeşit çok  satanlar
listesi)  göre  belirliyor.  Başarılı  olanları  ödüllendireceğine  onları   çok
yüksek  proje   maliyetleri   ve   düşük  telif   ücretleri   ile   cezalandırıp
üreticilerin kazancını yokediyor. Hakedenleri onore edeceğine, daha  fazla  para
peşinde koşuyor.

Şimdi Devrim zamanıdır.

Gidin   mahallenizdeki  kitapçıya,  10  binlerce  başlık  bulabilirsiniz.  Gidin
mahallenizdeki    Kasetçinize,    binlerce    albüm    bulabilirsiniz.     Gidin
mahallenizdeki  Bilgisayarcıya  (program  satan  dükkan),  belki  40  tane  oyun
bulabilirsiniz.

Yine de her yıl binlerce oyun piyasaya sürülüyor.

Bu 40  oyun içerisinde  bulabileceğiniz  oyunlar sadece  dağıtıcıların  dağıtım,
promosyon,   reklam   ve   pazarlama    için   milyon   dolarlar    savurdukları
olacaktır.Çünkü Dağıtıcılar, raflarda yer bulan o  dağıtıcıların  geliştirilmesi
için  milyon  dolarlar  harcadıkları   oyunlardan  sadece  birkaçının   başarılı
olacağını ve  harcanan  parayı  ve hatta  daha  fazlasını  geri  kazandıracağını
biliyorlar. Çünkü  başarılı olmak  için bir  oyunun mutlaka  iğnenin  deliğinden
geçmesi,  raflarda  yer   bulan  bir   avuç  oyundan  biri   olması  yada   oyun
dergilerinin kapağında yer bulması gerekiyor.

Milyonlarının tehlikede  olması Dağıtıcıları  korkutur.  Her yönetici  bilir  ki
başarısız   olan   yeni   fikir   (yenilik   içeren   oyun)   onların   işlerini
kaybetmelerine neden  olacaktır. Bu  yüzden  onlarda kendi  kıçlarını  kurtarmak
için durmadan aynı eski  bokları, en çok  satan oyunlar listesinin  taklitlerini
piyasaya sürüp  duruyor. Kimse  denenmiş  ve işe  yarayan bir  yöntemi  denediği
için kovulmaz.

Bir zamanlar  gezegendeki en  yenilikçi ve  heyecan verici  sanat alanına  sahip
olan  bu   endüstri  zoralamanın   ve   taklitçiliğin  sahası   olmuş   durumda.

Milyonlar harcanacak bir  projenin 10, 20,  30 hatta daha  fazla kişiden  oluşan
geliştirme ekibine   ihtiyacı vardır.  Projenin bitmesi  yıllar alacaktır.  İşin
içine o  kadar  yetenek,  o  kadar işçilik  girer  ki  sonunda  hiçbir  bireysel
yaratıcı görüş hayatta  kalamaz. Zaten  orası kesin  ki pazarlama  sansarlarının
ne istediğini bilmez istekleri ve paketlenmiş mallar bölümünden  getirtilmiş  ne
yapacağı  konusunda  hiç  bir  fikri  olmayan  yöneticilerin  ve  talep  etmenin
gereksiz olduğunu ve üretim karşıtı değişikliklerle  meziyetlerini  patronlarına
ispatlayacaklarını sanan  tecrübesiz  harici yapımcıların  elinden  kimse  canlı
kurtulamaz.

Biz diyoruz ki:  Basta! (ÇN. Haydaaa  diye çevirilebilir sanırım)  Yeter! Bu  iş
böyle olmak zorunda değil.

Oyun yapmak  için  30  yeteneğemi  ihtiyacın  var?  Saçmalık.  Richard  Garriott
Ultima'yı tek  başına  birkaç haftada  programladı.  Chris Crawford  Balance  of
Power'ı   Mac'inin   başında   kendisi   uğraşarak   hazırladı.   Chris   Sawyer
RollerCoaster Tycoon'u --geçen yılın En çok satan oyunu-- neredeyse  tek  başına
yaptı.

Oyun yapmak  için  neye  ihtiyacınız  var?  İki  kişi  ve  Code  Warrior'un  bir
kopyası.

Muhteşem bir  oyun yapmak  için  milyonlar harcanman  mı gerekir?  Çöplük!  1991
yılında sıradan  bir  bilgisayar oyununu  üretmek  $200.000 'dan  az  tutuyordu.
Hala şu  ana kadar  üretilen en  iyi  oyunlardan biri  olan NetHack,  kendi  boş
zamanlarında  bu  işi   sevdikleri  için  yapan   bir  ekip  tarafından   beleşe
üretilmişti.  Geçen  yılın  IGF  finalisti  TreadMarks,  sitelerine  koyacakları
download edilebilen  küçük  bir  oyunla kazanacakları  az  miktardaki  para  ile
bakkal    masraflarını     çıkaran    bir     ekip    tarafından     yapılmıştı.

Bir oyunun  masraflarını karşılamak  için size  ne gerekir?  Yiyecek pulları  ve
elektrik faturasını ödeyecek kadar para.

Dağıtım risklerini azaltmak  için başka bir  ürünü taklit etmek zorunda mısınız?
Düpedüz ve  su katılmamış  delilik, alanımızın  tarihsel gerçeklerine  bütünüyle
karşı gelen  bir teori.  Büyük başarı  sağlamış oyunların  hemen hepsi  ürkütücü
yeniliklere, o  zamana kadar  yapılmış  olandan şaşırtıcı  ayrılıklara  sahipti.
Ör: The  Sims,  SimCity, Doom,  Command  & Conquer,  Populous,  Civilization  ve
diğerleri. Üretimdeki  gerçek risk  zayıf imitasyon,  artan bir  ivme ile  gelen
başkılaşımdır.     Gerçek     galibiyet      yaratıcı     fikirlerle      gelir.

Dar satış kanalı  sizi promosyon  harcamalarına milyonlar  vermeye mi  zorluyor?
Öyleyse    öldürün     gitsin.    Internette     hiç    boş     raf     kalmadı.

Harcadığınız parayı geri kazanmak için yüzbinlerce satmanızmı  lazım?  Günümüzde
hüküm  süren  bu  bozuk  ticari  modelde,  evet.  Ama  siz  oyunlarınızı  doğru,
korkusuz,  bağımsız  yoldan  üretirseniz,   harcamalarınız  etkin  bir   şekilde
azalacaktır. Ve  birkaç  bin  adet  satmanız  faturalarınızı  ödemenize  yeterli
olur.

Yazılım, vb.' ne ölüm!  Amerikadaki neredeyse bütün  Pc'ler bitleri (bit  burada
veri  anlamında  geçmiştir,  haşere  değil!)  taşıyabilen  borularla   (internet
diyo!!)  birbirine  bağlı.   Niye  biz  bu   bitleri  plastik-metal   tabakalara
kopyalıyoruz, içi  hava dolu  kutulara doldurup,  başka ülkelere  yolluyoruz  da
neden çok  daha  kolay, ucuz  ve  çevreye  karşı duyarlı  yolu  olan  borulardan
(internet diyor karıştırmayın!!) yollamıyoruz?

EA ve  Vivendi' ye  ölüm! Perakendecilere  yaltaklanmanız, bir  oyunun  nelerden
meydana geldiğini  anlayamayışınız,  tamamiyle  başarısız  estesik  anlayışınız,
para sağlamadaki  çekingenliğiniz,  REkabetçileri boğarak  büyümeye  çalışmanız,
geliştiriciler  ile  pazarlamacıların  birbirlerini  anlamasını   sağlayamamanız
bizi şuna getirdi. Sizler Dinozorlarsınız, siz şaşırtıcı  orjinalliklerin  alanı
olması   gereken    yerdeki   bir    sıkıntıdan   başka    birşey    değilsiniz.

Sony, Sega  ve Nintendo'  ya  ölüm! Geliştirme  safhasının her  adımını  kontrol
ederek hiç  bir ürünün  sizin  at gözlüklü  seğirmiş oyun  estetiğinizden  fazla
uzaklaşmadığından  emin   olma  ısrarınız,   absürdçe  yüksek   platform   telif
ücretleriniz,  Geliştirme  istasyonlar  ve   SDK'lar  için  istediğiniz   yüksek
ücretler,  derinliği   olan  herhangi   bir   oyun  için   kullanışsız   kontrol
cihazlarınız  sizi  uzun  soluklu  bir  oyun  yapmak  isteyen  kişilerden   uzak
tutuyor.

Oyun Endüstrisine Ölüm! Çok Yaşasın Oyunlar.

Biz kendi  kahramanlarımızı  Rock  yıldızlarının ya  da  gerçek  tutkusunu  film
çekmek olan  oyun  geliştiricileri  veya göğüslerini  Playboy  sayfalarına  açan
tasarımcılar arasından seçmiyoruz.  Biz onları bu  endüstriyi yaratan,  yaratıcı
görüşleri ile  onu ateşleyen,bizim  bahsettiğimiz şekilde  oyun yapan  erkek  ve
kadınlar arasında buluyoruz:

Chris  Crawford,   birzamanlar  dünyanın   en   iyi  oyun   tasarımcısı   olduğu
söylenirdi,  şimdiyse  kendi  sıkıcı   kategorilerine  girmeyen  birşeyi   nasıl
satacağını bilmeyen bir pazarlama sistemi yüzünden bir kenara  atılmış  durumda.


Dani Bunten, oyunculuktaki  sosyalleşmenin önemini Verant  ve Origindekiler  ile
onların müşteri düşmanı politikalarından  çok ama çok  daha iyi anlamıştı,  oysa
o bağnaz endüstri tarafından dışlandı.

Richard  Garriott,   bilgisayar  RPG'lerinin   sanal  yaratıcısı,   ondan   elde
edebileceğini  elde  ettiğine  inanan  bir  sistem  tarafından  kullanışmış  bir
prezervatif gibi bir kenara atıldı.

Julian Gollop,  belirsizlik  içinde  acı çekti,  kendi  emeğinin  meyvaları  onu
yetenektense ticari markaları tercih eden  bir endüstri vasıtasıyla inkar  etti.

Will Wright, her nasılsa  sistemin yoluna koyduğu  bütün engellere rağmen  kendi
vizyonunu korumaya devam ediyor.

Onlar yaptı, öyleyse bizde yapalım.
Biz  açık  platformlar  için   üreteceğiz,  başkalarının  özel  mülkiyeti   olan
konsollar için değil.

Biz düşlerimizin  ateşli  heyecanı  içinde  çalışacağız,  uzun  soluklu  oyunlar
yapmak  için  çabalayacağız,  öyle  oyunlar  olacaklar  ki  generasyonlar  gelip
onları gösterecek  ve  diyecek  ki;  bu, işte  bu  bizim  anladığımız  şekildeki
artistik oyun yapımı.

Biz imitasyon  yerine yenilik  için,  denenmiş ve  işe yarayan  yerine  orijinal
için çabalayacağız.

Biz "Oyun" dediğimiz  şeyin inanılmaz şekil  verilebilirliğini, kodun  fantastik
esnekliğini    keşfedeceğiz     ve     yeni    oyun     stilleri     arayacağız.

Biz  oyuncuların  oynamayı  isteyeceklerini  bileceğimiz  oyunlar   yaratacağız,
çünkü BİZ  oyuncularız, ne  MBA'daki ne  Hollywood'daki ne  de Pazarlama'daki  o
göt herifleriz.

Biz ortak bir  vizyonu paylaşan  ve o  vizyonu korkusuzca,  iltimas görmeden  ve
parazitlerden arınmış  bir  şekilde  mükemmeleştirmek  için  çabalayacak  küçük,
gelecek vaat eden takımlarda çalışacağız.

Biz  kendi   pazarımızı  oyunumuzu   stoklarına   alsın  diye   rüşvet   vererek
yaratmayacağız,   interneti   kullanacağız,    biz   oyuncu   kitlemize    kendi
oyunlarımızın mükemmeliği ile ulaşacağız, 

Biz dimdik  bir irade  gücüyle oyuncu  kitlesini, pazarı  ve çalışmanın  ürününü
sonunda bütün alana  yarar sağlayacağı şekilde  birleştirecek bir bağımsız  oyun
devrimi  yaratacağız,   tıpkı     bağımsız   sinemanın  filmlere   ve   bağımsız
etiketlerin müziğe  sağladığını  sağlayacak, yaratıcı  çalışmalar  için  yepyeni
bir saha sağlayacağız.

Biz  Sistemi  reddediyoruz.  Biz  pazarlama  kanalını  reddediyoruz.  Bir  büyük
bütçeleri ve büyük takımları reddediyoruz. Biz içi hava dolu  $50' lık  kutuları
reddediyoruz.

Biz bu endüstrinin kafasını değiştireceğiz.

Titre Redwood City! Devrim güçleri yürüyüşe geçti.

Designer X


--------------------------------------------------------------------------------

İlk önce  sizi  görmezden gelirler.  Sonra  size gülerler.  Daha  sonra  sizinle
savaşırlar. Ve sonra siz
kazanırsınız.

Gandhi

--------------------------------------------------------------------------------

Biz   oyuncular,   oyun   yapımcıları,   yazarlar   ve   bilgisayarlı   medyanın
okuyucularıyız.

Biliyoruz ki  Oyun  Endüstrisinde bazı  şeyler  berbat durumda  --  diğer  bütün
endüstrilerinde berbat  durumda  olduğu  düşünülünce hiç  şaşırtıcı  değil.  Biz
sorunun ne olduğunu bulduk: hissedarlar, büyük firmalar ve yöneticiler  iyi  bir
oyunun nasıl olacağı yada yapılacağı konusunu hiç umursamıyorlar.  Onlar  sadece
yatırımlarından ne kadar kazanabilecekleri.

Biz  iyi  oyunlar  oynamak  istiyoruz  ve  biz  oyun  yapımının  sanat  olmasını
istiyoruz, elektronik köle  atölyesi değil.  Bu problem Das  Kapital kadar  eski
ve  Matrix   kadar  yeni   ayrıca  sadece   Oyun  endüstrisinede   özgü   değil.

Bu çirkin.
Bu yayılmış durumda,
Ve bu değişebilir ve de değişecek.

Designer J1


--------------------------------------------------------------------------------

Pazarlama  yönetimin  bir   uzantısı  olarak  kullanılacağına   geliştiricilerin
yaptığı oyunları  satmak için  çalıştırılmalı.  Onlar sizin  için  çalışmalılar,
siz onlar için  değil. Eğer özellik  listesi olan bir  film istiyorlarsa,  onlar
programlamalı. Eğer  yaptığınız  oyunu  satamamışlarsa  onları  kovup  yerlerine
satabilecek birilerini almanız gerekir.

Designer
J2

--------------------------------------------------------------------------------

Biz   kritik   dönem    (orj.   Crunch   Time)    diye   birşeye    inanmıyoruz.

Kimse  12  saatin  ardından  en  iyi  işini  çıkaramaz.  Ve  eğer  iyi  bir   iş
çıkarmıyorsanız, o zaman ne halt yiyorsunuz? Eve gidin.  Uyuyun.  Çocuklarınızla
oynayın. Çimleri biçin. Televizyon seyredin. Sonra, verecek  yaratıcı  enerjiniz
olduğunda işe geri dönün.

Biz  bir  oyunun   bittiğini,  bittiği   zaman  söyleyeceğiz;   pazarlamacıların
bitmesini istediği  zaman değil.  Eğer bitmemişse  , berbattır.  Eğer  berbatsa,
kimse  satın  almak   istemeyecektir  (hatta   bedava     download  etmek   bile
istemeyecektir)   ve   kimse   siz    yeni   bir   oyun   çıkardığınızda    ilgi
göstemeyecektir.

Bir fikir :  kimse beta tester  olduğu için para almamalı.  Dinleyin, herkes  --
evet, sen  bile  id  software:  biz kendi  level'larımızı  en  iyi  lanet  şeyin
bittiğine  emin  olarak  yaparız.  Eğer  bitmemişse,  bir  beta'dır.  Ve   onlar
bedavadır.     Eğer     bir      sorun     keşfedersek,     sorunu      çözeriz.

Bir başka fikir :  Bizim oyunlarımız bizim  sorumluluğumuzdadır. (Sen dinle  Teh
monstars kralı  Jason Hall)  Eğer bozuksa,  tamir ederiz.  Biz suçu  başkalarına
atmayız, hatta  standartlara  uymayan  bilgisayar ve  video  kart  üreticilerine
bile atmayız.  Eğer sorunu  çözemiyorsak, çözemediğimizi,  neden  çözemediğimizi
insanlara    söyleriz...    ve     isterlerse    paralarını    geri     veririz.

Bizim burada bahsettiğimiz şey mühim olduğu üzere güvenilirliktir.  Biz  diyoruz
ki oyunlar  oyun oynayan  ve  oyunları seven  insanlarca yapılmalı.  Bu  oynamak
isteyeceğimiz oyunlar yapma  sorumluluğu getirir --  ve biz  bug'lı,sistemimizin
çökmesine    neden    olan     bitmemiş    oyunlar    istemediğimize     eminiz.

Designer K


--------------------------------------------------------------------------------

Orijinal  Incredible   Machine  $35,000   'a  geliştirildi   ve  800,000   ünite
satıldı.

Dynamix

--------------------------------------------------------------------------------

The Quotable R

Bir  kişi  Zaphod  Beeblebrox  yada  John  Romero  kadar  çok  para   kazanırsa,
saçmalar.


--------------------------------------------------------------------------------

Oyun geliştirmenin vaziyeti  için...çok daha fazla  rahatsız edici bir  benzetme
kullanmalıyım:  Donner  Parti(*)  trajedisi...onların  yolculuğu   tecübesizlik,
fazla   kendine   güven,   kötü   muhakeme,   boşa   harcanmış   kaynaklar,   iç
karışıklıklar, kestirme yollara sapmalar ve daha sonra sadece kötü  bir  tavsiye
olduğu anlaşılan sözlere  kulak asmak ile  başarısızlıkla ve hayal  edebileceğin
en kötü  şekilleri  ile  lanetlenmişti...Benim  kararıma  göre  oyun  geliştirme
böyle kör  cehaletle  devam edecekse,  sadece  Donner Partisinin  birkaç  farklı
garip versiyonu  olarak  ortaya  çıkma konusunda  başarılı  olabilir  tekrar  ve
tekrar...    sonra    kötü     kader    onun    için     ne    getirirse     onu
hakeder...


--------------------------------------------------------------------------------

Bu piyasaya baştan  sona sağduyuyu  hiçe sayan bir  başarızlık inkarı  yayılmış.
Risk almak  ve başarısız  olmak yaratıcı  sürecin önemli  bir kısmıdır.  Birinin
kişisel tecrübelerini inkar sıradanlık


--------------------------------------------------------------------------------

Ben oyun  tarasımcılar,  sanatçılar, yazarlar  ve  müzisyenler için  bir  ütopya
görüyorum. Özgürlüğün,  serbest stilin  ve  yaratıcılığın hedef  yada  ayrıcalık
olarak değil, norm olduğum mükemmle bir denge görüyorum. Buna rağmen  bu  ütopya
yaratıcı olmayan, modası geçmiş,  müsrif ve etkisiz  olan yönetim, pazarlama  ve
ürün geliştirme üzerine kurulmuş bu sistemde doğamaz.

--------------------------------------------------------------------------------

Arcade tabanlı, shoot-'em-up, kukla şovu, cumartesi sabahı çizgi  filmi  estetik
kriterlerinin  mi  oyun  endüstrisini  domine  etmesini  istersin?  Biraz   daha
yuppies puppies lerin  lüks köle atölyelerinden çıkma montaj hattı  tekniği  ile
yapılmış boktan oyunlar ister misiniz?

--------------------------------------------------------------------------------

Hatırla: John  Romero  sizi  kendi  köpeği  yapmak  istiyor.  Aslına  bakarsanız
bildiğim bir  düzine  daha  oyun  geliştiricisi  içinde  aynı  şey  geçerli...

Designer R

--------------------------------------------------------------------------------

Yaratıc Hakları Bildirgesi (orj. Creator's Bill of Rights)

Scott McCloud tarafından 1987'de yazılan tam versiyonu
http://www.scottmccloud.com/inventions/bill/bill_of_rights.html       adresinden
okunabilir.  Bilgisayar   oyun  endüstrisi   için  çok   kullanışlı  bir   yazı.

Haklar :

1.  Tamamını yaptığımız şeyin tam sahibi olma hakkı.
2.  Sahip olduğumuz şeyin yaratılışında tam kontrol sahipi olma hakkı.
3.  Yaratığımız şeyin yenileme ve biçem değişikliklerini onaylama hakkı.
4.  Yarattığımız şeyin dağıtım metodlarını onaylama hakkı.
5.  Yarattığımız şeyde dağıtıcılardan bağımsız hareket edebilme hakkı.
6.  Her türlü ticari işte yasal danışman tutma hakkı.
7.  Bir seferde birden çok dağıtıcıya teklif götürme hakkı.
8.  Bütün yaratıcı çalışmalarından adil ve eşit payını hızla alabilme hakkı.
9.  Çalışmamızla ilgili kazanç ve disbursement lerin tam ve hızlı
    raporlandırılması.
10. Orijinal halindeki sanatsal çalışmamızın tam ve hızlı geri dönüşü hakkı.
11. Yarattığımız şeyin lisansı üzerinde tam kontrol sahibi olma hakkı.
12. Yarattığımız şeyin tanıtımı konusunda onay verme ve destekleme hakkı.
[b]Ragnor/Manyetiq[/b]

********************************************************************************
SKATE'DEN GEYİKLEMELER (Skate/Glance)
********************************************************************************

Merhaba  sevgili   scener  kardeşlerim.   Dergiye  yeterli   katkıyı   yaptığımı
hissettiğim  şu  noktada  artık   iç  rahatlığıyla  geyik  yapabilirim.   "Geyik
yapabilirim"   derken    umarım    yanlış    anlamıyorsunuzdur    bu    arada...



Eveeet, yıl  1996,5.  Tam hatırlamıyorum  96mıydı  97miydi ama  ikisinden  biri.
Belki de  ikisi!  O sıralar  Ascraeus  ve Pentagram  Productions'dayım.  Sürekli
olarak Can'ın  (Caisson,  ex:  Moloch, Freestyle)  ve  Timur'un  (Aegis)  evinde
toplanırdık  ve  saatlerce  geyik  yapar,  stufflarla  oynaşır,  grupla   ilgili
kararlar alırdık.

Yine birgün  Can'lardayız.  Yanılmıyorsam  odadaki takım  Can  (Caisson),  Fevzi
(Arcane), Levent  (Madhead),  Aytun  (The  Falcon)  ve  benden  ibaretti.  Başka
birileri varmıydı hatırlamıyorum ancak olsa olsa Özgür (Rotten),  Timur  (Aegis)
ve İsmail (Hades)  de orda olabilir.  Yine de o gün  çok kalabalık  olmadığımızı
hatırlıyorum.  Herneyse,   o   günün   pek   mühim   toplantı   konusu   telefon
işletmeleriydi.  Aytun   zaten  fırlamanın   Allah'ı  ve   profesyonel   telefon
işleticisi, Can ve  ben piçliğin  kitabını yazmışız,  Levent ilk  tanıştığımızda
utangaç bir  gençken birkaç  ayda bizden  fırlama olmuş  v.s. ortada  bir  sorun
yok... Sorun  yok,  yok da  tabii  ki sevgili  arkadaşımız  Fevzi'yi  saymazsak.
Fevzi o  zamanlar  fırlamalık  limitlerine  yaklaşamıyordu  bile  ne  yazık  ki.
Günümüzde  hala  da  bu  limitlere  ulaştığı  konusunda  şüpheliyim.   Anlaşılan
arkadaşımızın tıpdaki  tabiriyle "düzgün  karakter" problemi  vardı o  zamanlar.
Aytun başladı random  bir şekilde  telefonları çevirmeye,  işletmeye v.s.  Ancak
Aytun'un  şakası  yok,  anırıyor,  bağırıyor,  çağırıyor,  küfrediyor.   Telefon
işleticisi olarak kendine  yakışanı yapıyor.  Doğal olarak  bizler de  gülmekten
geberiyoruz. Ama o  da ne. Bir  baktım Fevzi'nin kafası yok!  Kuma gömmüş!  Şaka
bir yana  büzülmüş  koltuğa  almış eline  yastığı  yüzüne  bastırıyor,  suratını
gizliyor. Nooldu lan dedim çektim yastığı suratından, baktım  surat  kıpkırmızı.
Allahaşkına olur  mu  bu  kadar  düzgün  bir  karakter  söyleyin  bana.  Telefon
Can'ın, işleten  Aytun, Fevzi'yi  görgü tanıklığı,  suç ortaklığı  bile  yıkmaya
yetmiş, utancından  ne  yapacağını  şaşırmış.  Canım  arkadaşım  benim,  7  sene
aradan sonra  7D4'de  görünce  direk  aklıma o  zamanki  hali  gelmişti.  Umarım
bunları anlattığım için  beni dövmez. Vardı  onun da bir  Aikido olayları  falan
yanılmıyorsam, sonra yan basmayalım hani...

Evet, tabi her  zaman telefon  işletmeleri random  kişilere yapılmıyordu,  zaman
zaman  "seçilmiş"   kişilere  de   yaptığımız   oluyordu.  Örnek   olarak   Mert
(Zack/ex-Crescent/ex-Thunders) bir  keresinde  Violator'ın  bir  disketini  uzun
süre  geri  yollamamıştı.  Bu  arada  yanılıyor  da  olabilirim  belki  Violator
değildi başka bir swapperdı ancak bölüm geyik olduğundan ve  hikayenin  sonucunu
değiştirmeyeceğinden kimseyi  arayıp  da  teyit alma  ihtiyacı  duymuyorum.  Her
neyse, bizim  telefon  işletme expertimiz  Aytun  aynı zamanda  güzel  de  gevur
şivesi taklidi  yapardı.  Netekim Mert'in  evini  aradı (aynı  apartmanda  altlı
üstlü  otururlar  Aytun'la  Mert  bu  arada)  ve  gevur  ingilizcesi  taklidiyle
annesinden Mert'i telefona çağırmasını istedi "I'm Martin. May I speak  to  Mert
please?" hesabı. Mert  telefona geldi  ve telefonu  aldığı anda  Aytun sert  bir
şekilde disketlerinin  nerde olduğunu  sormaya başladı  ve ses  tonunu  gittikçe
sertleştiriyordu.      Mert'den      yalnızca      "eeee...eee.....ııııı...."lar
duyabiliyorduk ve tabii  ki arka planda  gülmekten geberiyorduk. Yaklaşık  1-1.5
dakika boyunca numarayı yiyen  ve kilitlenen Mert'den en  son "I will send  your
disks" gibisinden bir cümle çıktı  ve hepimiz o kadar  sesli kahkaha attık ki  o
anda kafalandığını anladı çocukcağız  tabii ki. Violator  o kadar kontağını  tek
tek  arayıp  disketlerinin  hesabını   sormaya  kalksa  milletlerarası   görüşme
ücretlerinden batar ulan adam.  Neyse tabii burda  asıl tebrik edilmesi  gereken
kişi  inandırıcı  avrupalı  ingilizcesi   aksanıyla  Aytun'dur.  Sonrasında   ne
hikmetse      Mert      hemen       yollamıştı      disketleri       Violator'a.

Aslında scene  harici geyiklerimiz  anlatmakla bitmez,  en az  100 anımız  çıkar
ama ben  yine  de scene  toplantılarında  yaşananlardan devam  etmek  istiyorum.
Geri  kalan  geyikleri  Pentagram  Productions'ın  Necropsy  disk   magazininden
okuyabilirsiniz. Epeyce yazmıştık oraya.

Şimdi daha önce  forumlarda da defalarca  anlattığım ve Bronx'un  64 Times  disk
magazine'i  için  yapılan  reviewlarda  geçen  bir  geyiği  anlatmak  istiyorum.
Bilmeyenler için  oldukça  eğlenceli  olacaktır. Bir  demoyu  review  ediyorduk.
Herkes efektler  hakkında  görüşlerini  bildiriyordu. Ben  daha  önce  daha  dar
alanda yapıldığını  gördüğüm  bir  efektin  daha  geniş  bir  alana  uygulandını
gördüm. Ayrıca süre olarak da daha uzun sürüyordu ki  precalculated  olmamasıyla
ilgili önemli  bir noktaydı.  Hemen demo  partıyla ilgili  profesyonel  görüşümü
bildirdim.

- Daha  önce  de benzerlerini  görmüştüm  ama bu  hepsinden daha  uzun  ve daha
büyük.

Akabinde 15  dakika  boyunca  herkes  yerlere yattı.  Halbuki  ben  ciddi  ciddi
görüşümü bildiriyordum?!

Aslında daha anlatılacak  çok geyik  var ama  şimdilik bu  kadar. İkinci  sayıda
yeni     "geyiklemeler"le      karşınızda      olabilirim      aman      dikkat!

Benimle     irtibata     geçmek     isteyenler     için     e-mail      adresim;
[b]skate <at> glance <dot> ws

Emir Akaydın
Skate / Glance[/b]

********************************************************************************
ERİK'E KULAK VERELİM (Erik/Resident)
********************************************************************************

Hacım o değil de  heralde herkes alf  i hatırlıyordur yada  kara şimşeği dimi  ?
şimdi nerden çıktı lan bu dememek lazım bence nedenini anlatacam  ama  öncelikle
a takımından ,  kara şimşekten vs.  den bahsetmek için  burada tevellüdü  benden
daha eski olanlar  illa ki vardır  ki onların  eminim ki anlatacak  da daha  çok
şeyleri vardır  neyse  anlatacak  şeyi  olan da  anlatır  ben  kendime  göre  bi
anlatayım. Düşününce  bizim  çocukluğumuz  yada  bazılarının  ortaokul  seneleri
olan yıllar ki  o zamanlar daha  ORTAOKUL yıllarıydı ilk  öğretim okulu  yılları
değildi neyse o  yıllar güzel yıllardı,  herkes bu konuda  aynı fikirdedir  diye
düşünüyorum. şimdiki  çocukları düşününce  çocukluklarını yaşayamadıkları  bence
apaçık ortadadır,  neden? Çünkü  bi kere  tv  nin çok  fazla kanalı  var,  sonra
bilgisayar var. Ben ilk  bilgisayara dokunduğum ilk  önce yuvadaydı sanırım.  Ne
oldugunu hatırlamıyorum basit bi  atari bile olabilir ,  yada sinclair neyse  tv
ye bağlanıyordu  sanırım,  yuvaya nerden  nasıl  geldi onu  bile  bilmiyorum  bi
günlük gelmişti işte herkesi  sırayla oynattılar biz de  çok hevesli bi  şekilde
oynadık ama sonra o  bilgisayar ne oldu hatırlamıyorum.  Yuva yıllarım demek  ki
1987 yada 1988  olması lazım. Daha  sonraki bilgisayarı hatırlıyorum  o da  eski
bi arkadaşımın evindeydi, o adam hem ailesi acısından hem de evde  abisi  olması
acısından şanslıydı, abisi lisedeydi sanırım yada üniversiteyi  kazanmıştı  yani
bilgisayar  aldırması  kolaydı.  Ben   bizimkileri  düşününce,  bilgisayar   ile
hayatında kesişmeyecek  paralel  gidecek bir  hayatları  oldugunu  düşünmekteyim
örneğin   çocukları    olmasaydı   muhtemelen    hayatı   boyunca    bilgisayara
dokunmayabilirlerdi ki babam  halen dokunmuş  değil daha  mouse kullanmayı  bile
bilmez  annemse   spider  solitaire   den  kalkmıyor,   e  mail   adresi   aldık
Amerika'daki kardeşi ile  haberleşsin diye  onu bile  sen gir  benim yerime  oku
mektubu deyince  onu  da kullanmaktan  vazgeçtik  neyse konumuz  bu  değil.  Ben
bilgisayar isteyecek yaşta  değildim, sanıyorum okul  bi şekilde hoca  gelmediği
için bizi tutuyorlardı,  garip bi  müdür yardımcısı  vardı derse  o gelmiş  bize
şarki falan  söyletiyor olabilir  ben  artık o  kadar sıkılmıştım  ki  numaradan
ağlamaya başladım,  bu dediğim  arkadaş da  o günlük  mu yanıma  gelmişti  neyse
yanyana oturuyoruz ben  ağladıkça o da  numaradan ağlamaya çalıştı  ama o  arada
gülüyordu. Benim açıkçası  ağlamaktaki amacım belki  ağlarsam okuldan  gitmemize
izin verirler diyeydi çünkü  hoca yok ve  biz boş boş  oturuyorduk. O zaman  boş
oturma diye bişey  olur mu dememek  lazım ben zaten okuldan  oldum olası  nefret
eden bir  insan olarak  eve gidip  çizgi film  izlemek için  yanıp  tutuşuyordum
yada oyun oynayabilirdim  okul her  zaman sıkıcı  gelmiştir bana.  Öyle ki  daha
okulun ne olduğuna dair  bi fikrim yokken beni  evde rahat durmuyor bari  yuvaya
yazdıralım diye yuvaya yazdırmışlar ama ben bunu herhangi bi  formalite  örneğin
bi doktor  gibi düşünüp  yazıldıktan sonra  olacakları hiç  hesaba  katmıyordum.
Kayıttan sonra  bugün kalsın  mi demişler  bizimkiler sanıyorum  benim  habersiz
halime bakıp bugün kalmasın  demişler ertesi gün  de galiba kardeşimle  gitmişiz
ama bizimkiler beni  bıraktıkları anda  ağlamaya başladığım  için beni  almışlar
yerime kardeşim  kalmış  oyuncaklarla  oynamış  vs.  Ertesi  gün  ister  istemez
ağlasam da gitmişim.  Neyse bu da  başka bi konu beni  okuldan çıkarsınlar  diye
ağlarken amacıma ulaşamadım haliyle, ama o gün erkenden izin  verdiler  evimizde
donduk. Bu  arkadaşım  (adını vereyim  eren  ileride daha  çok  geçebilir)  bize
gelsene dedi ben  de peki dedim,  ne kadar uzak dedim  o da bir  km demişti  çok
iyi hatırlıyorum benim için  o zaman km kavramı  sadece uzak manasına  geliyordu
çok  yürümeyelim  dedim  sadece  neyse  zaten  bi  km  yi  beni  keklemek   için
söylemişti evleri okuldan  200 metre falandı  heralde. İşte o gün  ilk defa  gel
bak sana bilgisayarı  göstereyim dediğinde  önümde turuncumsu  siyahlı bi  ekran
ve ekranda tek hatırladığım satranç tahtası üzerinde birbirlerine  vurarak  yada
asasını yere  vurarak açıp  taşları o  şekilde alan  satranç taşlarıydı.  şu  an
bile bana inanılmaz  geliyor açıkçası animasyonlar  ama eminim ki  oyun bi  kere
benim  makinamda  artık  çalışmaz  (bi   kere  ne  olacak  bakalım  diye   diski
formatlayıp dos6 ve  win1 kurdum çalışmadı  neden unuttum) çalışsa  bile işte  o
eski büyüsü  bozulacaktır  kesin.  Hani  bu  o  komodor.net  teki  arkadaşın  bi
şarkısında da vardı  "eski günlerde  hım hımı  hım bişii  bişii büyüsü  bozulur,
aynı olmaz" vs  vs neyse şimdi  arkada başka birşey çalıyor  (eskisi gibi  olmaz
diyordu lan)  o  yüzden hatırlayamadım  ama  aynen öyle  olur.  Makinanın  80286
oldugunu ortaokulda falan öğrendim. O gün benim en büyük ikinci maceram  ise  CD
oldu, evet  bildiğimiz cd  ama ilk  defa sanıyorum  orada gördüm  ben (bu  arada
hala yılını söylemedim  ben ikinci yada  üçüncü sınıfta olmam  lazım bu  durumda
1990 olabilir)  üstelik cd  Kraftwerk  in der  mix  iydi, eren  kapaktaki  robot
resimli adamları  gösterip  bak  bunu  söyleyen  robot  dediği  çok  şaşırdım  o
zamanlar sentezleyici denen aletten haberi olan bir ikinci sınıf  veledi  olması
imkansızdı şimdi var  mıdır bilmiyorum  ama olabilir belki.  Neyse şarkıda  baan
baan baan  hede  hodo  otobaan  diyordu  onu  anladım.  (bu  arada  şarkiyi  ben
internet e  bağlanabildikten sonra  (ki  bundan 10  sene sonrası  oluyor  nerden
baksan) çok  aradım, önce  grubu aradım,  sonra şarkiyi  aradım neyse  şarki  bu
arada Kraftwerk  - autobahn  -fleks hacım  bunu dinle-)  ha aklıma  gelmişken  o
zamanlar cd calici bulmanın  zorluğundan mı artık bilmiyorum  ama ilk discman  I
de orada  gördüm  müzik  setine  bağlıydı, o  zamanlar  müzik  setlerinde  pikap
olması  hala  çok  da   eski  sayılmayan  birşeydi   zaten.  Neyse  o   zamanlar
anlayamayacağım bir  teknoloji olan  line  in den  bağlı bildiğimiz  bi  discman
işte, hatta bak ne göstericem diyip eren o diskmenin bulunduğu yere  vurunca  bi
anda durdu,  lazeri sarsılınca  sallanıyor falan  demişti sanırım.  Neyse  işte.
Bak aslında daha çok şeyden bahsedecektim hatta benim bundan  bahsetmek  aklımın
ucundan bile  geçmemişti ama  bilgisayarla ilgili  birşeyler olunca  genel  konu
ilgim de oraya  kaydı demek ki.  Ben daha  Alf'ten, Dogtanian dan  ve Rahan  dan
bahsedecektim. Sonra  Yakari,  Clementine başka  neler  vardı daha  ohoo.  Hatta
Berlin  duvarının  yıkılışından  ve  de  Cem  Karaca'dan  da  bahsedecektim  ama
onlardan maalesef  sonraya  bahsederim  artık çünkü  zaman  kalmadı..  Desem  de
inanmayın  aslında  ben  burada  sabaha   kadar  yazarım  da  neden   yazmıyorum
birincisi eğer  gelecek  sayıya kadar  birileri  geyik için  birşeyler  yazmazsa
yada yazarsa bile benim anlatacağım şeylerden çok uzak birşey yazarsa  ben  daha
anlatacaklarıma devam ederim  hem de yazı  dizi hatta külliyat  bile çıkar.  Bir
de yazmamamın diğer bi nedeni yarin mat analiz3 ile lineer programlama  1  vizem
var. Bak o değil de  lineer programlama çok ilginç lan  onu da bi ara  anlatayım
ilgi çekici  birşey,  ama  baştan  söyliyim ki  bilgisayar  programlama  ile  bi
alakası yok isteyen internetten biraz baksın genel konularına ki  wikipedia  dan
bence tamamiyle bile öğrenilebilir temeli benim yazmama gerek kalmadan  ama  ben
yazarım heralde  şu topoloji  olayından  sonra gerçi  daha ondan  önce  bitirmem
gereken şeyler  de var  sonunda  bahsettiğim. Neyse  işte  bu kadar  şimdilik  o
yüzden

Ha bu  arada  bitti sandınız  dimi  ehehe son  bişii daha  diycem,  bunu  yazıyı
19.12.2005 saat  20:23  yani son  teslim  suresine  3,5 saat  kala.  Bunu  neden
söyledim, çünkü ben "panik yok işler yetişir" dediğim zaman bana  "son  dakikaya
sıkıştırmamak lazım , son  dakikada anca bitmemiş  ürünler yetişir" diyen  skate
nick li  bi  arkadaş  vardı onu  da  buradan  anmadan edemeyecem  :)  yazı  için
bitmemiş urun  nitelendirmesi yapmamak  lazım çünkü  bu bir  yazı dizisi  eheheh

[b]Erik/Resident[/b]

********************************************************************************
REKLAM/DUYURU/İLAN
********************************************************************************

                                                                /\             
                     _  _ ________________________________     /  \            
                                                         //_  /   \\           
                                              .__________    /      \          
        _________/\    _ ___/\ _ ________/\ __|        _/_  /       /          
        \___.__.  _)____ __  \\           \\  \        |  \/     __/           
            |  |        \ /  _/____ |       \ \        |           \_          
            |___________/_\        \_ ______/_|\_______|  /\________/          
                           \________/            /       / yop                 
         tÜRKiYE'NiN gURURU!                   _ \      / _                    
       _ _____________________________________\\  \   //  //_________ _        
                                                   \  /                        
                                                    \/                         
         Genç arkadaşlar! Türkiye'nin en eski grubu BRONX,yeni üyeler          
         arıyor. Eğer sizde Commodore 64, AmigA yada PC ile uğraşıyor          
         demoscene'e girmek istiyorsanız lütfen bizimle temasa geçin!          
                                                                               
         Aradığımız özellikler :                                               
                                                                               
         Commodore 64                   AmigA                                  
         ¯¯¯¯¯¯¯¯¯¯¯¯                   ¯¯¯¯¯                                  
         - ASM Programcı (Coder)        - ASM / AGA Programcı (Coder)          
         - Grafiker                                                            
         - Müzisyen                     PC                                     
         - Swaper                       ¯¯                                     
         - Editör                       - Demo Programcısı (Coder)             
                                                                               
         Eğer sizde yukarıdaki konular ile ilgili iseniz, lütfen bize          
         e-posta ile ulaşın.                                                   
                                                                               
                               info@bronxwhq.org                               
                            http://www.bronxwhq.org                            
                                                                              





                        |||||||||   |||||||||   |||||||||||
                        |||     ||| |||     |||     |||
                        |||     ||| |||     |||     |||
                        |||||||||   |||     |||     |||
                        |||  |||    |||     |||     |||
                        |||  |||||| |||||||||       |||

          Resident PC TR Scene'inde ezmek üzere yeni grup aramaktadır.
                             Müracaat Nightshift 06




                                    /|||\
                               ____/|||||\____
                                   | * * |
                      -------000------------000--------
                      | D · E · M · O · D · O · J · O |
                      | D · E · M · O · D · O · J · O |
                      | D · E · M · O · D · O · J · O |
                      | D · E · M · O · D · O · J · O |
                      | D · E · M · O · D · O · J · O |
                      | D · E · M · O · D · O · J · O |
                      | D · E · M · O · D · O · J · O |
                      | D · E · M · O · D · O · J · O |
                      ---------------------------------

                        Grubumuza üyeler aranmaktadır.
                    Eğer c64'te kodlama, müzik veya grafik 
                        dallarından birinde iyiyseniz
                       İrtibat için : bakkada@gmail.com