Panduan Pemrograman Game - Tips, Alat, dan Karir

oleh Connor Taylor

Seorang pemrogram game adalah orang yang mengambil visi desainer dan membuatnya benar-benar bekerja dalam mesin game yang kita gunakan. Saya bekerja di tim pemrograman game mobile di Kwalee, jadi bagi kami, terutama menggunakan Unity. Misalnya, jika desainer ingin dadu bergulir dengan cara tertentu, saya akan menulis skrip untuk menangani logikanya. Kami juga bekerja sama dengan seniman game untuk memastikan game kami tidak hanya terlihat menakjubkan tetapi juga mencapai kinerja yang luar biasa di perangkat.

Dalam blog ini, saya akan membagikan wawasan penting dan saran tentang menjadi pemrogram game berdasarkan pengalaman lima tahun saya bekerja di Kwalee. Saya akan membahas beberapa bahasa, alat, dan prinsip yang kami gunakan, saran karir saya, serta tips pemula dan lanjutan.

Apa Yang Dilakukan Seorang Pemrogram Game?

Kami menulis kode dan membantu game menjadi kenyataan. Sementara desainer game menciptakan konsep dan seniman game menciptakan aset, seorang pemrogram akan menciptakan pengalaman yang fungsional dan dapat dimainkan. Kami membuat dan mengoptimalkan kinerja game dan memecahkan masalah apa pun yang teridentifikasi.

Kami memastikan bahwa game terasa hebat dan berjalan dengan kinerja tinggi. Untuk melakukan ini, kami harus memastikan bahwa kode itu sendiri bersih dan dapat dikembangkan, yang lebih sulit daripada yang Anda bayangkan. Kami menggunakan standar pengkodean untuk mempertahankan kualitas yang konsisten di seluruh tim kami - sebuah dokumen yang mungkin berisi standar penamaan, pemformatan, dll. Namun, kadang-kadang hal-hal tidak selalu sesederhana itu dan dari waktu ke waktu Anda mungkin perlu berpikir di luar kotak untuk menyelesaikan sesuatu tepat waktu.

Tanggung jawab kami juga termasuk memastikan game berjalan baik pada perangkat keras pengguna akhir. Misalnya, dalam game mobile kami, kami perlu menghindari perangkat lama menjadi terlalu panas, jadi kami bekerja dengan seniman untuk mengoptimalkan jumlah panggilan gambar. Panggilan gambar adalah perintah yang dikirim dari Central Processing Unit (CPU) ke Graphics Processing Unit (GPU) untuk merender objek di layar - ini memberi tahu GPU untuk menggambar elemen grafis seperti tekstur, mesh, atau shader. Kami perlu meminimalkan jumlah panggilan gambar ini dalam game kami karena memiliki terlalu banyak dapat menyebabkan masalah seperti penurunan frame rate atau lag. Ada banyak cara untuk menyelesaikannya, tetapi hal-hal seperti mengelompokkan beberapa objek menjadi satu panggilan gambar atau mengurangi jumlah tekstur dan materi unik semuanya dapat membantu. Ini sangat penting untuk mobile, karena ada begitu banyak perangkat berbeda di pasaran, masing-masing dengan spesifikasi teknis yang bervariasi.

Apa Bahasa Pemrograman Game Utama?

Sebagian besar waktu kita sebagai pemrogram game sehari-hari dihabiskan untuk menulis skrip dalam salah satu dari berbagai bahasa pemrograman - lagipula kita adalah pengembang perangkat lunak dari jenis yang berbeda. Ada banyak bahasa untuk dipilih. Beberapa tampaknya lebih mudah daripada yang lain, tetapi setelah Anda belajar dan menguasai satu, Anda pasti bisa belajar yang lainnya - tantangan utamanya adalah mendapatkan pijakan.

Berikut adalah pengantar beberapa bahasa pemrograman game yang paling populer:

  • C# - bahasa pemrograman yang serbaguna dan populer yang digunakan secara luas dalam pengembangan game. Ini salah satu yang termudah untuk dipelajari jika Anda seorang pemula. Salah satu fitur terbaiknya adalah garbage collection otomatis - sehingga mengelola alokasi memori untuk Anda - sangat berguna bagi pemrogram yang sibuk seperti kami.
  • C++ - sebagai perbandingan, ini adalah bahasa yang tidak terkelola, jadi Anda harus secara manual mengalokasikan dan mendekalokasi memori, yang membuatnya lebih kompleks dan sulit. Namun, ini memungkinkan kecepatan, kontrol, dan kinerja yang lebih besar.
  • Java - seperti C#, Java memiliki manajemen memori dan garbage collection sendiri, membuatnya lebih mudah bagi pengembang untuk mengelola memori tanpa terlalu membebani detail. Ini banyak digunakan dalam pengembangan web dan aplikasi perusahaan, dan meskipun mungkin (diperdebatkan) bukan pilihan utama untuk pengembangan game, ini tetap menjadi opsi solid untuk membuat aplikasi yang skalabel dan efisien.
  • Swift - ini adalah bahasa asli Apple untuk membangun aplikasi dan game untuk iOS dan macOS. Namun, ini berarti kurang berguna untuk pengembangan lintas platform - karena kami bertujuan untuk selalu menerbitkan game mobile kami di Android dan iOS.

