Pages

Rabu, 25 April 2018

Arsitektur Game Engine

Arsitektur Game Engine
 Game Engine
Perangkat lunak yang dapat membuat atau mengembangkan sebuah game yang ingin kita buat dapat disebut game engine. Game ini dapat berbagai genre game yang dapat Anda buat seperti Action, shooter, adventura dan sejenisnya. 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. 
Arsitektur Game
Adalah rancangan atau blueprint dari sebuah game. Sedangkan  arsitektur mesin game adalah system perangkat lunak yang  dirancang untuk menciptakan dan pengembangan video game. Dapat dikatakan  bahwa arsitektur mesin game itu adalah rancangan dari sistem perangkat  lunak dari game itu sendiri.
Beberapa elemen yang terdapat dalam game engine, yaitu:
  • Tools/Data
Pada pengembangan game paling tidak dibutuhkan beberapa tools seperti 3d model editor, level editor dan graphics programs. Bahkan jika diperlukan, seringkali kita mengembangkan game engine tersebut dengan menambahkan beberapa code dan fitur yang diperlukan.
  • System
System adalah bagian dari game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. System adalah bagian yang membutuhkan perubahan yang cukup banyak apabila dilakukan implementasi pada platform yang berbeda. Di dalam system sendiri terdapat beberapa sub system seperti graphics, input, sound, timer, configuration. System bertanggung jawab untuk melakukan inisialisasi, update dan mematikan sub system yang terdapat di dalamnya.
  • Console
Console dapat merubah setting game dan setting game engine di dalam game tanpa perlu melakukan restart pada game tersebut. Console biasa digunakan dalam proses debugging, seperti misalnya apabila game engine tersebut mengalami error maka kita hanya mengoutputkan error message tersebut ke dalam console tanpa harus melakukan restart.
  • Support
Support merupakan bagian yang sering digunakan pada system di galam game engine. Support berisikan rumus-rumus matematika yang biasa digunakan, vector, matrix, memory, file loader. Merupakan dasar dari game engine dan hampir digunakan dalam semua project game engine.
  • Renderer/Engine Core
Renderer/engine core terdiri dari beberapa sub yaitu visibility, collision detection dan response, camera, static geometry, dynamic geometry, particle systems, billboarding, meshes, skybox, lighting, fogging, vertex shading dan output.
  • Game Interface
Game interface merupakan layer antara game engine dan game itu sendiri. Berfungsi sebagai control yang bertuuan untuk memberikan interface apabila di dalam game engine tersebut terdapat fungsi yang bersifat dinamis sehingga memudahkan untuk mengembangkan game tersebut.
  • The Game
Game merupakan inti dari penggunaan game engine sendiri, sehingga ini tergantung bagaimana pengguna dalam mengembangkannya.
Tipe-Tipe Game Engine
Game engine biasanya datang dengan macam-macam jenis dan tujuannya. Ada 3  tipe game engine yaitu sebagai berikut :
  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.
  1. 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.
  1. Point-and-click engines
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.
Interaksi fisik pada teknologi game
interaksi menurut Hormans adalah suatu kejadian ketika aktivitas atau sentimen yang dilakukan oleh seseorang terhadap individu lain diberi ganjaran (reward) atau hukuman (punishment) dengan menggunakan suatu aktivitas atau sentimen oleh individu lain yang menjadi pasangannya. Konsep pengertian interaksi yang dikemukakan oleh Hormans yaitu suatu tindakan yang dilakukan oleh seseorang dalam suatu interaksi merupakan suatu stimulus bagi tindakan individu lain yang menjadi pasangannya. interaksi fisik ialah salah satu bentuk interaksi yang terjadi jika ada dua orang atau lebih melakukan kontak dengan menggunakan bahasa-bahasa tubuh. Contoh interaksi ini : posisi tubuh, ekspresi wajah, gerak-gerik tubuh dan kontak mata.
Dalam lingkungan game, interaksi fisik dapat dimaksud dengan menyerap pengertian diatas, yaitu menjadi interaksi fisik ialah salah satu bentuk interaksi yang terjadi jika ada dua objek atau lebih melakukan kontak. Kontak yang terjadi antara objek – objek tersebut umumnya adalah collision atau tabrakan.

 Collision Detection
