Potansiyel işverenler iyi bir portföyde ne ararlar?


21

İşten bir arkadaşım ve ben oyun geliştirme için indie sahnesine girmek istiyoruz. Çeşitli problemler için farklı fikirler ve yaklaşımlar gösteren birkaç teknik demo yaptım. Şimdi, daha sonra yollarda bir portföy geliştirmek için bir projeye başlama zamanının geldiğini hissediyorum.

Gerçek bir projeye nasıl başlanacağına, daha özel olarak bir motor oluşturmak veya bir OTS paketi kullanmak veya bir tane daha sonra bir tane oluşturmak veya bir tane daha sonra bir tane kullanmak için çok uğraştım.

Hangi potansiyel işverenlere daha iyi görünüyor? Motorunuzu içeren daha küçük bir oyun portföyü ya da OTS?

Programcıyım. Ben sanatçı değilim Bu proje için programlamanın çoğunu gerçekleştireceğim. Arkadaşım aynı zamanda bir geliştiricidir, fakat aynı zamanda grafiksel araçlarda da uzmandır (böylece sanat adamı olur).

İşte ikimiz de .NET geliştiricisiyiz (C #). Biliyorum, biliyorum "Peki o zaman XNA kullan", bazıları bana bağırır. Şimdiye kadar tamamladığım demolar XNA’da. Ancak bir XNA portföyü oluşturmak konusunda bazı endişelerim var. DirectX'i soyutlamak güzel olsa da, XNA'nın ötesine kolayca genişletmek için gerekli bilgi tabanını oluşturamayacağımdan endişeleniyorum. Bu argümanın karşıtı muhtemelen "XNA'dan sonra DirectX'e daha kolay geçebilirsiniz", ancak kariyerleri İş Geliştirme'den Oyun Gelişimine taşıyacağım için, şu anda XNA'ya odaklanmak bile olsa değer mi? Yoksa XNA derken potansiyel işverenler kıkırdayacak mı?

Çoğunlukla aktarılacak olan kavram ve dersleri bilerek XNA deneyimini benimsemeli miyim? Veya en değerli kaynağımı (zamanımı) başka bir yere harcamak mı?

Herhangi bir sektördeki veterinere tavsiyede bulunma.


Neyi daha fazla göstermek istediğinizi kendinize sorun: esnekliğe veya ayrıntılara dikkat. Cevabınız bu. Şahsen ben esneklik için gidiyorum.
Chris Burt-Brown

Yanıtlar:


44

Konsol oyunları endüstrisinde neredeyse on dört yıldır programcı oldum ve genellikle işe alım kararlarına dahil oldum.

Bu potansiyel işverenlerden biri olarak, olası bir çalışanı değerlendirirken, yeni bir işe alımda aradığım üç şey var ve bu sırayla onları arıyorum.

  1. Bu kişi benim takımıma uyacak mı? (sosyal, hijyen vb.)
  2. Bu kişi hızlı bir öğrenici mi? (genellikle yanlış "bu kişi akıllı mı?" olarak ifade edilir.)
  3. Bu kişinin bana yardımcı olacak herhangi bir deneyimi var mı?

Şimdi soruna değiniyor. Bu "hangi tür projeyi yapmalıyım" meselesi, ilgilendiğim kriterlerin en önemlisi olarak ele alınıyor. Takımıma sosyal olarak uyum sağlayıp sağlayamayacağınıza ve yeni şeyleri ne kadar çabuk öğrenebildiğinize, XNA'yı veya kendi oyun motorunuzu önceki bir projede kullanıp kullanmamaya aldığımdan çok daha fazla önemsiyorum. Genel olarak, sizi kendi şirket içi oyun motorumuzda eğitmek zorunda kalacağımı farz ediyorum ve bu yüzden önceki projeleriniz benim için hiç önemli değil. Bu, elbette, sihirli bir şekilde bilmem gereken birine ihtiyaç duyduğum belirli bir araç veya teknoloji ile ilgili deneyiminiz olmadıkça. Ancak bu sıra dışı; genellikle, API'mızı kullanmak için sizi eğitmek zorunda kalacağımı farz ediyorum.

Bunların hepsi, ev projeleri yapmanızı istemiyorum demek değil. Kesinlikle yapıyorum. Ancak, bu projelerin ne olduğu ya da hangi teknolojileri kullandıkları umurumda değil, çünkü farklı kütüphaneler veya API'ler kullanacağımız için muhtemelen benim için yapmanız gerekenler ile alakalı olmayacaklar.

Ama bana projelerinden bahsetmeni istiyorum. Onlarla konuştuğunuzda ne kadar hevesli olduğunuzu görmek istiyorum, çünkü bu bana ne tür bir insan olduğunuzu anlatıyor (yukarıdaki 1. maddeye bakınız). Karşılaştığınız sorunları ve projenizi geliştirirken bunların üstesinden nasıl geldiğinizi duymak istiyorum (yukarıdaki 2. maddeye bakın). Kesinlikle en az bir projeyi tamamlamanızı istiyorum - acıyı zorlayabilmeniz ve bir şeyi tamamlayabilmeniz, bulunduğunuz kişi hakkında çok şey söylüyor ve bana güvenebileceğim bir kişi olduğunuzu söylüyor if ("when") durumunda işler zorlaşıyor.

Dürüst olmak gerekirse, hiçbir seçenek "daha iyi" değildir; önemli olan bir şeyi tamamlamaktır. Yol boyunca öğrendiğiniz herhangi bir teknoloji pastayı donduruyor, ancak neredeyse kesinlikle sizi işe almamı sağlayan şey değil.

(Ancak tüm bu ile .. ben olacak , C ++ 'yetkin olmasını bekliyoruz. Tek ya da bu şekilde, gerçekten ana akım oyunları sektörüne işe almak için C ++ öğrenmen gerekiyor. Eviniz projeleri mutlaka olması gerekmez C ++ 'da, ancak içinde akıcılığını gösterebilmenizi bekleyeceğim.


3
Bu harika bir cevap. İşe alma sürecine bakış açımı değiştirdiğiniz için çok teşekkür ederim.
ultifinitus

Üçüncü taraf yazılımı kullanabilmek her zaman büyük bir artıdır, ancak 'hızlı bir şekilde öğrenir' altına girebilir.
Valmond

Üçüncü taraf yazılımlarla birlikte çalışmayı bilmeyen bir programcıyla tanışmanızın muhtemel olduğunu sanmıyorum. Herkes zaten libc veya STL veya OpenGL veya DirectX veya Windows API veya her neyse, belgelenmiş bir üçüncü taraf API'sine yazıyor. Ticari endüstrideki aynı beceriler, genellikle daha az bilinen kütüphaneler kullanılıyor. :)
Trevor Powell

2
+1 Portfolyo parçaları titiz standartlara uymak zorunda değildir. Bunların amacı, bir programcının bakış açısından ilginç olması için neredeyse bir röportaj için konuşma parçaları olarak hizmet etmek.
ChrisC

1
@ ShuvoSarker Büyük şirketler için bu hala doğru. EA, sizi işe almayı düşündüklerinde Frostbite motorlarında uzman olmanızı beklemeyecektir. Ubisoft, Kardelen'i bilmenizi beklemeyecektir. Ancak bu cevabı gönderdiğimden altı yıl sonra, belki de daha küçük şirketler için değişti. Birlik, küçük stüdyo alanında, Unity'yi tanımanın, kesinlikle herkes kendi tescilli motorlarını kullandığında geri dönüşü olmayan bir şekilde, şansınızı kesinlikle destekleyebileceğini düşünmenin çok gerçekçi olduğunu düşündürecek kadar büyük bir güç haline geldi.
Trevor Powell,

12

Diğerlerinin henüz bahsetmediği bir şey, projelerinizi bitirmenin önemli olduğudur.

Tamamlanmamış bitmiş şeylerden oluşan bir portföy sahibi olmak, bitmiş, iyi cilalanmış bir şey içeren bir portföy kadar etkileyici değildir.

Ayrıca, çalışmanızı bir başkasının mevcut çalışmalarına (bazı açık kaynaklı motorlar veya serbestçe kullanılabilir sanat varlıkları gibi) dayandırırsanız, portföyünüzde hangi kısmın sizin olduğundan bahsettiğinizden emin olun.


1
% 100 emin değilim, anladığım kadarıyla bitmemiş şeyleri olan pek çok insan alıyoruz, bu çok yaygındır ve işlerinin kalitesiyle çok fazla ilişkisi yoktur. Bir şeyi bitirmek kabiliyeti değil, adanmışlığı gösterir.
Chris Burt-Brown

Sanırım kendilerine göre.
Jari Komppa

4

Bana öyle geliyor ki cevabı ne tür bir oyun programlaması yapmak istediğinize bağlı.

Amacınız bir motorlu kodlayıcı veya grafik kodlayıcı olmaksa , kaputun altına girmekten ve motorların nasıl çalıştığını öğrenmekten faydalanırsınız. Bu, XNA veya başka bir hazır motor, çerçeve vb. Kullanamayacağınız anlamına gelmez. Yüksek kaliteli bir motorun iç kısımlarını tanımak, yüksek kaliteli bir motor yapmayı öğrenmenin harika bir yoludur! Bu yola giderseniz, mutlaka herhangi bir gerçek oyun yazmanıza gerek yoktur. Bağımsız grafik demoları ve / veya mevcut bir motora önemsiz uzantılardan oluşan bir portföy (örneğin bir motora ya da benzerine yeni bir gölgelendirici uygulamak) iyi iş çıkarır. Grafik demoları portföyüme buradan bakabilirsiniz.; şimdi birkaç yıl geçmiş, ancak bu temelde bana bir oyun stüdyosunda grafik programlama işi kazandırdı.

Öte yandan, bir oyun kodlayıcı olmayı tercih ediyorsanız , oyun mekaniği, kontroller, düşman yapay zekası vb. Üzerinde çalışan insanlardan biri olmanız durumunda , zamanınız Direct3D'ye kazmak için harcanmayacak. Elbette, grafiklerin nasıl çalıştığı hakkında genel ve üst düzeyde bir anlayışa sahip olmak yararlıdır, ancak profesyonel bir bağlamda muhtemelen çok düşük seviyeli grafiklerle doğrudan temas etmeyeceksiniz. Bu durumda, gerçek bir oyun oluşturmak için zamanınızı harcayabileceğiniz bir hazır motor kullanmanızı kesinlikle tavsiye ederim.

Yani, özetlemek gerekirse, oyun oynamak istiyorsanız, sadece mevcut bir motoru kullanın; Motor / grafik yapmak istiyorsanız, kendi malzemelerinizi oluşturun ve / veya mevcut bir motoru uzatın.


Cevabını takdir ediyorum. Bana daha iyi bir yön duygusu veriyor. Kendimi daha çok motor programcısı olarak görüyorum. Harcanan süre boyunca (deneyiminize dayanarak), soyutlamayı atlayıp D3D'ye dalmanın daha iyi olduğunu düşünüyor musunuz?
Justin Self

1
D3D başlamak için harika bir yer olurdu. Daha sonra, başkalarının büyük ölçekli yapı ve organizasyonu nasıl yaptıklarına dair bir fikir edinmek için bazı açık kaynaklı motorları da kontrol etmek isteyebilirsiniz. Ayrıca geniş ve yabancı bir kod tabanına atlamak ve her kod satırını okumadan anlamaya çalışmak iyi bir uygulamadır.
Nathan Reed

Tamam, Trevor ile birlikte cevabın gerçekten ihtiyacım olanı verdi. Utanç İki cevap seçemiyorum; yani +1. Sağol Nathan. Gerçekten onu takdir ederim.
Justin Self


1

Portföyünüzü, “standardı” nasıl algıladığınıza göre yapmayın. Sen ilgilendiren projeler üzerinde çalışması gerekir sizi . Oyun mekaniklerini seviyorsanız, devam edin ve bir sürü oyun yapın. İlginç AI oluşturmayı seviyorsanız, RTS benzeri bir kurulum için bir demo yapın. Örnek olarak, grafik programlamaya ilgi duymaya ve grafik oluşturma kavramlarını öğrenme ve bunları motoruma uygulama konusunda daha fazla zaman ayırmaya devam ediyorum. (Sonuç olarak, oyun projem geçici olarak rafa kondu.)

En çok sevdiğiniz şeyler üzerinde çalıştığınızda, gerçekten portföyünüzdeki "sizi" ortaya çıkarır. Öte yandan, en az bir tane tamamlanmış oyuna sahip olmak, oyun oynamanın "ilginç" kısımlarını ele alabileceğinizi gösterir. Az bilinen bir bölgeye girebilmek için bir dereceye kadar esnekliğe sahip olmak iyidir, ancak kendinizi yoğun bir şekilde zorlamayın. Çalışmaya duyulan coşku ve ilgi düzeyinden iyi portföyler söyleyebilirsiniz ve ilgilendiğiniz alanlara dayalı projeler doğal olarak en fazla cilaya sahip olacaktır. Dolayısıyla, ilgilendiğiniz alan ne olursa olsun, nihayetinde bir iş için bu programlama alanına odaklanmanız gerekecektir.

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.