GAME DEV HEROES
Game Programmer
CETIF GAME DEVELOPER
GUILD
1. 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.
2.
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.
3. 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 ).
4. 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.
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.
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 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.
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.
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.
5. 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.
Sumber
: Agate Studio (http://agatestudio.com/blog)