Setiap program game yang akan kita buat sangat membutuhkan suatu algoritma yang dinamakan Collision Detection atau Deteksi Tubrukan. Apa itu Collision Detection? Apa Fungsi dari aloritma tersebut? Untuk itu saya akan menjelaskan tentang Collision Detection. Collision Detection adalah proses pengecekan apaka beberapa objek spesial saling bertumpuk atau tidak. Jika ternyata ada dua buah objek saling bertempuk, maka kedua objek tersebut dapat dikatakan saling bertumpukkan. Metode ini juga sering digunakan dalam membuat game antara objek dengan objek atau objek dengan sebuah frame atau pembatas. Sebagai contoh game Snake yang menggunakan metode Collision Detection antara kepala ular yang kita perintah lewat keyboard denan objek tujuan atau pembatas sebuah arena game.
Contoh lain pada Collision Detection adalah pada game shooter, yaitu pada peluru dan objek sasaran akan menjadi sebuag deteksi tabrakan. Untuk membuat metode deteksi tabrakan dengan menggunakan logika if-else. Algoritma untuk mendeteksi Collision (tabrakan) sangat dibutuhkan untuk program game. Flash mulai versi 5 keatas menyediakan metode yang dinamakan hitTest untuk memeriksa apakah sebuah movie clip bertabrakan dengan movie yang lain. Sebelum metode hitTest ini tersedia, seorang programmer flash harus mendeteksi secara manual koordinat sebuah movie clip, apakah movie clip ini bertabrakan dengan movie clip yang lain. Tentunya cara ini sangat merepotkan karena harus mempertimbangkan pula ukuran movie clipnya.
Algoritma Collision Detection


Efek Positif 
  1. Setiap game memiliki tingkat kesulitan/Level yang berbeda. Umumnya permainan ini dilengkapi pernak-pernik senjata, amunisi, karakter dan peta permainan yang berbeda. Untuk menyelesaikan level atau mengalahkan musuh secara efisien diperlukan strategi. Permainan game online akan melatih pemainnya untuk dapat memenangkan permainan dengan cepat, efisien dan menghasilkan lebih banyak poin.
  2. Meningkatkan konsentrasi. Kemampuan konsentrasi pemain game online akan meningkat karena mereka harus menyelesaikan beberapa tugas, mecari celah yang mungkin bisa dilewati dan memonitor jalannya permainan. Semakin sulit sebuah game maka semakin diperlukan tingkat konsentrasi yang tinggi.
  3. Meningkatkan koordinasi tangan dan mata. Penelitian yang berhasil didapat menyatakan bahwa orang yang bermain game sekitar dua setengah jam perhari dapat meningkatkan koordinasi antara mata dan tangan.
  4. Meningkatkan kemampuan membaca. Game dengan genre edukasi atau pendidikan banyak sekali manfaatnya. Menurut Psikolog dari Finland Univesity menyatakan bahwa game edukasi dapat meningkatkan kemampuan membaca pada anak-anak. Jadi pendapat yang menyatakan bahwa jenis permainan ini menurunkan tingkat minat baca anak sangat tidak beralasan.
  5. Meningkatkan kemampuan berbahasa inggris. Para gamers yang sering bermain game online dengan genre apapun dengan berjalannya waktu dapat mempunyai kemampuan berbahasa inggris yang lebih baik. Ini karena banyak alur cerita yang diceritakan dalam bahasa inggris dan kadang kala mereka chat dengan pemain lain dari berbagai negara.
  6. Meningkatkan sportivitas. Sportif dan fair play adalah nilai-nilai umum yang dikembangkan dalam kompetisi pemuda. Video gamejuga menawarkan hal yang sama. Dia mengajarkan nilai-nilai keteraturan. Pada permainan online (onlinegame) misalnya, masing-masing pemain akan bersaing secara teratur satu sama lainnya.
  7. Membentuk tim kerja. Kerjasama tim yang kuat banyak terbina dalampermainan video game. Permainan online misalnya, membutuhkan pemain yang efektif berkomunikasi dengan tim mereka. Sementara itu, mereka terus melakukan tugas-tugas yang diembankan kepada mereka demi meraih kemenangan.