Bagaimana Cara Menjadi Pemrogram Game?

Ada berbagai cara untuk menjadi pemrogram game. Jalur saya cukup konvensional - saya belajar Desain Game dan Pemrograman di Universitas Staffordshire. Awalnya, saya berpikir untuk terjun ke seni game - saya selalu sangat menyukai seni sejak kecil, ditambah lagi saya sangat menikmati modul seni di universitas, tetapi saat di sana saya menemukan bahwa saya sangat menikmati menciptakan gameplay. Membuat model high poly bisa memakan waktu beberapa hari, tetapi saya bisa membuat bebek terbang dan meledak dalam setengah waktu. Prototyping memungkinkan saya melihat hasilnya dengan cepat di depan mata saya.

Namun, keindahan dari pemrograman game adalah bahwa ini dapat diakses oleh kebanyakan orang bahkan jika Anda tidak melalui jalur tradisional. Saya memiliki teman di universitas berusia 50+ - tidak pernah terlalu terlambat untuk merasakan sesuatu yang baru. Di Kwalee, kami bahkan mempekerjakan seseorang yang belajar terutama melalui video YouTube dan membuat game untuk bersenang-senang. Ada begitu banyak peluang untuk bakat segar dan bersemangat hari ini. Melihat portofolio mahasiswa yang lebih baru, mereka memiliki banyak hal yang sudah dicapai. Kami melihat bakat yang luar biasa datang dan ini adalah waktu yang menggembirakan di industri ini.

Pertanyaan yang mungkin ingin Anda tanyakan - apakah AI akan memengaruhi pemrograman sebagai karir? Ini bisa sangat berguna, dan semakin baik. Sempurna jika Anda membutuhkan sesuatu dijelaskan atau Anda terjebak dalam masalah. Anda bisa menggunakannya untuk memecahkan bug, atau merefaktor ('membersihkan') kode Anda dengan menempelkannya di ChatGPT terbaru. Namun ketika kami melihat portofolio, kami ingin melihat pekerjaan yang telah Anda lakukan dan banggakan, AI baik digunakan, tetapi cobalah untuk tidak menggunakannya sebagai pengganti keterampilan Anda sendiri.

Seperti Apa Hari-hari Biasa Dalam Kehidupan Seorang Pemrogram Game?

Izinkan saya memberikan contoh berdasarkan hidup saya. Saya seorang Pemrogram Utama (saya menyebutnya pekerjaan impian saya) jadi ini campuran yang hebat antara hands-on dan mengelola pemrogram lain!

Hari biasa di dunia saya adalah masuk, membuat latte, lalu memeriksa kembali bug atau penghambat untuk tim QA. Periksa dengan tim untuk melihat apakah ada yang memerlukan bantuan saya untuk menyelesaikan pekerjaan mereka. Kemudian musik diputar dan daftar tugas muncul. Kami akan berbagi video kemajuan melalui slack untuk mendapatkan umpan balik cepat, sambil juga bergantian antara 2-3 proyek untuk mendukung anggota tim saya. Kami juga menghabiskan banyak waktu untuk berinvestasi di sistem berbagi untuk membuat pemrograman kami lebih efisien - semuanya harus dipertahankan, diperbarui, dan diperbaiki secara teratur agar semuanya berjalan lancar.

Tips Pemrograman Game Untuk Pemula

