Oyun endüstrisinde iş bulmak isteyip istemediğimi öğrenmek için C ++ gerekli midir?


17

Oyun endüstrisinde iş bulmak isteyip istemediğimi öğrenmek için C ++ gerekli midir? C # 'a son derece aşinayım ve XNA 4.0'da 2D oyunlar yapma konusunda temel bir ustalığa sahibim. Şu anda sadece 13 yaşındayım ve oyun yapmayı seviyorum ve bir gün bir oyun programlama işi almayı umuyorum. Birçok insanın C ++ 'ın endüstri standardı olduğunu ve bilmeden kariyerinize zarar vereceğini söylediğini duydum. Ayrıca sadece pencerelerden daha fazla platformu hedeflemeye çalışıyorum ve Monogame'in farkındayım ama bir nedenden dolayı görsel stüdyo şablonları ile çok fazla sorun yaşıyorum ve tek eşli birçok hata buluyorum. Teknik olarak henüz bir iş alamıyorum ve muhtemelen 22 gibi bir şey kadar bir programlama işi alamadım beri (im serbest meslek sürece). Ve bu 9+ yıllık zaman diliminde oyun endüstrisi büyük olasılıkla çok değişecek.

  • C ++ öğrenmek bir programlama işi alma şansımı incitmez mi?
  • Bir iş bulabildiğim zaman C ++ hala 'endüstri standardı' programlama dili olacak
  • Ben bir indie geliştirici gerçekten C + öğrenmek ya da değil öğrenmek ve ne biliyorum sopa ile önemli mi?
  • Hatta bir iş bulamadan yıllar önce görüyorum şimdi öğrenmeye başlamak gerekir?

Ayrıca, nesne yönelimli programlamaya aşina olmama rağmen, C ++ üzerinde çok fazla zaman harcayabileceğim ve çok frustated ve kafası karışmış olabileceğinden endişeleniyorum ve sadece öğrenmeyi bıraktım ve bu zamana kadar çok sayıda XNA unuttum ve her şeyi öğrenmem gerek. Kısacası: Eğer bir programlama işi istersem C ++ öğrenmeli miyim?

GÜNCELLEME

Cevaplarınız ve Önerileriniz İçin Hepinize Teşekkür Ederiz. Son zamanlarda SFML ve C ++ aldım ve oldukça iyi gidiyor. C ++ asmak alıyorum ve yeni şeyler öğrenme hakkında endişelenmemek için gözlerimi açmaya başladım çünkü tüm C # bilgimi C ++ öğrenmeyi daha kolay hale getirebildim. Hepinize tekrar teşekkürler.


4
Oyun endüstrisinde kodlama yapmayan, kodlama yapan işlerden daha fazla iş olduğu unutulmamalıdır. Sanatçılar, proje yöneticileri, kara kutu test cihazları, tasarımcılar, satışlar, vs. İstatistiksel olarak, hayır, sektörde bir iş bulmak için C ++ öğrenmeniz gerekmez.
MichaelHouse

1
Kesinlikle şansınızı incitmez. Şimdilik çalıştığım şirket kesinlikle oyun geliştirmek için C # ve Unity kullanıyor ve C ++ gerektirmiyor. Bununla birlikte, C ++ hala bir artı olarak kabul edilir, çünkü başka bir yerde uygulanabilen birçok yararlı kavram öğretir. Bağımsız projeniz için bildiğiniz bir dile odaklanmanızı öneririm, ancak yapabildiğinizde C ++ öğrenmek için biraz zaman ayırın (sadece deneyim için).
Benjamin Danger Johnson

2
Profesyonel bir geliştiriciyseniz, araçlarınızı her zaman seçemez ve seçemezsiniz. Örneğin, Java ve MATLAB'dan bir tutkuyla nefret ediyorum. Ancak arada bir nefesimi tutup üstesinden gelmem gerekiyor. Bu yüzden, sızlanmanızı bırakın ve C ++ öğrenin. Siz oradayken de birkaç dil daha öğrenin.
drxzcl

Yapabilirken C ++ öğrenin.
jcora

Bu yazının bu soru için önemli bir okuma olduğunu hissediyorum .
Andrew Russell

Yanıtlar:


23

Üçüncü sorunuza odaklanmak istiyorum, çünkü bu benim bilgi alanım dahilinde (indie geliştiricisi):

