Oyun Programlamak mi Istiyorsunuz?

E-mail ile sık sık tavsiye isteyen ve oyun sektorunde calismak isteyen arkadaslar ve ogrenciler var bende bu yaziyla beraber neler yapilmasi gerektigini, neler calisilmasi gerektigini, neler ogrencilmesi gerektigini nacizane tavsiyelerimi ve onerilierimi anlatacagim. Tum oyun sektoru icin cevap veremem fakat baslangic icin neler isteniyor ve hangi bilgiler bekleniyor okudugum makalelerden ve yurtdisinda calisan arkadaslarimdan faydalanarak bu yaziyi yaziyorum.

Uzun bir sure önce, Universite ogrencilerine ve game developer olmak isteyen ogrenciler icin makale yayinlandi. Makalenin linki.

Özellikle, Bu yazim üniversite okuyan veya yeni bitiren ve  ilk kez şirketlerde oyun programlama uzerine calismak isteyen ve deneyimi olmayan muhendis arkadaslara. Daha once deneyimi olan veya bilgisi olan arkadaslara da bu yazim umarim sonraki gorusmelerde veya var olan bilgisine ek bilgi eklemektir.

Kabaca ve sonuc olarak hedef aldigim kitle yeni baslayanlar ve oyun sektorunde calismak isteyen arkadaslardir. Firmalarin bekledikleri ve istedikleri siralamaya gore yazacagim.

Heyecan

Belki bunu söylemeye gerek yok, ama benim bir numara olarak nitelendirdigim bir konu heyecan. Ilk kez oyun geliştirme konusunda son derece hevesli değilseniz, siz de başka bir şey görünebilir. Bir kaç yıl içinde son derece hayal kırıklığına ugrayabilirsiniz ve farkli alanlara yonelmek isteyebilirsiniz.

Heyecaniniz var mi? Ne kadar heyecanli ve heveslisiniz gosterebiliyor musunuz?

Kendi oyun projeleriniz uzerinde calismak is veren ve sirketler icin oldukca onemli ve degerlidir. Bazı küçük oyunlar yazmaniz bazı açık kaynak projelerine katılmaniz gerekli ve onemli. Bu yaptiginiz projeler veya katildiginiz acik kaynak projeler neden onemli cunku gireceginiz firmadaki agir kodlarin altindan kalkabilesiniz karmasik kodlarda kaybolmamaniz icindir. Ve bitirdiginiz oyun projelerini gostermeniz icin Ornegin mobil ise play google’a app store eger facebook oyunuysa oraya koymanizda ve canlida olmasina ozen gosterin. Acik kaynak katildiginiz projeler varsa kodlarinizin kabul edildigini ve kodlariniz gostermenizde cok yarar var. Sizi ise alacak icin onemli ve hazir oldugunuzu gosterir ve rahatlikla iste bak oyunlarim burada kodlarimda burada! kendinize guvenerek diyebilirsiniz. Stackoverflow kullanin insanlarla iletisiminiz ve sorunlari nasil cozdugunuzu cok onemli merak ederler ve sizi daha iyi tanirlar. Isterseniz Master bir muhendis olun sizinle iletisim kurulmuyorsa oyunun disinda kalirsiniz ne yazik ki.

 

Neler Ogrenmelisiniz ve Neler Okumalisiniz

Universiteyi bitirdiniz. Eğer öğrenme surecinin bittigin düşünüyorsanız, tekrar düşünün. Ben textbooksveya siz sadece öğrenmenin devam etmesini saglayan temelini bitirdik. Karsimizda yeni platformlar, yeni API’ler, yeni programlama dilleri, yeni yaklaşımlar, yeni stiller, yeni her şey. Özellikle her an değişen bu sektörde, her zaman her an yeni şeyler öğrenmek zorundayiz. Bir aninizi bile bosa harcamayin.

Her seyiniz tum bilgileriniz mukemmel! Fakat sizde bakacaklari bir diger sey ise yeni bilgiler yeni programlama dilleri yenilikleri ogrenmeye acik misiniz. Eger bu potansiyeli gordulerse ve varsa her sey harika gidiyordur.

Yeni seyler ogrenmeye hazirlikli olun ve baslayin. Is yerinde yeni seyler ogrenmenin yani sira ve teknik kitaplari okumanin yaninda takip etmeniz gereken ve ogrenebileceginiz kaynaklar. (Game Developer Magazine,Software Development, C/C++ Users Journal, etc), konferanslar (GDC, Siggraph,ACM), web siteler (Gamasutra, Flipcode, GameDev.net), mail listeleri (gd-algorithms, sweng-gamedev, gd-general), ve hands on kod yazmak icin Crystal Space simdilik bu adresi verebilirim tutorial izleyebilir ve projelere katilabilirsiniz ilginc shaderlar yapabilirsiniz ve sizi gelistirebilir.

The Pragmatic Programmer kitabi her sene yeni bir programlama dili ogrenmenizi tavsiye ediyor bu biraz overkill olabilir ama kesinlikle bir tavsiye. Eğer Ruby ve Smalltalk gibi diller kullanarak planlamalarinizi yapmis olsanız bile, bu sadece sizin becerilerinizi genişletmek ve size yeni perspektifler kazandirabilir. Fakat temelleriniz saglam dillere dayayin diğer dillere baslamadan  önce C ve C++ Java gibi dilleri kavradiginiza emin olduktan sonra yeni cikan dillere yonelin derim ve bu temel olan dillerde iyi iseniz yeni cikan dilleri daha iyi anlayabilir ve arka planda neler oldugunu cok daha hizli kavrayabilirsiniz.

