Nasıl Oyun Programlama Öğrenilir (Alıntı)

Yayınlandı: 07 Eylül 2011 yasirkula tarafından Çerez Kırıntıları, Oyun Tasarımı, PC Bilgi Bankası içinde
Etiketler:, , , , , , , , , , , , , , , , , , , , ,

Herkese merhaba; şimdi paylaşacağım yazı, oyun programlama için benim şimdiye kadar gördüğüm en yalın ve en faydalı kılavuz olma özelliğine sahip. Çok önceleri gördüğüm bu yazıyı o gün bu gündür bilgisayarımın bir köşesinde bulunduruyordum ve ara sıra sitemde paylaşmayı düşünsem de sürekli unutuyordum. Ne diyelim, şimdiye nasipmiş. 🙂

Başlamadan önce söyleyeyim, bu kılavuz benim değildir ve orijinali de bir Türkçe kaynaktır. Ancak kılavuzdaki bazı yazım hataları vardı ki benim de yaptığım şey onları düzeltip kılavuzu iyice pürüzsüzleştirmek oldu. Umarım ki faydalı olur çünkü bana çok faydası oldu zamanında. Kesinlikle bu kılavuzu bilgisayarınızın bir köşesinde saklamanızı tavsiye ederim.

Kılavuzu görmek için yazının devamını okuyabilirsiniz…

Nasıl Oyun Programlama Öğrenilir Diyorsan

Sana nelerin gerekli olduğu ve hangi kitapları okuman gerektiği hakkında bir patika çizebilirim..

1) İlk başta İngilizcen yoksa fazla ileri gidemezsin. Kusura bakma çünkü Oyun Programlama konusuyla ilgili Türkçe hiçbir “ADAM GİBİ KAYNAK” yok (Bu işi öğrenmek; “İşte benim ben!” diyebilmek için abartmıyorum belki de 30 bin sayfa okuyup öğrenmen gerekir.). Ama eğer İngilizce biliyorsan al sana ikinci şartımız:

2) İnanılmaz azim… Oyun Programlama en nihayetinde bir kapsamlı Uygulama Programcılığı olup öğrenmesi çoook uzundur. Eğer bunu gerçekten istemiyorsan daha yolun başındayken vazgeçersin ki belki de boşu boşuna 6 ay, 1 sene emek harcamamış olursun. Eğer yeterli azmin varsa sana altın bir söz: HİÇ BİR ZAMAN AZMİNİ KAYBETME…

3) Bu şart çook basit; kısaca ZAMAN’a ihtiyacın var çünkü kimse o kadar bilgiyi kafana HAP yapıp sokamaz. Bilgisayar Programlamayı ÖĞRENMEK demek eline kalem, kâğıt, kitap ve bilgisayar alarak ilk başta okumak sonra önemli yerlerin altını çizmek, ardından o kodları yazıp programı oluşturmak ve en sonunda da öğrendiğin şeylerle kendine özgü (kitaba bakmadan veya bağlı kalmadan) yeni bir örnek oluşturmak demektir. En ufak ve basit bir konunun en ufak parçası için bile bunu yapmalısın. Bu da çook zaman gerektirir.

4) Her şey için gerekli olan şartlardan biri PARA; çünkü bir çook kitap satın alman gerekecek ve bu kitaplar yabancı ülkelerden getirilecek. Ben Amazon.com’u öneririm; git ve oradan al, fazla bir fark ödemiyorsun ulaştırmaya. Neyse, bu para faktörünün kitaplarla ilgili olan kısmını; belki onları pdf formatında online olarak bularak da çözebilirsin. Bilmem nasıl yaparsın artık…

 

Önemli olan maddeleri yazdığımıza inanıyorum. Öte yandan sırasıyla okuman gereken kitapların bir listesini yazıyorum ki bu sırayı takip ederek yolunu kaybetmeden bir şeyler öğrenebilesin.

 

