Yeni kişiye yardım ??
Draugluin
Üye
Arkadaşlar forumu ilk önce düzgünce gezip sonra böyle bir konu açacaktım fakat konuları okuduktan sonra zaman kaybetmek istemedim. 14 yaşındayım ve yavaş yavaş hayalim olan oyun programlamacılığına geçiş yapmak istiyorum. İngilizcem yaşımdaki çoğu kişiye oranla çok daha iyi. Buna elbette küçük yaşımdan beri bilgisayar bşaında geçirdiğim zamanlar da yardımcı oldu.

Zamanında ActionScript 3.0 ile biraz ilgilendim. Çok fazla bilgim olmasa da bu sektörün ne kadar zor olduğunun da farkındayım. Dikkatimi çeken birşey çoğu kişi C++ öğrenerek başla diyor fakat bu nasıl öğrenilir hala anlamış değilim... Örneğin Arrayleri öğrendim diyelim kitabı okuyarak. Fakat bunu oyun programlarken nasıl kullanacağım hakkında bir fikrim olmadığından işime yarar hale getiremedim. Bu tür sorunları nasıl giderebilirim ?

Başlama noktası olarak ne yapayım ? Bazıları OGRE3D kullanarak başla diyorlar. Bazıları ise Direct3D veya OpenGL gibi birer API öğrenmeyi öneriyorlar. Fakat ben gerçek başlangıç noktasını öğrenmek istiyorum. Çünkü bu işi uzun vadede, Üniversite sonrası yapacağım işlerde kullanmak adına öğrenmek istiyorum. Bu da yaklaşık ( Lise 4 te ilgi gösteremeyebilirim. ) 7 yıl olacak. Üniversite olarak da bu konuyla ilgili bir bölümde okuyabilirsem işime yardımcı olacak. Direct3D ve OpenGL e bakmadım değil, baktım fakat dikkatimi çeken birşey var ki kitaplarda upuzun kodu verip, hiçbirşeyi anlatmadan ilerletiyorlar. Ben ise birşeyi neden yaptığımı anlamadan ilerlemeyi açıkcası sevmiyorum. Sizler gibi abilerimden, şu boş zamanlarımı nasıl değerlendireyim diye birkaç öneri bekliyorum açıkcası...

Ayrıca Hepinizin Bayramını Kutluyorum =)
Saygılarımla...
darth_revan
Üye
C++ ile ilgili soruna yanıt vereyim öncelikle. Programlama dilleri, normal konuşma dilleri gibidir. Yani bir şey söyleyeceksen başta kafanda ne söyleyeceğini tasarlarsın, sonra da kullandığın dile uyarlarsın. Programlamayla bir süre ilgilendikten sonra karşına array kullanımını gerektiren bir sorun çıktığında array kullanman gerektiğini bileceksin zaten. Bu konuda kafanda herhangi bir sorun olmasına gerek yok, halloluyor bu.

Başlama noktası olarak Ogre, OpenGL veya DirectX demeyeceğim ben. C++'ı akıcı kullanmaya başlamadan önce böyle büyük kütüphanelere dokunmanı önermem. Birkaç senelik C++ deneyiminden sonra da kendi seçimini yapabilecek hale gelirsin zaten. Ama kişisel tercihim, bir grafik motoruna başlamadan önce OpenGL ve/veya DirectX ile birkaç ay geçirip, basit şeyler yapmak.

OpenGL ile ilgili kaynak olarak öncelikle NeHe'yi öneririm. Kod içinde kaybolma ihtimalin var ama NeHe'de, o yüzden daha temiz bir kitap olarak opengl'in redbook'unu da önerebilirim. DirectX içinse Frank Luna'nın introduction kitabını öneriyorum. Ogre'nin sitesinde de yeterince döküman var zaten, ayrı bir kitaba gerek olacağını zannetmiyorum.

