Game Engine dan Scene Graph
Pengertian Game Engine
Game engine (arti
harfiah: "mesin permainan") adalah sistem perangkat lunak yang
dirancang untuk menjadi dasar pembuatan permainan video, seperti permainan di
komputer, konsol, atau ponsel. Game engine memberikan kemudahan bagi pengembang
permainan karena menyediakan fungsi-fungsi inti dari sebuah permainan, misalnya
grafika (menghasilkan grafika 2-dimensi atau 3-dimensi), fisika (menghitung dan
menyimulasikan hukum-hukum gerak dan hukum fisika lainya), audio, atau
kecerdasan buatan. Sebuah game engine dapat digunakan untuk membuat lebih dari
satu permainan, dan pengembang permainan dapat mengoptimisasi proses
pengembangan dengan cara menggunakan atau mengadaptasi game engine yang telah
ada sebelumnya
Sejarah Game Engine
Sebelum game engine, permainan biasanya ditulis sebagai entitas tunggal: permaianan untuk Atari 2600, misalnya, harus dirancang dari bawah ke atas untuk mengoptimalkan penggunaan perangkat keras layar — rutinitas tampilan inti ini sekarang disebut kernel oleh pengembang retro. Platform lain memiliki lebih banyak kelonggaran, tetapi bahkan ketika tampilan tidak menjadi perhatian, kendala memori biasanya menyabotase upaya untuk membuat desain padat data yang dibutuhkan mesin. Bahkan pada platform yang lebih akomodatif, sangat sedikit yang dapat digunakan kembali di antara permainan.
Kemajuan pesat perangkat keras arkade — yang
merupakan ujung tombak pasar pada saat itu — berarti bahwa sebagian besar kode
harus dibuang setelahnya, karena permainan generasi selanjutnya akan
menggunakan desain permainan yang sama sekali berbeda yang memanfaatkan
kelebihan sumber daya. Jadi sebagian besar desain permainan selama 1980-an
dirancang melalui seperangkat aturan hard-code dengan sejumlah kecil level dan
data grafik. Sejak zaman keemasan permainan video arkade, sudah umum bagi
perusahaan permainan video untuk mengembangkan mesin game in-house untuk
digunakan dengan perangkat lunak pihak pertama.
Pengertian scence Graph
Scene grafik adalah
struktur data umum yang biasa digunakan oleh aplikasi pengeditan grafik
berbasis vektor dan permainan komputer modern, yang mengatur representasi logis
dan sering spasial dari adegan grafis. Ini adalah kumpulan node dalam grafik
atau struktur pohon. Sebuah simpul pohon mungkin memiliki banyak anak tetapi
hanya satu induk tunggal, dengan efek dari induk diterapkan ke semua simpul
anaknya; operasi yang dilakukan pada grup secara otomatis menyebarkan efeknya
ke semua anggotanya. Dalam banyak program, mengasosiasikan matriks transformasi
geometris (lihat juga transformasi dan matriks) pada setiap tingkat grup dan
menggabungkan matriks tersebut bersama-sama adalah cara yang efisien dan alami
untuk memproses operasi tersebut. Fitur umum, misalnya, adalah kemampuan untuk
mengelompokkan bentuk dan objek terkait menjadi objek gabungan yang kemudian
dapat dimanipulasi semudah objek tunggal.
Dalam pengeditan grafik berbasis vektor, setiap simpul daun dalam grafik pemandangan mewakili beberapa unit atom dari dokumen, biasanya bentuk seperti jalur elips atau Bezier. Meskipun bentuk itu sendiri (khususnya jalur) dapat didekomposisi lebih lanjut menjadi simpul seperti simpul spline, adalah praktis untuk menganggap grafik adegan sebagai terdiri dari bentuk daripada pergi ke tingkat representasi yang lebih rendah.
Konsep node lain yang berguna dan digerakkan oleh pengguna adalah layer. Lapisan bertindak seperti lembaran transparan di mana sejumlah bentuk dan kelompok bentuk dapat ditempatkan. Dokumen kemudian menjadi satu set lapisan, yang mana pun dapat dengan mudah dibuat tidak terlihat, diredupkan, atau dikunci (dibuat hanya-baca). Beberapa aplikasi menempatkan semua lapisan dalam daftar linier, sementara yang lain mendukung lapisan di dalam lapisan hingga kedalaman yang diinginkan.
Secara internal,
mungkin tidak ada perbedaan struktural yang nyata antara lapisan dan grup sama
sekali, karena keduanya hanyalah simpul dari grafik pemandangan. Jika perbedaan
diperlukan, deklarasi tipe umum dalam C++ adalah membuat kelas simpul generik,
dan kemudian menurunkan lapisan dan grup sebagai subkelas. Anggota visibilitas,
misalnya, akan menjadi fitur lapisan, tetapi tidak harus dari grup.
Komentar
Posting Komentar