Arsitektur Game Engine
Game engine adalah
sebuah sistem perangkat lunak (software) yang dirancang untuk pembuatan
dan pengembangan video game. Game engine memberikan kemudahan dalam
menciptakan konsep sebuah game yang akan di buat. Mulai dari sistem rendering,
physics, arsitektur, suara, scripting, A.I, dan bahkan sistem networking. Tujuan digunakannya game engine adalah
untuk mempermudah pembuatan bagian‐bagian tertentu dalam game,
membagi‐bagi pengembangan game menjadi modul‐modul tertentu, dan
memudahkan kolaborasi antar pihak.
1. Sejarah Game Engine
Sebelum adanya Game Engine, permainan yang biasanya ditulis sebagai
entitas tunggal: game untuk Atari 2600, misalnya, harus dirancang secara
down-top untuk memanfaatkan hardware layar tampilan yang disebut kernel
oleh pengembang retro. Generasi pertama dari mesin grafis
pihak ketiga atau renderers (dan pelopor untuk apa yang sekarang kita
kenal sebagai mesin) didominasi oleh tiga pemain; BRender dari Argonaut
Software, Renderware dari Kriteria Software Limited dan
RenderMorphics ‘Realitas Lab. Istilah “Game Engine (Mesin Permainan)”
muncul pada pertengahan 1990‐an, terutama dalam kaitannya dengan game 3D
seperti penembak orang pertama (FPS). Kemudian permainan, seperti Quake III
Arena dan 1998 Epic’s Unreal Games dirancang dengan pendekatan ini dalam
pikiran, dengan mesin dan konten dikembangkan secara terpisah.
Game Engine modern adalah salah satu aplikasi yang paling kompleks yang
ditulis, sering menampilkan puluhan sistem berinteraksi untuk memastikan
pengalaman pengguna yang terkendali. Evolusi terus mesin permainan telah
menciptakan sebuah pemisahan yang kuat antara rendering, scripting,
karya seni, dan desain level. Threading
penting karena sistem multi‐core
modern (misalnya Cell) dan tuntutan meningkat pada realisme. Threading
melibatkan rendering, streaming, audio, dan fisika. Permainan Balapan
yang biasanya berada di garis depan threading dengan physics machine
berjalan di sebuah thread terpisah jauh sebelum subsistem inti lainnya
dipindahkan, sebagian karena rendering dan tugas terkait perlu update
hanya pada 30‐60 Hz. Sebagai contoh, di PlayStation 3, fisika berlari di Need
For Speed pada 100 Hz versus Forza Motorsport 2 pada 360 Hz.
Meskipun istilah ini pertama kali digunakan pada 1990‐an, ada sistem sebelumnya
beberapa tahun 1980‐an yang juga dianggap Game Engine, seperti Sierra’s Adventure
Game Interpreter (AGI) dan SCI, LucasArts SCUMM dan Freescape. Tidak
seperti kebanyakan Game Engine modern, Game Engine ini tidak pernah digunakan
dalam produk pihak ketiga (kecuali untuk sistem SCUMM yang dilisensikan dan
digunakan oleh humongous Entertainment).
2.
Tipe‐tipe Game Engine
Game
memiliki berbagai macam jenis dan ditujukan untuk berbagai kemampuan
pemrograman. Berikut ini adalah beberapa tipe dari game engine.
- Roll Your‐Game Engine
Game
engine tipe ini lebih disukai karena selain
gratis, game engine ini juga memperbolehkan para developer lebih
fleksibel dalam mengitegrasikan komponen yang diinginkan untuk dibentuk sebagai
game engine mereka sendiri. Namun kelemahan dari tipe game engine ini
banyak engine yang dibuat dengan cara semacam ini malah menyerang balik developernya.
- Mostly‐Ready‐Game Engine
Engine
ini biasanya sudah menyediakan
semuanya begitu diberikan pada developer/programmer. Semuanya termasuk
conth GUI, phisycs, libraries models, 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 banyak terjadi error yang mungkin
terjadi setelah sebuah game yang menggunakan engine ini dirilis dan masih
memungkinkan game engine‐nya tersebut untuk mengoptimalkan kinerja game‐nya.
Dengan hal ini dapat menghemat waktu dan biaya dari para developer game.
- Point‐and‐Click Engine
Engine
ini merupakan engine yang sangat dibatasi, tetapi 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. 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.
3. Elemen pada Game Engine
Seperti
halnya perangkat lunak lainnya, pada geme engine juga terdapat beberapa elemen
diantaranya :
- 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.
- System
System
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.
- 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.
- Support
Support
adalah bagian yang paling sering digunakan oleh system di dalam game engine.
Support sendiri berisi rumus‐rumus matematika yang biasa digunakan seperti :
vector, matrix, memory manager, file loader merupakan dasar dari game engine
dan hampir digunakan semua projek game engine.
- 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.
- 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.
- The Game
Merupakan
inti dari penggunaan game engine sendiri, sehingga user dapat mengembangkan
game tersebut sesuai dengan yang diinginkan.
Interaksi fisik dalam 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.
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 I3 dan 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, Ik dan 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.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.
https://sylviaalfarina.wordpress.com/2015/04/22/user-interface-pada-game-komputer/
www.pengertianpakar.com,
Mokodaser, Wilsen Grivin. Game Engine.





