Profesyonel Oyun Programcısının sahip olması gereken temel beceri seti nedir? [kapalı]


11

Beni rahatsız eden çok genel bir sorum var ama önce bazı detaylar eklemek istiyorum. Çekirdek bir Java programcısıyım. Bağımsız olarak Java'da eğlenmek için bazı küçük oyunlar yarattım. Şimdi, profesyonel oyun geliştirmeye ne kadar çok baksam o kadar karışıyorum. Bunun nedeni, bazı oyun geliştirme konuları hakkında Google'ı her ziyaret ettiğimde veya forumları vb. Ziyaret ettiğimde farklı önerilerle karşılaşıyorum.

Bazıları C ++ 'nın iyi olduğunu söylerken, bazıları JAVA'nın daha iyi olabileceğini söylerken, diğerleri ise başka bir dilin Python, Lua, UnrealScript, vb. Gibi ur dili olduğunu söyleyecektir. Unreal, Torque, Blender, Panda, vb gibi oyun motorları ve OpenGL, AI, Çarpışma Algılama bilgisi gereklidir. Android SDK kullanarak bir oyun bile oluşturdum.

Ne sormak istiyorum:

  • Profesyonel Oyun Programcısının sahip olması gereken temel beceri seti nedir? Herhangi bir 1 Programlama Dili + 1 Komut Dosyası dili + 1 Oyun motoru bilgisi + OpenGL var mı? (Uf !!)
  • Oyun Endüstrisine Oynanış Programcısı veya AI programcısı olarak girmek istersem mevcut becerilerim ve portföyümle (yukarıda belirtildiği gibi) girebilir miyim?
  • Oyun Geliştirme için bir programlama dili öğrenmek yeterli mi?

Herhangi bir kılavuz yardımcı olacaktır.

Yanıtlar:


6
  1. En az bir programlama dili ile yetkin ve yetkin olmalısınız. Bunu yapmak, diğer dilleri daha kolay almanıza yardımcı olacaktır. Başvurduğunuz işin türü, muhtemelen hangi dili önceden bilmeniz gerektiğine bağlıdır. PC ve konsolda yayınlanan çoğu üçlü A başlığı büyük olasılıkla C ++ ile geliştirilecektir. Mobil uygulamalar ve oyunlar büyük olasılıkla Java (Google Android ve diğer telefonlar) veya Objective-C (iPhone) kullanıyor olacak. Geliştiricilerin web sitelerindeki yazılım mühendisleri için iş listelerine göz atarsanız, genellikle hangi dil deneyimine ihtiyacınız olduğunu söyler. Örneğin, "C ++ konusunda uzman ve bilgili" veya "C ++ ile en az iki yıl deneyim." Bir komut dosyası dili öğrenmek size zarar vermez. Sadece sana fayda sağlayacak. Öğrenmek her zaman fayda sağlar, Herhangi bir oyun motoruyla ilgili çalışma bilgisine sahip olmanız gerekmez, ancak o motoru kullanan bir şirkete başvuruyorsanız, muhtemelen devam etmenize yardımcı olacaktır. Source motorunda uzmansanız, ancak id yazılımına başvuruyorsanız ve id teknoloji motorları hakkında hiçbir şey bilmiyorsanız, bu gerçekten süper yararlı değildir (ancak yararlı neden öğrenme her zaman faydalıdır).

  2. Projeleri baştan sona tamamladıysanız ve sahip olduğunuzu gösterirseniz, bunun özgeçmişinizi artırmanıza yardımcı olacağını düşünüyorum. Yine de çok sayıda teknik demodan emin değilim. Birçok insan teknoloji demoları yapıyor gibi görünüyor ve hiçbir veya birkaç oyun projesi tamamlanmadı. Oynanış programcısı jr. seviye pozisyonu, yani evet, özgeçmişinize bağlı olarak bir yerde iş bulabilmeniz gerekir.

  3. Bir dili bilmenin ve onu yetkin ve yetkin bir şekilde kullanabilmenin 5 dili bilmekten ve bunları nasıl kullanacağını bilmekten daha iyi olduğunu düşünüyorum.