Ama dediğim gibi, öncelikle programlama diline hakim olmalısın.
Draugluin
Üye
Cevabınız için sağolun. Fakat demek istediğim şeylerden biri ise bu. Örnek olarak OpenGL in redbook'una biraz bakmıştım. Teker teker başlıklar altında bilgileri veriyor insana. Bu kadar bilgiyi tek seferde öğrenmem mi gerek ? Yoksa okudukça ve uyguladıkça mı öğreniyoruz bu bilgileri ? Aynı şey C++ için de geçerli. Sırf kitap okuyarak, hiçbirşey denemeyerek okuduğumda fazla birşey öğrenemiyorum. Açıkçası C++ ile çalışmak için küçük programcık olarak neler yapabilirim bunu da bilmiyorum. Fakat zamanında basit birer sayı bilme oyunu, Hesap makinası tarzı birşey yapmıştım. Fakat Arraylerden devam edersek, bunu kullanacak herhangi birşey tasarlayamadıktan sonra tam anlamıyla öğrendiğimi söyleyemem. C++ için Dietel in kitabını düşünüyorum fakat bu kitap C yoğunluklu mu yoksa C++ yoğunluklu mudur? Yoksa internetten yararlanabileceğim C++ kaynakları var mı ? Bugünden itibaren hertürlü C++ kitabı ile kendimi yalnız bırakacağım sanırım. İlginiz için teşekkürler, çok soru sorduğumun farkındayım fakat aklımdaki bu sorular yüzünden 1- 1,5 yıldır düzgün birşey yapamıyorum ve artık bunu bırakıp birşeyler ile ilgilenmek istiyorum. İyi günler =)
darth_revan
Üye
Cidden bolca sorun varmış :D

OpenGL ve DirectX gibi API'ları da dil gibi düşünebilirsin, ne yapacağını kafanda tasarlarsın, diller sadece birer araçtır. Mesela grafik programlama üzerine uğraşıyorsun, bir haritayı hızlı çizdirmen gerekiyor. Kafanda nasıl çizdireceğini tasarlarsın, kafanda oluşan şeyde OpenGL veya DirectX ile ilgili bir kod olmaz. Kafanda oluşturduğun şeyi programlama dilini ve API'ı kullanarak bilgisayara anlatırsın.

Deitel'in C++ kitabını ben de çok duydum, okuyan herkes öneriyor, fakat ben okumamıştım. C++'ı öğrenmek için cprogramming.com sitesine bakabilirsin mesela, veya birkaç ebook indirirsin, hepsine biraz bakarsın, kendi seçimini yaparsın sonra. Ben C++ Interactive Course kitabı ile başlamıştım C++'a, fakat şimdi baktığımda o kadar iyi bir kitap olmadığını görüyorum. C++ For Dummies kitabına da bakabilirsin, For Dummies serisi genelde güzel oluyor.

Pratik konusunda kaygılanman çok doğal çünkü internette bu konuda çok fazla kaynak yok. Ama programlama dilini iyi kullanıp kullanmadığını öğrenmek için programlama yarışmalarına girebilirsin.
http://ace.delos.com/usacogate
http://www.topcoder.com/
http://www.spoj.pl/
Bu yarışma/olimpiyat sitelerinde bir süre takılırsan algoritmik düşünmeyi ve programlama dilini daha iyi kullanmayı öğrenebilirsin.
Bunlar dışında, bir şeyler yapmaya çalışarak da baya gelişebilirsin. Mesela ben C'yi yeni öğreniyoken basit bir tycoon yapmıştım, onu geliştirmiştim bir süre falan. Ardından basit bir RPG de yapmıştım, son versiyonunda büyüler, itemlar, statlar, skiller falan vardı. Sen de böyle basit şeyler yapmaya çalışabilirsin tek başına, inanılmaz deneyim kazanıyorsun böyle yapınca. Üstelik, yukardaki yarışma sitelerinden çok daha eğlenceli. MSN'de arkadaşlarına "bak bak oyun yaptım" diye göndermenin zevkini tattıktan sonra projeni kolay kolay bırakamıyosun :)

Başka soruların olursa sormaktan çekinme :)
LastLost
Üye
Benim sormak istediğimse şu:

