Apa keterampilan dasar yang harus dimiliki oleh seorang Pemrogram Game Profesional? [Tutup]

11

Saya memiliki pertanyaan yang sangat umum yang mengganggu saya tetapi saya ingin menambahkan beberapa detail terlebih dahulu. Saya seorang programmer Java inti. Saya telah membuat beberapa game kecil di Jawa untuk kesenangan. Sekarang, semakin saya mencari pengembangan game profesional, semakin saya bingung. Ini karena, setiap kali saya Google tentang beberapa topik pengembangan game atau mengunjungi forum lain, dll, saya menemukan berbagai saran.

Beberapa akan mengatakan C ++ baik, sementara beberapa akan mengatakan JAVA mungkin lebih baik, sementara yang lain akan mengatakan beberapa bahasa lain adalah bahasa-ur Anda, seperti Python, Lua, UnrealScript, dll. Juga disarankan bahwa seseorang harus memiliki pengetahuan tentang mesin permainan seperti Unreal, Torque, Blender, Panda, dll dan pengetahuan tentang OpenGL, AI, Collision Detection diperlukan. Saya bahkan telah membuat game menggunakan Android SDK.

Yang ingin saya tanyakan adalah:

  • Apa keterampilan dasar yang harus dimiliki oleh seorang Pemrogram Game Profesional? Apakah ada 1 Bahasa Pemrograman + 1 Bahasa scripting + 1 Pengetahuan mesin game + OpenGL? (Fiuh !!)
  • Jika saya ingin masuk ke dalam Industri Game sebagai Gameplay Programmer atau AI programmer maka bisakah saya masuk ke dalamnya dengan keterampilan dan portofolio saya saat ini (seperti yang dinyatakan di atas)?
  • Apakah belajar satu bahasa pemrograman sudah cukup untuk Pengembangan Game?

Pedoman apa pun akan sangat membantu.

GamDroid
sumber

Jawaban:

6
  1. Anda harus mahir dan kompeten dengan setidaknya satu bahasa pemrograman. Melakukan hal itu akan membantu Anda mempelajari bahasa lain dengan lebih mudah. Jenis pekerjaan yang Anda lamar tergantung pada bahasa apa yang mungkin harus Anda ketahui sebelumnya. Sebagian besar judul triple A yang dirilis pada PC dan konsol kemungkinan besar akan dikembangkan di C ++. Aplikasi dan game seluler kemungkinan besar akan menggunakan Java (Google Android dan ponsel lain) atau Objective-C (iPhone). Jika Anda melihat-lihat daftar pekerjaan untuk insinyur perangkat lunak di situs web pengembang, biasanya akan disebutkan pengalaman bahasa apa yang perlu Anda miliki. Misalnya, "Mahir dan berpengetahuan luas dalam C ++" atau "Pengalaman dengan C ++ setidaknya selama dua tahun." Mempelajari bahasa scripting tidak akan menyakiti Anda. Itu hanya akan menguntungkan Anda. Belajar selalu bermanfaat, dan tidak pernah sakit. Anda tidak perlu memiliki pengetahuan tentang mesin permainan apa pun, tetapi jika Anda melamar ke perusahaan yang menggunakan mesin tertentu, itu mungkin akan membantu Anda melanjutkan. Jika Anda seorang ahli di mesin Sumber, tetapi Anda berlaku untuk perangkat lunak id dan tidak tahu apa-apa tentang mesin teknologi id, itu tidak benar-benar super membantu (tetapi pembelajaran yang bermanfaat selalu bermanfaat).

  2. Jika Anda telah menyelesaikan proyek dari awal hingga selesai, dan Anda menunjukkan bahwa Anda sudah melakukannya, maka saya pikir itu akan membantu meningkatkan resume Anda. Saya tidak yakin tentang sejumlah demo teknologi. Banyak orang tampaknya melakukan demo teknologi dan mereka tidak memiliki atau beberapa proyek game selesai. Programmer gameplay cenderung menjadi jr. posisi level, jadi ya, tergantung pada resume Anda, Anda harus dapat menemukan pekerjaan di suatu tempat.

  3. Saya pikir mengetahui satu bahasa dan bisa menggunakannya dengan mahir dan kompeten lebih baik daripada mengenal 5 bahasa dan hampir tidak tahu bagaimana menggunakannya.

