Hidup Untuk Berbagi

Game Dev Heroes : Programmer

Apa itu Game Dev Heroes? Apa itu Programmer? Mungkin itu yang muncul dibenak teman-teman ketika kita membaca judul posting sekarang. Game Dev Heroes itu maksudnya pahlawan dibalik suksesnya sebuah game. Apa cuma programmer? Tentu tidak, banyak yang berjasa dibalik suksesnya sebuah game, sebut saja Artist, Composer, Designer, dan Producer. Sebenarnya masih banyak yang menjadi kunci dari kesuksesan game. tapi kita akan fokus kepada 5 role itu saja dulu. Pada kesempatan ini kami akan menjelaskan role dari Game Programmer. Jika teman-teman tertarik untuk berkecimpung di dunia game development, berikut ini adalah sekilas tentang game programmer.

Apa sih hubungannya programmer dengan game?
Programming adalah penggabungan matematika dan logika yang membuat sebuah game bisa berjalan. Seorang programmer bertugas untuk menyusun kode-kode agar bisa menyatukan art, sound, dan gameplay. Sering kali programmer menjadi inti dalam sebuah game development, karena programmer harus mampu memasukkan art dari Game Artist, sound dari Game Sound, dan membangun game sesuai rancangan dari Game Designer.
Pada industri game skala besar, biasanya dibentuk sebuah tim programmer. Masing-masing programmer tersebut memiliki cakupan pekerjaannya sendiri. Seperti AI programming, Engine Programming, Network Programming, dan lain-lain.

Jadi, apa sih yang biasanya programmer kerjakan?
Pada tingkat dasar, programmer membuat kode yang membuat segalanya terjadi di game. Seperti menyambungkan input di keyboard/mouse/keypad dengan sebuah kejadian di layar. Misalnya kita tekan atas, maka hero kita akan melompat. Termasuk ketika kita membuat NPC yang berjalan di sekitar hero kita. Programmer lah yang membuat AI sehingga NPC tersebut tahu kemana akan bergerak. Oh iya, AI itu adalah Artificial Intellegence, yang artinya adalah kecerdasan buatan. Sehingga NPC mempunyai “otak” untuk berpikir.

Pada tingkat industri skala besar, programmer dibagi lagi menjadi sesuai dengan keahliannya, seperti yang sudah dijelaskan diatas. Bahkan ada programmer yang tidak berhubungan sama sekali dengan game, seperti programmer yang membuat engine atau tools khusus untuk mempermudah pekerjaan dari rekan programmer lainnya. Atau programmer yang membuat arsitektur jaringan, ketika membuat sebuah game online.

Programmer sering berinteraksi dengan artist, designer, producer, tester, composer, dan semua orang yang memiliki peranan dalam pembuatan sebuah game, membantu mereka ketika mereka membutuhkan pengetahuan teknis untuk menyelesaikan tugas mereka.

Lalu, apa yang mesti programmer kuasai?
Programmer itu adalah orang sains, matematika, aljabar, kalkulus, dan orang komputer. Wah apa itu pula? Secara garis besar, Programmer setidaknya seorang sarjana S1 (atau memiliki pengetahuan yang tinggi tentang) ilmu komputer. Karena seorang game programmer bukan hanya yang bisa memprogram, tapi harus mengenal dan mengerti konsep fisika. Lalu untuk apa matematika, aljabar, dan kalkulus? Teori-teori tersebut akan membantu seorang programmer menemukan solusi dari permasalahan yang ada. Misalkan kita akan membuat efek benturan bola pada tanah, maka itu adalah persoalan fisika, bagaimana kita mempresentasikan gravitasi, efek pantulan, efek arah mata angin, dan efek cuaca ke dalam sebuah game.
Sebelum programmer dapat mencari pekerjaan dalam bidang game, mereka harus menguasai dan memahami cara kerja suatu bahasa pemrograman. Biasanya bahasa pemrograman yang sering digunakan di industri game adalah C++, actionscript, C, atau java.
Jika teman-teman tertarik menjadi programmer, sebaiknya teman-teman mulai membiasakan diri dengan yang namanya SDK, API, dan Object-Oriented Language (jika masih belum kenal dengan itu, maka berusahalah untuk mencari tahu😀 ).

Tingkatan pekerjaan Game Programmer apa aja sih?
Untuk game skala kecil dan menengah, biasanya cukup 1-4 orang programmer untuk mengerjakan suatu game.
Untuk game skala besar, biasanya dibagi lagi role dari programmer, seperti ini :

