Arsitektur Perangkat Lunak Game
Arsitektur Game Engine adalah suatu rancangan yang dibuat untuk menyusun tiap-tiap komponen yang dibutuhkan dalam game engine sehingga komponen-komponen tersebut dapat bekerja dengan baik satu sama lain. Arsitektur game engine sangatlah dibutuhkan karena merupakan satu perangkat lunak yang melakukan semuanya mulai dari menggambar grafis hingga berkomunikasi dengan satu komputer ke komputer lain, namun merupakan sekumpulan bagian yang berinteraksi dimana tiap-tiap bagiannya hanya melakukan apa yang seharusnya dilakukan sehingga keseluruhannya menciptakan satu kesatuan game engine yang utuh.
Tujuan game engine adalah untuk mempermudah pembuatan bagian-bagian tertentu dalam game, membagi-bagi pengembangan game menjadi modul-modul tertentu dan memudahkan kolaborasi antar pihak.
Subsistem yang berkaitan dengan game engine, adalah sebagai berikut:
- Audio
Audio merupakan bagian penting dalam video game sebagaimana halnya audio dalam film, kecuali pemain dapat berinteraksi dalam game yang mana membuatnya menjadi lebih kompleks. Audio dalam video game harus bekerja baik sebagai output maupun input. - Input
Pemain berinteraksi dengan engine dan game melalui subsistem ini dan dapat dilakukan dengan sejumlah perangkat input yang berbeda seperti mouse, keyboard, atau joystick. - Fisika
Video game seringkali merupakan representasi dari, atau terinspirasi dari, dunia nyata. Fisika digunakan sebagai aspek mendasar untuk menciptakan dunia nyata tersebut dalam video game. Fisika hanya baru diterapkan lebih sering belakangan ini daripada di masa-masa awal video game dikarenakan perhitungan fisika bisa sangat rumit dalam pemrograman permainan, sehingga memberatkan permainan tersebut - Renderer (Pemroses)
Bagian ini merupakan bagian yang dipikirkan kebanyakan orang sebagai fungsi dari game engine. Sesungguhnya renderer hanyalah satu-satunya bagian yang melakukan perhitungan dalam menciptakan grafis dan menampilkannya kepada pengguna. - AI
Sebagaimana halnya fisika dalam video game, AI memainkan peran penting dalam game engine, walaupun bukanlah bagian yang paling diandalkan dalam middleware dikarenakan AI harus bersifat unik untuk setiap game, sementara fisika pada umumnya tidak. - Core (Inti)
Setiap organisasi / sistem membutuhkan koordinator atau yang sejenis dan core dalam game engine memiliki peran tersebut. Core mengorganisir komunikasi antara komponen-komponen terkait dan memastikan bahwa tidak ada yang salah. - Scripting (Penaskahan)
Dalam membuat game, pembuat menggunakan suatu cara untuk menciptakan gameplay dan konten dengan lebih mudah dan untuk inilah bahasa scripting seringkali dikembangkan. - Networking (Penjaringan)
Hampir semua video game masa kini memiliki sistem multiplayer yang memungkinkan banyak pemain dalam satu permainan sekaligus.
Beberapa
elemen yang ada di dalam game engine adalah :
- Tools/Data
Pada
pengembangan game paling tidak dibutuhkan beberapa tools seperti 3D model
editor, level editor dan graphics programs.
- System
System
berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam
mesin. Jika game engine sudah dibuat dengan baik maka system ini adalah
satu-satunya bagian yang membutuhkan perubahan yang cukup banyak apabila
dilakukan implementasi pada platform yang berbeda.
- Console
Adanya
console dapat merubah setting game dan setting game engine di dalam game tanpa
perlu melakukan restart pada game tersebut. Console sendiri sering digunakan
dalam proses debugging.
- Support
Bagian ini paling sering digunakan oleh system, support berisi rumus-rumus matematika yang biasa digunakan, vector, matrix, memory manager, file loader.
- Renderer/Engine Core
Engine Core/rendere terdiri dari beberapa sub yaitu visibility, Collision Detection dan Respon, Camera, Static Geomerty, Dynamic Geometry, Particle Systems, Billboarding, Meshes, Skybox, Lighting, Fogging, Vertex Shading, dan Output.
- Game Interface
Game Interface berfungsi sebagai control yang bertujuan untuk memberikan interface apabila di dalam game engine tersebut terdapat fungsi yang bersifat dinamis sehingga memudahkan untuk mengembangkan game tersebut.
- The Game
Inti dari penggunaan game engine sendiri, sehingga terserah kita bagaimana mengambangkan game tersebut.
Game engine ini memiliki macam –macam jenis yang ditunjukan untuk berbagai kemampuan pemrograman . berikut merupakan tipe- tipe dari game engine :
1. Roll-your-own game engine
Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine-nya sendiri. Mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri.
2. Mostly-ready game engines
Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/Programer. Semuanya termasuk contoh GUI, physics, libraries model, Textutre dan lain-lain.
3 Point-and-click engines
Engine ini merupakan engine yang sangat dibatasi, tapi dibuat
dengan sangat user friendly. Bahkan bisa mulai membuat game sendiri menggunakan
engine seperti GameMaker, Torque Game Builder dan Unity3D.
Beberapa contoh Game Engine Open Source :
1. Delta3D
Delta3d adalah software open source / simulasi engine API.
Delta3d dikelola dan didukung oleh Caper Holdings LLC.
2. Panda3D
Panda3D
adalah open source perangkat lunak bebas di bawah lisensi BSD yang telah
direvisi.
Sumber
:
https://general3dent.wordpress.com/2017/04/23/arsitektur-game-engine/
http://fatwakb.blogspot.com/2017/03/arsitektur-perangkat-lunak-game.html
Tidak ada komentar:
Posting Komentar