Posted by : muchamadsamiaji
Kamis, 26 April 2018
ARSITEKTUR
GAME ENGINE
Arsitektur game engine adalah sistem
perangkat lunak yang dirancang untuk menciptakan dan mengembangkan video game.
Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan
video dan sistem operasi dekstop seperti Microsoft Windows, Linux, dan Mac Os.
Tahap-tahap awal
pembuatan game :
1. Tuangkan Logika permainan anda ke dalam rendering (view)
1. Tuangkan Logika permainan anda ke dalam rendering (view)
Konsep
Hal pertama yang harus dilakukan adalah memisahkan render dari logika. Logika permainan tidak mengenal rendering, sehingga pada logika tidak peduli apakah nantinya akan ditampilkan dalam 2D, 3D seni, ASCII atau apapun. Namun rendering tergantung pada logika, karena itu perlu info tentang cara/dimana untuk menampilkan segala logika kita. Gambar berikut menunjukkan 2 modul dengan dependensi. Rendering yang terjadi di dalam modul "View".
Hal pertama yang harus dilakukan adalah memisahkan render dari logika. Logika permainan tidak mengenal rendering, sehingga pada logika tidak peduli apakah nantinya akan ditampilkan dalam 2D, 3D seni, ASCII atau apapun. Namun rendering tergantung pada logika, karena itu perlu info tentang cara/dimana untuk menampilkan segala logika kita. Gambar berikut menunjukkan 2 modul dengan dependensi. Rendering yang terjadi di dalam modul "View".
|
Contoh:
Kita akan membuat kelas RaceCarView
pada objek RaceCar. RaceCar menangani logika dan input pengguna tetapi tidak
tahu tentang cara menampilkannya, dan RaceCarView menampilkan mobil balap pada
layar, dengan menggunakan informasi dari raceCar.
2. Tuangkan logika permainan
anda ke dalam model dan controller
Konsep
Hal kedua yang bisa kita lakukan
adalah menuangkan logika menjadi model dan controller. Model ini pada dasarnya
adalah dunia permainannya. Ia akan mengetahui apa-apa tentang cara menampilkan,
input pengguna, dll. Model hanya mengimplementasikan aturan dunia permainan
anda, dan bagaimana entitas berinteraksi satu sama lain. Controller tau tentang
model dan dapat memanipulasinya. Misalnya controller memeriksa input pengguna,
dan memanipulasi mobil yang sesuai. Controller perlu untuk kode rendering saat
menggunakan input mouse untuk memanipulasi objek di layar.
Contoh:
Dalam contoh balapan mobil
(RaceCar), ketika ada input dari pengguna pertama yang akan menangani adalah
RaceCarController. Ketika pengguna menekan tombol kiri, Controller melihat ini
dan akan menangani model RaceCar, steer left(). Model ini kemudian menangani
aturan dari dunia mobil untuk melakukan manuver ke kiri.
Jadi, kita membagi ke 3 modul
berbeda, yaitu: model, view, dan controller.
·
Model
Semua aturan dunia permainan
diimplementasikan dalam model, dan juga berisi data negara atau level dari
setiap objek permainan atau entitas. Ini adalah simulasi permainan dari dunia
nyata, sehingga model tidak tahu apa-apa tentang input pengguna atau
menampilkan ke layar.
·
View
Rendering ke layar ditangani oleh
view. View menggunakan model untuk tahu di mana saja si view harus menampilkan
sesuatu. View tidak memiliki fungsi lain selain untuk menampilkan saja.
·
Controller
Controller menangani user input dan
memanipulasi model. Pertama memeriksa input pengguna, selanjutnya Controller
mungkin bisa meminta View untuk menampilkan objek ke layar saat mouse di klik,
dan akhirnya memanipulasi data pada model. Beberapa COntroller dapat diterapkan
bersamaan, misalnya keyboard controller, controller joypad, dan bahkan
controller 'bot' AI.
Disini, model berdiri sendiri dan
tidak perlu tahu apa-apa tentang yang lain (Controller dan View). View hanya
bergantung pada model untuk membuat segala sesuatu di layar Controller menerima
input, dapat memperoleh informasi tambahan dengan memanggil View, dan pada
akhirnya memanipulasi Model.
Keuntungan dari arsitektur ini:
- Desain yang bagus, karena
menggunakan modul-modul
- Dunia permainannya dibundel
dalam model
- Perubahan render tidak
mempengaruhi permainan inti
- mendukung input Controller
yang berbeda, user/bot
Game engine juga sering disebut juga
“Game Middleware”. Game Middleware adalah software yang didalamnya sudah
terdapat elemen-elemen yang dibutuhkan oleh seorang game developer, kebanyakan
dari game middleware memberikan fasilitas guna menunjang pengembangan game
dengan mudah seperti graphics, sound dan Artificial intelligence.
Beberapa elemen yang ada di dalam
game engine adalah :
a. Tools/Data
Dalam pengembangan game, dibutuhkan
data yang tidak semudah menuliskan text files. Dalam 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.
b. System
System sendiri adalah bagian dari
game engine yang 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. Di dalam system
sendiri terdapat beberapa sub system yaitu graphics, input, sound, timer,
configuration. System sendiri bertanggung jawab untuk melakukan inisialisasi,
update dan mematikan sub system yang terdapat di dalamnya.
c. Console
Dengan menambahkan console, kita
dapat merubah setting game dan setting game engine di dalam game tanpa perlu
melakukan restart pada game tersebut. Console sendiri lebih sering digunakan
dalam proses debugging. Apabila game engine tersebut mengalami error kita
tinggal mengoutputkan error message tersebut ke dalam console tanpa harus
melakukan restart. Console sendiri dapat dihidupkan dan dimatikan sesuai
keinginan.
d. Support
Support adalah bagian yang paling
sering digunakan oleh system di dalam game engine. Support sendiri berisi
rumus-rumus matematika yang biasa digunakan, vector, matrix, memory manager,
file loader. Merupakan dasar dari game engine dan hampir digunakan semua projek
game engine.
e. Renderer/Engine
Core
Pada game engine, engine core /
renderer 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.
f. Game
Interface
Game interface sendiri merupakan
layer diantara game engine dan game itu sendiri. Berfungsi sebagai control yang
bertujuan untuk memberikan interface apabila di dalam game engine tersebut
terdapat fungsi fungsi yang bersifat dinamis sehingga memudahkan untuk
mengembangkan game tersebut.
g. The
Game
Merupakan inti dari penggunaan game
engine sendiri, sehingga terserah kita bagaimana mengembangkan game tersebut.
Beberapa contoh game engine :
a. RealmForge
Merupakan free dan open source game
engine untuk Microsoft .Net Framework dan dikhususkan pada visual3D Game
Engine, merupakan cross platform game engine untuk .NET 2.0 dan Microsoft
XNA.RealmForge dibangun diatas AXIOM 3D rendering engine. Di tulis dalam bahasa
C# keseluruhan. Dibangun untuk pembuatan game berbasis .NET.
b. Truevision3D
Merupakan game engine 3D yang
dibangun dengan menggunakan visual basic 6 dan C++ dengan menggunakan Microsoft
Directx API. Mulai versi 6.5, engine ini menggunakan direct 9 dan shader
support, serta ditulis ulang menggunakan C++. Sampai perkembangan terbaru,
belum ada wacana untuk mengembangkannya untuk mendukung penggunaan directx9
serta Microsoft XNA.
c. OGRE
OGRE (Object-Oriented Graphics Rendering Engine)
merupakan engine yang mendukung 3D Graphic. Merupakan game engine yang
fleksibel dalam melakukan 3D Rendering, ditulis dalam bahasa C++ sehingga
memudahkan pengembang untuk membangun game yang mendukung 3D Graphics.
Beberapa contoh game middleware yang
sering digunakan :
a. Gamebryo
Merupakan game engine yang berawal
dari perusahaan Numerical Design Limited (NDL) akan tetapi pada
perkembangannya, perusahaan NDL bergabung dengan Emergent Game Technologies.
Ditulis menggunakan bahasa C++, Gamebryo merupakan 3D Game engine yang
memberikan support kepada beberapa platform sebagai berikut :
- Windows
(baik direct 9 dan 10)
- Nintendo
game cube
- Nintendo
WII
- PS
2 dan PS 3
- XBOX
serta XBOX360
b. Renderware
Merupakan salah satu saingan dari
Gamebryo. Bergerak dalam bidang 3D API dan graphic rendering engine. Renderware
digunakan pada computer games, Active Worlds serta beberapa VRML Browser.
Merupakan game engine yang sering digunakan di PS2 sehingga sering disebut
sebagai “Sony’S Directx”.
c. Unreal
Engine
Merupakan salah satu game engine
yang cukup populer. Dikembangkan oleh Epic Games dalam bahasa C++, Unreal
engine menjadi salah satu game engine yang mempunyai kemampuan portability yang
baik. Dapat berjalan pada beberapa platform seperti Windows, Linux, MacOS dan
beberapa video games console seperti Dreamcast, XBOX, XBOX360.
Interaksi Fisik dalam Teknologi Game
Game.
Pasti sudah tidak asing lagi mendengarnya, game merupakan sebuah aktivitas
rekreasi dengan tujuan bersenang-senang, mengisi waktu luang, atau berolahraga
ringan. Yang dapat dillakukan sendiri maupun bersama-sama. Ternyata game juga
memiliki beberapa efek fisik positif maupun negative.
Efek Fisik dalam Game
Efek Fisik Negatif
1. Berkurangnya
Sosialisasi
Hal
ini dapat terjadi ketika seseorang sangat menikmati kesendirian dengan game
yang ia sukai, sehingga game tersebut membuat kecanduan karena dalam game
dituntut untuk melakukan banyak hal agar tidak tertinggal dengan orang lain,
dengan tuntutan itu biasanya seseorang akan lebih menyita waktunya dengan
bermain game, dan akibatnya berkurangnya komunikasi dengan orang lain yang
membuat berkurangnya sosialisasi.
2. Sulit Berkonsentrasi
dalam hal lain
Seseorang
yang kecanduan game membuat mereka susah berkonsenterasi dalam hal lain seperti
pelajaran. Hal ini disebabkan fikirannyya selalu ingin bermain game dan ingin
selalu memainkan game yang aia senangi. Hal ini tentu berdampak buruk bagi
orang tersebut, kecanduan game pun memiliki tahap yang bervariasi. Kurangnya
perhatian dari keluarga membuat seseorang lebih gampang terjun dan menikmati
bermain game.
3. Sulit Berekspresi dan
Berinteraksi
Dengan
terbiasa berinteraksi satu arah yaitu depan monitor saja, membuat anak sulit
berinteraksi dan akan menemukan kesulitan untuk mengekspresikan diri sendiri,
dengan otak anak yang terkenal sangat lincah, aktif, dan penuh ekplorasi
sedikit demi sedikit akan tumpul bila kehidupannya hanya dalam satu ruangan
saja karena interaksi sosial juga meningkatkan kepintaran anak.
4. Lupa
Segala Hal
Terkadang anak tidak tahu dampak kekurangan makan, minum, dan kekurangan olahraga dapat menyebabkan badan mudah terkena penyakit tetapi bisa saja orang tersebut doyan makan, tetap saja kurangnya aktivitas yang dilakukan tubuh berdampak kurang bugar di masa depannya karena kurang lancarnya metabolisme tubuh. Radiasi yang dipancarkan monitor juga dapat merusak mata dan juga saraf, hal ini terbukti sering ditemui pemain games yang sering menggunakan kacamata.
Efek Fisik Positif
1. Lebih Berkonsentrasi
Karena
dalam dunia game menemukan hal baru, anak dapat secara tidak langsung
mengkondisikan dirinya untuk mengetahui keadaan sekitar, dan beberapa game
menuntut untuk berkonsentrasi, artinya anak dapat berkonsentrasi pada satu hal
yang menurut dia menarik. Bermain game sekitar 20 menit sebelum belajar dapat
memancing konsentrasi dalam belajar.
2. Berkembangnya
Kemampuan
Dilakukan
penelitian di Amerika Serikat, New York bahwa anak yang sudah mengetahui
strategi dalam game dapat meningkatkan daya kemampuan berkembang dalam
Matematika, pemecahan masalah, dan kemampuan membaca terlebih lagi bila game
yang biasa dimainkan berbahasa inggris.
3. Mengalihkan
Perhatian
Bagi
anak yang mengalami perawatan seperti kemoterapi dapat mengalihkan rasa sakit
dengan bermain game, tensi darahpun dapat menurun. Dengan tuntutan tangan yang
lihai dalam bermain game dapat melancarkan tangan agar tetap lincah terutama
bila anak tersebut sedang mengalami cedera tangan.
Collision
Detection
Algoritma collision
detection adalah proses pengecekan apakah beberapa buah objek spasial
saling bertumpuk atau tidak. Jika ternyata ada paling sedikit dua buah objek
yang bertumpuk, maka kedua objek tersebut dikatakan saling bertumpukkan. Pada
ruang spasial dua dimensi.Objek yang bertumpuk berarti objek spasialnya
beririsan (Nugraha, 2013).
Algoritma
untuk mendeteksi Collision (tabrakan) sangat dibutuhkan untuk program game.
Pada Blender Telah terdapat fasilitas untuk menambahkan Colllision. Dalam
Script Game Maling VS Polisi, terdapat point berbentuk $ yang harus dikumpulkan
untuk memenangkan game, pada objek $ diberikan Collision, agar pada saat Maling
(Player) menyentuh $ maka $ akan menghilang dan suara akan diputar, kemudian $
akan terkumpul dan game akan menang jika $ sudah mencapai 20.
user interface pada game komputer
User
interface berarti tampilan antar muka pengguna. Jika didefinisikan secara
sederhana User interface adalah penghubung atau mediator antar komputer dan
manusia atau user komputer itu agar hubungan antara perangkat komputer dengan
user bisa terjalin. User interface sangat berperan penting dalam dunia komputer
karena dengan adanya user interface maka kemudahan user dalam mengoprasikan
suatu perangkat komputer menjadi lebih mudah.
Desain
user interface dalam game berbeda dari desain user interface lainnya karena
melibatkan unsur tambahan fiksi. Fiksi melibatkan avatar dari pengguna yang
sebenarnya atau player. Sebuah desain interface pada suatu game mempengaruhi
kenyamanan dan sejauh mana user atau pemain meminati game tersebut. Dalam
user interface game, terdapat sebuah teori yang dikemukakan oleh Erik Fagerholt
dan Magnus Loretzon dari Chalmers University of Technology. Dalam tesisnya
mereka menulis tesis tentang desain user interface berjudul Beyond the HUD
– User Interfaces for Increased Player Immersion in FPS Games. Mereka
memperkenalkan istilah berbagai jenis interface yang berkaitan dengan desain
video game.
contoh
game :
·
Counter
Strike Xtreme V7
User Interface Game Counter Strike Xtreme V7
Masih sama seperti seri seri terdahulu, pada seri Counter
Strike Xtreme V7 tampilan tatap mukanya masih sama meski terdapat
peningkatan dari sisi kualitas visualnya. Namun yang cukup disayangkan adalah
masih terdapatnya beberapa bug yakni keterangan dalam bahasa china. Hal ini
dikarenakan memang seri ini merupakan adaptasi dari seri game Counter-Strike
BreakThrough Edition yang memang dikembangkan di China.
·
Assassin
Creed
User Interface Game Assassin Creed
Assassin’s Creed . Desain
antarmuka yang termasuk dalam permainan game yaitu yang dapat
dilihat dan didengar oleh karakter dalam permainan. Yang dimaksudkan pada
antarmuka diagetic ini segala sesuatu yang terlihat terkecuali elemen-elemen
non-diegetic seperti HUD, Kursor mouse, Informasi dari
Komputer,dll Contoh: Interface dalam game Dead Space,
pada game Assassin’s Creed
Sumber
:
https://sylviaalfarina.wordpress.com/2015/04/22/user-interface-pada-game-komputer/
http://realrioseptianur.blogspot.co.id/2016/03/user-interface-pada-game-komputer.html