Giriş seviyesi bir oyun programcısının tipik günlük görevleri nelerdir? [kapalı]


64

Bilmek istediğim şey: Bir lisansüstü programcının oyun endüstrisi işyerindeki günlük görevleri nelerdir? Çoğunlukla kodlama, analiz etme, tasarlama mı yoksa ne?

Teşekkür ederim.

PS Şu anda Üniversitenin ikinci yılındayım ve oyun programlaması, özellikle oyun, araçlar veya UI programlama konularında uzmanlaşmak için çalışıyorum.

Yanıtlar:


103

Tecrübelerime dayanarak (Amerika Birleşik Devletleri'nde, prototipten yeni çıkmış ve yaklaşık 50 kişilik bir ekiple kolejden işe alındı, sonra iptal edildi, sonra dört yıl boyunca iki oyun daha yaptık. yaklaşık 200 toplam geliştirici üssü vardı),

  • Muhtemelen zaman programlamanızın% 50-70'ini harcayacaksınız. Bu zamanda, gerçekten zekice bir özellik kazanma gibi 'eğlenceli şeyleri' ve 8 gün boyunca neyin düştüğünü anlamaya çalışırken bir bellek döküntüsüne bakıyorsunuz. Belki de bunun% 25-50'si klavyenizdeki ve sitedeki bölgeye girme biçimindeki uzun biçimli programlamadır.
  • Böcek triyajı, böcek triyajı hakkındaki toplantılar, zamanlama, diğer programcılar ve üreticiler için üst düzey belgeler, e-posta, tüm proje / şirket durumu güncellemeleri vb. Gibi toplantılarda ve idari görevlerde% 15-25 oranında. Bu ne kadar özerkliğe sahip olduğunuza bağlıdır - özerkliğiniz yoksa, o zaman daha fazla zamanlama harcayacaksınız, çünkü kendi zamanlamanızı ayarlamak için daha az zaman harcayacaksınız. Programınızı daha fazla kontrol altına alırsanız, daha ilginç şeyler üzerinde çalışabilirsiniz, ancak o zaman bu işleri yapmak için zaman harcamanız gerekir.
  • % 15-25 oranında başka tasarımcılara / sanatçılara yardımcı olmak, oyunla ilgili yaratıcı toplantılara katılmak, oyun tasarımı dokümanlarını takip etmek vb.

Eğer ödeme sınıfta kadar gitmek gibi, zaman programlama muhtemelen gidiyor harcamak inmek . Daha fazla idari karar vermek zorunda kalacaksınız, ekipte daha az deneyimli kişilere yardım etmek için çağrılacaksınız ve dokümantasyon ve kod / mimari incelemesi yapmak için daha fazla zaman harcamak zorunda kalacaksınız. Artı tarafta, programlamanın kalitesi muhtemelen artacaktır; daha ilginç özellikler (ve daha sinir bozucu hatalar) üzerinde çalışacaksınız.

Tasarımcılara ve sanatçılara yardım etmek için harcadığınız zamanın artması, azalması veya gerçekten değişmemesi, çalışmak istediğiniz alana bağlıdır. Kullanıcı arayüzü, araçlar ve oyun üzerinde çalışmak istiyorsanız, bu sürenin artmasını bekleyin. daha fazla tecrübe kazandıkça% 50'ye kadar. Yeni araçları planlayıp demonte etmek ve mevcutları nasıl kullandıklarını görmek için üst düzey tasarımcılarla birlikte oturacaksınız. Ne yazık ki, bu sefer de programlama zamanlamanızdan çıkıyor.


Tam olarak hatırlamıyorum ama eğitim partneriniz size bir şeyler öğrettiğinde yardımcı oluyor ;-)
coderanger

@coderanger: İkimizin de eğitim ortağımızdan fazla yardım aldığını sanmıyorum. ;)

26

