Mengapa Pengembangan Game?
Sepertinya hampir 2 tahun yang lalu saya menulis artikel tentang Programer yang bertendensi ke arah pengembangan game dan sedikit banyak saya mengambil pelajaran berharga betapa susahnya domain yang satu itu.
Disclaimer: Beberapa hal yang saya tulis dibawah ini merupakan pandangan dan pendapat dari pengalaman pribadi saya dan saya tidak bertanggung jawab kalau anda mengikuti apapun yang saya tulis di sini.
Mindset Shifting
Mau atau tidak secara otomatis anda akan dipaksa untuk mereset pola pikir terutama bagi anda yang sebelumnya adalah pure programmer seperti programer back-end, programer aplikasi web ataupun programer aplikasi mobile yang kemudian mencoba ke ranah pengembangan game.
Salah satu mindset shifting yang sangat menonjol itu adalah anda harus menerima bahwa tidak ada yang namanya kesepakatan akan “Best Practices” karena teknik maupun cara pengembangan game bersifat sangat personal dan berkaitan dengan banyak sekali faktor seperti genre ataupun tema dan saya pribadi percaya kalau game itu adalah salah satu jenis Work Of Art, yang ruang lingkupnya jauh lebih luas daripada sekedar urusan tampilan grafis dan tidak selamanya tampilan bagus selalu cocok bagi market gamer tetapi common factors yang memang harus ada adalah playable dan fun factor.
Kalau sebelumnya sebagai programer dan seringkali tergelincir berstatus fanboy kemudian bertengkar di sosmed tentang bahasa pemrograman apa atau framework apa yang paling unggul maka ketika anda mencicipi ranah pengembangan game sudah pasti mental-mental membatu seperti itu akan meleleh dengan cepat.
Pengembangan game secara teknis bisa sangat sederhana seperti melibatkan Finite State Machine dan bisa menjadi sangat rumit karena melibatkan yang namanya Reinforcement Learning (AI). Dari sisi tampilan bisa sangat sederhana karena memakai teknik pixel art atau bisa sangat demanding (dari segi skill & biaya) karena memakai teknik secanggih Physically based rendering (PBR) dengan banyak custom shader tetapi tetap saja pada akhirnya apa yang anda sajikan itulah yang terpenting.
Konsumen TIDAK TERLALU PEDULI anda itu memakai peralatan dapur bermerk apa.
Jadi jika anda sudah sangat jenuh dengan berbagai banyaknya framework ataupun bermunculannya rules-rules yang secara esensial sebenarnya pure untuk kepentingan bisnis tertentu, artinya dalam jangka panjang seperti terlalu banyak pembatasan pembatasan dalam pengembangan kreatifitas, saya sarankan masuk saja ke pengembangan game 😜.
Solve The World Problems?
Mungkin agak mouthful tapi game development bisa menjadi sebuah awal pijakan, kenapa begitu?
Edukasi
Mindset kebanyakan kalau game hanya untuk anak kecil dan menurut saya justru disitulah letak “kesalahan” terbesar karena pada faktanya konsumsi terbesar ada pada anak-anak sehingga peran game maker di sini sangat-sangat berperan dalam ikut andil membentuk watak ataupun habit pada anak anak.
Harga device mobile sekelas prosesor Snapdragon 425 64Bit, GPU Adreno 308 yang bisa menjalankan Dead Trigger2, Asphalt 8 dll bisa didapat cuman dengan 1 jutaan saat ini.
Masalahnya adalah kebanyakan akses ke platform game sekarang mengabaikan yang namanya age restriction dan terlalu banyak konten-konten lintas budaya yang sangat berpotensi menimbulkan banyak friksi dan korban terbesar saya kira adalah anak-anak (mirip dengan fenomena Youtube sebenarnya).
Kalau anda mempunyai akses ke paper IEEE maka akan banyak sekali tema-tema edukasi yang melibatkan game sebagai media utama
- Game platform for upgrading counting ability on preschool children
http://ieeexplore.ieee.org/document/6676243/ - A serious game to prevent bullying and promote empathy
http://ieeexplore.ieee.org/document/7170404/ - Math Education Game for primary school
http://ieeexplore.ieee.org/document/7930309/ - …
- atau ketik saja keyword “Education Game” di search engine mereka.
Dilain sisi pengembangan game sebenarnya sangat membantu konsep Object Oriented Programming (OOP) karena implementasi konsep pemrograman bisa divisualisasikan sehingga bisa lebih mudah diterima seperti apa itu Inheritance, kapan harus memakai Instance atau Static.
- Learning the Concept of Java Inheritance in a Game
https://www.computer.org/csdl/proceedings/cgames/2013/9999/00/06632635.pdf - Seeing is Understanding
https://www.computer.org/csdl/mags/co/2016/09/mco2016090094.pdf
Penelitian & Simulasi
Mungkin kedua bidang inilah yang memanfaatkan game engine tepatnya, untuk menirukan kondisi lingkungan untuk tujuan khsusus penelitian dan simulasi.
Dalam beberapa paper saya temukan banyak penelitian tentang game tradisional
- Research on the Surakarta chess game program based on unity 3D
http://ieeexplore.ieee.org/document/7978580/ - Playing the game of Congklak with Reinforcement Learning
http://ieeexplore.ieee.org/document/7863309/
ataupun simulasi yang tujuannya untuk menyelesaikan masalah-masalah di kehidupan nyata.
- Simulasi trafik lalu lintas
https://blogs.unity3d.com/2018/01/23/designing-safer-cities-through-simulations/ - NASA memakai game engine untuk simulasi
https://www.leadwerks.com/community/blogs/entry/2067-announcing-leadwerks-game-engine-enterprise-edition/ - …dll.
Dengan semakin terjangkaunya resource A.I secara online serta tersedianya perangkat keras yang semakin powerfull tapi murah, era dimana kebutuhan akan skill pemrograman visualisasi dan kontrol 3D menjadi tidak akan bisa terpisahkan.
VR/AR & Interaktifitas
Kemunculan Virtual Reality maupun Augmented Reality berpotensi untuk upgrade secara masif terutama dari sisi antar muka aplikasi untuk dibawa ke ranah virtual 3D dan memang market terbesar saat ini saya lihat memang masih ada pada domain game tetapi kalau anda cukup gila maka bisa saja anda memanfaatkan VR untuk mengontrol apapun secara virtual 3D ataupun membangun aplikasi edukasi, simulasi buat anak, keponakan ataupun teman-teman anda.
3D positioning object dengan real world object melalui teknologi AR sudah sangat umum saat ini melalui ARKit maupun ARCore dan tinggal menunggu munculnya hardware berkelas tinggi di device mobile tetapi dengan harga yang relatif murah maka teknologi seperti PBR model 3D akan semakin umum.
VR/AR adalah sebuah bentuk UPGRADE
Harga device VR yang masih relatif mahalpun sudah bukan masalah karena lambat laun harganya pasti akan turun. Oh yah, saya lupa ada yg namanya FastVR yang bersifat open source dan kalau biaya pembuatannya dirupiahkan sekitar 2–3 jutaanlah. 😍
Plus mereka juga menyediakan SDK untuk konektifitas dengan Unity 3D sehingga tingkat kebebasan yang anda dapatkan dalam memanfaatkan teknologi ini benar-benar sangatlah luas.
Pelestarian Sejarah & Budaya
Dalam penerapan yang lebih luas pemanfaatan game engine dan VR/AR sudah merambah ke arsip seperti museum.
Meskipun penerapan VR/AR masih dimuseum luar negeri tetapi melihat betapa kaya Indonesia dan sejarahnya maka sepertinya gak akan lama “angin imbas” itu akan sampai ke sini, hanya saja saran saya sebelum kedahuluan ahli-ahli dari luar maka akan sangat lebih baik jika lebih banyak ahli lokal yang lebih peduli dan cukup visioner untuk menggali lebih dalam lagi tentang pemanfaatan teknologi ini.
Sepertinya kita harus meniru anime jepang yang sangat kental memakai kultur dan tokoh-tokoh historis mereka, bahkan di tiap era dari 7 era Jepang pun pasti ada yang memakainya untuk tema anime.
…sekarang bandingkan dengan Indonesia yang sebenarnya sangat-sangat banyak mempunyai cerita dan sejarah yang menurut sumber yang saya baca, Belanda pun harus menyiapkan berkilo-kilo meter gedung pengarsipan untuk itu.
Animasi & Film
Kapabilitas game engine dan tool seperti Unity 3D dan Blender bisa juga dimanfaatkan untuk produksi film maupun animasi, meskipun secara teknis rendering game dan film sangat berbeda tetapi dengan perangkat keras yang sangat canggih saat ini sepertinya perbedaan itu menjadi sangat tipis.
[Update 14 April 2018]
Microsoft mengeluarkan yang namanya DirecX RayTracing artinya perenderan game bisa secara realtime artinya kualitas visual akan sebagus film.
- https://blogs.msdn.microsoft.com/directx/2018/03/19/announcing-microsoft-directx-raytracing/NVIDIA mengularkan teknologi NVIDI RTX dengan kartu grafis NVIDIA Volta
- https://developer.nvidia.com/rtx
Bahkan kualitas gambar film dalam game bisa anda dapatkan plus interaktifitas secara real time.
Menurut pendapat saya pribadi yang membedakan antara film dan game adalah kalau dalam film tidak ada pilihan bagi penonton untuk mengubah alur jalan cerita alias penonton harus menonton seperti skenario yang telah ditentukan dan sebaliknya kalau dalam game justru anda yang menentukan arah perjalanan alias melibatkan anda dalam jalan cerita, ada faktor emosional yang sangat berperan di situ.
How Games Move Us, Emotion By Design
Buku yang amat sangat saya sarankan untuk anda baca mengenai game dan society.
—
Sedangkan kesamaan atau garis merah yang bisa saya tarik dari game maupun film yaitu keunikan dalam penanaman konsep ataupun ide cerita sehingga bisa mengena ke gamer atau penonton dan mungkin ini adalah salah satu faktor paling susah yang memberikan porsi terbesar dalam menentukan kualitas dari game ataupun film dan kalau dilihat dari konteks game maka anda harus juga melibatkan interaksi dari gamer yang nantinya akan mempengaruhi core gameplay, dukungan grafis dari game dll.
Tapi bagaimana film atau animasi bisa solved the world problem?
Jawabannya film mempunyai andil besar dalam pembentukan ataupun pengenalan kultur budaya lain, pembentukan mindset yang membangun dll.
Dalam konteks game mungkin anda sudah sadar bahwa terlalu banyak konten game di sana yang isinya cuman berbau pembunuhan, violence bahkan genocide. Sedikit banyak kalau anda seorang pengembang game bisa menghasilkan konten yang lebih tepat sasaran dan berbau lokal.
Benefit yang lain?
Hal lain yang bisa anda dapatkan dari pengembangan game sudah pasti terutama dari sisi teknis yaitu anda akan makin banyak mengetahui berbagai sudut teknologi.
Pipeline
Ada common practice sebenarnya dalam pengembangan game yaitu bernama pipeline. Terserah anda mau memakai programming language, modeling tool atau rendering engine yang berbeda tapi kurang lebih seperti berikut pipeline yang harus diikuti.
Dalam realitanya fase-fase tersebut mempunyai team tersendiri karena tiap fase membutuhkan banyak skill dan penguasaan tool-tool khusus.
…tetapi kalau anda memutuskan sebagai solo game developer. May God Help You
Pendeknya dijamin waktu anda akan semakin tersita dan mungkin suatu saat anda akan memutuskan untuk berhenti ber-sosmed. 😆
Pengembangan Software
Mungkin ranah paling absurd yang saya tahu karena memanfaatkan game engine untuk membuat aplikasi desktop tetapi dalam konteks tertentu dimana diperlukan fitur-fitur khusus yang melibatkan GPU maka cara ini bisa menjadi pilihan.
Contoh yang pernah saya tahu adalah GUI dari https://megascans.se/ yaitu Quixel Megascans.
Pilihan lain andapun bisa memakai Unity 3D misalnya untuk membuat aplikasi pemutar mp3 yang mempunyai fitur visualisasi spektrum 3D.
Dude, it’s simple…game is THE money machine.
ya tentu saja tapi personally saya berpikir itu cuman bonus.
—
Pada intinya kalau anda mempunyai kritik sosial atau apapun, saran, edukasi ataupun konsep yang ingin anda sampaikan setidaknya anda sebagai progamer sangat berpotensi untuk memakai cara-cara yang lebih kreatif dalam menyampaikan itu semua dan menurut saya media seperti game atau film merupakan sarana paling efektif saat ini.
Kalau anda bertanya-tanya mengapa pengembangan game bisa merambat ke mana mana?
Meskipun hasil akhir bukanlah suatu game tetapi workflow atau pipeline dalam pengembangan game kurang lebih sama artinya mau tidak mau anda akan tetap harus memprogram, mempelajari fisika, matematika, mengetahui apa itu modeling, rigging, rendering dll.
Tentang Saya
Programer yang tidak terlalu bertendensi ke bahasa pemrograman tertentu, meskipun saya termasuk fans berat dari Node.js tetapi selama problem terselesaikan ok saja kalau harus pakai teknologi lain — Github.