* Physhics Engine Programmer.
Memiliki kewajiban untuk mengembangkan efek-efek fisika dalam sebuah game. Misalkan dalam Space Game, membutuhkan simulasi gravitasi, kecepatan, dan benturan. Tapi tidak membutuhkan efek arah mata angin, tekanan air, dan lain-lain. Untuk game sederhana seperti pong atau dota, hanya membutuhkan sedikit physics programmer. Tapi untuk mengerjakan combat battle seperti Battle Field, butuh banyak physics programmer, karena game seperti itu benar-benar mensimulasikan kejadian nyata, seperti efek angin, efek gravitasi ketika melempar bom, efek pantulan ketika sebuah objek meledak didekatnya, dan lain-lain.
* Gameplay Programmer.
Ketika rekan programmer lain menyumbangkan keahlian pada bidangnya, seorang Gameplay Programmer berkontribusi dalam strategi game, implementasi dalam mekanikal dan logika game, dan meningkatkan “feel” dalam game. Dia yang menentukan apakah yang dapat meningkatkan “feel” dalam game ini, misalkan meningkatkan keindahan grafis dan sound effect pada game combat battle. Ataupun meningkatkan alur cerita yang kuat, grafis yang mantap, dan background music yang fenomenal seperti dalam game Final Fantasy.
* Lead Programmer.
Dalam beberapa studio game, lead programmer identik dengan technical director. Karena pekerjaan mereka hampir sama, yaitu membawahi rekan programmer yang lain. Untuk menjadi lead programmer tentu tidak mudah. Mereka harus memiliki pengetahuan dasar dari semua role di dalam tim. Sehingga dia setidaknya dapat mengawasi dan memberi saran kepada rekannya, juga memastikan bahwa apa yang dikerjakan oleh rekannya itu berjalan dengan seharusnya.
* AI Programmer.
AI Programmer bertanggung jawab dalam pengembangan kecerdasan buatan dari musuh ataupun npc. Seperti membuat AI untuk path finding, strategy, dan taktik musuh. Game sederhana seperti pacman, bisa dikerjakan rangkap oleh rekan programmer lain. Tapi untuk pembuatan AI setingkat Civilization, dibutuhkan beberapa orang programmer AI untuk membuatnya. Civilization merupakan game strategy, sehingga untuk membuat AInya pun sangat lah rumit.
* Engine Programmer.
Bertugas untuk membuat engine dari game yang akan dibuat, yang sifatnya memudahkan pekerjaan rekan setimnya. Role ini biasanya membuat suatu engine dasar yang re-useable, ketika membuat game dengan genre Racing, maka engine pun disesuaikan dengan kebutuhan.
* Network Engineer or Programmer
Role ini digunakan ketika membuat game yang memasukkan aspek multiplayer. Mereka bertugas dalam merancang jaringan, dan memprogram gamenya agar bisa berjalan sempurna. Beberapa hal yang mesti diperhatikan oleh role ini yaitu network latency, kompresi paket data, dan koneksi terputus. Ketika membuat game online, harus dipikirkan bagaimana kondisi jaringan server, bagaimana kompresi data yang optimal, bagaimana keadaan game ketika koneksi terputus, dan memprediksi kebutuhan server yang optimal dengan jumlah user. Role inilah yang bekerja setelah game selesai diproduksi, jangan sampai ketika game itu sudah launch, tapi kondisi server overload atau game tersebut terlalu banyak memakan bandwidth.
* Graphics Programmer
Sesuai dengan namanya, programmer ini harus memiliki keahlian dalam rendering graphics, juga terbiasa dengan vektor, matrix, dan aljabar linier. Itu dibutuhkan ketika kita akan merender 3D graphics dan menghitung kemungkinan collision detection antar object.

Ada tips ga, jadi Game Programmer yang baik?
Jadi seorang programmer itu mesti memiliki rasa keingintahuan yang kuat. Harus memiliki kemampuan untuk mencari jawaban dan solusi atas masalah yang dihadapi. Seorang game programmer juga harus bisa berkomunikasi dengan orang, karena programmer adalah inti dari sebuah game development. Sehingga ia harus mampu bekerja sama dengan rekannya. Misalkan ketika sebuah asset dari seorang artist terlalu besar ukurannya, Programmer harus bisa menjelaskan kepada artist agar bisa mengecilkan ukuran dari asset tersebut. Jangan sampai programmer tidak bekerja sama, sehingga memaksakan asset yang besar itu menjadi kecil dengan syntax. Karena akan menambah pekerjaan dari programmer itu sendiri.

Ya itulah paparan tentang Game Programmer, jika teman-teman tertarik untuk menjadi Game Programmer, cobalah untuk belajar dan belajar, kembangkan rasa ingin tahumu, berusahalah mencari solusi yang paling optimal..🙂

Nanti kita akan membuat artikel tentang Game Dev Heroes yang lain, so keep in touch ya..😀

Reference : Game Career Guide

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s