Joe'nun ortaya çıkardığı yüksek tartışma konularının dışında, bilmeniz gereken birkaç şey var.

  • Genelde, liderinizin size görev atamak için kullanacağı bir tür hata izleme veya görev izleme aracı kullanıyor olacaksınız. Bazen onlar aynıdır (yani FogBugz). Bazen hata listeniz bir yayıncıdan geçer ve görev listeniz dahili bir wikide bulunur. Siz sadece oturun ve ne olursa olsun yapmaya başlayın , görevleriniz yönlendirilmeyecek.
  • Bazen görevlerinizi tahmin etmeniz istenir. FogBugz gibi sistemler kullanılırken bu çok önemlidir. Sorumluluklarınızın bir kısmı, daha ileri düzeyde bir özelliği, kilometre taşlarını bitirmek için nasıl bir yol izleyeceğinizi görmek için ne kadar süreceğini uygun bir şekilde tahmin etmek için kullanabileceğiniz parçalara bölmektir.
  • Birçok stüdyo daha çevik / aldatıcı stil metodolojilerine geçmiştir. Yanma çizelgelerinin güncellenmesi (yani, X saatini Y görevine harcadığınızı ve Z zamanında yapılmasını beklediğinizi söyleyerek) oldukça yaygındır. Günlük standup toplantıları muhtemelen biraz daha yaygındır. Her iki durumda da, üzerinde çalıştığınız şeyle ilgili biraz görünürlük sağlayacaksınız.
  • Sürüm / kaynak kontrolünü kullanacaksınız. Stüdyo ne kadar büyük olursa, Performance'ı kullanma olasılıkları o kadar yüksek olur. Bunun temellerinin farkında olmalısınız (dosyaları kontrol etme, dosyaları işleme koyma, yerel birleştirme çakışmalarınızı çözebilme). Dallanma ve dallanma dallarını anlamak için çağrılabilir. Bazı stüdyolar, tüm geliştiricilerin yerel şubelerini aldıkları yerlerde çalışır ve şubeniz ne zaman isterseniz, istediğiniz kadar check-in yapabilir ve birleştirebilirsiniz. Diğer stüdyolar (bizimkiler) sadece "ana kırma" politikasına sahiptir, bu yüzden güncelleme yaptığınızdan emin olun, hiçbir şeyi kırmadığınızdan emin olmak için hızlı bir test yapın, sonra kontrol edin. Bazı stüdyolarda Bu politika ve insanlar her zaman saçma sapan ve bu çok can sıkıcı bir durum ve bunun için nasıl çalışacağınızı öğrenmek zorundasınız.
  • Kod incelemeleri oldukça yaygındır. Bazen kod departmanı çapındalar. Ekibimiz, check-in incelemeleri için bire-bir birebir kod yaklaşımı kullanıyor. Her iki durumda da, diğer halkların kodunun eleştirel bir analizini vermeniz istenmesini beklemelisiniz.

11

Çok büyük bir oyunda çalışmak için 4 aylık bir staj yaptım. Oraya vardığımda proje çok geç olmuştu, bu yüzden yaptığım çoğu hata onarımıydı. Muhtemelen zaten zamanımın nezih bir parçası olacaktı ... deneyim tasarlamamı kullanarak, deneyim geliştirmek yerine kodlama ile deneyimimi kullanmak, deneyim geliştirmek ve özellikleri geliştirmek ya da geliştirmek için.

Yaptıklarımın çoğu BT ile de ilgiliydi. Dahili araçların geliştirilmesi büyük bir şeydi - bazıları doğrudan oyun devine yardım etmek, bazıları daha önce manuel olarak yapılan işleri otomatikleştirmek için. Ve elbette Microsoft Games for Windows Live yükleyici de dahil olmak üzere diğer araçlar için hata düzeltmeleri yapıldı.

Oyun testi, terbiyeli bir şekilde daha büyük olan bir bölümdü ve ben de oyun alanlarına itilmiş olan bazı yapımları yapmaktan sorumluydum. Oyun dünyasındaki böceklerin izini sürmek oldukça zordur ve nedenini bulmak için çok çalışma gerektirir.

Oyunlarda veya grafiklerde uzmanlaşmamıştım, bu yüzden muhtemelen yaptığınız her işte uzmanlığınız bundan daha fazla alakalı olacaktır. Ama umarım sana bir fikir verir.


4

Son yıl projem HTML5 canvas öğesinde. Şu anda son iki aydır stajyerlik çalışıyorum ve mevcut flash oyununu HMTL5 canvas'a aktarmalıyım.

Buradaki hayatım hakkında sana söyleyebileceklerime göre, zor. Gereksinim ekibinin çok özel talepleri var. Hangi fare tıklaması ne yapmalı, efektler oyuna nasıl uygulanmalıdır? En aptalca istek için bile, programcı için ne kadar zor olursa olsun, ele alınması gerekir ve tüm gereksinimler uygulandıktan sonra. Hata bildirimi başlar. Tanrı bu can sıkıcıdır. Gerçekten sinirlerine dokunmaya başlar. Bir tıklama için 1 piksel ofset hayatınızı cehenneme çevirebilir, bana güvenin! Tüm konumlandırma ve etkileşim alanınızı, onların kaprislerine ve düşlemlerine uyum sağlayabilmeniz için yeni yapılanma anlamına gelebilir.

Ama aynı zamanda eğlenceli! :) Bu gerçekten akıllı bir işlevi yazmanın mutluluğu, flash ile otomatik olarak yapılan bir işlevi nasıl yeniden oluşturabileceğiniz topluluğuyla etkileşime geçiyor. Hepsini. Onun gibi zamanlar o işe sahip olduğun için pişman değilsin .. Dünyadaki en iyi iş gibi hissettiriyor ve yeğenlerim dünyanın en havalı.

Bu yüzden işimdeki düzenli bir gün, bir işlevi yerine getirme işine gelecekti. Bir özelliği mümkün kılan bir işlevi araştırmak ve araştırmak. Bu koddan test yaptırmak. Bu kodu düzeltiyorum. Toplulukla bu kodun nasıl optimize edilebileceği üzerine tartışma. Öyleyse hissettiğim şeyleri yazmak dünyadaki en iyi program: P

Günün sonunda, çoğunlukla başardıklarımdan memnun kaldım, bazen hala daha iyisini nerede yapabileceğime ve farklı ve mükemmelleştirebileceğim şeylere gergin oldum. Ben sadece başlangıç ​​aşamasındayım, bu yüzden gelecekte nasıl olacağı konusunda size tavsiyede bulunamayabilirim ama şu andan itibaren .. En havalı bir iş yapmam gerektiğini düşünüyorum :)

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.