C ile basit, yazı tabanlı oyunlar falan yapabilecek kapasitede olduğumu düşünüyorum. Ama karakterlerden çizgilere şekillere nasıl geçeceğim? C'de bunları nasıl yapacağım, fareyi nasıl kullanmayı sağlayacağım?
iced
Üye
allegro kütüphanesinden faydalanabilirsin.
LastLost
Üye
Allegro için herşeyini en baştan anlatan, neyin ne işe yaradığını anlatan, resimli bir kaynak var mı?
Tidus
Üye


MSN'de arkadaşlarına "bak bak oyun yaptım" diye göndermenin zevkini tattıktan sonra projeni kolay kolay bırakamıyosun :)


Kesinlikle katılıyorum. xD Çok değişik bir his!?! Hatta biraz sonra "şurayı nasıl geççez hacı" yada "1256 puan aldım" gibi bir şey söylerseler tadından yenmez. Bu konuda bir de; kendi yaptığın oyunda yenilmek deneyimi var. Bir çok kez başıma geldi ve çok mutlu oldum. Demek ki yaptığımı gerçekten oynayanlar varmış.

Draugluin, sana da birşeyler söylemek istiyorum. Kesinlikle İngilizce'ni okula emanet etme. Bu işin en dibi İngilizce'dir. Programlama öğrenilir elbet. Kursa mutlaka git. (Kursa verecek param yok diyorsan artık belediyelerin yüzde doksanında var ücretsiz İngilizce kursu) Ve bir de (Buna bir çok kişi karşı çıkabilir ama...) bence programlamaya Visual Basic'ten başla. (Ben 8. sınıfta (Yıl:2005) QBasic ile başlamıştım. Siyah ekran, beyaz kodlar: aman Allah'ım!) Visual Basic görebileceğin en sade ve anlaşılabilir dildir. Yazmak için İngilizce yeterli. Aşağıdaki iki programda butona tıklandığında form üzerine, alt alta, 10 defa "mustafa" yazacaklar.

C#
private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 1; i < 10; i++)
            {
                Graphics grafik = this.CreateGraphics();
                grafik.DrawString("mustafa", new Font("Times New Roman", 8), Brushes.Black, new PointF(0, i * 100));
            }
         }   

Visual Basic
Private Sub Command1_Click()
For i = 1 To 10
Print "mustafa"
Next i
End Sub

C ve C++ bilmiyorum ama VB'den basit değiller. Ve oyun motorları, 3d, opengl, directx falan için bence daha erken. Kafanı bulandırmanın bir alemi yok. Sadece dili kullanarak yapabildiklerini bir bilsen... Msnden ulaşırsan sana yardımcı olurum.  ???

Ek olarak: C# kodlarının doğru olup olmadığından emin değilim. Debug dosyalarında sorun var. Çalıştıramadım o yüzden.

Draugluin
Üye
Bugün öğlen girememiştim ve şimdi baktığımda bu kadar yanıtı beklemiyordum açıkçası çok sağolun =)

Visual Basic elbette önerildi bana. Fakat Basic gibi bir dil bana uygun değil sanki. Yani program yapmaktan çok oyun yapmayı düşündüğümden Basic ten başlamak bana hiç bilgim olmadığı izlenimini de veriyor açıkçası. Aslında bilgim yok doğru fakat nedense garip geliyor =)

İngilizcede bilmediğim birkaç kelime dışında bir kitabı okumakta sorun çekmiyorum ki İngilizce konusunda gelişmekte FRP dir, 9-10 yaşımdan beri oynadığım MMOlardır, Birşeyler öğrenmek için gereken İngilizce kaynakları okuyabilmeye çalışmaktır derken cidden iyi bir İngilizcem var fakat elbette Türkçe gibi olmuyor. Aslında programlamada ben İngilizceyi Türkçeye tercih ediyorum çünkü çoğu kitap ingilizce karşılıkları doğrudan Türkçe'ye çevireceğiz derken mahvediyorlar herşeyi, sonra yabancı bir firma ile çalışmaya çalışsanız veya öneri almaya çalışsanız adamlar bu ne diye bakacaklar size... Belirtmek istediğim diğer bir nokta ise İngilizce min seviyesini şöyle açıklayabilirim. İngilizce yi biliyorum, bu yüzden İspanyolca öğrenmeye de çalışıyorum aynı anda =)