Jika Anda memulai dan bercita-cita menjadi seorang pemrogram penuh, berikut adalah tips pemula saya!

  • Ada banyak sekali yang bisa dipelajari secara online, di YouTube dan ada banyak game contoh sehingga Anda tidak ada alasan untuk tidak belajar! Mesin yang populer gratis dan sangat menyenangkan untuk digunakan!
  • Di ujung spektrum yang berlawanan, mungkin sudah 30 tahun, tetapi Anda harus mencoba membaca buku berpengaruh "Design Patterns: Elements of Reusable Object-Oriented Software" oleh penulis yang disebut Gang of Four, yang memperkenalkan beberapa dasar pola game yang kita gunakan sehari-hari dalam pemrograman.
  • Anda mungkin memiliki ide-ide Anda sendiri, tetapi pastikan Anda memulai dengan sederhana sehingga Anda menguasai dasar-dasarnya.
  • Ketika Anda tidak terikat pada proyek komersial, Anda dapat menulis sebanyak yang Anda suka, jadi bersenang-senanglah menciptakan hal-hal gila.
  • Membangun portofolio sangat penting (dan ini adalah cara saya mendapatkan pekerjaan saya). Tetapi berhati-hatilah agar tidak hanya mengunggah pekerjaan standar universitas biasa, karena kita akan melihat banyak aplikasi dengan ini. Bahkan menghabiskan hari tambahan untuk menambah fitur akan membantu Anda menonjol.
  • Membuat game dunia nyata Anda sendiri juga merupakan ide cerdas - sangat murah untuk mendapatkan game di Google Play, jadi rilis sesuatu yang dapat Anda tunjukkan kepada perekrut/penerbit/keluarga/peliharaan Anda di ponsel Anda. Anda bahkan mungkin menghasilkan beberapa ribu dolar setahun sampai Anda siap dengan pekerjaan penuh waktu eksklusif, itu bonus! Atau itu mungkin menggoda Anda untuk membuat game penuh dan bermitra dengan penerbit.
  • Jangan hanya belajar tentang pemrograman - pelajari tentang seni, desain, QA dan disiplin lain yang akan Anda bagikan. Misalnya, penting untuk memahami metode QA karena Anda bisa terjebak dalam jebakan menganggap sesuatu bekerja, tetapi Anda perlu memainkannya sebagai pengguna, bukan sebagai orang yang menulis kode dan memiliki pandangan tentang bagaimana Anda mengharapkan 'harus dimainkan'. Jadilah destruktif, coba hal-hal acak yang mungkin dilakukan orang, menekan tombol acak dan perilaku aneh lainnya.

Tips Pemrogram Lanjutan

Berikut adalah beberapa tips yang telah membantu saya maju dari junior, menjadi pemrogram, senior hingga pemimpin.

  • Anda selalu dapat mendapat manfaat dari lebih banyak belajar, dan ingat bahwa tanpa kesalahan kita tidak bisa belajar!
  • Jika Anda benar-benar bersemangat tentang sesuatu - Anda bisa menjadi lebih spesialis. Misalnya, jika Anda suka bermain dengan shader dan pipeline render, pelajari lebih lanjut tentang cara menggunakan shader grafis untuk meningkatkan kemampuan Anda untuk merender efek visual yang kompleks dan menggunakan pipeline render untuk mengoptimalkan kinerja atau membuat beberapa efek menakjubkan.
  • Anda bisa membuat sesuatu yang sangat keren, seperti sistem yang kompleks, mengunggahnya ke toko aset untuk memamerkannya jika kontrak Anda memungkinkan dan memamerkan pekerjaan lanjutan Anda. Anda bisa mengembangkan niche sebagai jenis pemrogram tertentu, seperti pemrogram gameplay, pemrogram server, pemrogram grafis atau pemrogram multiplayer.
  • Atau, Anda bisa mengikuti jalur manajemen seperti saya, dan membimbing orang. Taktik saya untuk memajukan karir saya adalah dengan menyerap tanggung jawab baru. Pertama, saya mulai memperbaiki hal-hal kecil, yaitu perubahan alur kerja kecil.. Kemudian saya membuat proses lebih mudah dengan menggunakan template untuk menghemat waktu saat membuat proyek baru. Kemudian saya mulai merasakan bimbingan dan manajemen, yang membantu saya mendapatkan lebih banyak kepercayaan diri dan sekarang berpartisipasi dalam tinjauan sejawat, tinjauan kode, menyelenggarakan lokakarya dan memimpin tim pada proyek.

Apakah Anda bekerja sebagai bagian dari tim atau sebagai manajer, sama pentingnya untuk memberikan pujian seperti memberikan kritik yang konstruktif. Ketika meninjau kode, itu baik untuk menyemangati orang!

Apa Prinsip Utama Pemrograman Game?

Ada beberapa topik utama yang harus dimasukkan ke dalam blog yang membahas tentang pemrograman game. Ini adalah beberapa hal yang paling penting yang kami pertimbangkan.

Kontrol Sumber/Kontrol Versi

Seperti Anda memiliki titik penyimpanan dalam game, ada titik penyimpanan dalam pengembangan proyek. Mereka bertindak sebagai penyimpanan umum untuk proyek dan berarti tiga atau empat pemrogram dapat bekerja pada sistem secara bersamaan, membuat perubahan dan mendorongnya ke server. Ini memungkinkan kami untuk melacak perubahan tersebut dan mudah kembali jika ada yang rusak. Jika dua pengembang bekerja pada file yang sama, file tersebut akan menjadi bagian dari penggabungan, jika ada konflik kami kemudian dapat menyelesaikannya secara manual atau memilih perubahan individu untuk diterapkan. Ini akan sering terjadi ketika menggunakan Prefabs atau Scene dalam Unity.

