Yazar |
Konu  |
Dreamwalker
Seçkin Üye
    
USA
İleti 257 |
İletim - 16/04/2006 : 14:16:01
|
Merhabalar, Siteye yeni uye oldum ve ilk isim eski yazilanlara goz atmak oldu. Sevindim bu kadar cok oyun yapimi ile ugrasmak isteyen kisi olmasina. O yuzden bazilari ile bilgilerimi paylasmak istedim. Yazim daha cok yeni baslamak isteyen, yada bir yon cizmek isteyenlere yonelik. Umarim birbirimizden birseyler ogrenebiliriz. Bu arada, klavyem dolayisi ile Turkce harfleri yazamiyorum, umarim sorun cikmaz, ozur dilerim.
Neden "Oyun -3D" ? Cunki 3D cok emek istiyor, guclu kaynak istiyor, guclu makine istiyor (duzgun kaliteli yeni 3D oyunlari gidip pentium 1/cyrix de calistiramazsiniz...) ve daha bir cok negatifi var. Evet cok pozitifi var ama yeni baslayan birine gore pek yok.
Programlamaya yeni baslayan kisilere ilk onerim hesap makinesi gibi basit konulari secmeniz. Bir kac ay olayin mantigini kapmaniz. Cunki ben hayatimda hic bilgisayar kullanmaktan anlamayipta, program yazan (heleki oyun yazan..) birini gormedim. Programlamak bir "bilgisayar dili" kullanilarak yapilir, bildiginiz gibi. Yeni baslayip 3D oyun yazmaya heves etmek, ingilizceye yeni baslayan birinin oturup bir piyes yazmaya calismasina benzer. Yada 3D kitap okumanizida Sekpiri okumakla karsilastirabilirim sanirim.. Pek bir sey anlamayacaksiniz.
Sabir, heves, zaman.. Herseyde oldugu gibi, programciliktada bunlar gereksin duyacaginiz seylerdir. Kimi insan baskalarinin orneklerini inceleyerek ogrenir. Kimisi ise oturup C++ kitabini ezberler, daha bilgisayar basina oturmadan, kafasinda ilk programini yazar.. Kimisi ise agirdan alir, kendini kasmadan, yavas ama emin adimlarla gider. Hangi yontemin sizin icin en iyisi oldugunu sizin karar vermeniz gerekir. Yavastan alarak, basir orneklerle calismak cogu kisi icin gecerli yontem. Ayrica internette bedava bir suru kaynak bulabilirsiniz. Ingilizce bilmeniz gerekecek ama, zaten programlama dillerinin hemen hepsi ingilizce cumleler gibidir. Aline kisa bir ornek, PHP dili ile..
if($x==5) {print "cevap dogru";}
Yukaridaki cumlede yazanin ingilizce tercumesi:
If variable equals to 5, then print "cevap dogru" on screen. If x is 5, then print "cevap dogru" on screen.
Turkcesi ise..
Eger degisken ($x) 5 ise, ekrana "cevap dogru" yaz.
Karsilastirma yaptiginizda (heleki biraz ingilizceniz varsa) goreceksiniz ki ingilizce size cok yardim edecek. Aci gercek, Turkce tabanli pek programlama dili yok (hic yok demiyorum, belki birileri uretiyodur yada uretmistir haberimiz olmadan.. insallah! :)
ister C ile, ister basic ile, isterseniz delphi ile.. Ama bir yerden baslayin. Bir kac kucuk hesap makinesi gibi programdan sonra, bence yapilabilecek en basit oyunlardan birisi sati tahmin etme oyunudur. Hani okul yillarinda hocalarimiz ders anlatmaya calisirken, biz bzi oyunlar oynardik ya.. (halada oynuyoruz ya.. neyse)
Mesela.. bilgisayar 1 ile 100 arasinda bir sayi tahmin edecek.. Kullanici ise o sayiyi tahmin etmeye calisacak. Bilgisayar girilen sayiya gore "tuttugum sayi daha buyuk" yada "kucuk" diyecek. Bunu yaptiniz? Ne guzel, tebrikler. Simdi sira, tam tersini yapmakta... Kullanici bir sayi tahmin edecek ve bilgisayar tahmin etmeye calisacak. Bu yontem uzerinde biraz ugrasirsaniz, tebrikler ilk "yapay zeka" gibimsi olayi gerceklestirdiniz. Artik bilgisayariniza isim koyup, kardes bile ilan edebilirsiniz...
Eger grafik tabanli gitmek istiyorsaniz (ki gidin derim..) , ikinci kucuk oyun olarak "elmas toplama" gibi bir oyun yapabilirsiniz. Ekranda oyuncu basitce bir cop adami kontrol edecek. Bilgisayar 10 tane elmas koyacak ekranin icine rasgele koordinatlara. Ok tuslari ile cop adami hareket ettirerek, oyuncu elmaslari toplamaya calisacak. Oyunu zamanla gelistirip, sure ekleyebilirsiniz. Asamalar yapabilirsiniz. Mesela 2. asamada barikatlar koyarak, oyuncunun suresini kisitlayabilirsiniz. 3. asamada ise elmaslar bazen hareket edebilir, kaybolup baska kosede cikabilir. 4. asamada ise oyuncuya rakip cikabilir. Mesela bir kopek adami kovalar, oyuncu kopekten kacarak, elmaslari toplamaya calisir.
Ornekler saymakla bitmez, ama bence bu ilk 2 ornek hem programlama teknikleri acisindan basittir, hemde hepimizin bir zamanlar (belkide hala) severek yaptigi seyler oldugundan, ilginizi cekebilir. (cocukken azmi anneden kacarak ev icinde -ne kadar dokunma doverim bak haa!- dedilersede incik boncugun pesinde kostuk?)
Eger programlamaya basladiktan sonra, ornek program yada dokuman gerekirse, benimle iletisim kurmaktan cekinmeyin. Ama bilgimle yardimci olurum ama gerekli kaynagi bulurum, ingilizceniz yetmezse onada yardim ederim.
printf("Ali gel\n");
Her 3D programci buna benzer bir yerden baslar, bunu unutmayin. "Yurumeden, emeklemeye kalkma!" diye bosuna dememisler. O hevesle oynadiginiz bilmemne 3D oyununu yazan kisi annesinin karninda iken annesi gobegine kulaklik takarak, "sesli olarak 24 saatte C++ ogrenin" CD'sini calmadi. Ancak, o herifler oturup sadece monitore bakarakta ogrenmediler bu isi. Yani "olmaz" demeyin, ama "olur" diyerekte oturmayin.
Lafi cok uzatmadan, devam edeyim. Baslayin bir yerden dedim ya, gerisi gelirse ne guzel. Gelmezse, oyun sektoru sadece programciliktan ibaret degildir. Herkes programci olabilir diye bir olayda yok. Hevesiniz yoktur belkide. Ama o oynadiginiz oyunlardaki o ses efektleri yada muzik olmasa o oyun pekde ilginizi cekmezdi belkide. Commodore 64'te giana sisters diye bir oyun vardi. cogu eskiler hatirlar onu atari salonlarinda, o muzigi download edip Mp3 listeme bile koydum. Yani muzik bazi insanlarda cok guzel etki olusturabilir.
Sonra olayin grafik boyutu var ki, o apayri bir konu. Acin bu siteyi bakin bir: http://www.hbc3d.com/portfolio/octo.htm Bir arkadasimin, benim yaptigim bir online rol yapma oyunu icin cizdigi bir yaratik. Ayni okuldan mezun olduk, beraber cizime basladik. Ama adam olayi asti gitti, ben yerimde saydim. Grafik pek benim tarzim degilmis. (Hevesim var, ama yetenek yok :) Grafik olmadan cogu oyun pek ise yaramaz. (eski klasikler filan ayri konu..)
Oyunun senaryosu var, oyuna gore degisir. Herkes senaryo yazabilecegini zanneder ama, bugun kahvehanede ulkeyi kurtaran, yada futbol takiminin teknik direktorunden daha is yapacagini iddia eden vatandas dolu. Bak, kahvede oturuyorlar. Aldirma, kim ne kadar senaryo onemsiz derse desin. Grafiker senin verecegin bilgilere gore cizim yapacak, muzikci vatandas senin olusturdugun ortama gore muzigi hazirlayacak. Sonucta herkes yazar degil.
Bazi oyunlarda pek senaryo gerekmez, onun yerine oyunu bir kisi dizayn edebilir. Basit ama etkileyici senaryoyu, guzel bir dizaynla birlestirir. Mesela Diablo oyununun bi kac tane kitabi var yanilmiyorsam, herifler yuzlerce sayfa yazmis, pek takan yok. millet icin bas tusa, "huleaannn" sesi ciksin, yaratiklar dovulsun, olsun olayi var.
Bu yazinin son paragrafi olarak... ozetliyim son yazdiklarimi. Oyunlarin ne half-life gibi olmasi gerek nede starcraft. Sonucta tum zamanlarin en populer oyunlari arasinda tetris, pac-man, dig dug, astreoids gibi oyunlar yer almaktadir. Pek o 3D oyunlari goremezsiniz gelmis gecmis en iyi oyunlar listesinde. Kuzu tandir guzeldir ama bazen o sabahin cerez yanik susamli simidini tutmaz iste... (Amerikaya simitci acin gozunuzu seveyim, her gun 5 tane alcam yav!) |
|
Dreamwalker
Seçkin Üye
    