Penafian: Tidak pernah bekerja di industri, ini hanya pendapat saya yang telah dibentuk setelah membaca beberapa utas dan artikel tentang pekerjaan pemrograman game, berdasarkan apa yang saya pikir adalah artikel / opini paling masuk akal yang pernah saya baca.

Kerupuk Udang
sumber
7
Saya akan menambahkan poin 1 dengan "pengetahuan tentang satu bahasa pemrograman yang menggunakan pointer ." Pointer adalah persyaratan mendasar untuk memahami apa yang sedang terjadi dengan bahasa yang tidak pernah memiliki pengalaman dengan mereka dapat menjadi kerugian besar ketika pergi ke bahasa yang membutuhkannya. C ++ sangat lazim untuk non-web-game, jadi sebaiknya Anda mulai di sana.
Tetrad
@ShrimpCrackers Anda tahu bahwa Anda dapat membuat sebenarnya "Bullet Points" menggunakan editor, kan? ;)
Ben
Anda harus menunjukkan untuk mengetahui setidaknya bahasa pemrograman yang tidak banyak digunakan dalam industri tetapi memiliki beberapa kekhasan yang menarik: ini mengkomunikasikan bahwa Anda belajar karena minat terhadap peluang, bahwa Anda adalah polyglot yang memahami berbagai filosofi / pendekatan dan Anda dapat (mudah-mudahan ) menggabungkan yang terbaik dari kedua dunia.
FxIII
2

Semakin saya meneliti topik ini dan berbicara dengan pengembang game profesional, semakin saya pikir itu benar-benar bermuara pada beberapa hal. Tanpa urutan tertentu:

  • Kemampuan untuk bekerja bersama dengan baik dalam suasana tim. Membangun game membutuhkan jumlah orang yang luar biasa, hanya membaca kredit di beberapa game AAA saat ini membutuhkan waktu 10+ menit, jika Anda tidak dapat bekerja dengan baik dengan orang-orang dan tujuan Anda adalah bekerja dengan orang lain untuk membuat permainan yang hebat maka saya takut ini bukan industri yang tepat. Ini adalah salah satu soft skill yang biasanya dikembangkan dari waktu ke waktu dari mengerjakan proyek dengan orang lain.
  • Temukan apa yang ingin Anda lakukan. Ini semacam open ended tetapi cari tahu apa yang Anda sukai tentang pengembangan game dan keterampilan apa yang Anda butuhkan untuk mencapai ini. Saya tahu ini adalah jenis jawaban yang Anda cari, tetapi saya dapat mempelajari semua keterampilan yang Anda butuhkan untuk menjadi pengembang mesin, pengembang grafis atau pengembang gameplay, tetapi Anda dapat menemukan banyak informasi itu dengan mudah secara online. Keterampilan Anda akan perlu untuk mengikat sangat erat dengan apa yang Anda minati. Mis: Jangan khawatir tentang mengetahui dan keluar dari OpenGL dan DirectX jika Anda benar-benar tertarik dalam pengembangan sisi Server dan sebaliknya.
  • Mahir dalam Bahasa Tingkat Rendah Dengan kata-kata di atas, saya setuju dengan poster-poster lain bahwa bahasa tingkat rendah adalah ide yang bagus untuk dipelajari. Saya tahu ketika saya beralih dari C # ke C ++ Saya belajar banyak tentang bagaimana keajaiban C # bekerja, ini adalah pengetahuan yang memberi Anda pemahaman yang baik tentang bagaimana berkomunikasi secara efektif dengan komputer terlepas dari bahasa.
  • Memahami arsitektur komputer - Dengan ini saya tidak bermaksud bahwa Anda harus memiliki gelar dalam CE atau EE untuk benar-benar memahami setiap bagian dari arsitektur komputer, tetapi ketahui dasar-dasar cara kerja memori, CPU dan GPU. Terlepas dari bidang pengembangan game yang Anda masuki, akan bermanfaat untuk setidaknya memahami cara kerjanya. Jika Anda ingin terjun ke pemrograman Grafik atau pemrograman Mesin maka Anda perlu memahami lebih dalam ruang ini.