Efek Negatif 
  1. Menimbulkan kecanduan yang kuat. Sebagian besar game yang beredar saat ini didesain supaya menimbulkan kecanduan bagi para pemainnya. Semakin seseorang kecanduan pada suatu game, maka pembuat game semakin diuntungkan. Tapi keuntungan produsen ini jutsru menghasilkan dampak yang buruk bagi kesehatan psikologis para pemain game.
  2. Mendorong melakukan hal-hal negatif. Dengan semakin seringnya kita bermain game online semakin banyak juga kebutuhan yang harus kita dapatkan bagaimanapun caranya sehingga tidak jarang para gamers akan berusaha mencuri ID orang lain demi bisa mendapatkan keuntungan secara instan atau bahkan menggunakan uang bayaran sekolah demi bisa bermain game.
  3. Terbelangkainya kegiatan di dunia nyata. Keasyikan dalam bermain game akan mengakibatkan kita lupa dengan segala hal dalam kehidupan sehari-hari kita seperti beribadah, mengerjakan tugas sekolah atau kuliah, dan melupakan pekerjaan menjadi terbengkalai karena bermain game.
  4. Perubahan pola makan dan istirahat. Efek dari bermain game juga akan membuat waktu makan dan istirahat menjadi tidak terkontrol apalagi sampai harus begadang demi memainkan game online tersebut.
  5. Mengganggu kesehatan. Akan mengakibatkan kelelahan mata, mengganggu sirkulasi darah dan menekan pembuluh darah vena disekitar anus, sehingga menyebabkan mati rasa, kesemutan, kelemahan atau kerusakan otot pada tangan dan jari serta menurunnya sistem kekebalan tubuh sehingga lebih mudah terserang penyakit.
 User interface pada game
Graphical User Interface(GUI)
     GUI adalah tipe antarmuka yang digunakan oleh pengguna untuk berinteraksi dengan sistem operasi melalui gambar-gambar grafik, ikon, menu, dan menggunakan perangkat penunjuk ( pointing device) seperti mouse atau track ball. Elemen-elemen utama dari GUI bisa diringkas dalam konsep WIMP ( window, icon, menu, pointing device).

Terdapat beberapa macam fitur yang terdapat pada antarmuka pengguna telematika. Fitur-fitur itu antara lain:
1)      Head Up Display System


     Head Up Display (HUD) merupakan sebuah tampilan transparan yang menampilkan data tanpa mengharuskan penggunanya untuk melihat ke arah yang lain dari sudut pandang biasanya. Asal nama dari alat ini yaitu pengguna dapat melihat informasi dengan kepala yang terangkat (head up) dan melihat ke arah depan daripada melihat ke arah bawah bagian instrumen. Walaupun HUD dibuat untuk kepentingan penerbangan militer, sekarang HUD telah digunakan pada penerbangan sipil, kendaraang bermotor dan aplikasi lainnya.

2)      Tangible User Interface

     Tangible User Interface, yang disingkat TUI, adalah antarmuka dimana seseorang dapat berinteraksi dengan informasi digital lewat lingkungan fisik. Nama inisial Graspable User Interface, sudah tidak lagi digunakan. Salah satu perintis TUI ialah Hiroshi Ishii, seorang profesor di Laboratorium Media MIT yang memimpin Tangible Media Group. Pandangan istimewanya untuk tangible UI disebut tangible bits, yaitu memberikan bentuk fisik kepada informasi digital sehingga membuat bit dapat dimanipulasi dan diamati secara langsung.

