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

Postingan populer dari blog ini

Perbedaan Multiplexer dan De-Multiplexer serta Perbedaan Encoder dan Decoder