Oyunlar Oynayin

Bu cok onemli bir baslik ben gunde android ve ios platformlarinda bazen 10 bazende 20 tane yeni oyunlar indirip oynuyorum. Eğer oyun gelistirecekseniz, daha iyi ve düzenli olarak oyun oynayin. Hardcore bir oyuncu olmak zorunda değilsiniz, ancak oyunlari oynarken zevk almaniz gerekir. Son zamanlarda cikan oyunlari tartisin oyun mantigini dusunun kafanizda kodu yazip compile edin. Neden?,Cunku, kendi oyununuzu yaptiginizda/yaparken veya isyerinde gelistirdiginiz oyununu icin yeni moduller akliniza gelebilir, yeni ozellikler ekleyebilirsiniz, farkinda olmadan fikirlerinizin gelistigini anlayacaksiniz buda oyunlariniza ve kodlamaniza yansiyacaktir. Bir tavsiye Konsol oyunlari biraz dususte mobil platformlarda oyunlar oynamanizda fayda var. Game development yapmak icin oyun oynamak zorundamiyim? Hayir tabiki de bu sizin yeteneklerinize bagli nitekimde arkadaslarim, dostlarim var oyun oynamayi sevmeyen fakat cok yetenekli programcilar ama bunlar istisna diyebilirim.

Skills (Yetenekleriniz)

Giriş seviyesinde bir programcı olarak, çok şey öğrenmeniz bekleniyor, ancak en başından itibaren yararlı ve üretken olmak için bazı becerileri kazanmaniz gerekir. Oyun programcılarının DirectX ve OpenGL ilgili olmasi gerekir. Bu iyi, ama bu konuda çok fazla endişelenmenize gerek yok. Eğer bir uzmanın yaninda (junior düzeyinde pozisyon için girdiyseniz) onun yaninda kullanicalak API ve sureci hizli bir sekilde ogretecektir. Özel becerileriniz tam olarak yaptiginiz ise şirkete bağlıdır, Sonuc olarak ne verilirse onu programlamak durumundasiniz ve o yonde kendinizi yonlendirmelisiniz.

  • C++ cok iyi olmasi. Bu günlerde (PC’ler ve oyun konsolları için veya mobil oyunlar icin) Çoğu oyun geliştirme C++ ve yeni teknolji olan Unity icinde C# ile yapiliyor, böylece daha hizli ve rahat oluyor. Syntaxi bilmek veya bir fonksiyon yazmak “Hello world” yazmak bilirsinizki yeterli ve iyi değil. Üniversitede dil egitimleri zannediyorum iyi degil kendimiz/sizler projeler gelistirerek gelisebilirsiniz. Ideal bir aday, en azından Etkili C++ veya Java bilmesi gerekir bazı projelerde C++ bazi projelerinizde java kullanarak gelistirmenizde yarar var. Eger mezun oldugunuzda abstract nedir, interface nedir, cohesion nedir,inheritance nedir gibi temel bilgileri bilmiyorsaniz size sorduklarinda veya OOP nasil anlatirsin MVC nasil tanimlarsin ornekler verin dediklerinde zayif kaliyorsaniz hemen bir kitap alin ve tekrardan okumaya baslayin ornekler hazirlayin bu bilgileri oturtun kendinizde.
  • Giriş seviyesi bir programcı olarak temel 3D linear algebra bilmeniz gerekir cunku  ilk üst düzey oyun kodunda yoğun olasılıkla bu bilgiyle calisacaksiniz. Etkili bir şeyler yapmak için, 3D doğrusal cebirin temellerini iyi bilmeniz gerekir. Onları nasıl hesaplanacağını, senin nokta ve çapraz hesaplamalarini bildiğinizden emin olun,  Koordinat sistemini ve matrisleri oradaki (formulleri nerde nasil kullanacaginizi iyi bilmeniz gerekir) rahat olmaniz gerekir. Ciddi ve ust duzey bir oyunda mesafe hesaplamalarini 3d bir sahne icinde, acilar, fizik hareketleri bilgilerinizi guclendirin. Bu bilgiler icin teknik kitap olarak Mathematics for 3D Game Programming and Computer Graphics kitabini onerebilirim bible gozuyle bakiln bir kitapdir. 
  • Yazilim Muhendisligi (Software engineering)giriş seviyesi pozisyonlar için bir gerekli değil, ama kesinlikle güzel bir bonus olur 🙂 . Ne yazık ki çoğu game developer cok iyi takip etmez buradaki yenilikleri fakat universitede ogrenilen ile devam ediliyor . Tüm bi bilgileri bir dil ile yapabilirsiniz API’leri ogrenebilir  OOP , design pattern, encapsulation, unit test, gibi bilgileri universite disinda stajlarda pekistirebilir ve gelistirebilirsiniz game development yaparkende kullanabilirsiniz ve yukarida da dedigim gibi bu sizin icin bonus olabilir.

devami gelecek 🙂

Bu yazı Oyun kategorisine gönderilmiş ve , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir