Apakah C ++ perlu dipelajari jika saya ingin mendapatkan pekerjaan di industri game?


17

Apakah C ++ perlu dipelajari jika saya ingin mendapatkan pekerjaan di industri game? Saya sangat akrab dengan C # dan memiliki penguasaan dasar membuat game 2D di XNA 4.0. Saat ini saya baru berusia 13 tahun dan suka membuat game, dan berharap suatu hari bisa mendapatkan pekerjaan pemrograman game. Saya telah mendengar banyak orang mengatakan bahwa C ++ adalah 'standar industri' dan itu akan merugikan karir Anda karena tidak mengetahuinya. Saya juga mencoba menargetkan lebih banyak platform dari sekadar windows dan saya sadar akan Monogametetapi untuk beberapa alasan saya mengalami banyak masalah dengan template studio visual, dan saya menemukan banyak bug dengan monogame. Karena saya secara teknis belum bisa mendapatkan pekerjaan, dan mungkin tidak bisa mendapatkan pekerjaan pemrograman sampai saya seperti 22 atau sesuatu (kecuali saya wiraswasta). Dan dalam rentang waktu 9+ tahun itu industri game kemungkinan besar akan banyak berubah. Jadi, inilah beberapa pertanyaan

  • Tidakkah belajar C ++ akan merusak peluang saya mendapatkan pekerjaan pemrograman?
  • Pada saat saya bisa mendapatkan pekerjaan apakah C ++ masih menjadi bahasa pemrograman 'standar industri'
  • Jika saya seorang pengembang indie apakah itu penting apakah saya belajar C ++ atau tidak, dan tetap dengan apa yang saya tahu?
  • Haruskah saya mulai belajar sekarang karena saya sudah bertahun-tahun sebelum saya bahkan bisa mendapatkan pekerjaan?

Saya juga mempunyai kekhawatiran bahwa meskipun saya terbiasa dengan pemrograman berorientasi objek, saya mungkin menghabiskan banyak waktu pada C ++, dan menjadi sangat frustrasi dan bingung kemudian hanya berhenti mempelajarinya, dan pada saat ini saya sudah lupa banyak XNA dan Saya harus mempelajari semuanya. Jadi singkatnya: Haruskah saya belajar C ++ jika saya ingin pekerjaan pemrograman?

MEMPERBARUI

Terima Kasih Semua Atas Jawaban Dan Saran Anda. Baru-baru ini saya Mengambil SFML dan C ++ dan ini berjalan cukup baik. Saya mengerti C ++, dan mulai membuka mata saya untuk tidak khawatir belajar hal-hal baru karena saya bisa mentransfer semua pengetahuan C # saya ke dalam membuat C ++ lebih mudah untuk dipelajari. Sekali lagi, terima kasih semuanya.


4
Perlu dicatat bahwa sebenarnya ada lebih banyak pekerjaan di industri game yang tidak mengkode daripada ada pekerjaan yang mengkode. Artis, manajer proyek, penguji kotak hitam, desainer, penjualan, dll. Juga, ada jauh lebih banyak pekerjaan dalam bahasa lain digabungkan daripada yang ada di C ++ saja. Jadi, secara statistik, tidak, Anda tidak perlu belajar C ++ untuk mendapatkan pekerjaan di industri ini.
MichaelHouse

1
Ini pasti tidak akan merugikan peluang Anda. Mereka perusahaan tempat saya bekerja sekarang hanya menggunakan C # dan Unity untuk mengembangkan game dan tidak memerlukan C ++. Namun C ++ masih dianggap sebagai nilai tambah karena mengajarkan banyak konsep berguna yang dapat diterapkan di tempat lain. Saya sarankan Anda fokus pada bahasa yang Anda tahu untuk proyek indie Anda tetapi luangkan sedikit waktu untuk belajar C ++ ketika Anda bisa (hanya untuk pengalaman).
Benjamin Bahaya Johnson

2
Jika Anda adalah pengembang profesional, Anda tidak selalu dapat memilih dan memilih alat Anda. Sebagai contoh, saya membenci Jawa dan MATLAB dengan penuh semangat. Namun, sesekali saya hanya perlu menahan nafas dan menyelesaikannya. Jadi, cukup berhenti merengek dan pelajari C ++. Pelajari beberapa bahasa lagi juga saat Anda menggunakannya.
drxzcl

Pelajari C ++ selagi bisa.
jcora

Saya merasa posting ini penting dibaca untuk pertanyaan ini.
Andrew Russell

Jawaban:


23

Saya ingin fokus pada pertanyaan ketiga Anda, karena itu berada dalam bidang pengetahuan saya (pengembang indie):

Saya belum menulis sebaris kode C ++ selama bertahun-tahun. Dan, pada kenyataannya, saya telah melupakan banyak detail seluk beluk (dan di C ++ ada banyak dari mereka). Saya melakukan sebagian besar pekerjaan saya di C #. Dan Anda benar-benar tidak perlu belajar C ++.

Namun , keterampilan yang saya peroleh dari belajar C ++ - terutama hal-hal tingkat rendah, terutama bagaimana memori dan pointer bekerja - terbukti sangat berharga.

Selain itu, ada beberapa kesempatan di mana saya harus melakukannya membaca kode C ++ orang lain. Jika Anda tahu cara memprogram dalam C # atau Java, Anda mungkin dapat menebak apa yang sedang terjadi - tetapi mengetahui jauh lebih baik.


Rekomendasi saya untuk Anda , khususnya, adalah belajar C ++ sekarang. Di usia Anda, Anda memiliki banyak waktu untuk dihabiskan hanya untuk belajar. Dengan begitu Anda tidak perlu khawatir untuk mengambil C ++ saat Anda mencoba mengembangkan game atau mendapatkan pekerjaan.

Jangan khawatir tentang melupakan detail, jika Anda berhenti menggunakan C ++ karena beberapa alasan (atau XNA atau apa pun). Konsepnya lebih penting. Dan Anda akan dapat mengambil detailnya lagi dengan mudah jika perlu.


Seperti yang ditunjukkan oleh pertanyaan Anda yang lain - kami tidak tahu seperti apa industri ini dalam satu dekade. Meskipun saya kira C ++ masih akan digunakan secara umum. Berbicara untuk saat ini - mengetahui C ++ akan memberi Anda dorongan besar dalam kemampuan kerja - bahkan di toko non-C ++.


7

Jika Anda ingin menjadi programmer game, Anda mungkin tidak bisa menghindari belajar C ++. Jika Anda menginginkan pekerjaan lain di industri game, seperti produser atau artis, maka Anda tidak perlu C ++.

C ++ sulit. Banyak orang tidak mempelajarinya sampai kuliah. Anda punya banyak waktu. Bekerja dengan beberapa bahasa lain untuk mempercepat konsep-konsep pemrograman dasar. Mulailah dari yang kecil dan lakukan satu langkah pada satu waktu.


2
Saya berpendapat sebaliknya. C ++ adalah bahasa yang dianggap dekat dengan perangkat keras saat ini, dan Anda tentu belajar beberapa hal tentang arsitektur komputer yang tidak akan Anda pelajari dengan bahasa tingkat yang lebih tinggi seperti C #, kebanyakan tentang alokasi dan pengalamatan memori. Jika Anda belajar C # pertama dan merasa nyaman dengan itu, Anda mungkin akan teralienasi dengan lingkaran tambahan yang harus Anda lewati dengan C ++ sebagai perbandingan.
Hackworth

6

Anda masih punya banyak waktu untuk belajar, jadi saya pikir Anda tidak perlu terlalu khawatir tentang bahasa yang Anda gunakan, tetapi saya akan menyatakan beberapa hal yang mungkin berguna bagi Anda:

  1. C ++ adalah bahasa sementara XNA adalah kerangka kerja. XNA tidak akan diperbarui oleh Microsoft lagi, jadi saya merasa sangat sulit untuk membayangkan itu digunakan 9 tahun dari sekarang dalam kapasitas yang serius. C ++ di sisi lain dan telah ada selamanya, memiliki komite standar aktif berkomitmen untuk memperbaikinya dan memberikan pengembang begitu banyak kontrol atas perangkat keras sehingga akan mengambil lompatan besar dalam kekuatan perangkat keras untuk membuat kontrol ini tidak diperlukan dan dengan demikian memungkinkan bahasa lain untuk menggantikannya sebagai standar defacto untuk game berkinerja tinggi.

  2. Mempelajari konsep adalah bagian penting, bukan bahasa tempat Anda menerapkannya. Anda dapat "mempelajari" bahasa baru dengan cepat jika Anda sudah memahami prinsip dasarnya.

  3. C ++ akan mengharuskan Anda untuk belajar tentang pointer dan masalah memori pada tingkat yang jauh lebih dalam daripada C #, jadi saya akan merekomendasikan Anda mempelajarinya di beberapa titik terlepas dari penggunaannya dalam industri.

  4. Kekhawatiran Anda tentang melupakan sesuatu mungkin tidak berdasar. Memang benar bahwa Anda akan melupakan hal-hal tetapi spesifiknya tidak benar-benar bagian yang penting. Anda tidak akan lupa bagaimana mendesain game dengan beralih bahasa.

Anda tampaknya memiliki alasan untuk tidak belajar C ++, saya pikir Anda sebenarnya hanya mencoba merasionalisasi keinginan Anda untuk tidak belajar sesuatu yang baru.

Pikirkan seperti ini: jika Anda belajar C ++ dan ternyata tidak digunakan di masa depan, Anda memiliki bertahun-tahun untuk mempelajari apa itu dan saya akan menjamin bahwa setelah belajar C ++ akan membantu Anda melakukan ini. Jika Anda benar-benar melupakan semua XNA Anda dan tidak berhasil mempelajari C ++ akan lebih baik untuk mengetahui ini dan bergerak maju daripada khawatir tentang kemungkinannya. Saya tidak berpikir kedua kasus ini sangat mungkin.


4

Saran umum: jangan fokus pada apa yang perlu Anda pelajari atau apa yang seharusnya Anda pelajari. Buat saja sesuatu.

Untuk menjawab pertanyaan spesifik Anda, Microsoft tidak akan lagi memperbarui XNA, sehingga kemungkinan tidak akan ada untuk waktu yang lebih lama. C ++ adalah standar industri yang mapan dan tidak akan pergi dalam waktu dekat. Jika Anda ingin bekerja di game AAA, maka ya. Diperlukan pengalaman C ++.


Saran bagus, +1. Meskipun saya jujur ​​berpikir bahwa belajar bahasa baru juga sangat penting.
jcora

Yannbane: Tapi bukankah itu prioritas kedua? Ketika OP membuat berbagai hal, mereka akan menemukan apa yang perlu mereka pelajari dan mempelajarinya dalam proses. Setelah Anda mengenal satu bahasa dengan baik, mempelajari bahasa lain umumnya cukup mudah.
Zach Latta

Err, tidak, tidak. Anda memerlukan keduanya, atau kursus, tetapi belajar bahasa lebih penting daripada memiliki proyek. Dan tidak, hanya karena Anda tahu C # tidak berarti Anda tahu C ++. Dan jika mudah, Anda secara teratur akan melihat orang-orang yang tahu 6+ bahasa.
jcora

1

Karena pertanyaan sudah dijawab, izinkan saya mengisi beberapa lubang di sana-sini ...

Saya juga mempunyai kekhawatiran bahwa meskipun saya terbiasa dengan pemrograman berorientasi objek, saya mungkin menghabiskan banyak waktu pada C ++, dan menjadi sangat frustrasi dan bingung kemudian hanya berhenti mempelajarinya, dan pada saat ini saya sudah lupa banyak XNA dan Saya harus mempelajari semuanya. Jadi singkatnya: Haruskah saya belajar C ++ jika saya ingin pekerjaan pemrograman?

Dari mana Anda mendapatkan gagasan tentang C ++ sebagai bahasa monster yang mengerikan? Ini bukan! Ini sebenarnya sangat menyenangkan.

Benar, kamu bisa mendekati perangkat keras, yang sebenarnya memiliki dua manfaat: Anda belajar lebih banyak tentang bagaimana sebenarnya fungsi komputer, dan kedua Anda memiliki lebih banyak kekuatan di tangan Anda daripada dengan, katakanlah, C #.

Tetapi sekali lagi, C ++ menampilkan metode abstraksi yang hebat dan memiliki pustaka yang sangat berguna, jadi bukan berarti Anda benar-benar akan berkomunikasi dengan kartu grafis secara langsung (Anda pasti bisa) - itu hanya akan diabstraksi.

Mengetahui hampir semua bahasa sangat berguna, memiliki peluang bagus untuk meningkatkan peluang Anda untuk direkrut, dan tentu saja menjadikan Anda seorang programmer yang lebih baik.

Ketika Anda punya waktu, lihat JavaScript dan / atau Python. Orang lain mungkin akan menyarankan Lisp juga, tapi saya tidak tahu banyak tentang itu, jadi saya tidak akan mengatakan apa-apa. Tetapi mungkin berguna untuk memeriksanya, saya pikir itu cukup rapi bahkan dengan pemahaman saya yang terbatas tentang konsepnya. Ada Haskell juga, tapi bleh.

Dan dalam rentang waktu 9+ tahun itu industri game kemungkinan besar akan banyak berubah.

Benar. Tapi coba tebak: dalam 9+ tahun, kita masih akan menggunakan perakitan, C ++ dan C. Saya ragu bahwa pengembang game tiba-tiba saja memutuskan bahwa mereka memiliki sumber daya yang cukup dan berhenti mendorong batas mesin. Tentu saja, ini hanya dugaan, tetapi semua bahasa itu jauh lebih tua dari saya, jadi saya pikir saya benar.

Selain itu, dengan mempelajari C ++ Anda akan lebih mudah untuk bertransisi menjadi bahasa tingkat menengah baru yang potensial.

Karena saya secara teknis belum bisa mendapatkan pekerjaan, dan mungkin tidak bisa mendapatkan pekerjaan pemrograman sampai saya seperti 22 atau sesuatu (kecuali saya wiraswasta).

Saya cukup yakin Anda salah di sini. Anda akan bisa mendapatkan pekerjaan dalam beberapa tahun sebenarnya. Sedikit artinya menurut hukum negara saya, saya kira. Tapi bukan pekerjaan penuh waktu.

Masih ada opsi untuk bekerja ketika sekolah tidak ada, dan jika Anda baik, dan Anda mungkin benar, maka pasti akan ada perusahaan pengembang yang ingin mempekerjakan Anda. Perusahaan gamedev? Mungkin tidak. Tetapi tidak ada alasan Anda benar-benar ingin bekerja sebagai starter, AFAIK Anda bisa mendapatkan bayaran yang lebih baik di perusahaan reguler, dan mengerjakan game di waktu luang Anda.

Selain itu, lihat saja nama Anda, hampir seolah-olah Anda telah membiasakan diri dengan kesenangan pemrograman C ++!


1

Saya belum berbisnis (saya berusia 17 tahun), tetapi saya pikir itu benar-benar suatu keharusan untuk menemukan bahasa dan teknologi baru. Meskipun Anda punya waktu sekarang, pelajari C ++, OpenGL, dan Java. Menguasai ini membutuhkan waktu (saya butuh 5 tahun, jadi saya mulai pada usia yang sama dengan Anda sekarang), tetapi pengalaman yang Anda dapatkan benar-benar luar biasa.