Istilah-istilah ini kadang tumpang tindih, tetapi umumnya, kontrol sumber berfokus pada kode dan kontrol versi mencakup semua file proyek, aset, dan dokumentasi.

Ketika Anda pertama kali mulai menggunakan Kontrol Sumber, ini bisa terasa agak menakutkan untuk memulai dengan, bisa tampak sangat luar biasa dan ketika datang ke konflik, Anda mungkin menemukan diri Anda tidak yakin harus melakukan apa. Tetapi sifat dari kontrol versi membantu Anda menyimpan momen dalam waktu, jadi jika Anda sering memperbarui dan menggunakan pesan komit yang terperinci, ini sangat berguna dan aman. Anda dapat kembali ke beberapa poin, memiliki beberapa cabang, dll. Anggap saja sebagai jaring pengaman pengembang, jadi kami dapat menghindari versi dari Toy Story 2 milik Pixar yang tidak sengaja dihapus dan kemudian dipulihkan dari hard drive di rumah Pengarah Teknis mereka, sebaliknya semuanya aman di server.

Pemrograman Berorientasi Objek

Ini adalah jenis pemrograman yang kami gunakan terutama di Kwalee. Ini menggunakan objek untuk mewakili hal-hal nyata, atau konsep abstrak, dan bertujuan untuk mengatur basis kode menggunakan prinsip yang mencerminkan bagaimana kita melihat dan berinteraksi dengan objek di dunia nyata. Ini membantu menjaga sistem yang kompleks dengan mengatur kode menjadi kelas yang dapat Anda gunakan kembali, skalakan, dan pelihara lebih mudah.

Tentu saja, ada debat apakah itu baik atau tidak. Meskipun itu bukan kinerja tertinggi, itu bekerja dengan baik. Seperti halnya bahasa, masing-masing memiliki kelebihan dan kekurangan sendiri dan Anda harus mempelajari satu untuk memulai dan memahami cara bahasa dan compiler (penerjemah kode manusia ke dalam kode mesin) bekerja. Anda juga dapat mempertimbangkan jenis lain, seperti pemrograman fungsional yang memperlakukannya lebih seperti matematika, pemrograman logika yang menggunakan fakta dan aturan atau pemrograman prosedural yang menggunakan data langkah demi langkah.

Pola Pemrograman

Ini adalah hal yang sangat berguna - solusi yang dapat digunakan kembali yang dapat membantu dengan masalah umum yang akan Anda hadapi dalam desain perangkat lunak Anda. Mereka memberi Anda template untuk memperbaiki masalah, jadi Anda tidak harus menciptakan roda kembali setiap kali dan dapat mengikuti solusi yang sudah terbukti.

Misalnya, pola desain Singleton membantu Anda memastikan hanya ada satu instance dari kelas, seperti manajer pengaturan game di seluruh game Anda, dan memberi Anda titik akses global kepadanya. Kode untuk pola ini berarti hanya ada satu instance dari kelas SettingsManager sehingga Anda tidak perlu membuat ulang atau menduplikasinya setiap kali Anda membutuhkannya.

Ada juga Pola Pabrik yang dapat membantu Anda menciptakan objek dengan cara yang lebih terorganisir dan fleksibel. Anda dapat mendefinisikan metode untuk menghasilkan jenis objek tertentu, seperti karakter atau item, berdasarkan parameter input, memungkinkan Anda dengan mudah menciptakan lebih banyak objek dari jenis yang sama tanpa memulai dari awal setiap kali.

Saya harap blog ini telah memberi Anda rasa untuk pemrograman game, apakah Anda baru dalam bidang ini atau programmer berpengalaman! Jika Anda adalah orang yang bekerja keras tapi bersenang-senang, Anda akan cocok dengan tim kami jadi cari tahu lebih lanjut tentang karir di Kwalee. Atau, Anda bisa mempelajari lebih lanjut tentang game mobile kami atau penerbitan dan mengenal lebih lanjut tentang apa yang kami rilis sebagai pengembang dan penerbit.

Tentang penulis:

Connor Taylor, Pemrogram Game Utama di Kwalee, bersemangat dalam membuat game dan membina tim yang suportif dan menyenangkan. Dengan pengalaman lebih dari 5 tahun, dia telah menciptakan hits seperti Jetpack Jump dan membimbing orang lain dalam pengembangan Unity.

Bagikan artikel ini: