Apa tugas khas sehari-hari seorang programmer game entry level? [Tutup]

64

Apa yang ingin saya ketahui adalah: Apa tugas sehari-hari seorang programmer lulusan di tempat kerja industri game? Apakah sebagian besar coding, menganalisis, mendesain, atau apa?

Terima kasih.

PS Saya sedang berada di tahun kedua Universitas saya saat ini dan sedang berusaha untuk mengkhususkan diri dalam pemrograman game, khususnya gameplay, alat atau pemrograman UI.

kymully
sumber

Jawaban:

103

Berdasarkan pengalaman saya (di Amerika Serikat, disewa keluar dari perguruan tinggi ke sebuah proyek yang baru saja keluar dari prototyping dan merupakan tim sekitar 50, kemudian dibatalkan, kemudian kami melanjutkan untuk membuat dua game lagi selama empat tahun saya. ada di sana dengan total basis pengembang sekitar 200),

  • Anda mungkin akan menghabiskan sekitar 50-70% dari pemrograman waktu Anda. Saat ini, saya memasukkan 'hal-hal menyenangkan' seperti membuat fitur yang benar-benar pintar, dan juga saat Anda menatap tumpukan memori selama 8 jam berturut-turut untuk mencari tahu apa yang macet. Mungkin 25-50% dari itu adalah pemrograman duduk-di-keyboard-dan-get-in-the-zone Anda yang sebenarnya.
  • Lain 15-25% dalam rapat dan tugas-tugas administrasi, seperti bug triase, pertemuan tentang bug triase, penjadwalan, dokumentasi tingkat tinggi untuk programmer dan produsen lain, email, seluruh pembaruan status proyek / perusahaan, dan sebagainya. Ini tergantung pada seberapa banyak otonomi yang Anda miliki - jika Anda tidak memiliki otonomi, maka Anda akan menghabiskan lebih banyak waktu pemrograman, karena Anda akan menghabiskan lebih sedikit waktu untuk mengatur jadwal Anda sendiri. Jika Anda lebih mengontrol jadwal Anda, Anda mungkin bisa mengerjakan hal-hal yang lebih menarik, tetapi kemudian Anda perlu menghabiskan waktu melakukan hal-hal ini.
  • Lain 15-25% membantu desainer / seniman, menghadiri pertemuan kreatif sebenarnya tentang permainan, tetap up to date dengan dokumen desain game, dan sebagainya.

Ketika Anda naik di tingkat gaji, waktu yang Anda habiskan untuk pemrograman mungkin akan turun . Anda harus membuat lebih banyak keputusan administratif, dipanggil untuk membantu orang yang kurang berpengalaman dalam tim, dan menghabiskan lebih banyak waktu untuk melakukan dokumentasi dan tinjauan kode / arsitektur. Di sisi positifnya, kualitas pemrograman mungkin akan naik; Anda akan dapat bekerja pada fitur yang lebih menarik (dan lebih banyak bug yang membuat frustrasi).

Apakah waktu yang Anda habiskan untuk membantu perancang dan artis naik, turun, atau tidak benar-benar berubah, tergantung pada area tempat Anda ingin bekerja. Jika Anda ingin bekerja di UI, alat, dan gameplay, perkirakan waktu itu akan meningkat ke atas 50% saat Anda mendapatkan lebih banyak pengalaman. Anda akan duduk bersama desainer senior untuk merencanakan dan mendemokan alat baru dan melihat bagaimana mereka menggunakan yang sudah ada. Sayangnya, waktu ini juga keluar dari jadwal pemrograman Anda.


sumber
Tidak persis bagaimana saya mengingatnya, tetapi itu membantu ketika rekan pelatihan Anda benar-benar mengajari Anda hal-hal ;-)
coderanger
@coderanger: Saya rasa kami tidak mendapat banyak bantuan dari mitra pelatihan kami. ;)
26

Selain poin-poin diskusi tingkat tinggi yang diangkat Joe, ada beberapa hal lain yang harus Anda ketahui.

  • Anda biasanya akan menggunakan semacam pelacakan bug atau alat pelacak tugas yang akan digunakan pemimpin Anda untuk menetapkan tugas kepada Anda. Kadang-kadang mereka sama (yaitu FogBugz). Terkadang daftar bug Anda akan melalui penerbit dan daftar tugas Anda ada di wiki internal. Anda tidak hanya duduk dan mulai melakukan apa pun , tugas Anda akan diarahkan.
  • Terkadang Anda akan diminta untuk memperkirakan tugas Anda. Ini tersirat saat menggunakan sistem seperti FogBugz. Sebagian dari tanggung jawab Anda akan / seharusnya / dapat untuk memecah fitur tingkat yang lebih tinggi menjadi bagian-bagian yang dapat Anda gunakan untuk memperkirakan dengan tepat berapa lama waktu yang dibutuhkan untuk tujuan melihat bagaimana di jalur Anda menyelesaikan menyelesaikan tonggak, dll.
  • Banyak studio telah pindah ke metodologi gaya yang lebih gesit / scrumm. Memperbarui grafik burn down (yaitu mengatakan Anda menghabiskan X jam pada tugas Y dan berharap dilakukan dalam waktu Z) cukup umum. Rapat standup harian mungkin sedikit lebih umum. Bagaimanapun Anda akan memberikan visibilitas apa yang sedang Anda kerjakan.
  • Anda akan menggunakan kontrol versi / sumber. Semakin besar studio, semakin besar kemungkinan mereka menggunakan Perforce. Anda harus mengetahui dasar-dasarnya (memeriksa file, melakukan file, dapat menyelesaikan konflik gabungan lokal Anda). Anda mungkin juga dipanggil untuk memahami percabangan dan penggabungan cabang. Beberapa studio bekerja di mana semua pengembang mendapatkan cabang lokal mereka dan Anda dapat check-in sebanyak yang Anda inginkan dan menggabungkan ketika cabang Anda. Studio lain (kami) hanya memiliki kebijakan "tidak melanggar utama", jadi Anda harus memastikan Anda memperbarui, melakukan tes cepat untuk memastikan Anda tidak merusak apa pun, lalu check in. Beberapa studio tidak memiliki bahwa kebijakan dan orang-orang melanggar omong kosong sepanjang waktu dan itu sangat menjengkelkan dan Anda harus belajar cara mengatasinya.
  • Ulasan kode cukup umum. Terkadang mereka adalah kode-departemen-lebar. Tim kami menggunakan pendekatan kode teman di mana lebih banyak ulasan untuk ulasan tentang checkin. Apa pun cara Anda seharusnya diminta untuk memberikan analisis kritis terhadap kode orang lain.