USA
İleti 257 |
İletim - 16/04/2006 : 17:08:44
|
ikinci yazimda biraz programci gozunden ziyade, bir kullanici gozu ile olaylara yaklasmaya calisacagim. Sonucta bu yazdiginiz oyunu sizden baskasi oynayacak degil mi?
ilk "grup" 2-5 yas arasi icin oyunlar. Ornek bir oyun olarak, ilk aklima gelen oyun cok basit. Oyun tek tusla oynaniyor. Bir tavsan devamli olarak ekranda saga dogru kosuyor. ve havuclari topluyor. Klavyede herhangi bir tusa (escape haric) bastiginizda, tavsan zipliyor. Oyun daha yeni bilgisayar kullanmaya baslamis ufak cocuklar icin yapilmis. Bunu gidip bir yetiskinin oynayacagini beklemiyoruz. Ama bu tarz oyunlar hem sizin programciliginiz gelistirir, hemde bir suru cocugun kendisini gelistirmesine yardimci olur. O tavsan oyununu burada 1.5 yasindaki cocuk oynuyor. Gercekten oyunlar kendilerini gelistirmelerine baya bir yardim ediyor. Bari yaptiginiz oyunun guzel bir amaci olur. Cocuklar ogrenmez demeyin, 4 yasinda iken benim linux yuklu makineyi kullaniyordu ufakligin ablasi.
ilkokul grubu icin 5-10 yas arasi icin basitce, gene ogretici tarzta, zevk veren oyunlar. Harf oyunlarindan tutunda, XoX tarzi oyunlara kadar. Yada platform oyunlari; basit baslayarak, gittikce zorlasan tarzda ozellikle. Yada eski macera tarzi oyunlari hatirlarsaniz, baya zevkli ve surukleyici olabilirler. Ayrica programlamasida digerlerine gore daha basit kacabilir. Bir oda dusunun, icinde oyuncunun tiklayabilecegi 10 tane esya var. Oyuncu bunlarin arasindan anahtari bulmali ki kapiyi acip diger odaya gecsin, diger odadan bir objeyi alarak, oteki odaya gotursun filan gibi. Klasik arcade oyunlara (1980 civari) baktiginizda, baya bir fikir de gelir oradan. Kopya olmaktan oteye gitmez ama bilgilerinizi gelistirir. Takildiginiz yer olursada, nette bir suru kod bulmak mumkun. Onlara bakarak takildiginiz yeri asabilirsiniz.
Eger aklinizda daha once yapilmamis bir proje varsa yada tamamen yeni bir oyun fikri, belkide oyuncularin ilgisini cekip onlari saatlerce ekran basina baglayabilirsiniz. "Dx-ball" diye bir oyun vardi, belki duymus yada oynamissinizdir. Oyun aslinda break-out/arkonoid klonu idi. ancak bazi ilaveler, ve grafiklerin canliligi, asamalarin guzel dizayni o oyunu digerleri arasinda on plana cikardi. Turkiyede iken hatirliyorum 10 kisi yanyana oturmus her bilgisayarda Dx-ball oynuyorduk, birbirimizin rekorunu kirmak icin.
Turkiyeye has bazi seyler var. O konularda yabanci oyun pek yapilmamis olabilir. O tur konulari yakalamaya calisin. Okey oyunu bunlardan biri idi, ama sanirim simdi heryerdedir. Ancak, bazi kulturel/geleneksel degerlerimizi oyuna koyarsaniz, belki diger oyuna gore avantajiniz olabilir. Ornek olarak, "Sekerbabali Hamdi Abinin kahvehanesi" oyununda hamdi Abinin yaptigi caylari musterilere hizli bir sekilde yetistirmeye calissin oyuncu. Yada basitce bir futbol oyunu yapin, herhangi bir koyumun cimenli alaninda, inek gecsin oynadigin alandan. Oyun icinde iken, aniden babasi gelip en star oyuncunu eve cagirsin. Eger oyunlariniz oynanirsa, ufak caplida olsa bi izleyici kismi olusturursaniz, onlarin yorumlari hem size destek olur hemde keyif alirsiniz.
Son olarak, web sayfasi... Mutlaka web sayfasi yapin kendinize. Parali olmasina gerek yok. Bedava web sitesi veren yerler var, hemde PHP ve MySQL destekli! (ASP yi hic sevmem zaten :)
PHP4 , MySQL, FTP, HD ve bandwith limiti yok! Bedava.. Tek olay 1Mb. dan buyuk dosya atamazsin. (korsan olaylari engellemek icin) http://www.funpic.org/ alin bir yer buradan, baslayin ufak capli sitenize. HTML basittir ve ilk dilinizde olabilir. Diger programlama dili ogrenmenize direk olarak yardim etmez ama sonucta kendine guven kazanirsin ve ayagini islatmis olursun. Eh birde PHP var. C ogrenmenize yardimci olabilir (C bilen bir kisi 5-10 saat icinde PHP yi kolayca ogrenebilir) MySQL da guzel bir olay, eger online programlamayi dusunuyorsaniz, veri tabani sart olacak zaten.
PHP ayrica, o flashta yazdiginiz oyuna yuksek skor tablosu yapip internette gostermenize yarar. Yaptiginiz oyunu oynayan kisi, o skor tablosunu takip ederek oyununuza normalden daha fazla ilgi gosterebilir. Yada bugunlerde cok moda olan online yazi tabanli oyunlar yazabilirsiniz. Bu oyunlar her ne kadar zor gorunsede, aslinda gayet basittirler mantik olarak. Veritabani kullanmaya basladiktan sonra, rahatlikla ufak capta bir oyun yazabilirsiniz. Ancak bu sizi yaniltmasin, online oyunlar her ne kadar kodlamaya baslamasi kolay olsada, guvenlik kismi basli basina bir bela.
Simdilik benden bu kadar. Umarim yazdiklarimin ufak bir kismi dahi olsa, birine yardimi olur. Amacim 3D den baska tarzda da oyunlarin yapilabilecegini ve zevkle oynanabilecegini anlatmakti. Ayrica oyun tarihine damga vurmus cogu guzel oyun 1-2 kisi atarindan kodlanmistir (yada buyuk bir kismi bir kisi tarafindan) final fantasy, civilization, transport tycoon a bakin. Hala bile zevkle oynanan oyunlar. iyi kodlamalar. |
 |
|
mj
Üyeliği Kilitli
Turkey
İleti 0 |
İletim - 17/04/2006 : 23:36:23
|
güzel yazı ama yetersiz yine.. |
 |
|
mym
Üye
    

Turkey
İleti 29 |
İletim - 18/04/2006 : 00:37:16
|
bende visual basic programı var.peki bunda 3D tarzında oyun yazıla bilir mi? bu arada senin yazdığın oyun var mı? |
Adam olacak çocuk, çocukluk edipte büyümez ---*--*--*--*--*--*--*--- Hayat, beynimizdeki bulmacayı doldurma çabasıdır ------------------------ mahsunystr@msn.com |
 |
|
playmaker
Üye
    

Denmark
İleti 20 |
İletim - 18/04/2006 : 01:00:24
|
. |
 |
|
mym
Üye
    

Turkey
İleti 29 |
İletim - 18/04/2006 : 01:17:07
|
türkçen yok mu? |
Adam olacak çocuk, çocukluk edipte büyümez ---*--*--*--*--*--*--*--- Hayat, beynimizdeki bulmacayı doldurma çabasıdır ------------------------ mahsunystr@msn.com |
 |
|
Konu  |
|
|
|