Kamis, 02 Agustus 2012

Game Dev Heroes - Game Programmer


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 :D).

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.
  • 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.

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)

0 komentar:

Posting Komentar

Tu comentario será moderado la primera vez que lo hagas al igual que si incluyes enlaces. A partir de ahi no ser necesario si usas los mismos datos y mantienes la cordura. No se publicarán insultos, difamaciones o faltas de respeto hacia los lectores y comentaristas de este blog.