1) Her şeyden önce bir Programlama Dili öğrenmen gerekiyor ki BU DİL KESİNLİKLE VE KESİNLİKLE C++/C DİLLERİDİR. BAŞKASI OLMAZZ!! C# bile olmaz, bana güven. Oyun Programlama sadece C++ ile PROFESYONEL ANLAMDA YAPILABİLİR. Diğer dillerle de tabi ki Oyun Programlanabilir. Hatta paket programlarla bile oyun yapılabilir. Ama bunlar ticari değeri olan kaliteli oyunlar olamazlar.

Neyse; gelelim C/C++ dillerini nereden öğreneceğine. Sana kitap adları yazıyorum:

A) Nesne Yönelimli C++ Programlama Kılavuzu – Robert Lafore (Türkçesi var: ALFA YAYIN, sakın kaçırma çok iyi)

Bu kitap sayasinde hiçbir programlama geçmişin olmasa bile en baba dillerden C++’a balıklama dalarak onu öğrenebilirsin.. (Ben de tavsiye ediyorum, piyasadaki en süper kitaplardandır kendisi. Kitabın üzerinde “Uzmanlar İçin” yazdığına bakmayın, hiçbir programlama geçmişiniz olmadan sizi uzman yapıyor kitap  – yasirkula)

B) Sonra C Tüm Sürümler İçin – ALFA YAYIN – Orijinalinin adı: C Complete Reference

Bu kitap sayesinde C++’ın C alt kümesine iyi hakim olursun.

C) Sonraysa Visual C++.NET – ALFA YAYINLARI

Bu kitabı okuyarak derleyici olarak seçmiş olacağın Visual C++.Net derleyicisinin hakimi olursun. UNUTMADAN; SAKIN VİSUAL C++’dan başkasını seçme, Borland da Symantec de işe yaramaz.. Sen beni dinle: derleyici olarak Visual C++

2) Bu kitapları okuduktan sonra artık bir hayli programlama biliyorsun demektir (İnan bana okullarda öğrenebileceğinden 2 kat fazla hatta..)

 

Sırada öğrenmen gerekenleri sayarsak:

WIN32 APPLICATION PROGRAMMING

DIRECT-X (DirectDraw, Direct3d vb…)

VERİ YAPILARI, ALGORİTMALAR, YAPAY ZEKA vb…

Şimdi bütün bunlara beraber başlaman için İngilizce Oyun Programlama kitapları var. İşte sana onlardan hangilerini sırasıyla okuman gerektiğini yazıyorum:

  • Game Programming ALL IN ONE (Premier Press)
  • Tricks Of The Windows Game Programming 1. cilt (Sams Press)
  • Introduction to 3d Game Programming (Worldware Press)
  • Tricks Of The Windows Game Programming 2.Cilt (Sams Press)

 

Bu seviyede artık Oyun Programlama hakkında azımsanmayacak bilgiye sahip olacaksın ki bu sırada toplamda yaklaşık olarak 8000 sayfa kitabı bitirmiş olacaksın.

Sonrasında sana 3d ve Directx konularına iyice yönelmeni ve o konuları tamamen öğretecek bir kitap okumanı tavsiye ederim ki bu aşamadan sonra hiç de zor olmayacaktır (Çünkü zaten hepsi hakkında belli bir bilgi birikimin olacaktır.). Bu aşamada önerdiğim kitaplar ise şunlar:

  • Beginning Direct3d Game Programming (Premier Press)
  • Advanced 3D Game Programming With Directx 9.0 (Worldware Press)

 

Buradan sonra Memory Management, Data yapıları ve Algoritmalar ile ilgili bir kitap oku. Artık onu kendin seçersin. Ayrıca yapay zeka ile ilgili sağlam bir kitap da şart. Bu arada şu kitapları da bir zahmet okursun. Ek bilgi verirler, artık senin için çerez konumundalar çünkü:

  • Programming Role-Playing Games With Directx 9.0 (Premier Press)
  • Strategy Game Programming With Directx 9.0 (Premier Press)

 