Kyle C
sumber
5
Anda benar-benar merasa tua ketika orang memanggil C ++ bahasa tingkat rendah
dreta
@dreta Saya tidak setua itu dan saya juga tidak melihatnya sebagai bahasa tingkat rendah. Mungkin ada hubungannya dengan C ++ sebagai bahasa pertama yang saya gunakan.
Paul Manta
2

Banyak tergantung pada tujuan karir Anda. Jika semua yang Anda inginkan adalah "permainan pekerjaan" sebelum melakukan persyaratan 5,5 tahun dan terbakar dan pergi, maka saya kira Anda hanya melihat lowongan pekerjaan entry-level dan mencari apa yang mereka inginkan, mempelajarinya, dan melamar. Sederhana. (Tapi kemudian, jika pertanyaan Anda benar-benar turun ke "apa upaya minimum yang saya butuhkan untuk mendapatkan pekerjaan?" Maka jawabannya adalah "jika Anda memasukkan upaya minimum, Anda akan mendapatkan pekerjaan minimum! ")

Tapi untuk jangka panjang, saya kira itu bukan soal mengetahui beberapa bahasa, atau belajar bahasa tertentu. Bahasa berubah - sepuluh tahun yang lalu tidak ada yang menggunakan Objective-C atau XNA atau C # atau AS3, dan sepuluh tahun dari sekarang yakinlah bahwa bahasa apa pun yang Anda pelajari hari ini akan usang pada saat itu.

Jadi satu hal yang perlu Anda buktikan di masa depan adalah tidak hanya "belajar bahasa" tetapi juga belajar BAGAIMANA belajar bahasa baru. Setelah Anda mahir dalam 3 bahasa atau lebih, Anda akan menemukan bahwa mengambil yang baru tidak begitu buruk. Bagaimanapun, sebagian besar komponen inti adalah sama - setiap bahasa memiliki variabel, array, loop, kondisional, dan sebagainya, jadi ini hanya tentang mempelajari sintaksis.

Separuh lainnya adalah memahami konsep inti pemrograman dan ilmu komputer. Memahami manajemen memori, petunjuk, rekursi, dan sebagainya. Jika Anda memahami konsepnya, Anda dapat menerapkannya dalam hampir semua bahasa.

Jika Anda ingin membuat diri Anda lebih laku dipasaran, maka pelajari spesialisasi pemrograman yang relevan dengan gim, apa pun minat Anda ... AI, basis data, jaringan, alat, apa pun.

Ian Schreiber
sumber
1

Ada keterampilan lain yang sangat penting yang diperlukan yang tampaknya sedikit diabaikan. Anda perlu tahu cara menyesuaikan diri dan bekerja dengan tim orang, pergi dari pengembang game lain, ke desainer dan manajer proyek dan hal-hal lainnya. Ini bukan keterampilan teknis, tetapi masih sangat penting, karena Anda bisa menjadi pengembang terbaik di rumah dan jika Anda tidak bisa bergaul dengan orang lain, membuat game besar akan menjadi masalah!

Juga, karena ShrimpCrackers menaburkan satu bahasa dengan baik lebih baik daripada secara kasar mengetahui 5 bahasa, dan memahami apa yang terjadi di bawah tudung satu bahasa yang membuat Anda lebih baik, seperti untuk permainan, Anda perlu tahu cara mendapatkan kinerja terbaik keluar dari bahasa.

Last but not least, mengetahui sedikit tentang perangkat keras, GPU khususnya tidak akan sakit!

dotminik
sumber
0

Untuk pemrograman game sosial ada keterampilan utama yang satu-satunya yang dibutuhkan.

  1. Skrip tindakan program (Anda dapat menggunakan lingkungan elipse dan svn), ini digunakan untuk ujung depan game (halaman web)

  2. Program java (yang juga dapat dilakukan pada gerhana penggunaan svn), ini digunakan untuk tindakan sisi server untuk mengambil dari permintaan halaman web.

mariana lebih lembut
sumber