Rabu, 19 April 2017

Tugas BAB 4 ARSITEKTUR GAME ENGINE

ARSITEKTUR GAME ENGINE

  • Apa pengertian dari Arsitektur Game Engine
GameEnginev12 
Game Engine adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.

Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek. Game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan.

Beberapa game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai engine, yaitu game programmer.

Tujuan Penggunaan Game Engine

Game engine menyediakan seperangkat alat pengembangan visual di samping komponen software digunakan kembali. Alat-alat ini umumnya diberikan dalam suatu lingkungan pengembangan terpadu untuk mengaktifkan disederhanakan, perkembangan pesat dari permainan dengan cara data-driven. Mesin pengembang Game upaya untuk “pra-menciptakan roda” dengan mengembangkan suite perangkat lunak kuat yang mencakup banyak unsur pengembang game mungkin perlu untuk membangun sebuah permainan.

Kebanyakan mesin permainan suite menyediakan fasilitas yang memudahkan pengembangan, seperti grafik, suara, fisika dan fungsi AI. Mesin permainan ini kadang-kadang disebut “middleware” karena, seperti dengan istilah naluri bisnis, mereka menyediakan sebuah platform perangkat lunak yang fleksibel dan dapat digunakan kembali yang menyediakan semua fungsionalitas inti yang dibutuhkan, langsung dari kotak, untuk mengembangkan sebuah aplikasi permainan sambil mengurangi biaya , kompleksitas, dan waktu-ke-pasar-semua faktor penting dalam industri video game yang sangat kompetitif. Gamebryo dan RenderWare adalah seperti program middleware banyak digunakan.

Seperti solusi middleware lainnya, mesin permainan biasanya menyediakan abstraksi platform, yang memungkinkan permainan yang sama untuk dijalankan pada berbagai platform termasuk game konsol dan komputer pribadi dengan sedikit, jika ada, perubahan yang dibuat ke kode sumber permainan. Seringkali, mesin permainan dirancang dengan arsitektur berbasis komponen yang memungkinkan sistem tertentu dalam mesin yang akan diganti atau diperpanjang dengan lebih khusus (dan sering kali lebih mahal) komponen middleware game seperti Havok untuk fisika, Miles Sound System untuk suara, atau Bink untuk Video.

Beberapa mesin permainan seperti RenderWare bahkan dirancang sebagai rangkaian dihubungkan secara longgar komponen middleware permainan yang bisa selektif dikombinasikan untuk membuat mesin khusus, bukan pendekatan yang lebih umum dari memperluas atau menyesuaikan solusi terintegrasi yang fleksibel. Namun diperpanjang tercapai, hal itu tetap menjadi prioritas tinggi dalam mesin game karena berbagai kegunaan yang mereka diterapkan. Meskipun kekhususan nama, mesin permainan yang sering digunakan untuk jenis lain aplikasi interaktif dengan kebutuhan grafis real-time seperti demo pemasaran, visualisasi arsitektur, simulasi pelatihan, dan lingkungan pemodelan.

Beberapa mesin permainan hanya menyediakan 3D real-time rendering kemampuan bukan berbagai fungsi yang dibutuhkan oleh game. Mesin ini mengandalkan pengembang game untuk melaksanakan seluruh fungsi ini atau merakit dari komponen middleware permainan lainnya. Jenis mesin umumnya disebut sebagai “mesin grafis,” “mesin render,” atau “mesin 3D” bukan meliputi lebih istilah “mesin permainan.” Terminologi ini tidak konsisten banyak digunakan sebagai fitur lengkap mesin permainan 3D disebut hanya sebagai “mesin 3D.”

Beberapa contoh mesin grafis adalah: Crystal Space, Genesis3D, Irrlicht, JMonkey Engine, OGRE, RealmForge, Truevision3D, dan Visi Engine. Modern permainan atau mesin grafis umumnya memberikan grafik adegan, yang merupakan representasi berorientasi objek dari dunia permainan 3D yang sering menyederhanakan desain game dan dapat digunakan untuk rendering yang lebih efisien dari dunia maya yang luas.

Tipe Game Engine

Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrograman. Ada 3 tipe game engine yang ada saat ini, diantaranya :
  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. Di sisi lain, mereka kadang menggunakan library komersil atau yang open source. Terkadang mereka juga membuat semuanya mulai dari nol.Biasanya game engine tipe ini lebih disukai karena selain kemungkinan besar diberikan secara gratis, juga memperbolehkan mereka (para developer) lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya. Tower Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine-nya, hanya untuk ditulis ulang semuanya dalam beberapa hari sebelum penggunaannya karena adanya bug kecil yang sangat mengganggu.
  2. Mostly-ready game engines.Engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer/programer. Semuanya termasuk contoh GUI, physiscs, libraries model, texture dan lain-lain. Banyak dari mereka yang sudah benar-benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game engine semacam ini memiliki beberapa batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar-benar terbuka lebar.Hal ini ditujukan agar tidak terjadi banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game engine seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Dengan hal ini dapat menyingkat menghemat waktu dan biaya dari para developer game.
  3. Point – and – click Engine.Engine ini merupakan engine yang sangat dibatasi, tapi dibuat dengan sangat user friendly. Anda bahkan bisa mulai membuat game sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget. Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup semuanya, mulai dari grafis hingga tata suara.Tapi bukan berarti game engine jenis ini tidak berguna, bagi developer cerdas dan memiliki kreativitas tinggi, game engine seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman dan merilis game-game mereka secepatnya.
  •  contoh games yang menggunakan game engine dan jelaskan apa game tersebut
  1.  3D Game Studio
3D GameStudio atau 3DGS adalah aplikasi 3D permainan komputer sistem yang memungkinkan pengguna untuk membuat game 3D dan aplikasi lain seperti virtual reality. Didalam 3DGS terdapat editor model, editor tingkat, script editor / debugger dan dilengkapi dengan koleksi tekstur, model dan karya seni, serta sistem template permainan yang memungkinkan penciptaan dasar permainan penembak atau RPG tanpa pemrograman. Untuk game yang kompleks atau aplikasi lain, baik bahasa pemrograman terintegrasi bernama Lite-C atau bahasa pengembangan eksternal seperti Visual C ++ atau Borland Delphi dapat digunakan dalam membuat soruce game tersebut.
GAMESTUDIO dipasarkan diberbagai tingkat keterampilan pemakaian, gamestudio menyediakan tiga tingkat yang berbeda dari penggunaannya yaitu terdapat "pemula", "maju", dan "profesional", untuk penggemar, seniman, serta programmer. Selain itu, CONITEC juga memasarkan sistem untuk keperluan seperti advergame pengembangan dan penciptaan presentasi real-time, simulasi, dan pameran virtual. 
2.  Panda 3D