Programlamada ilerleyemememin bir nedeni ise Mükemmeliyetçi olmam. Çünkü Mükemmel olana dek birşeyi bırakamıyorum. Fakat düzgün olmayınca da canım sıkılabiliyor bakasım gelmiyor. Gerçi artık biraz da gerekiyor çünkü arkadaşlar arasında da ileride bir Grup kurmayı düşünüyoruz. Hepimizin belirli hayalleri var ve bunlar belirli bir noktada birleşiyorlar. Herneyse, sizi kişisel şeylerle daha fazla boğmadan ana konuya geçeyim =)

Geçen gün C++ Primer Plus kitabına biraz göz attım fakat Visual Studio 2008 in ve compile edememe, ne tip bir proje açacağını bulamamanın gazabına uğradım :D

C++ for Dummies e bakacağım bunu biryere not ediyorum zaten. Gerçi ben C++ kitaplarının Cookbook cinsi kitapları sevmiyorum. Yani böyle bu budur, şu şudur diye doğrudan konulara ayrılmış ve konu altında o bilgi hakkında herşeyi veren kitaplar herhalde birşeyi unuttuğunda bakmak amaçlı diye düşünüyorum. Zamanında C++ through Game Programming kitabına bakmıştım fakat bu kitap da birşey öğretmekten çok üzerinden hızlı geçiyor gibi geliyor. Aslında bayağı da öğrenmiştim bu kitapla tekrar bakabilirim =)

Şimdi asıl sorulara gelelim...

İlk soru, Visual Studio 2008 yerine Dev C++ ı compiler olarak kullanmak uygun mudur ??

Programlamaya bakan 2-3 farklı düşünce grubu var fakat çoğunun kökünde C++ gibi bir programlama dilini öğrenmek var. Bu yüzden C++ ile cidden başlamalı mıyım ? Basic öneriliyor fakat ben sıfır olduğumu düşünmüyorum. Çünkü AS 3.0 ile basit oyunlar yapabilecek kapasitedeyim...



Sorularım bu kadar, şimdiden teşekkür ederim. Artıdan bu kısa(!) yazıyı okuyanlara da teşekkür ederim. Artıdan Tidus bildiğim kadarı ile C# kodlarında bozukluk yok çünkü C# son baktığımda AS3 ile çok çok benzeyen bir dildi =)
Tidus
Üye
C++ bilmediğimden onunla ilgili birşey söyleyemem. Bir de VB'den başlaman yada başlamaman neyi ne kadar bildiğinin yada bilmediğinin göstergesi değildir. VB kullananlar başlangıç düzeyi programcıları falan değil. Sadece başlamak için uygun bir dil. VB'yi destekleyen bir çok oyun motoru olduğunu biliyorum. Ücretsiz olanlarda var. (Bknz: TV3D) Karar senin sonuçta. Ben yapamasam da kesinlikle sıkılmam, hayal kırıklığına uğramam diyorsan C++ seni bekliyor...
ragnor
Üye
Bikaç tavsiye...

Öncelikle visual basic'ten falan uzak dur, seni ileri götürmeyecek bir dil.

İkincisi çok vaktin var rahat ol, tadını çıkar yavaş yavaş, sindirerek ilerle.

Üçüncüsü As3.0 iyi bişey gibi geldi bana, oradan devam edebilirsin. Hatta flixel diye bişi var flixel.org yada .com idi adresi gir o siteye bi sürü döküman tutorial'ıda var. Onu kullanabilirsin

C++ ile bişey yapacaksan SDL daha iyi bence, sonradan opengl'e de geçersin www.lazyfoo.com (yada .net adresleri hatırlamıyorum pek) burada dersler var. bende bi ara dökümanlar yazmıştım ama link vermeyeceğim, arar bulursun merak ediyorsan. Zaten asıl mesele bu, arayıp bulmayı öğrenirsen devamı gelir.

Hmm yada directx çalış sen bilirsin.
discussioncontroller