3)      Computer Vision

     Computer Vision (komputer visi) merupakan ilmu pengetahuan dan teknologi dari mesin yang melihat. Dalam aturan pengetahuan, komputer visi berhubungan dengan teori yang digunakan untuk membangun sistem kecerdasan buatan yang membutuhkan informasi dari citra (gambar). Data citranya dapat dalam berbagai bentuk, misalnya urutan video, pandangan deri beberapa kamera, data multi dimensi yang di dapat dari hasil pemindaian medis.

Dalam desain antarmuka game terdapat beberapa elemen yang diantaranya adalah :
1)      Diegetic
Elemen user interface yang diegetik ada dalam dunia permainan (fiksi dan geometris) sehingga pemain dan avatar dapat berinteraksi dengan mereka melalui visual, audible atau haptic. Elemen UI diegetik yang dieksekusi dengan baik dapat meningkatkan pengalaman narasi untuk pemain, memberikan pengalaman yang lebih mendalam dan terintegrasi. Salah satu game yang mengimplementasikan elemen diegetic adalah Assassin’s Creed. Assassin’s Creed berhasil menggunakan banyak pola diegetic meskipun itu diatur dalam dunia sejarah karena pemain pemain menggunakan sistem virtual reality di masa depan. Jadi cerita sebenarnya futuristik daripada sejarah.
2)      Meta
Gambaran yang bisa muncul dalam dunia game, namun tidak selalu divisualisasikan spasial untuk pemain.Contoh yang paling jelas adalah efek ditampilkan di layar, seperti percikan darah pada kamera untuk menunjukkan kerusakan. Contoh: Grand Theft Auto 4 Berinteraksi dengan telepon di Grand Theft Auto 4 adalah contoh menarik. Ini meniru interaksi dunia nyata – Anda mendengar dering telepon dan ada penundaan sebelum karakter dan pemain menjawabnya. Elemen UI sebenarnya itu sendiri muncul pada pesawat hub 2D, jadi itu benar-benar elemen Meta, meskipun awal interaksi yang diegetik.
3)      Spatial
Elemen User Interface yang disajikan dalam ruang permainan 3D dengan atau tanpa suatu entitas dari dunia permainan yang sebenarnya (diegetik atau non-diegetik).
Fable 3 adalah contoh di mana unsur-unsur spatial yang digunakan untuk memberikan informasi lebih kepada pemain dan mencegah mereka dari melompat ke layar peta. Jejak bersinar hampir cocok dalam fiksi mengingat kualitas estetika ajaib itu tapi karakter tidak dimaksudkan untuk menyadari hal itu. Ini memandu pemain ke tujuan berikutnya.
4)      Non-Diagetic
Antarmuka yang diberikan di luar dunia game, hanya terlihat dan terdengar ke pemain di dunia nyata desain interface ini semuanya mengunakan visual heads-up display (HUD). semua menjadi sangat nyaman dengan penggunaan heads-up display (HUD) dalam permainan. Sistem ini memberikan informasi penting dengan cara yang cukup sederhana. Jika dilakukan dengan benar pemain bahkan tidak tahu itu ada. Mass Effect 3 menggunakan banyak Non-diegetik elemen UI untuk menginformasikan pemain senjata karakter dipilih dan kekuasaan – antara lain. Mengingat pengaturan futuristik itu saya tidak bisa membantu untuk berpikir jika beberapa informasi ini bisa telah terintegrasi ke dalam dunia game, narasi, atau bahkan keduanya.


Sumber refrensi :
Sumber :
Sumber :
http://caralengkap.com/2012/10/definisi-interfaceantar-muka-dan-contohnya.html
https://id.wikipedia.org/wiki/Antarmuka_pengguna