Sabtu, 09 April 2022

Arsitektur Perangkat Lunak Game

  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:

  1. 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.
  2. Input
    Pemain berinteraksi dengan engine dan game melalui subsistem ini dan dapat dilakukan dengan sejumlah perangkat input yang berbeda seperti mousekeyboard, atau joystick.
  3. 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
  4. 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.
  5. 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.
  6. 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.
  7. Scripting (Penaskahan)           
    Dalam membuat game, pembuat menggunakan suatu cara untuk menciptakan gameplay dan konten dengan lebih mudah dan untuk inilah bahasa scripting seringkali dikembangkan.
  8. 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