Hal yang baik untuk dicoba adalah membuat klon Minecraft di Java dan OpenGL. Ini akan memberi Anda wawasan tentang banyak teknik gamedev dan akan mempelajari BANYAK teknik optimasi. Itulah yang saya lakukan pada usia 16 tahun. Anda dapat melihat hasilnya di: CraftMania . Mengapa saya merekomendasikan memulai dengan Java adalah karena mudah diprogram. Ada pengumpul sampah dan penanganan pengecualian yang rapi. Ini memungkinkan Anda untuk mempelajari OpenGL dengan sangat efisien, tanpa mengganggu semua kesulitan yang dialami C ++ untuk pengembang yang tidak berpengalaman.

Setelah Anda merasa Anda menguasai Java dalam kombinasi dengan OpenGL, lihatlah C ++ dan cobalah untuk membuat beberapa hal mudah (belum ada game). Setelah Anda berpikir Anda memahami bagaimana C ++ sedang dikompilasi dan bekerja pada runtime dan tahu bagaimana memori diatur dalam C ++, MAKA melihat SDL untuk membuat gim yang mudah.

Mengapa saya fokus pada OpenGL? Karena OpenGL berjalan di setiap platform kecuali untuk XBox360. Ini adalah: Windows, Linux, OS X, Android, iOS, BlackBerry, Wii, DS, PS3, PSP, dll ... Ketika Anda hanya menguasai Xna dan DirectX, Anda terikat ke Windows dan XBox360. Saya pikir ini adalah alasan yang bagus untuk mempelajari OpenGL dan C ++ jika Anda ingin mendapatkan pekerjaan pemrograman di industri game.


0

Jawaban saya adalah bahwa itu benar-benar tergantung pada apa yang ingin Anda lakukan di industri game. Saat ini jika Anda ingin membuat game konsol AAA, C ++ adalah suatu keharusan. Tidak ada bahasa lain yang memungkinkan Anda mengambil keuntungan dari sumber daya terbatas yang Anda miliki di konsol.

Untuk waktu yang lama C ++ adalah lingua franca dari industri game, tetapi dengan munculnya iPhone dan Unity sekarang mungkin untuk membuat game yang layak menggunakan bahasa seperti C # dan Objective-C. Bahkan HTML 5 mampu membuat game sekarang. Fakta sederhananya adalah, ada banyak opsi di luar sana.

Di usia Anda, Anda masih memiliki banyak waktu untuk belajar dan menonton bagaimana industri berkembang. Saran saya untuk Anda adalah ini: jangan fokus pada bahasa. Fokus pada belajar bagaimana membuat game dan / atau membuat mod untuk game yang ada di luar sana. Satu ide mungkin untuk mendapatkan Minecraft dan mencari cara membuat mod menggunakan Java. Tidak ada yang lebih baik daripada melihat bahwa Anda dapat mengubah perilaku permainan, bahkan jika Anda tidak benar-benar melepaskan mod apa pun.

Di usia Anda, saya membuat game menggunakan Basic (di Commodore 64). RPG Maker dan yang lebih baru menggunakan Java untuk mod game. Saya bahkan tidak menyentuh C ++ sampai saya berusia sekitar 18 tahun sehingga Anda masih punya banyak waktu untuk tumbuh.

Untuk menjawab pertanyaan Anda yang sebenarnya:

  • Tidakkah belajar C ++ akan merusak peluang saya mendapatkan pekerjaan pemrograman?

Pada tahap ini tidak ada cara untuk mengatakannya. Bisa jadi 10 tahun sebelum Anda mulai mencari pekerjaan 'nyata' dan teknologi berkembang sangat cepat.

  • Pada saat saya bisa mendapatkan pekerjaan apakah C ++ masih menjadi bahasa pemrograman 'standar industri'

Lihat jawaban di atas.

  • Jika saya seorang pengembang indie apakah itu penting apakah saya belajar C ++ atau tidak, dan tetap dengan apa yang saya tahu?

Tidak. Yang penting adalah berapa banyak game yang Anda selesaikan dan lepaskan.

  • Haruskah saya mulai belajar sekarang karena saya sudah bertahun-tahun sebelum saya bahkan bisa mendapatkan pekerjaan?

Tidak pernah terlalu dini untuk mulai belajar, juga tidak ada kata terlambat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.