Not: Bir yanıt gönderebilmek için kayıtlı olmalısınız. Kayıt olmak için, burayı tıklayın!
|
K O N U ı N C E L E M E |
Dreamwalker |
İ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!) |
5 S O N Y A N I T L A R (En Son İleti ılk Sırada) |
Dreamwalker |
İletim - 26/04/2006 : 16:17:43 Mj, sagol yorumun icin. Zaten bende sanmiyorum ki tamamen herkese yararli ve herseyi iceren bir programlama yazisi kisa bir forum yazisi ile yazilsin. Benim eksik biraktigimi, baskasi tamamlar ki zaten forumlarin amaclarindan birisi budur :)
Mym, son sorunu ilk olarak cevapliyim. Evet yazdigim bir suru oyunlar oldu, ancak hemen hic birisi acik olarak dagitilmadi (bir kac tanesi haric) . En son uzerinde ugrastigim projelerden biri Xelver diye yaptigim online savas tarzi bir oyundu. Ondan sonra ise Kysera adi altinda baska bir oyun projesine basladim. Halada devam ediyorum, her ne kadar gercek hayat yuzunden (ve 3D ye tekrar baslamam yuzunden) ara versemde. Amac masa ustu FRP leri, yari gercek zamanli yari tur tabanli sekilde online RPG tarzina donusturmekti. PHP ve Mysql ile kodlanan oyuna ilk once C++ ile motor yazdik, ancak sonucta gene PHP ye donduk ve Ajaxi kullanarak oyunun gercek zamanli akisini saglamaya calisiyoruz. Eger bu tarz oyunlara ilgin varsa, yaz bir e-mail, oyunun adresini filanda ogrenebilirsin.
Visual basic ile 3D icin... Basit bir 3D terrain olayi icin kod : http://www.andreavb.com/forum/news/viewtopic_6808.html Direct3D olayi : http://www.vbexplorer.com/VBExplorer/vb_feature/nov2000/d3d_Index.asp bir suru ornek kod (Bu site tavsiyedir) : http://www.vb-helper.com/index_graphics.html Dx SDK : http://msdn.microsoft.com/directx/ 3D robot oyunu (kodu ile) : http://www.robotwar3d.com/advscripts/home.asp VB de 3D oyun ile ilgili bir tutorial : http://www.groovyweb.uklinux.net/index.php?page_name=game%20programming%203d%20in%20visual%20basic Oyun motoru : http://www.revolution3d.de/
Umarim bunlar yardimci olur. |
aYDeDe |
İletim - 25/04/2006 : 18:10:42 ya bence en ii program game maker 6,1 bence C++ ile daha çok beklersiniz oyunu küçük çaplı ama zevkli oyunlar yapabilirsiniz game maker ile.. |
mj |
İletim - 25/04/2006 : 12:27:37 onun yerine OPENGL i C++ ta kullanırsanız daha verimli bişey yapabilirsiniz.. |
Bellerophon |
İletim - 24/04/2006 : 23:35:10 VB de OpenGL kullanırsanız 3D uygulamalar yapabilirsiniz. OpenGL için kütüphaneler mevcut... |
mj |
İletim - 18/04/2006 : 08:16:19 VB de 3 boyutlu oyun yapabilirsin ama tam anlamıyla bir üç boyut bekleme...sanırım birkaç API vardı oyun yapımı için..yanılmıyosam eger.onun yerine 3D programları kullanmanda yarar var.. |
|
|
|