Feragatname: Endüstride hiç çalışmadım, bunlar, oyun programlama işleri hakkında birkaç konu ve makaleyi okuduktan sonra, benim okuduğum en mantıklı makaleler / görüşler olduğunu düşündüğüm şeylere dayanarak oluşturulmuş görüşlerim.


7
Madde işareti 1'i " işaretçiler kullanan bir programlama dili bilgisi" ile güçlendiririm . İşaretçiler, onlarla hiç deneyimlemeyen bir dilde neler olup bittiğini anlamak için bu kadar temel bir gereksinimdir, onlara ihtiyaç duyan bir dile giderken büyük bir dezavantaj olabilir. C ++, web dışı oyunlar için son derece yaygındır, bu yüzden buradan başlayabilirsiniz.
Nisan Tetrad

@ShrimpCrackers Editör kullanarak gerçek "Bullet Points" yapabileceğinizi biliyorsunuz , değil mi? ;)
Ben

En azından endüstride yaygın olarak kullanılmayan, ancak bazı ilginç özelliklere sahip bir programlama dili bildiğinizi göstermelisiniz: bu, fırsatçılığa olan ilgi nedeniyle öğrendiğinizi, farklı felsefeleri / yaklaşımları anlayan bir çok dilli olduğunuzu ve (umarım her iki dünyanın en iyilerini birleştirir.
FxIII

2

Bu konuyu ne kadar çok araştırır ve profesyonel oyun geliştiricileriyle konuşursam, o kadar çok şey olduğunu düşünüyorum. Belirli bir sırada değil:

  • Takım ortamında birlikte iyi çalışabilme. Oyun oluşturmak olağanüstü miktarda insanı alır, bugünlerde bazı AAA oyunlarındaki kredileri okumak 10+ dakika sürer, eğer insanlarla iyi çalışamazsanız ve hedefiniz harika bir oyun yapmak için diğer insanlarla çalışmaktır. kork, bu doğru endüstri değil. Bu, zaman zaman diğer insanlarla birlikte projeler üzerinde çalışırken ortaya çıkan yumuşak becerilerden biridir.
  • Ne yapmak istediğinizi bulun. Bu bir tür açık uçlu ama oyun geliştirme hakkında neyi sevdiğinizi ve bunu başarmak için hangi becerilere ihtiyacınız olduğunu öğrenin. Bunun aradığınız cevap olduğunu biliyorum, ancak bir motor geliştiricisi, grafik geliştiricisi veya oyun geliştiricisi olmak için ihtiyaç duyabileceğiniz tüm becerileri taklit edebilirim, ancak bu bilgilerin çoğunu çevrimiçi olarak kolayca bulabilirsiniz. Becerileriniz, ilgilendiğiniz konulara çok yakından bağlanmalıdır. Örn: Sunucu tarafı geliştirme ile gerçekten ilgileniyorsanız, OpenGL ve DirectX'in giriş ve çıkışlarını bilmek konusunda endişelenmeyin.
  • Düşük Seviyede Bir Dilde Yetkin Olun Yukarıda anlatılanlarla birlikte, diğer posterlerle düşük seviyeli bir dilin öğrenilmesi için iyi bir fikir olduğunu kabul ediyorum. C # 'dan C ++' a gittiğim zaman C # 'in büyüsünün nasıl çalıştığı hakkında çok şey öğrendim.
  • Bilgisayar mimarisini anlayın - Bununla, bir bilgisayar mimarisinin her bölümünü gerçekten anlamak için CE veya EE derecesine sahip olmanız gerektiği anlamına gelmez, ancak bellek, CPU ve GPU'nun nasıl çalıştığının temellerini öğrenin. Oyun geliştirme alanından bağımsız olarak, en azından bunların nasıl çalıştığını kavramak faydalı olacaktır. Grafik programlama veya Motor programlama içine atlamak istiyorsanız, bu alanda daha da fazla anlamanız gerekecektir.

5
C ++ 'ı düşük seviyeli bir dil olarak gördüğünüzde kendinizi gerçekten yaşlı hissediyorsunuz
dreta

@dreta Ben o kadar yaşlı değilim ve bunu da düşük seviyeli bir dil olarak görmüyorum. Muhtemelen kullandığım ilk dil olan C ++ ile ilgili.
Paul Manta

2

Çok şey kariyer hedeflerinize bağlıdır. İstediğiniz tek şey, gerekli 5.5 yılı yapmadan ve yanmadan ve ayrılmadan önce "bir iş yapma oyunu" ise, sanırım sadece giriş seviyesi iş açılışlarına bakın ve ne istediklerine bakın, öğrenin ve uygulayın. Basit. (Ama sonra, sorunuz gerçekten "bir iş bulmak için harcamam gereken asgari çaba nedir?" Sorusuna gelirse, cevap "asgari çabayı harcarsanız, asgari işi alacaksınız!" ")

Ancak uzun vadede, bunun birkaç dili bilmek veya belirli bir dili öğrenmekle ilgili olduğunu sanmıyorum. Diller değişir - on yıl önce hiç kimse Objective-C veya XNA veya C # veya AS3 kullanmıyordu ve on yıl sonra bugün öğrendiğiniz dilin o zamana kadar eski olacağından emin olabilirsiniz.

Kendinizi geleceğe kanıtlamak için bir şey sadece "bir dil öğrenmek" değil, yeni dilleri NASIL öğreneceklerini öğrenmek. 3 dilde yetkin olduktan sonra, yeni bir dil almanın o kadar da kötü olmadığını göreceksiniz. Temel bileşenlerin çoğu yine de aynıdır - her dilin değişkenleri, dizileri, döngüleri, koşulları vb. Vardır, bu yüzden sadece sözdizimini öğrenmekle ilgilidir.

Bunun diğer yarısı programlama ve bilgisayar biliminin temel kavramlarını anlamaktır. Bellek yönetimini, işaretçileri, özyineleme vb. Kavramları anlarsanız, hemen hemen her dilde uygulayabilirsiniz.

Kendinizi daha pazarlanabilir hale getirmek istiyorsanız, ilginizi çeken her ne olursa olsun oyunlarla ilgili bir programlama uzmanlığı öğrenin ... AI, veritabanları, ağ oluşturma, araçlar, her neyse.


1

Biraz gözden kaçmış gibi görünen çok önemli bir beceri daha var. Diğer oyun geliştiricilerinden, tasarımcılara ve proje yöneticilerine ve eşyalarına nasıl uyacak ve bir ekiple nasıl çalışacağınızı bilmeniz gerekir. Bu teknik bir beceri değil, ama yine de çok önemli, çünkü evde en iyi geliştirici olabilirsiniz ve insanlarla geçinemiyorsanız, büyük oyunlar yapmak bir sorun olacak!

Ayrıca, bir dili iyi bilen ShrimpCrackers, kabaca 5 dil bilmek ve daha önce gittiğiniz dilin başlığı altında neler olduğunu anlamaktan daha iyi olduğu için, oyunlarda olduğu gibi, en iyi performansı nasıl elde edeceğinizi bilmeniz gerekir. dil dışında.

Son olarak, donanım hakkında biraz bilgi sahibi olmak, özellikle GPU zarar görmez!


0

Sosyal oyunları programlamak için sadece gerekli olan temel beceriler vardır.

  1. Program eylem komut dosyası (bir elipse ortamı ve bir svn kullanabilirsiniz), bu oyunun ön ucu için kullanılır (web sayfası)

  2. Program java (eclipse a use svn üzerinde de yapılabilir), bu sunucu tarafı eylemleri için web sayfasının isteklerinden almak için kullanılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.