Uzun yıllardır bir C ++ kodu satırı yazmadım. Ve aslında, birçok cesur ayrıntıyı unuttum (ve C ++ 'da bunlardan çok var ). İşlerimin çoğunu C # ile yapıyorum. Ve kesinlikle yok olması C ++ öğrenmek için.

Bununla birlikte , C ++ öğrenmekten kazandığım becerilerin - özellikle düşük seviyeli şeylerin, özellikle de bellek ve işaretçilerin nasıl çalıştığı - çok değerli olduğu kanıtlandı.

Ayrıca, başkalarının C ++ kodunu okumak zorunda kaldığım çeşitli durumlar oldu . C # veya Java'da nasıl program yapacağınızı biliyorsanız, muhtemelen neler olduğunu tahmin edebilirsiniz - ama bilmek çok daha iyidir.


Benim tavsiyem Size özellikle C ++ öğrenmektir. Yaşınızda sadece öğrenmeye harcamak için bolca zamanınız var. Bu şekilde sizi C ++ toplama konusunda endişe etmenize gerek kalmaz iken bir oyun geliştirmeye çalışan veya iş bulmasına ediyoruz.

Herhangi bir nedenle (veya XNA veya başka bir şey) C ++ kullanmayı bırakırsanız ayrıntıları unutma konusunda endişelenmeyin. Kavramlar daha önemlidir. Gerekirse ayrıntıları tekrar kolayca alabilirsiniz.


Diğer sorularınızın da işaret ettiği gibi, on yıl içinde endüstrinin nasıl görüneceğini bilmiyoruz. Her ne kadar C ++ hala oldukça yaygın kullanımda olacağını tahmin ediyorum. Şu an için konuşmak - C ++ bilmek, C ++ olmayan bir mağazada bile size istihdamda önemli bir artış sağlayacaktır.


7

Bir oyun programcısı olmak istiyorsanız, muhtemelen C ++ öğrenmekten kaçınamazsınız. Oyun endüstrisinde yapımcı veya sanatçı gibi farklı bir iş istiyorsanız, C ++ 'a ihtiyacınız yoktur.

C ++ zor. Birçok insan üniversiteye kadar öğrenmez. Çok zamanın var. Temel programlama kavramlarını hızlandırmak için diğer dillerle birlikte çalışın. Küçük başlayın ve her seferinde bir adım atın.


2
Tam tersini tartışırım. C ++, günümüzde donanıma yakın kabul edilen bir dildir ve mutlaka bilgisayar mimarisi hakkında, C # gibi daha üst düzey bir dille, çoğunlukla bellek ayırma ve adresleme hakkında öğrenemeyeceğiniz birkaç şey öğrenmeniz gerekir. Önce C # öğrenir ve onunla rahat olursanız, muhtemelen C ++ ile karşılaştırmanız gereken ek çemberler tarafından yabancılaşırsınız.
Hackworth

6

Henüz öğrenmek için çok zamanınız var, bu yüzden hangi dili kullandığınız konusunda çok endişelenmeniz gerektiğini düşünmüyorum, ancak yararlı bulabileceğiniz bazı şeyler belirteceğim:

  1. C ++ bir dildir, XNA ise bir çerçevedir. XNA artık Microsoft tarafından güncellenmeyecek, bu yüzden 9 yıl sonra ciddi bir kapasitede kullanıldığını hayal etmek inanılmaz zor. C ++ öte yandan ve sonsuza dek var olmuştur, onu geliştirmek için kararlı bir aktif standartlar komitesi vardır ve geliştiriciler donanım üzerinde o kadar kontrol sağlar ki bu kontrolü gereksiz kılmak ve böylece başka bir dilin yerine geçmesine izin vermek için donanım gücünde dev bir sıçrama yapacak yüksek performanslı oyunlar için defacto standardı olarak.

  2. Kavramları öğrenmek, uyguladığınız dil değil, önemli bir parçasıdır. Temel ilkelerini zaten anlıyorsanız, yeni bir dili oldukça hızlı bir şekilde "öğrenebilirsiniz".

  3. C ++, C # 'dan çok daha derin bir düzeyde işaretçiler ve bellek sorunları hakkında bilgi edinmenizi gerektirir, bu yüzden endüstride kullanımı ne olursa olsun bir noktada öğrenmenizi tavsiye ederim.

  4. Bir şeyleri unutma endişeniz muhtemelen temelsizdir. Bir şeyleri unutacağınız doğrudur, ancak ayrıntılar gerçekten önemli değildir. Dilleri değiştirerek bir oyunun nasıl tasarlanacağını unutmayacaksınız.

C ++ öğrenmemek için nedenleriniz var gibi görünüyor, aslında yeni bir şey öğrenmek istemediğinizi rasyonelleştirmeye çalıştığınızı düşünüyorum.

Bu şekilde düşünün: C ++ öğrenirseniz ve gelecekte kullanılmayacaksa, ne olduğunu öğrenmek için uzun yıllarınız vardır ve C ++ öğrenmiş olmanın size yardımcı olacağını garanti edeceğim. Tüm XNA'nızı unutursanız ve C ++ öğrenmeyi başaramazsanız, bunu bulmak ve ilerlemek için olasılıklar hakkında endişelenmekten daha iyi olur. Her iki durumun da çok muhtemel olduğunu sanmıyorum.


4

Genel tavsiye: ne öğrenmeniz gerektiğine ya da ne öğrenmeniz gerektiğine odaklanmayın. Sadece bir şey yap.

Özel sorunuza cevap vermek için, Microsoft artık XNA'yı güncellemeyecek, bu yüzden çok daha uzun süre olmayacak. C ++ köklü bir endüstri standardıdır ve yakında hiçbir zaman ayrılmayacaktır. AAA oyunları üzerinde çalışmak istiyorsanız, evet. C ++ deneyimi gerekli olacaktır.


Harika tavsiye, +1. Dürüst olmak gerekirse yeni diller öğrenmenin de çok önemli olduğunu düşünüyorum .
jcora

Yannbane: Ama bu ikincil değil mi? OP bir şeyler yaparken, süreç içinde öğrenmek ve öğrenmek için ihtiyaç duyduklarını keşfedecekler. Bir dili iyi öğrendikten sonra, diğerlerini öğrenmek genellikle oldukça kolaydır.
Zach Latta

Hata, hayır, değil. Hem derse hem de derse ihtiyacınız var, ancak dil öğrenmek projelere sahip olmaktan daha önemlidir. Ve hayır, sadece C # 'ı bildiğiniz için C ++' ı bildiğiniz anlamına gelmez. Ve kolay olsaydı düzenli olarak 6+ dil bilen insanları görürdünüz.
jcora

1

Soru zaten cevaplandığından, burada ve orada birkaç delik açmama izin verin ...

Ayrıca, nesne yönelimli programlamaya aşina olmama rağmen, C ++ üzerinde çok fazla zaman harcayabileceğim ve çok frustated ve kafası karışmış olabileceğinden endişeleniyorum ve sadece öğrenmeyi bıraktım ve bu zamana kadar çok sayıda XNA unuttum ve her şeyi öğrenmem gerek. Kısacası: Eğer bir programlama işi istersem C ++ öğrenmeli miyim?

C ++ 'nın korkunç bir canavar dili olduğu hakkında bu fikri nereden buldunuz? Değil! Aslında çok eğlenceli.

Doğru, yapabilirsin yakın aslında iki faydası vardır donanım, olsun: Daha fazla nasıl bilgisayar aslında işlevleri hakkında çok şey öğrenmek ve ikinci sen, diyelim ki, C # ile daha ellerinde çok daha fazla güce sahiptir.

Ama sonra tekrar, C ++ mükemmel soyutlama yöntemlerine sahiptir ve çok yararlı kütüphanelere sahiptir, bu yüzden grafik kartıyla doğrudan iletişim kuracağınız gibi değildir (kesinlikle yapabilirsiniz) - sadece soyutlanacaktır.

Herhangi bir dili bilmek çok yararlıdır, işe alınma olasılığınızı artırma şansı yüksektir ve kesinlikle sizi daha iyi bir programcı yapar.

Zamanınız olduğunda JavaScript ve / veya Python'a göz atın. Diğerleri de muhtemelen Lisp'i önerebilirdi, ama bu konuda o kadar bilgili değilim, bu yüzden bir şey söylemeyeceğim. Ama yine de kontrol etmek yararlı olabilir, sanırım kavramları hakkında sınırlı anlayışım olsa bile oldukça düzgün. Haskell de var ama bleh.

Ve bu 9+ yıllık zaman diliminde oyun endüstrisi büyük olasılıkla çok değişecek.

Doğru. Ama bilin bakalım: 9+ yılda hala C ++ ve C derlemelerini kullanacağız. Oyun geliştiricilerin aniden yeterli kaynaklara sahip olduklarına karar verecek ve makinelerin sınırlarını zorlamayı bırakacağından şüpheliyim. Tabii ki, bu sadece bir tahmin, ama tüm bu diller benden çok daha eski, bu yüzden haklı olduğumu düşünüyorum.

Ayrıca, C ++ öğrenerek potansiyel yeni bir orta seviye dile geçişinizi kolaylaştıracaksınız.

Teknik olarak henüz bir iş alamıyorum ve muhtemelen 22 gibi bir şey kadar bir programlama işi alamadım beri (im serbest meslek sürece).

Burada yanıldığından eminim. Aslında birkaç yıl içinde iş bulabileceksiniz. Ülkemin yasalarına göre çok az 2 anlamı var. Ama tam zamanlı bir iş değil.

Okul bittiğinde hala çalışma seçenekleri var ve eğer iyiyseniz ve muhtemelen iseniz, o zaman sizi işe almak isteyecek bir dev şirketi olacaktır. Gamedev şirketi mi? Muhtemelen değil. Ama aslında bir başlangıçta çalışmak istemeniz için hiçbir neden yok, AFAIK normal bir şirkette daha iyi ödeme yapabilir ve boş zamanlarınızda bir oyun üzerinde çalışabilirsiniz.

Ayrıca, adınıza bakın, sanki C ++ programlamanın sevincini zaten biliyorsunuz!


1

Henüz iş yapmıyorum (17 yaşındayım), ancak yeni dilleri ve teknolojileri keşfetmek gerçekten bir zorunluluktur. Şu anda zamanınız olsa da, C ++, OpenGL ve Java'yı öğrenin. Bunlara hakim olmak biraz zaman alır (5 yıl sürdüm, bu yüzden şu anki yaşında başladım), ancak kazandığınız deneyim gerçekten şaşırtıcı.

Denemek için iyi bir şey, Java ve OpenGL'de bir Minecraft klonu yapmaktır. Bu size birçok gamedev tekniği hakkında fikir verecektir ve size bir sürü optimizasyon tekniği öğrenecektir. Bu 16 yaşında yaptığım whay. Bunun sonucuna bir göz atabilirsiniz : CraftMania . Neden Java ile başlatılmasını öneriyorum ki programlaması kolay. Bir çöp toplayıcı ve düzgün bir istisna işleme var. Bu, C ++ deneyimsiz bir geliştirici ile birlikte gelen tüm zorlukları rahatsız etmeden OpenGL'yi çok verimli bir şekilde öğrenmenizi sağlar.

Java'yı OpenGL ile birlikte kullandığınızı hissettiğinizde, C ++ 'a bir göz atın ve bazı kolay şeyler yapmaya çalışın (henüz oyun yok). C ++ 'ın nasıl derlendiğini ve çalışma zamanında çalıştığını anladığınızı ve belleğin C ++' da nasıl düzenlendiğini bildiğinizi düşündükten sonra, kolay bir oyun yapmak için SDL'ye bir göz atın .

Neden OpenGL'ye odaklanıyorum? Çünkü OpenGL, XBox360 dışındaki her platformda çalışır. Bu: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP, vb ... Sadece Xna ve DirectX'te ustalaştığınızda, Windows ve XBox360'a bağlısınız. Oyun endüstrisinde bir programlama işi almak istiyorsanız bu OpenGL ve C ++ öğrenmek için iyi bir neden olduğunu düşünüyorum.


0

Cevabım, bunun oyun endüstrisinde ne yapmak istediğinize bağlı olmasıdır. Şu anda AAA konsol oyunları yapmak istiyorsanız, C ++ şarttır. Başka hiçbir dil, bir konsoldaki sınırlı kaynaklardan yararlanmanıza izin vermez.

Uzun zamandır C ++, oyun endüstrisinin lingua franca'sıydı, ancak iPhone ve Unity'nin ortaya çıkmasıyla artık C # ve Objective-C gibi dilleri kullanarak iyi oyunlar yapmak mümkün. HTML 5 bile şimdi oyun yapabiliyor. Basit gerçek şu ki, orada birçok seçenek var.

Yaşınızda endüstrinin nasıl geliştiğini öğrenmek ve izlemek için hala çok zamanınız var. Size tavsiyem şu olurdu: dile odaklanmayın. Oyun yapmayı öğrenmeye ve / veya dışarıdaki oyunlar için modlar yapmaya odaklanın. Bir fikir, Minecraft'ı almak ve Java kullanarak modları nasıl yapacağınızı bulmak olabilir. Herhangi bir mod yayınlamasanız bile, oyunun davranış biçimini değiştirebileceğinizi görmekten daha iyi bir şey yoktur.

Yaşınızda Basic'i kullanarak oyun yapıyordum (Commodore 64'te). RPG Maker ve daha sonra oyunları modifiye etmek için Java kullanarak. 18 yaşına gelene kadar C ++ 'a bile dokunmadım, böylece büyümek için hala bol zamanınız var.

Gerçek sorularınızı cevaplamak için:

  • C ++ öğrenmek bir programlama işi alma şansımı incitmez mi?

Bu aşamada anlatmanın bir yolu yok. 'Gerçek' bir iş aramaya başlamanız 10 yıla kadar sürebilir ve teknoloji son derece hızlı ilerliyor.

  • Bir iş bulabildiğim zaman C ++ hala 'endüstri standardı' programlama dili olacak

Yukarıdaki cevaba bakınız.

  • Ben bir indie geliştirici gerçekten C + öğrenmek ya da değil öğrenmek ve ne biliyorum sopa ile önemli mi?

Hayır. Önemli olan kaç oyunu bitirip bıraktığınızdır.

  • Hatta bir iş bulamadan yıllar önce görüyorum şimdi öğrenmeye başlamak gerekir?

Öğrenmeye başlamak için asla çok erken ya da çok geç değildir.

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.