the scene > demoscene
Turkiye Ve Demoscene
bzdgn:
Öncelikle ilgini göstermenize pek sevindim ki buna ihityacım vardı ( özellikle http://www.monostep.org/ adresindeki demoları görüp ağlamaklı bir moral bozukluğu durumuna girdikten ve kaynakların arasında kaybolduktan sonra)
Şu sıralar hornet arşivini olduğu gibi internetten indirmekteyim , (toplam 7145 Mb) bunu yapmamdaki amaç eski demoları gösterdiğim ve de ilgi duyan arkadaşların kaynak yoksunluğundan yakınmalarıdır.
İlk olarka Demoscene'e ve bilgisayara ilgimi ifade etmek / anlatmak istiyorum.
İlkokul 4 de idim , abimin anneme uyguladıgı baskılar sonucu (pirates oynunu arkadaşından görmus ve gaza gelmiş idi) bir C-64 aldırmıştı (sene 1991 ) , bozarım diye elimi sürdürtmediği bu alete ancak abim 15 saat pirates oynayıp adaptörü yaktıktan sonra yaklaşabildim (kendi de bozunca bozma korkusu gitti bitti) . Oyunlar çok hoşuma gidiyordu , ve de özellikle The Last Nİnja 3'ün müzikleri , o zamanlar amiga cok yaygındı ve C-64 ile ilgili (yanılmıyorsam) sadece 64'ler dergisi vardı (ki bir iki ayını gorebildim). Hersey o cok sevdigim oyunların basındaki crack gruplarını anlamaya calısmam ile basladı diyebilirim.Sora sora abilerden ablalardan ) ogrendim ki bu oyunları oynamamızı saglayan bu crack grupları imis.Clique'un turk oldugunu ogrendigimde garip bir ozguvene kapıldım , demek ki birseyler yapılabiliyormus dedim ama yaptıklarım destek-64 kafaayarından ve de birkac adet input merhaba adın ne a$ , print merhaba a$ programından oteye gecmedi , zaten kaynak da yoktu ve bunun yarattıgı bir ozguvensizlik hissine kapıldım.Hikmet bilgi islem merkezinden aldıgım bozuk programlar zaten beni deli ediyordu (kaseti bozmussun yavrucugum) , art studio ile joystick kullanarak resim cizmek de cabası.
1994'de amiga 500 aldım (ilkokul arkadasımdan) , yüz kusur kadar oyun ve bir o kadar program disketi ile ama gel gor ki o program disketlerinin buyuk bir kısmını bos disket olarak kullanma gibi buyuk bir hata yaptıgım icin cok azının degerini bilebildim.1994 senesinde amiganın yaygınlıgı neredeyse bitmisti , elimde arkadasımın bana verdigi amiga dergilerinin ciltleri vardı ve de birkac eksik sayfaı yazıcıoglunda uygar elektronikten edindim.Orada gordugum programların bir kısmını uygulamaya kalktıysam da gene soracak sorusturacak insan yetersizliğinden (bahane degil ama olsun) pek birsey beceremedim.Red sector demo maker'da baist birsyeler yaptıgımı ve de amos basic'de yazı yazdıgımı hatırlıyorum.Noise tracker da aptal aptal muzikler (muzik denebilirse) ve de deluxe paintte bir iki grafik cizdigimi hatırlıyorum ama bunlarda bir turlu 'disket yapamıyordum' (derleme ne demek onu bile bilmiyordum.
Geldik orta 3'e , sene 1996-97 , bana amigayı satan arkadastan amiga assembler kitabını aldım , (yazarını hatırlamıyorum ,kitabın ismi de buna benzer birsey) , artık bu kafa karıstırıcı grafikli muzikli dunyayı cozmek istiyordum.Deluxe painte yaptıgım bir resim vardı , o resmi ısıkları yavas yavas acılarak ekranaa dokulmesini istiyordum , boyle bir dusunce vardı galiba kafamda ve de amigamı en guclusekilde kullanmak niyetindeydim , bu yuzden assembly ogrenmek istiyordum.SOnra Blaze utility 3 diye bir diskette seka assembler'ı da buldum , ama kitap cok karmasık gelmisti , ayrıca blaze util disketini daha cok arka planda calan muthis muzigi dinlemekten ote kullanmadıgımı farkettim.Her ne kadar tam bir azme sahipsem de o zamanlar Pc lerin yaygınlıgı sebebiyle kaynak sıkıntısı cekmeden pc de programlama ile ugrasabilirim diyordum bunu dusunup soguyordum amiga ile ugrasmaktan.
SOnunda bir pc aldık , aldıgım gibi bozuldu (eheh windows directorysini baska bir yere kopyalmısım yanlıslıklan) ve de bilgisayarı satan adamın bana iyice ukalalık taslayıp bios'a sifre koyması ( ve ardından ben evde merakımdan pili cıkarıp tekrar taktım) ile pc seruvenim basladı.Bilgisayara format cakıp bilgisayarcıya gene bozuldu diye goturdugumde dos kurması icin baya israr etmistim , onun uzerinde windows kurmus , tabii ben ne nasıl anlamıyorum.Bundan dolayı arkadaslardan kurulum cdleri ve de dos disketleri aldım , sonra bc , tc , tp yani borlandın pascal ve c derleyicilerini aldım.Sonra bana amigayı satan arkadastan BBS'lerisordum , bana bir iki BBS nosu verdi (beygir bbsi hatırlıyorum) , oradan birkac dosya cekmistim ama baska hicbirsey yapmadım , hyperterminal ile baglandıgımı hatırlıyorum , oyle birkaos donemi idiiste , sanki ben surekli kaynaklara yetismeye calısıyorum ve kaynaklar kacıyor gibi , internetten birseyler armaya calısıyordum oyle bir donemdi uretkensiz bir donem.Modul dosyaları cekmistim (hardwired.mod) , sonra fasttracker kullanmaya basladım.98'e gelince hornet.org'u kesfettim oradan denthorun tutlarını cektim , bir kısmından birseyler ogrenebildim (assembly ile nasıl ekran acılır kapanır , video interruptı , ve de nokta basma mantıgı ) ama onun otesine gidemedim , pascal ile ugrasıyordum ve kaynakların cogu assembly ve c idi.Sonra yasam beni aldı goturdu , bilgisayar ile cok ugrasmamaya basladım (universite sınavları) (istedigim bolumu ard arda kazanamama)
Taa ki icsel sıkıntılarımı hallettim (universiteye kapagı attım) tekrar herseye yeniden basladım (yani su an) , gerci koca seneleri beceriksizlik , disiplinsizlik ve tembellik ile kaybettiysem de su anda en azından ugrasma sevkim var.İste bilgisayar ile karsılasmam ve 0 uretkenlige sahip olma hikayem budur.
---
Demoscene ile ilgili fikirlerim ise sunlardır.Su anda bakıyordum da herkes bilgisayar ile ugrasıyor , bilgisayar ile ugrastan kasıt , kurslara yazılıp deli gibi para bayılıyorlar.İki kelime bilgi ogrenenin de hemen o bilgiyi ukalaca satmaya calısması , (affınıza sıgınarakbu kelimeyi kullanacagım) , kıcının tempra olması da cabası.Olayda bir ruh yok , sadece para sadece takım elbise ve prezentıbıl olmak gibi sacma sapan kavramlar.
Halbuki bilgisayar denilen bu alet ile yapılan sanattan pek kimsenin (ulkemizde) haberi yok.Ne bileyim belki duygusal bir insan oldugumdan dolayıdır , eski c-64'un muziklerinden grafiklerinden etkilenmisimdir , ya da herseyde garip,cocuksu bir heyecana sahip oldugumdan , ama gordugum sey , ortada devasa bir kultur var.Ben olaya sadece heyecan ve sanat olarak bakıyorum.Bir cocugun oyuncagını istemesi ve alamayınca aglaması gibi birsey , insan cocukken neden oyun oynarsa (amacsız bir sekilde) bendeki demo yapma istegi de aynı sekilde.
Biraz boluk , porcuk duzensiz bir yazı oldu , bu yuzden ozur dilerim , heyecandan olsa gerek. : P
Tutorial olayına gelince , aslında haklısınız , benim derdim neye nerden baslayacagımı bilmemek , boluk porcuk C biliyorum , su sıralar assembly ogrenmeye calısıyorum , (galip ozel'in kitabını almısım cok onceden bir de ferda tanyeri diye birinin kitabı var MS DOSile asembly diye) asıl sorun surekli sorun cıkması.Mesela eski demoları indiriyorum ama muzikleri calısmıyor.Fast tracker 2 winxp de calısmıyor , isin en deli eden noktası ise neden calısmadıgı hakkında mantıklı bir bilgim - fikrim yok , aslında biraz panik durumu icindeyim.
Simdilik diyeceklerim bu kadar (saat epey gec olmus) (3:29) su sıralar finaller oldugundan dolayı cok fazla buislere odaklanamamaktayım fakat 10 gun sonra sabahtan aksama kadar dokuman okuyacagım , (zaten bugune kadar da olan buydu son 2 haftadır).
Basit olarak herseye baslangıc icin su soruyu sormak istiyorum ;
Watcom , DJGPP , TC , BC , bunların hangilerini kullanmalıyım ve farkları nelerdir ? Ayrıca demoların kaynak kodlarını hangilerinde daha kolay derleyebilirim ?
Hersey icin simdiden tesekkur ederim
Önemli Not: "g ö r m ü ş " harfleri her nedense bir arada gözükmüyor , bulana kadar akla karayı seçtim aslında "r m ü ş" harflerinin birleşmiş hali gözükmüyor , sebebini anlayamdım error veriyor bu ifadeyi kapsayan bir yazı yollanamıyor.
skate:
"G ö r m ü ş" olayından başliim. Evet bende de yaptı aynı saçmalığı. Spaztica'nın ilgileneceğini sanıyorum. Yanılmıyorsam forumun SQL Injection'a karşı koyduğu saçma bir korumadan kaynaklanıyor.
ulgen717, dostum, amma yazmışsın be :) Ama iyi olmuş, eminim tüm scenerlar senin yazını hoş bir tebessüm ve nostaljik duygularla okuyacaklardır. Sen yazında çok açık ve net bir şekilde kendini tanıtmışsın, bugüne kadar neler yapmaya çalıştığını ve bundan ne yapmak isteğini oldukça açık bir şekilde ortaya koymuşsun. Sana yardımcı olacağız endişelenme. Şimdi sana biraz eski bir döküman da olsa (yanılmışyorsam 1-2 hatası var düzeltilmemiş) benim yazdığım "C++ ile temel programcılık" dökümanımı indirebileceğin bir adres veriim.
http://www.akaydin.com/misc_files/c++doc.zip
Bu dökümandan çok fazla medet umma. Sadece temel kavramları öğrenir ya da pekiştirirsin. Ancak en az bu kadarını bilmen şart. Bu gece biraz vaktim var. Sana belki ufak bir grafik librarysi codelarım. Hem library'i incelersin, hem de kullanarak birşeyler yaparsın. TC++ kullanıcam. Elinde olduğunu zannediyorum. Yoksa;
http://www.akaydin.com/misc_files/TC.zip
Bu adresten indirebilirsin. Ancak monostep.org'da gördüğün demoların kalitesine elbetteki TC ile ulaşamazsın. Ancak pratik yapmak için kullanabilirsin.
Zamanında TC++'dan yazmaya başladığım ve Visual C++'a geçirdiğim bir Ray Casting (wolfeinstein, doom tarzı) engine'im vardı. Belki step step Ray Casting engine tutorialı hazırlarım bir tane vakit bulursam. Anlaması da anlatmasıda kolaydır, hem de sonuçta ortaya basit de olsa bir 3D engine çıkıyor... Ne dersin?
skate:
Al dostum sana ufak bir örnek yazmaya başladım. Şimdilik yalnızca 320x200 256 renk ekran açıyor ve plot basıyoruz ancak bu kadarı bile sana karışık gelebilir. Nedenine gelince class ve overloaded fonksiyonlara örnekler var içinde. Elbetteki birçok grafik fonksiyonu ekleyeceğim bu örneğe ancak buraya kadar anlamadığın noktalar varsa öncelikle onlara cevap veriim. Ne kadar C++ bildiğini kestiremiyorum çünkü.
--- Kod: ---/**
* Icerikler
*/
#include <conio.h>
#include <dos.h>
/**
* Tanimlar
*/
#define CHAR03 0x03
#define INT_VIDEO 0x10
#define VGA13 0x13
/**
* Yapilar
*/
class POINT2D
{
public:
POINT2D();
POINT2D(int xVal, int yVal);
~POINT2D();
int x;
int y;
};
void POINT2D::POINT2D()
{
// Bos
}
void POINT2D::POINT2D(int xVal, int yVal)
{
x = xVal;
y = yVal;
}
void POINT2D::~POINT2D()
{
// Bos
}
/**
* Global Degiskenler
*/
char far *VGAMAP = (char far *) MK_FP(0xA000, 0);
/**
* Prototip Fonksiyonlar
*/
void setScreen(int screenMode);
void plot(unsigned int x, unsigned char y, unsigned char color);
void plot(POINT2D *p2dPoint, unsigned char color);
/**
* Ana Fonksiyon
*/
void main()
{
// Degisken tanimlari
POINT2D myPoint1;
POINT2D myPoint2(40, 40);
myPoint1.x = 30;
myPoint1.y = 30;
// 320x200 256 renk ekran moduna gec
setScreen(VGA13);
// Ekrana birkac ornek nokta bas
plot(30, 40, 14); // Birinci kullanim bicimi
plot(&myPoint1, 10); // Ikinci kullanim bicimi
plot(&myPoint2, 13);
plot(&POINT2D(40, 30), 12); // Ucuncu kullanim bicimi
// Bir tusa basilana kadar bekle
getch();
// 80x25 karakter ekran moduna gec
setScreen(CHAR03);
}
/**
* Name : setScreen
* Desc : 0x10 interruptini kullanarak ekran modunu degistirir
* Input : (int)screenMode
*/
void setScreen(int screenMode)
{
union REGS regs;
regs.h.ah = 0;
regs.h.al = screenMode;
int86(INT_VIDEO, ®s, ®s);
}
/**
* Name : plot
* Desc : Parametreden gelen (x,y) koordinatlarina, yine parametreden
* gelen rengi basar.
* Input : (unsigned int)x
* (unsigned char)y
* (unsigned char)color
*/
void plot(unsigned int x, unsigned char y, unsigned char color)
{
/********************************
* Formulun Cikarilisi *
*********************************
* (y * 320) + x => *
* (y * 256) + (y * 64) + x => *
* (y * 2^8) + (y * 2^6) + x => *
* (y << 8) + (y << 6) + x *
********************************/
VGAMAP[(y << 8) + (y << 6) + x] = color;
}
/**
* Name : plot
* Desc : Overloaded plot fonksiyonu. (x,y) koordinatlarini POINT2D
* yapisindaki tek bir degiskenden alir.
* Input : (POINT2D *)p2dPoint
* (unsigned char)color
*/
void plot(POINT2D *p2dPoint, unsigned char color)
{
VGAMAP[(p2dPoint->y << 8) + (p2dPoint->y << 6) + p2dPoint->x] = color;
}
--- Kod sonu ---
bzdgn:
Herşey için cok tesekkur ediyorum , gercekten hem kaynak saglama acısından hem de gosterdiginiz ilgi icin.
Class ifadesi ile ilk defa karsılastım ama verdigin kaynaktan onu okuyup ogrenirim , yarın yurda gitmeyecek olsam surekli (gece-gunduz) ugrasırdım ama okulumuz saolsun yılbası bırakmadı hemen ertesine finalleri koydu , bu yuzden bir kac gun icin su finaller ile ugrasacagım , ondan sonra baskasına ogretebilecekmiscesine ogrenmek istiyorum (umarım)
C++ bilmiyorum maalesef , sadece duz C biliyorum biraz
hersey icin tekrar cok tesekkur ederim
olabildigince kısa zamanda bu kaynakların altından girip ustunden cıktıktan sonra yazacagım
skate:
Birşey değil dostum.
Evet dökümanımda Class ve Structure konusu işleniyor ancak elbetteki yüzeysel. Sen bir incele, problem yaşarsan sana daha ayrıntılı bir şekilde anlatırım olayı.
Bu arada ben adam akıllı C öğrenmeden C++ öğrenmiş biri olarak senin C bilmeni bir avantaj olarak görüyorum. C++, C'yi kapsar ve yeni özellikler, alternatif kütüphaneler getirir. Ancak benim gibi birçok C++ kullanıcısı hala Standart C kütüphanelerini kullanmayı tercih ediyor. Yani syntax olarak C++ da kullansak "iostream.h" değil de klasik "stdio.h" kullanmayı tercih ediyoruz. Dolayısıyla C++ öğrenirken çok zorlanacağını sanmıyorum. Ayrıca C++, C'ye göre daha serbest, daha az kuralcı bir dildir. Örneğin değişkenleri fonksiyonun başında tanımlamak zorunda değilsindir v.s. Hoşuna gideceğine bahse varım :)
Finallerinde başarılar.
Navigasyon
[0] Mesajlar
[#] Sonraki Sayfa
[*] Önceki Sayfa
Tam sürüme git