Dimaksudkan Panda3D ini permainan pengembangan bahasa Python. Mesin itu sendiri ditulis dalam C + + , dan menggunakan sebuah otomatis wrapper-generator untuk mengekspos fungsi lengkap dari mesin dalam antarmuka Python. Pendekatan ini memberikan pengembang keuntungan dari pengembangan Python, seperti perkembangan pesat dan manajemen memori maju, namun tetap kinerja bahasa disusun dalam inti mesin. Misalnya, mesin yang terintegrasi dengan kolektor sampah Python, dan struktur mesin secara otomatis dikelola.
The manual dan contoh program menggunakan Python, meskipun pengembang bekerja pada menerjemahkan manual untuk C + + dan menyediakan C + + sampel program.
Seorang pengembang menggunakan Panda3D biasanya menulis kode di Python, tetapi juga memungkinkan untuk langsung mengakses mesin menggunakan C + + code.
Para pengguna Panda3D termasuk pengembang dari beberapa game komersial besar, sebuah proyek sumber terbuka beberapa, dan sejumlah program universitas yang memanfaatkan kurva belajar pendek Panda3D itu. Masyarakat kecil tapi aktif, dan pertanyaan pada forum umumnya menjawab dengan cepat.
Desain
Panda3D adalah mesin grafik adegan. Ini berarti bahwa dunia maya ini awalnya kosong Cartesian ruang menjadi yang menyisipkan permainan programmer model 3D. Panda3D tidak membedakan antara "besar" model 3D, seperti model dari penjara seluruh atau pulau, dan "kecil" model 3D, seperti model meja atau pedang. Model baik besar dan kecil yang dibuat dengan menggunakan program pemodelan standar seperti Blender , 3ds Max atau Maya , dimuat ke Panda3D, dan kemudian dimasukkan ke dalam ruang Cartesian.
Grafik adegan Panda3D mengekspos fungsi OpenGL dan DirectX dalam bentuk yang cukup literal. Misalnya, OpenGL dan DirectX keduanya memiliki kemampuan kabut. Untuk mengaktifkan kabut di Panda3D, satu hanya menyimpan parameter kabut pada node dalam grafik adegan. Parameter kabut sama persis dengan parameter panggilan setara dalam API yang mendasarinya. Dengan cara ini, Panda3D dapat dilihat sebagai pembungkus tipis sekitar API tingkat rendah. Dimana hal itu berbeda dari mereka adalah bahwa ia menyimpan adegan, sedangkan OpenGL dan DirectX tidak. Tentu saja, itu juga menyediakan tingkat yang lebih tinggi operator, seperti memuat model, melaksanakan animasi, mendeteksi tabrakan, dan sejenisnya.
 Panda3D pertama direkayasa sebelum adanya shader vertex dan pixel. Ini diperoleh dukungan untuk shader manual ditulis pada tahun 2005. Namun, pengguna telah lambat untuk meningkatkan modern yang per-pixel teknik pencahayaan dalam permainan mereka. Para pengembang berteori bahwa ini adalah karena program shader bisa sangat sulit, dan bahwa pengembang game banyak ingin mesin untuk menangani secara otomatis.
Untuk memperbaiki situasi ini, para pengembang Panda3D baru-baru ini diberikan Panda3D kemampuan untuk mensintesis shader otomatis. Sintesis ini terjadi jika pemodel 3D menandai model untuk per-pixel pencahayaan, atau jika pemodel menerapkan peta normal, peta, gloss diri iluminasi peta, atau kemampuan lain yang melebihi kemampuan dari pipa fixed-fungsi. Tujuan dari sintesis ini adalah untuk membuat model sebagai modeler dimaksud, tanpa intervensi dari programmer.
Non-Graphical Kemampuan
            Panda3D menyediakan kemampuan selain render 3D. Kepala di antara ini adalah : 
  1. Kinerja alat analisis. 
  2. Eksplorasi grafik alat adegan. 
  3. Debugging alat. 
  4. Sebuah seni pipa ekspor / impor lengkap. 
  5. 3D Audio, baik menggunakan FMOD , OpenAL atau Sistem Suara Miles . 
  6. Deteksi tabrakan
  7. Fisika sistem, dan integrasi penuh untuk Mesin Dynamics Terbuka
  8. eksperimental PhysX dan integrasi Bullet.
  9. Keyboard dan dukungan Mouse.
  10. Dukungan untuk I / O device.
  11. Negara yang terbatas mesin.
  12. GUI, integrasi libRocket.
  13. Jaringan 
  14. Kecerdasan buatan

Daftar Pustaka
http://prasetyaha.blogspot.co.id/2014/06/game-engine-panda3d.html 
http://thisyunitablog.blogspot.co.id/2016/01/3d-gamestudio.html 

Tidak ada komentar:

Posting Komentar