GAME ENGINE
Nama : Zaskya S Putri
NPM : 57415398
Kelas : 3IA22
Game Engine
1. Arsitektur Game
Engine
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 :
·
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.
·
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.
·
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.
Beberapa
Contoh Game Engine Open Source :
·
3D
Game Studio
·
Delta
3D
·
Unreal
Engine
·
Panda
3D
·
Torque
·
Quake
Engine
2.
Interaksi Fisik dalam Teknologi
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.
Lalu, bagaimana objek
digital tersebut dapat memahami bahwa objek – objek tersebut (akan) mengalami collision?
Collision Detection
Collision Detection dibutuhkan untuk memastikan tidak ada objek yang saling menembus. Pada dasarnya, objek baik 2 dimensi
maupun 3 dimensi pada Teknologi Game dan digital, secara umumnya objek – objek
tersebut bukanlah objek yang memiliki kemampuan fisik, atau secara lain objek
tersebut hanyalah susunan dari titik, garis, dan penampang yang terhubung satu
sama lain, dan bisa dianggap bahwa objek tersebut hanyalah sebatas bentuk,
tanpa memiliki kemampuan.
Agar objek – objek tersebut dapat
mensimulasikan kemampuan fisik, objek – objek tersebut harus diberikan
pemahaman dengan menggunakan aljabar linear dan komputasi geometri.
Komputasi geometri tersebut
digunakan untuk memberikan batas pada objek. Walaupun objek tersebut terlihat
sudah memiliki penampang, sebenarnya penampang tersebut bukanlah batasan dari
sisi terluar objek tersebut. Oleh karena itu, komputasi geometri dibuat dengan
parameter bentuk dan volume dari objek tersebut. Umumnya, bentuk batasan ini
disebut bounding box ( batas
kotak ). Aljabar linear
digunakan untuk memberitahukan bahwa, ketika batas tersebut terletak pada
koordinat yang sama atau berpotongan dengan batas objek lain, maka objek –
objek tersebut mensimulasikan tabrakan.
Pada awalnya, penggunaan algoritma
untuk pendeteksian tabrakan ini bekerja dengan cara mudah, yaitu dengan cara
mengecek apakah penampang dari batas objek A dengan penampang dari batas objek
B akan saling berpotongan. Tentu saja hal tersebut akan bekerja. Tapi, bayangkan
apabila objek yang digunakan sangat banyak. Setiap penampang dari batas objek A
= [a1, a2, …, an] akan melakukan pengecekan sampai ke penampang dari
batas objek N = [n1, n2, …, nn]. Mungkin algoritma ini akan bekerja dengan baik
apabila hanya terdapat 2 objek dalam lingkungan tersebut.
Dalam perkembangan
pendeteksian tabrakan, konfigurasi kemampuan fisik dari satu pergerakan ke
pergerakan selanjutnya hanya berubah sedikit. Banyak objek – objek yang tidak
bergerak sama sekali. Algoritma telah di desain sehingga perhitungan telah
selesai untuk menentukan bahwa pergerakan terdahulu dapat digunakan kembali
untuk pergerakan di masa kini, yang menghasilkan perhitungan selesai dengan
lebih cepat.
Perkembangan tersebut
tujuan nya hanya untuk mencari dan menentukan pasangan – pasangan dari objek –
objek yang mungkin berpotongan. Pasangan – pasangan tersebut akan menganalisis
pergerakan kedepannya. Logikanya adalah setiap kotak direpresentasikan dengan tiga bentuk
interval ( misalkan, sebuah kotak akan direpresentasikan dengan I1 x I2 x I3 = [a1, b1] x [a2,
b2] x [a3, b3] ). Jika terdapat 2 kotak ( dengan bounding box nya masing – masing ) I1 x I2 x I3dan J1 x J2 x
J3 akan berpotongan
jika, dan hanya jika, I1 berpotongan
dengan J1, dan
seterusnya.
Maka, pada pergerakan tersebut dan
untuk ke pergerakan selanjutnya, Ikdan
Jk berpotongan,
sehingga hal tersebut akan sama untuk pergerakan lainnya. Sebaliknya, jika
mereka tidak berpotongan pada pergerakan sebelumnya, maka pergerakan mereka
tidak akan berpotongan. Sehingga
untuk mengurangi masalah tersebut, dibuatkan tiga daftar interval ( satu untuk
setiap sumbu, X,Y, dan Z). Maka dari itu didapat matriks n x n, M = (mij) dengan isi nol dan satu: mij adalah 1 jika
interval i dan j berpotongan, dan 0 jika mereka tidak berpotongan.
Spatial Partitioning
Algoritma alternatif di kelompokkan dibawah spatial partitioning, termasuk octress, binary space partitioning ( BSP Trees
), dan yang lainnya yang memiliki pendekatan yang serupa. Hal ini
digunakan dengan membagikan sebuah wilayah menjadi beberapa bagian, dan jika
dua objek tidak terdapat pada bagian yang sama, maka objek – objek tersebut
tidak perlu dicek apakah akan berpotongan. BSP
Trees bisa memperhitungkan terlebih dahulu, yang mana pendekatan
tersebut sangat cocok untuk didefinisikan di dalam objek berbentuk tembok, dan
objek halangan yang tetap dalam sebuah game. Algoritma tersebut secara umum
lebih dulu diketahu daripada algoritma yang telah dijabarkan sebelumnya.
Bounding Boxes
Bounding boxes ( atau Bounding volumes ) seringnya digunakan
untuk objek yang berbentuk persegi atau kubus, tetapi objek dengan bentuk
lainnya dapat menggunakannya. Bounding
diamond, minimum bounding parallelogram, convex hull, bounding circle, atau bounding ball, dan bounding
ellipse sudah diujicoba, tetapi bounding
boxes tetap menjadi algoritma yang popular karena simpel.
3. 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 avatardari 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 dikemukakkan 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.
HUD
itu sendiri kepanjangan dari Heads – up display, merupakan metode dimana
informasi secara visul disampaikan kepada pemain sebagai bagian dari antarmukan
pengguna permainan. Biasanya menunjukkan bar/kotak HP(Health Point)
ataupun MP(Mana Point) dan biasanya muncul di atas kepala karakter.
Fungsi HUD ini untuk memudahkan pemain mengetahui kondisi karakter dalam
permainan.
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.
Komentar
Posting Komentar