Oyun nasıl yapılmaz!
Golden Eagle
Üye
Burda darth-revan'a katılıyorum. Eğer bir şeyin nasıl çalıştığını bilmezsek bir sorun çıktığında nasıl düzeltileceğini bilemeyiz. "Ya nasılsa bilmem ne kütphanesinde bu algoritmalar var ne yeniden yazmaya kasacağım" sözünü ancak problem çözümünü bilmeyen insalar söyler. Bilgisayar müh. okuyoruz işimiz problemleri çözmek. Gerçek hayatta karşılaşılacak problemler algorithms.h kütüphanesinin içinde bulunmayabilir. Algoritma kitaplarındaki algoritmaları hatim etmek yerine oturup benzer algoritmalar çıkartarak hem kendimizi geliştiririz hem de ileride kullanılacak aloritmalar için ön kaynak olur.

Kütüphaneleri yazanlarda sizin bizim gibi insalar ilk yazıldıklarında "uff ne uğraşacağım biri yazar bende kullanırım" deseydi şimdi o kütüphaneleri kullanamayabilirdik.
Neldock
Üye
giray dedi:


Her oyun programcisi elbette lineer cebir, 3d matematik vs bilmelidir.



Katılmıyorum. Hatta saçma bile geldi.

Uzun süredir oyun yapımıyla ilgiliyim, geçen sene eşit ağırlık okurken hem matematik hem geometriden sınıfta kaldım. (Şu anda dil okuyorum.)

Ama orta düzeyde C ve C++, iyi düzeyde Visual Basic biliyorum. Ayrıca ilk oyunlarımı yaptığım Game Maker yazılımının kendi dili olan GML (Game Maker Language) de öğrendim bir ara. WarCraft III için mod yaparken JASS falan da biraz bakmışlığım vardır.

Ne yani? Oyun yapamaz mıyım? Hem de sadece polinomları çarpanlarına ayırmakta pek iyi değilim diye mi?
Creator
Üye
  Trigonometri, sanal sayılar vs. grafikleri oyun içeriğine ekleme aşamasında iş görür. Matrisler falan zaten programcılıkta basit işlerde bile kullanılıyor. İşlem kolaylığı ve optimizasyon endişesi taşıyan herkese matematiksel düşünme beceresi gerekir. Evet bunlardan yola çıkarak bilmek gerekir. Giray'ın bahsettiği programlama çeşidinin, 3. parti hazır oyun yapım programları kullanma olmadığını tahmin ederek söylüyorum.

  Ayrıca Darth Revan'da çok haklı, iyi programcılık kurslarında alıştırma olarak hazır kütüphanelerde bulunan fonksiyonları yeniden yazılması istenir. Bu programcılık mantığı olmadan ezbercilikle iş yapmanızı engeller. Uzun vadede çok faydalıdır.

  Programda bir sorunla karşılaştığınızda kullandığınız yapıların nasıl iş gördüğünü bilmeniz gerekir. Çünkü bazen bu hatalar harf eksikliğinden değil, programcılık bilgisi eksikliğinden kaynaklanır. Program çalışır ama siz sabit bir sayı beklerken tamamiyle random bir sonuç alırsınız mesela. Bu noktada ezberciler sınıfta kalır.
Golden Eagle
Üye
Neldock küçük bir örnek vereceğim. Bildiğin gibi ekran iki boyutlu X ve Y kordinatı var. Strateji oyunları artık 3 boyutlu peki iki boyutlu ekranda 3 boyutlu bir oyunda fare senin nereye tıkladığını nasıl anlayacak.

Buyur Blizzard'ın iş ilanı Requirements kısmında ikinci satıra dikkatini çekeyim.

Game Physics/Collision Programmer - Next-Gen MMO

Blizzard Entertainment is currently seeking a highly talented game physics/collision programmer to help breathe life and realism into our next-generation MMO technologies. This is an exciting opportunity to envision and author innovative and cutting-edge physics and collision systems for today's most advanced technology. Interested applicants should possess superlative math skills and a discerning eye for detail.

Blizzard offers a fun, creative, and technically challenging environment with excellent compensation and a full range of benefits.

Requirements:

    * Experience authoring collision/physics related code
    * Strong math skills (linear algebra, trig, matrix/quaternion math)
    * Fluent in C/C++, and SIMD programming
    * Self-motivated
    * Passion for playing and making games

Plusses:

    * Physics/Mathematics/CS Degree
    * Experience with multi-threaded programming
    * Programming experience on both console and PC titles
    * Experience implementing animation systems
    * Experience with commercial game physics packages
giray
Üye

Ne yani? Oyun yapamaz mıyım? Hem de sadece polinomları çarpanlarına ayırmakta pek iyi değilim diye mi?



"Ben sana oyun yapamazsin demedim, oyun programcisi olamazsin dedim" diye baslamak geldi icimden ama yapmayacagim :).

Elbette oyun yapabilirsin, hele game maker vs kullaniyorsan neden olmasin? Fakat ciddi bir oyun programcisinin matrix'lerden haberi olmamasi basini cok agritacaktir. Pek cok seyi deneme yanilma yoluyla bulmaya calisacaktir.