Bundan sonra ise bir hayli kaliteli oyunlar yapmaya başlayabilirsin. Gerisinde ne okuyacağını söylememe gerek yok, zaten bunları yaparsan çoktan kendi başına ne okuyabileceğine karar verecek pozisyona gelmiş olacaksın.

yorum
  1. Melih dedi ki:

    Gerçekten çok güzel bir yazıymış,ama ingilizce bilmeden yapılacakları çok küçümsemiş yazarımız.
    Şuan türkiyede 9 yaşında gta oynamayı öğrenen biri oyun yapmaya başlayabiliyor.Tabi yaptığı oyunların kalitesini bir yana bırakalım.Fakat tecrübe bütün dilleri bilmekten daha iyidir.

    Tabi şu yönden bakarsak durum farklı ;
    İngilizce bildiğimiz zaman bir programlama dilini 4 ayda öğreniyorsak,İngilizce bilmeden aynı çalışma stiliyle 5, 5 buçuk ayda öğreniriz.

    Ama bu demek olmuyor ki ingilizce bilmiyorsanız başlamamalısınız ve korkmamalısınız ! 🙂

    • Emre Talay dedi ki:

      Türkçe kaynak yok diyor yazıyı okudunmu arkadaşım yazılımın adıdır ingilizce bir for döngüsü bile hazırlayacaksan for adı üstünde ingilizce anlam içermektedir yada if else bunların hepsi ingilizce türkiyede oyun programlama yapan tek adam var oda yurt dışından işi öğrenip gelen birisi ingilizce öğrenmeden ben programcıyım demek ehliyetsiz araba kullanmaya benzer. Evet programlama türkiyeye mal edilen bir olgu değildir bu sebeble ingilizce olmazsa olmazlardandır 5 ayda hiç birşey öğrenilmez bir oyun programcısı enaz 4 ila 5 yılı kendine hedef edinmelidir. Çünkü kitap okumayı bile yapmayan adama sen ingilizce kitap okuyacaksın diyorsun. İnternette bu konuda makale bulamazsın ünidede bunu sana öğretemezler çünkü ünideki proflar bile bunu ingilizce kitaplardan öğrenmektedirler. Kısacası çalışacaksın çalışmayı seven bir yapın varsa bu işe atlayacaksın aksi halde bulaşma hobiden ileri götüremezsin.

  2. Serkan ÖZKUL dedi ki:

    Çok teşekkür ederim arkadaşım hakkınızı helal edin.

  3. Fatma dedi ki:

    Teşekkür ederim. Faydalı oldu

  4. ferhat dedi ki:

    arkadaşlar bu siteye üye olmam gerekiyor. bunu nasıl yapabilirim. hı. kaydol diyince wordpress diye bir saçmalığa gidip kullanıcı adı parola vb istiyor ama formu doldurunca kaydol diye bir buton yok nasıl yapıcam…. acil bilgielendirin….

    • yasirkula dedi ki:

      WordPress’te bir bloga üye olmak sistemi bulunmadığından ben de WordPress’in kendisine kayıt olma linkini koymuştum. Karışıklık için afedersin 🙂 Ancak blogumda yeni bir konu yayınlandığında e-mail yoluyla haberdar olmak istersen sitenin sol panelinin en üstlerdeki “Email Bilgilendirme Sistemi” kısmından e-mail adresinle siteye bir nevi üye olabilmen mümkün.

  5. Seda dedi ki:

    Ben Bilişim Teknolojileri / Web Tasarım ve programlama bölümünden mezun oldum. Oyun tasarımcısı olma hayali uzun süredir var bir cok arastırma yaptım ama yeterli bir düzeyde bilgi edinemedim nereden baslayacağım sorusuna bir türlü cevap alamadım doğrusu. Her neyse 2 yılımı sırf bilgisayar öğretmenliğini kazanmak için kendimi hiç doğru düzgün bilmediğim sayısal konulara ayırdım. Bilgisayar öğretmenliğinde düzgün bir bilgi donanımına sahip olurum ve oyun tasarımcısı olabilirim diye düşündüm.Ygs sınavı oldu bitti ve ben bu yazıyı yeni okudum. Tüm sorduğum soruların cevaplarını buldum. Allah razı olsun senden kardeşim 😀

  6. idris dedi ki:

    Android için de nereden başlamam lazım onu da konu edinirseniz sevinirm şimdiden teşekürler

  7. yasirkula dedi ki:

    Hiç Android programlamayla uğraşmadığım için ne yazık ki hiç fikrim yok 😦

  8. SnipeR95 dedi ki:

    Usta bu aralar mail bakmuyorsun galiba yasirkula@yahoo.com ‘a bir mail gönderdim bir bakarsan sevinirim 🙂

  9. mehmet dedi ki:

    arkadaşlar bir kaç günde öğrenilecek birşey değil bu olay ama ben bir site keşfettim site sahip leri herkonuda büyük ilgi gösteriyorlar bütün sorularımı cevaplıyorlar ben yavaş yavaş işin mantığını kavramaya başladım http://www.programlamaogren.com/ burdan başlaya bilirsiniz

  10. K# dedi ki:

    Nesne Yönelimli C++ Programlama Kılavuzu 2002 ve 2009 baskıları var. Ben 2009 baskısını hiç bir yerde bulamadım. 2002 yılında basılanı almalı mıyım?

    • yasirkula dedi ki:

      Kitapyurdu.com’da 2009 baskısı vardır diye düşünüyorum (Gerçi orada da tükenmiş kitap.). İki baskı arasında ne gibi farklılıklar olduğunu bilmediğimden 2002 baskısını alın diyemeyeceğim ama alırsanız da pişman olacağınızı sanmıyorum.

  11. K# dedi ki:

    Bu kitabın gibi başka Türkçe alternatif bir/birkaç kitap var mı?

    • yasirkula dedi ki:

      Malesef bu kitapların hiçbiri için alternatif öneremem. Çünkü bu kitaplar arasından ben sadece Nesne Yönelimli C++ Programlama Kılavuzu’nu denedim (Kitap süper ama).

  12. MRDecom dedi ki:

    herkese iyi günler yazı içinde elinize sağlık ama sormam gereken birşey var benim bir proje ödevim var arkenoid adlı oyunu c dili ile dev c++ derleyicisinde yazmam gerekiyor fakat hiç bir yerde bununla ilgili bilgi bulamıyorum yardımcı olursanız çok sevinirim

    • yasirkula dedi ki:

      Eğer sorunuz “Dev C++’ı C dili ile nasıl kullanabilirim” ise tek bir kaynak bulabildim ve o da İtalyanca 😀 Ancak video olduğu için sorun olmayacaktır:

      Bildiğim kadarıyla Dev C++ ile C kodu yazıp derlemek mümkün.

  13. Sercan dedi ki:

    kardeş tamam çok güzel ama bu Nesne Yönelimli C++ Programlama Kılavuzu – Robert Lafore (Türkçesi var: ALFA YAYIN, sakın kaçırma çok iyi) baskısı yok. Sanki ülkeden kitapları toplatmışlar. İlk baştan fail olduk 🙂 Bunun yerine önereceğin kitap yok mu ?

    • yasirkula dedi ki:

      Çok ilginç. kitapyurdu’nda yoksa da yakında tekrar gelir diye düşünüyorum. Ben sadece o kitabı okumuştum ve çok iyiydi, başka kitap bilmiyorum ama internette kaliteli Türkçe/İngilizce tutorialler de mevcut, onlara da bakabilirsiniz.

  14. Ergin dedi ki:

    Çok teşekkürler.Ama benim sormak istediklerim var. Öncelikle bu kitaplar İngilizce öyle değil
    mi(türkçesi var mı ya da?)? Bunları internet sitelerinden almak zorundamıyız(büyük kitapçılarda var mıdır?)? Bir de bunları okumamız öğrenmemiz 3-4 yılımızı rahat alır öyle değilmi kardeşim? Lütfen birileri bakabilir mi arkadaşlar? Tekrar teşekkürler 🙂

    • yasirkula dedi ki:

      A,B ve C kitapları Türkçe imiş, ben sadece A’yı okudum. Öteki İngilizce olan kitapların Türkiye’de online ya da offline bir şekilde satıldığını sanmıyorum. Yurtdışından alınabilir ya da internetten PDF’i aranabilir. Okuyup öğrenme süresi ise tamamen size kalmış ama 1-2 aylık kısa bir süre de beklemeyelim.

  15. mustafa dedi ki:

    emekleriniz ve yardımlarınızla bu platformda bizlere yardımcı olduğunuz için çok teşekkür ederim. Burada anlayamadığım bi konu var şöyle ki tekerleği yeniden icat etmek yerine fonksiyonların zaten içinde hazır bulundurduğu oyun motoru varken ve sadece indie geliştiriciler değil büyük firmalar dahi geçmiş bilgi-donanım tecrübelerine rağmen, bu motorları kullanıp piyasaya ürün sunuyor iken bu işin akademik kısmı olmuyor mu Assembly ile yazmaya gerek varmı sırf performans için 🙂

    • yasirkula dedi ki:

      Hayır gerek yok. Ben de Unity 3D kullanıyorum. Ancak kendi motorunu geliştiren bir şirketin (örneğin Taleworlds) yazılım departmanında çalışacak olursanız Assembly değil ama C++, DirectX ve(ya) OpenGL bilgisine sahip olmanız gerekecektir.

  16. Erdem dedi ki:

    Hocam siz hangi kitapları okudunuz??? Ve bu kaç aylık ya da yıllık bir süreçte öğrenilecek bişey sizce ???

    • CrazyRed dedi ki:

      Ve gerçekten sadece kitaplarla öğrenilebilecek bir şey mi?

      • cenullum dedi ki:

        Olayi yanlis anlamisin biraz bitmiyo ogrenme bitmiyo calistigin her an yeni bisey ogreniyosun zaten kimse herseyi bilemez ve mutlakada unutucak biseyleri

      • CrazyRed dedi ki:

        Tabiki de her gün sonuçta bir şeyler öğreniyoruz… Yani benim demek istediğim bu kitaplarla sağlam bir temel atabilir miyiz?

    • yasirkula dedi ki:

      Ben burada bahsedilen kitaplardan sadece “Nesne Yönelimli C++ Programlama Kılavuzu”nu okudum. Programlamaya da bu kitap ile başladım aslında. Bana çok faydalı oldu ve programlamaya başlamak için kesinlikle önerebileceğim bir kitaptır. Sonra Game Maker ile devam edip ardından Unity’e geçiş yaptım.

      Bu yazı bana motivasyon açısından çok yardımcı olmuştu, ve de C++ kitabı ile programlamaya giriş açısından da işime yaramıştı. Ancak devamında siz de benim gibi kendi yolunuzu çizebilirsiniz. Bu yolda kitaplardan, e-kitaplardan, yazılı ve video derslerden faydalanabilir, sizden daha tecrübeli kişilere danışabilirsiniz. İngilizce bilginiz varsa süreç daha hızlı ilerler. Özellikle Game Maker ve Unity gibi oyun motorları konusunda Türkçe içerik sıkıntısı yaşayabilirsiniz. Şu kadar ayda bu işi kaparsınız diyemeyeceğim çünkü bu gerçekten size ve bu işe yatkınlığınıza kalmış bir şey.

Bir Yanıt Bırakın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s