Tetrad
sumber
11

Saya baru saja menyelesaikan magang 4 bulan untuk mengerjakan game yang sangat besar. Proyek ini sangat terlambat ketika saya sampai di sana, jadi sebagian besar yang saya lakukan adalah memperbaiki bug. Itu mungkin akan menjadi bagian yang layak dari waktu saya ... menggunakan pengalaman saya dengan pengkodean untuk memperbaiki bug, bukannya pengalaman saya dalam pengembangan game untuk merancang atau mengembangkan fitur.

Banyak yang saya lakukan juga terkait dengan IT. Mengembangkan alat internal adalah hal besar - beberapa untuk secara langsung membantu dengan game dev, beberapa untuk mengotomatisasi hal-hal yang dilakukan secara manual sebelumnya. Dan tentu saja, perbaikan bug untuk alat lain, termasuk pemasang Microsoft Games for Windows Live.

Playtesting adalah bagian lain yang lumayan besar, dan saya juga bertanggung jawab untuk membuat beberapa build yang didorong ke playtesters. Bug di dunia game cukup sulit untuk dilacak dan membutuhkan banyak pekerjaan untuk mengetahui penyebabnya.

Saya tidak berspesialisasi dalam permainan atau grafik, jadi agaknya pekerjaan apa pun yang Anda lakukan akan lebih terkait dengan keahlian Anda daripada ini. Tapi saya harap ini memberi Anda ide.

Matius Baca
sumber
4

Proyek tahun terakhir saya adalah pada elemen kanvas HTML5. Saat ini saya sedang mengerjakan magang selama dua bulan terakhir di mana saya harus mem-port game flash yang ada ke kanvas HMTL5.

Dari apa yang bisa saya ceritakan tentang kehidupan saya di sini, yah itu sulit. Tim persyaratan memiliki tuntutan yang sangat spesifik. Apa klik mouse seharusnya melakukan apa, bagaimana efeknya harus diterapkan pada permainan. Tidak peduli betapa sulitnya untuk programmer bahkan untuk permintaan paling konyol, itu harus diatasi, dan setelah semua persyaratan diimplementasikan. Pelaporan bug dimulai. Tuhan itu menyebalkan. Ini benar-benar mulai membuat Anda gelisah. Offset 1px untuk satu klik dapat membuat hidup Anda seperti neraka, percayalah! Ini bisa berarti penataan baru seluruh posisi Anda dan ruang interaksi untuk itu Anda dapat mengakomodasi keinginan dan fantasi mereka.

Tapi ini juga menyenangkan! :) Kegembiraan menulis bahwa satu fungsi yang benar-benar cerdas, berinteraksi dengan komunitas tentang bagaimana Anda dapat menciptakan kembali fungsi yang dilakukan flash secara otomatis. Semua itu. Saat-saat seperti itu Anda tidak menyesal memiliki pekerjaan itu. Membuatnya terasa seperti pekerjaan terbaik di dunia, dan bagi keponakan saya yang paling keren di dunia.

Jadi hari biasa dalam pekerjaan saya akan datang untuk bekerja menerapkan fungsi. Meneliti dan mencari satu fungsi yang memungkinkan fitur. Mendapatkan diuji dari kode itu. Memperbaiki kode itu. Berdiskusi dengan komunitas tentang bagaimana kode itu dapat dioptimalkan. Kemudian menulis apa yang saya rasakan adalah program terbaik di dunia: P

Pada akhirnya, sebagian besar puas dengan apa yang telah saya capai, kadang-kadang masih tegang di mana saya bisa melakukan lebih baik dan apa yang bisa saya lakukan berbeda dan menyempurnakan itu. Saya hanya dalam tahap pemula dan jadi saya mungkin tidak dapat memberi saran tentang bagaimana hal itu terjadi di masa depan tetapi sampai sekarang .. Saya pikir saya harus melakukan pekerjaan yang paling keren :)

Shouvik
sumber