Profesyonel oyun programciligindan bahsetmiyorum, zaten mulakatlari gecmeniz mumkun degil bunlari bilmiyorsaniz. Ornegin Infinity Ward'daki son mulakatim sadece ve sadece uc matematik sorusundan ibaretti.
Neldock
Üye
giray dedi:


"Ben sana oyun yapamazsin demedim, oyun programcisi olamazsin dedim" diye baslamak geldi icimden ama yapmayacagim :).

Elbette oyun yapabilirsin, hele game maker vs kullaniyorsan neden olmasin? Fakat ciddi bir oyun programcisinin matrix'lerden haberi olmamasi basini cok agritacaktir. Pek cok seyi deneme yanilma yoluyla bulmaya calisacaktir.

Profesyonel oyun programciligindan bahsetmiyorum, zaten mulakatlari gecmeniz mumkun degil bunlari bilmiyorsaniz. Ornegin Infinity Ward'daki son mulakatim sadece ve sadece uc matematik sorusundan ibaretti.



4 tane sorum olacak o zaman:

1- Oyun programcısı olmak ile oyun yapmak arasındaki fark nedir peki? Profesyonel anlamda bir şeyler yapıp yapmamak mı?

2- Yani şimdi bir bilgisayar mühendisimiz var. Matematik, programlama bilgileri muhteşem. Ama adam kendi başına hobi olarak oyun yapıyor ama çalışmaları bir adamın kendi başına yapabileceklerinin en iyisi. Bu adam hangi kategoriye giriyor?

3- Profesyonel anlamda iş yapmamak, yani büyük şirketler ile çalışmamak ya da yaptığım oyunu satmamak beni bu anlamda ciddi olmayan biri mi yapar peki?

4- Şu anda YUH isimli bir oluşumda bir arkadaşımla oyun yapıyorum (Ben tasarlıyorum, o grafikleri hazırlıyor, müziği ve senaryoyu da ortak hazırlıyoruz). Eğer ciddi olmayan bir oluşumsak ve ciddi olmayan oluşumlar ciddiye alınmıyorsa, kendimizi daha ciddi yapmak için ne yapacağız?

Edit: YUH ismi için şöyle bir açıklama da ekleyeyim, daha arkadaşımla oyun yapmaya başlamadan önce bu kadar imkansızlıklara rağmen (Oyun motorlarının fiyatı, kaynak bulamama, çalışan adam bulamama...) oyun yapan ve güzel şeyler çıkartan insanlara YUH diyorduk. "Biz de mi yapsak?" sorusu aklımıza geldiğinde kendimizle çelişmemek için kendimize de YUH dedik ve ismimizi bulmuş olduk.

Aklınızda belirmesi muhtemel "YUH diye ciddi oluşum mu olur?" sorusunun cevabı da böyledir.

Zamanın ötesinden gelen Edit: YUH falan kalmadı şimdiye...
darth_revan
Üye
1- İndir bir open-source oyun. Grafikleri ve iki temel şeyi değiştir, "yeni oyun yaptım" diye gezebilirsin. Ama oyun programlamak, kodu bilinçli olarak yazmaktır biraz da. Artık mod yapım kitleri serbestliği o kadar arttırdı ki, modlar yeni oyunmuş gibi anlatılıyor. Bunu yapan herkes oyun programcısı değil ama. Game maker, AGS gibi oyun yapım kitlerini kullanarak da oyun yapabilirsin ama oyun programcısı olamazsın.

2- Oyun programcısı katagorisine girer.

3- Hayır ama böyle yapan bolca programcı var. Linux tabanlı oyunların yapımcıları genelde büyük şirketler ile çalışmaz. Felsefelerine uygun olsun diye veya eğlencesine yaparlar, yani görünürde EA kadar ciddi değillerdir.

4- Oyunu nasıl yaptığınıza bağlı aslında. Teknik özelliklerinden bahsedersen daha yardımcı olabilir sanırım Giray abi. Ama bir oyun yapım kiti kullanıyorsanız bir oyun motoru kullanmaya geçmek ciddiyetinizi büyük oranda arttırır. c/p kodlar kullanacağınıza, programınızın neyi ne zaman nasıl ve niye yaptığını bilmeniz de ciddiyette önemli.

Aslında biraz da ne amaçla oyun yaptığınıza bağlı. Yani eğlencsine bir oyun yapacaksanız, sadece içeriğe yoğunlaşacaksanız programlamayı minimumda tutup mod yapabilirsiniz, ideal de Half Life 2'dir. Ama ilerde programcı olmak istiyorsan, programlama ve matematik yeteneklerini geliştirmekle başlayabilirsin. Zihinden Picking yapmana gerek yok, ama en azından kağıt üzerinde bir picking algoritması yazabilmelisin.
Neldock
Üye


Ama ilerde programcı olmak istiyorsan, programlama ve matematik yeteneklerini geliştirmekle başlayabilirsin. Zihinden Picking yapmana gerek yok, ama en azından kağıt üzerinde bir picking algoritması yazabilmelisin.



Matematik yeteneklerini sadece programlama dilleri kitaplarıyla geliştirebilir miyim?
Golden Eagle
Üye
Tabiki hayır.
Neldock
Üye


Tabiki hayır.



Nedir gereken?
discussioncontroller