Pemrograman Game - 1
Tujuan
Setelah mempelajari bab ini, Anda diharapkan
- Memahami konsep pemrograman game
- Memahami game-loop/p
- Memahami proses render sebuah game yang real-time
2.1 Game-Loop
Game (digital game) adalah sebuah perangkat lunak (software) yang didalamnya terdapat sebuah perulangan secara terus menerus hingga aplikasi dihentikan, dimana didalam perulangan tersebut, aplikasi berinteraksi dengan penggunanya melalui alat masukan untuk mengikuti alur logika permainan. Perulangan tersebut disebut game-loop.

Garis tebal pada gambar di atas adalah garis alir dari game-loop. Dimulai dengan inisialisasi, aplikasi game mulai berjalan. Inisialisasi adalah sebuah proses menyiapkan variabel-variabel dan memberi nilai awal variabel tersebut, menyiapkan ruang memori untuk obyek-obyek game dan juga menyiapkan sebuah jendela. Inti dari proses inisialisasi adalah agar semua hal yang dibutuhkan oleh apliksi telah tersedia sebelum aplikasi memasuki game-loop. Sedangkan proses deinisialiasi, kebalikan dari proses inisialisasi, adalah proses penghapusan ruang memori yang menyimpan obyek-obyek game tersebut, agar ruang memori dapat digunakan oleh aplikasi lain.
Secara garis besar, di dalam game-loop, terdapat empat hal yaitu :
- Update
Update berarti merubah nilai variabel dengan nilai baru. Contohnya update transformasi (posisi, rotasi, skala) obyek di ruang 3D atau update logika permainan. Perubahan transformasi dan perubahan logika dapat dipicu oleh input.
- Membersihkan back-bufferbr
Back-buffer adalah ruang memori untuk tempat penggambaran sementara dari frame, sebelum frame ditampilkan di layar. Arti dari membersihkan back-buffer adalah mewarnai seluruh back-buffer dengan suatu warna tertentu.
- Render back-bufferbr
Frame yang ingin ditampilkan ke layar (on-screen image), di render terlebih dahulu pada back-buffer.
- Tampilkan ke layar monitor
Menyalin back-buffer ke layar agar pengguna dapat melihat tampilan aplikasi game yang ia mainkan.
- Input
Event Input (keyboard, mouse, network) mengirim sinyal ke aplikasi bahwa telah terjadi event dari suatu alat input. Sinyal apa yang diterima ditentukan oleh jenis alat input yang kemudian aplikasi menentukan untuk apa sinyal tersebut. Contoh sinyal yang menyatakan alat input KEYBOARD dengan tombol ESCAPE ditekan adalah untuk menghentikan aplikasi. Tanpa alat input, maka aplikasi game akan menjadi suatu animasi yang hanya ditonton oleh pengguna.
2.2 Proses Render Game
Menggunakan back-buffer (off-screen image) untuk menggambar frame, sebelum frame tersebut ditampilkan ke front-buffer (on-screen image) atau layar monitor, adalah suatu cara yang disebut double-buffering. Cara ini dapat menghilangkan tampilan berkedip-kedip (flicker). Gambar dibawah adalah proses penggambaran sebuah obyek.

Proses render sebuah obyek untuk satu frame,
kotak paling kanan menunjukkan bahwa obyek telah selesai digambar
Garis merah pada gambar tersebut merupakan batas horisontal dari berapa banyak obyek tersebut telah selesai di render. Bila proses render obyek dilakukan secara langsung pada layar, maka pengguna dapat melihat batas tersebut dan akan mengakibatkan flickering. Oleh karena itu, sebaiknya proses render obyek dilakukan di back-buffer agar pengguna tidak melihat proses render suatu obyek. Dan setelah penggambaran satu frame dinyatakan selesai, barulah kemudian frame tersebut ditampilkan di layar monitor.




Recent Comments