Arsitektur Game Engine
Arsitektur Mesin Game mencakup
teori dan praktik pengembangan perangkat lunak mesin yang digunakan untuk
menciptakansuatu permainan, dan menyatukan cakupan lengkap berbagai topik.
Sejarah Arsitektur Mesin Game
Industri video game dimulai pada tahun 1970-an dengan rilis besar seperti Pong pada
tahun 1972 dan Asteroid pada tahun 1979. Beberapa game selama ini, seperti
Pong, tidak memiliki perangkat lunak karena perangkat keras yang mereka
jalankan tidak memiliki mikroprosesor dan game dibangun langsung ke komponen
elektronik perangkat keras. Untuk permainan yang memang memiliki mikroprosesor,
arsitektur perangkat lunak mereka terdiri dari program monolitik yang ditulis
dalam bahasa assembly. Jenis arsitektur ini dipaksa oleh kendala perangkat
lunak dan perangkat keras saat itu. Kode mesin yang dihasilkan oleh bahasa
tingkat tinggi arus utama seperti Fortran dan Cobol tidak cukup efisien untuk
perangkat keras terbatas dari mesin arcade awal.
Pada saat itu, kecepatan jam CPU
rendah dan kapasitas RAM kecil. Dalam lingkungan yang terbatas seperti itu,
penting bagi seorang programmer untuk mengatur setiap game untuk perangkat
keras tertentu yang digunakan untuk menjalankan game. Juga, karena game awal
menggunakan mesin arcade, setiap game baru biasanya berjalan pada perangkat
keras yang berbeda dan oleh karena itu setiap game harus ditulis ulang untuk
dijalankan pada perangkat keras baru. Akhirnya, permainan waktu itu cukup
sederhana dan dikembangkan oleh satu atau dua programmer. Karena gim itu
sederhana, tidak perlu memikirkan arsitektur perangkat lunak. Meskipun jejak
pertama mesin game dikembangkan pada 1980-an dengan LucasArts 'SCUMM dan Infocom's Z-machine (sebuah mesin
permainan teks).
Bahasa C dan perakitan C adalah
bahasa pemrograman pertama yang mendapatkan penerimaan luas dengan pengembang
game karena fokusnya pada kinerja tinggi. Penggunaan kembali perangkat lunak
biasanya masih minimal, mungkin karena kurangnya abstraksi dan standar
perangkat keras. Faktor lain yang mungkin berkontribusi terhadap kurangnya
penggunaan kembali adalah bahwa mesin game biasanya ditulis untuk genre
tertentu dan video game terlalu muda untuk memiliki genre yang digambarkan
seperti itu. Lahirnya konsep mesin game modern bisa dibilang terjadi dengan
merilis id Software's Doom pada tahun
1993. Doom mempopulerkan gagasan lisensi mesin game, di mana perusahaan akan
membayar perusahaan lain untuk menggunakan mesin game mereka untuk membuat game
sendiri.
Pendekatan ini menghemat waktu
dan uang pengembang karena mereka dapat fokus pada pembuatan game mereka
daripada mengembangkan komponen yang mendasarinya. Model pengembangan Doom
berlanjut hingga hari ini, dengan perusahaan game merilis game menggunakan
mesin game milik mereka, yang kemudian mereka lisensikan ke perusahaan lain.
Dalam waktu intervening, telah ada perubahan signifikan di bidang pengembangan
game. Bahasa pemrograman pilihan telah beralih dari C ke C ++, dibuktikan oleh
fakta bahwa Doom 3, dirilis sebelas tahun setelah aslinya, ditulis dalam C ++.
Transisi ke C ++ diperlukan untuk industri karena seiring permainan tumbuh
lebih kompleks, dengan garis kode sumber berjumlah ratusan ribu, menjadi lebih
sulit untuk mengelola program C monolitik tanpa manfaat dari modularisasi,
pewarisan, enkapsulasi data, dan polimorfisme yang penawaran pemrograman
berorientasi objek. Tren penting lain yang telah muncul dalam beberapa tahun
terakhir adalah gagasan komponen middleware. Alih-alih melisensikan seluruh
mesin game, perusahaan sekarang dapat melisensikan komponen mesin game
individual yang mereka gabungkan bersama untuk membuat mesin game kustom.
Manfaat dari pendekatan ini adalah fleksibilitas dan spesialisasi. Melisensikan seluruh mesin permainan biasanya menentukan jenis permainan yang dapat dikembangkan, sedangkan komponen individu dapat digunakan untuk membuat variasi permainan yang lebih besar. Juga, komponen middleware cenderung lebih kuat karena perusahaan middleware biasanya berspesialisasi dalam mengembangkan hanya satu komponen, yang mereka dapat fokuskan energi mereka. Produk seperti Havok (untuk fisika) dan fmod [(untuk audio) adalah contoh komponen middleware populer. Middleware telah menjadi sangat terspesialisasi sehingga hanya ada komponen untuk merender pohon]. Tetapi middleware tidak terbatas pada komponen individual. Produk seperti Renderware dan Gamebryo adalah mesin permainan serba guna yang, secara teoritis, dapat digunakan untuk semua jenis permainan. Produk-produk ini mungkin tidak memiliki kekuatan yang sama dengan mesin-mesin gim tertentu, tetapi mereka menawarkan fleksibilitas yang jauh lebih besar kepada para pengembang.
Manfaat dari pendekatan ini adalah fleksibilitas dan spesialisasi. Melisensikan seluruh mesin permainan biasanya menentukan jenis permainan yang dapat dikembangkan, sedangkan komponen individu dapat digunakan untuk membuat variasi permainan yang lebih besar. Juga, komponen middleware cenderung lebih kuat karena perusahaan middleware biasanya berspesialisasi dalam mengembangkan hanya satu komponen, yang mereka dapat fokuskan energi mereka. Produk seperti Havok (untuk fisika) dan fmod [(untuk audio) adalah contoh komponen middleware populer. Middleware telah menjadi sangat terspesialisasi sehingga hanya ada komponen untuk merender pohon]. Tetapi middleware tidak terbatas pada komponen individual. Produk seperti Renderware dan Gamebryo adalah mesin permainan serba guna yang, secara teoritis, dapat digunakan untuk semua jenis permainan. Produk-produk ini mungkin tidak memiliki kekuatan yang sama dengan mesin-mesin gim tertentu, tetapi mereka menawarkan fleksibilitas yang jauh lebih besar kepada para pengembang.
Arsitektur dan struktur permainan
mirip dengan perangkat lunak. Tetapi memang memiliki beberapa komponen tambahan
yang membuatnya berbeda dari perangkat lunak. Setiap game memiliki komponen
berikut:
• Mesin Grafik
• Mesin Suara / Audio
• Mesin Rendering &
Vision-Input
• Perangkat I / O (seperti,
Mouse, keyboard, speaker, monitor dll)
• File DLL dan Driver / API
Perangkat
Semua komponen yang disebutkan di
atas bergabung bersama-sama untuk membuat permainan bisa dimainkan sepenuhnya,
dengan penjelasan sebagai berikut :
a. Mesin Grafik
Mesin grafis adalah perangkat
lunak yang terkait dengan program aplikasi membantu menggambar grafik pada
perangkat tampilan komputer.
Kata mesin di bidang komputer
mengacu pada perangkat lunak yang membantu melakukan beberapa jenis pemrosesan
pada program tertentu, seperti mesin text-to-speech, mesin database, mesin tata
letak dan mesin grafis. Mesin grafis membantu membuat grafik permainan lebih
baik dengan meningkatkan resolusi dan meningkatkan jumlah piksel per satuan
luas. Mesin ini juga membuat adegan gim menjadi lebih jernih dan berjalan
mulus.
b. Mesin Suara / Audio
Mesin audio / suara adalah
komponen yang terdiri dari algoritma untuk menangani program suara dan built-in
yang ditulis untuk menangani efek suara yang tertanam dalam permainan. Ini
memiliki kemampuan untuk melakukan perhitungan menggunakan CPU, atau pada ASIC
khusus (Application Specific Integrated Circuit),dan API Abstraksi, seperti
Open-AL, Audio SDL, X-Audio 2, Audio Web, dll, yang dapat tersedia dalam engine
ini.
c. Mesin Rendering dan
Vision-Input
Mesin rendering bersama dengan
sistem input visi menghasilkan grafik animasi 3D, menggunakan teknik yang
berbeda, seperti rasterisasi dan penelusuran sinar. Diprogram dan dikompilasi
untuk dieksekusi pada CPU atau GPU apa pun secara langsung, mayoritas mesin
rendering dikembangkan berdasarkan satu atau lebih API rendering seperti
Direct3D dan / atau OpenGL yang menawarkan lapisan abstraksi perangkat lunak
untuk Graphics Processing Unit (GPU).
Pustaka tingkat rendah seperti
DirectX atau OpenGL secara populer dimasukkan dalam permainan karena mereka
menyediakan akses perangkat keras-independen ke perangkat keras komputer yang
berbeda. Perangkat perangkat keras ini dapat berupa perangkat input seperti
mouse, keyboard, dan joystick; perangkat jaringan seperti NIC dan juga kartu
suara.
d. Perangkat I / O
Perangkat yang digunakan untuk
memasukkan data dan program di komputer dikenal sebagai Perangkat Input.
Perangkat input dapat membaca data dan mengubahnya menjadi bentuk yang dapat
digunakan komputer. Output Devices dapat menghasilkan produk jadi dari
pemrosesan mesin menjadi bentuk yang dapat digunakan / dibaca oleh manusia.
Untuk sebuah game, harus ada interaksi yang kuat antara pengguna dan game yang
dimainkannya. Jadi untuk ini, perangkat periferal seperti mouse, keyboard,
joystick, dan monitor memainkan peran utama untuk menjadikan game ini interaktif.
e. File DLL dan Driver / API
Perangkat
File DLL (Dynamic Link Library),
adalah jenis file yang mencakup instruksi yang ditulis dalam bentuk program
yang dapat dipanggil atau digunakan oleh program lain untuk melakukan tugas
tertentu. Dengan cara ini, berbagai program dapat berbagi kemampuan dan
karakteristik yang telah diprogram ke dalam satu file.
File tingkat sistem ini memainkan
peran pendukung untuk membangun arsitektur gim dan membantu membuatnya
berkinerja baik. API perangkat dapat didefinisikan sebagai API (Application
Programming Interface) yang memungkinkan pengembang untuk membuat aplikasi apa
pun yang pada akhirnya dapat berinteraksi dengan perangkat perangkat keras yang
terpasang atau diinstal dengan sistem. API perangkat biasanya menyediakan
pengguna akhir untuk menggunakan perangkat keras yang terpasang atau terkait
untuk berinteraksi dengan sistem. Sebagian besar game (populer) membutuhkan
driver perangkat dan API ini untuk membuat game berfungsi dengan semua
komponennya berjalan dengan sukses.
Kelima komponen ini membuat
arsitektur permainan baik secara internal maupun eksternal.
Interaksi Fisik dalam Teknologi
Game dan Efeknya
Interaksi fisik dalam teknologi
game merupakan sistem imersif baru dalam videogaming yang memanfaatkan aktivitas
fisik player selain menggerakkan jari-jemari dan tangan di keyboard dan mouse.
Video game yang memanfaatkan tenaga fisik dalam fitur multiplayer memfasilitasi
interaksi fisik dan sosial dalam videogaming.
Fasilitas interaksi fisik dalam
videogaming yang paling terkenal adalah VR Headset. Perangkat ini seringkali
digunakan untuk memainkan video gameyang memanfaatkan sistem pengenalan gerakan
(gesture recognition) untuk mendeteksi gerakan kepala, sedangkan untuk gerakan
di tangan digunakan VR Impulse Stick yang merupakan perangkat joystick dengan
tombol-tombol dan sistem pengenalan gerakan yang sama dengan cara digenggam
oleh player di kedua tangan untuk berinteraksi dengan game. Permainan yang
memanfaatkan fasilitas VR juga membutuhkan ruangan yang luas, agar dapat
mengurangi batasan gerakan pemain.
Efek Fisik Positif & Negatif Dalam Game
Efek Positif
• Aktivitas Fisik
Video Game sekarang tidak hanya
menggunakan stick (alat kontrol bermain game ) namun banyak juga game yang
menggunakan sensor gerak , seperti WII , VR dan OCULUS yang dapat membuat tubuh
sehat meskpun bermain game.
• Mengurangi Stress
Bermain video game yang ringan
dan menyenangkan bisa mengurangi tingkat stress seseorang, karna pada dasarnya,
video game diciptakan untuk menghibur orang yang memainkannya.
• 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.
• Mengatasi rasa sakit
Implementasi video game pada
jaman sekarang sudah sampai ke bagian kedokteran, dimana video game
dikembangkan untuk membantu dokter yang menangani pasien dengan melakukan
pengalihan ketika memberikan pengobatan, seperti mesuntik anak kecil yang
diberikan game virtual reality untuk mengalihkan pandangannya agar tidak
ketakutan melihat jarum suntik.
• Meningkatkan koordinasi tangan
dan mata
Menurut Penelitian yang dilakukan
di Manchester University dan Central Lanchashire University “orang yang bermain
game 18 jam seminggu atau sekita dua setengah jam perhari dapat meningkatkan
koordinasi antara mata dan tangan “ . berarti bermain video game tidak
sepenuhnya tidak berguna tapi juga
jangan sampai lupa waktu.
• Simulasi yang memberikan
pengetahuan
Game - game berupa simulasi,
dapat memberikan pengetahuan bagi orang yang memainkannya, hal ini dikarenakan
game simulasi memberikan gambaran dengan situasi nyata suatu pekerjaan, seperti
game simulasi menerbangkan pesawat, simulasi pertanian, simulasi mengendarai
truck, maupun simulasi operasi, dsb.
Efek Negatif
• Kesehatan menurun
Biasanya jika seseorang sudah
kecantuan game mereka bisa lupa waktu dan bahkan tidak ingat bagaimana rasanya
lapar (pengalaman) . Oleh karena itu hal ini tentu saja bisa membuat kualitas
kesehatan menurun bahkan terganggu ,belum lagi untuk gamer yang sering begadang
untuk bermian game.
• Arthritis dan Carpal
Tunnel Syndrome , Kedua penyakit tadi adalah gangguan fisik.
Video game bisa menyebabkan masalah pada jempol pemainnya di kemudian hari.
Tubuhnya juga rentan penyakit osteoarthritis. Sedangkan carpal tunnel syndrome
adalah tekanan pada saraf di pergelangan tangan anda. Mungkin hal ini bisa
membuat kita lebih memikirkan waktu dalam bermain game dan membatasinya.
• Dapat menyebabkan cedera pada
anggota tubuh
Jika sering terjadi maka
menyebabkan Repetitive Strain Injury (RSI) atau cedera fisik berulang-ulang.
Contoh : Cedera jari sehingga bengkak dan sakit yang berulang terus-menerus.
• RSI
RSI yang sering terjadi bisa
menyebabkan kecacatan / cacat fisik pada seseorang. Contoh : sering pegal-pegal
nyeri tulang belakang bisa membuat bentuk tulang belakang menjadi tidak
proporsional.
• Kerusakan Mata
Sinar biru layar tv atau monitor
bisa menyebabkan kerusakan mata, yaitu mengikis lutein pada mata sehingga
menyebabkan pandangan kabur degenerasi makula. Main game yang terlalu dekat
dengan layar monitor komputer atau layar telavisi bisa menyebabkan mata minus
rabun jauh atau miopi. Tidak hanya dari game namun juga bisa menyerang pada
saat nonton televisi.
User Interface pada Komputer
Desain antarmuka pengguna (UI) adalah proses membuat
antarmuka dalam perangkat lunak atau perangkat yang terkomputerisasi dengan
fokus pada penampilan atau gaya. Desainer bertujuan untuk membuat desain yang
menurut pengguna mudah digunakan dan menyenangkan. Desain UI biasanya mengacu
pada antarmuka pengguna grafis tetapi juga mencakup yang lain, seperti yang
dikontrol suara.
User interface
adalah bagian visual dari website, aplikasi software atau device hardware yang
memastikan bagaimana seorang user berinteraksi dengan aplikasi atau website
tersebut serta bagaimana informasi ditampilan di layarnya. User interface
sendiri menggabungkan konsep desain visual, desain interasi, dan infrastruktur
informasi. Tujuan dari user interface adalah untuk meningkatkan usability dan
tentunya user experience.
Satu hal yang
mungkin jarang diketahui orang banyak adalah seberapa pentingnya desain pada
user interface. Bahkan kadang bentuk sebuah tombol saja bisa menentukan apakah
seseorang mengerti bagaimana menavigasi website atau aplikasi tersebut? Desain
user interface memang sangat penting karena itu akan menentukan bagaimana
seseorang berinteraksi dengan website dan aplikasi tersebut. User interface
juga menentukan apakah pengunjung website atau pengguna aplikasi dapat
menavigasi website atau aplikasi dengan mudah.
Saat seseorang
menjalankan sebuah aplikasi atau sebuah website, sebuah user experience harus
menjadi prioritas, karena dengan adanya respon user experience yang baik, maka
aplikasi atau website tersebut dapat conversion rate yang lebih tinggi dan
kemungkinan aplikasi maupun website tersebut dipromosikan ke orang lain akan
semakin tinggi juga. Tetapi apabila pengguna mengalami perasaan yang buruk
terkait user interface pada sebuah aplikasi maupun website, maka mereka tidak
mau menggunakannya lagi, sehingga sangat penting untuk mempertimbangkan membuat
sebuah user interface yang mudah dinavigasi dan mudah digunakan sehingga
membuat user experience menjadi terasa nyaman.
Karakteristik
User Interface yang Baik
a. Jelas
Memiliki UI yang
jelas adalah salah satu elemen penting dalam desain user interface. Tentunya
tujuan dari desain UI adalah agar orang-orang bisa menggunakan dan berinteraksi
dengan sistem yang mudah., dan tidak membingungkan bagi orang-orang yang
pertama kali menggunakan aplikasi atau mengunjungi website tersebut.
b. Singkat
UI boleh jelas,
tapi juga harus singkat. Kalau memang diperlukan penjelasan, usahakan agar bisa
menjelaskannya dalam satu kalimat. Jika bisa memberi label hanya dengan satu
kata itu tentunya akan lebih baik sehingga tidak membuang waktu pengguna.
Mungkin memastikan bahwa semuanya singkat tapi jelas bisa menjadi tantangan, tetapi
kalau bisa melakukan itu, sebuah UI dapat menjadi lebih memuaskan, begitu juga
dengan UX nya.
c. Familiar
Familiar yang
dimaksud disini adalah sesuatu yang sudah pernah dilihat sebelumnya, sehingga
memungkinkan pengunjung website atau pengguna aplikasi dapat familiar dan
mengingat aplikasi maupun website yang UI nya sangat mudah untuk dikenal.
d. Responsif
Untuk UI sendiri,
responsive memiliki beberapa arti yang berbeda. Pertama, responsive berarti
cepat. Interface website maupun aplikasi harus bisa bekerja dengan cepat
sehingga mengefisiensikan waktu pengunjung website atau pengguna aplikasi dan
memberikan user experience yang lebih baik. Arti lain dari responsive pada UI
juga harus bisa memberitahu user apa yang sedang terjadi di aplikasi ataupun
website tersebut, seperti dengan menggunakan progress bar ketika aplikasi atau
website sedang loading, dsb.
e.
Konsisten
Dalam
mengembangkan user interface, konsistensi pada interface dapat membantu user
untuk mengerti pola. Dari satu interface, mereka bisa mempelajari apa kegunaan
tombol, tabs, icons, dan berbagai elemen yang ada pada interface tersebut. Jika
mereka nantinya menemukan interface yang mirip, mereka bisa mengerti apa
kegunaan elemen-elemen yang ada pada interface tersebut. Dengan begitu, mereka
bisa mengerjakan sesuatu dengan lebih cepat dan mempelajari fitur-fitur baru
dengan lebih cepat.
Salah satu perusahaan
yang kerap melakukan ini adalah Microsoft dengan program Microsoft Officenya.
Jika diperhatikan dari dulu, meskipun mereka selalu mengupdate program-program
Microsoft Office nya seperti Word, Excel, dan Power Point, elemen-elemen yang
ada pada ketiga program tersebut tetap konsisten. Meskipun interfacenya
berubah, user sudah tahu bahwa untuk
menyimpan file, bisa klik pada icon disket dan untuk menge-print cukup mengklik
icon printer.
f. Menarik
Poin yang satu
ini mungkin bisa dibilang subjektif tetapi interface akan lebih baik jika
mereka memiliki tampilan menarik. Yang dimaksud dengan menarik disini adalah
interface yang menarik untuk digunakan. Membuat sebuah UI memang harus simple,
mudah digunakan, efisien dan responsive, tetapi apabila dapat dibuat tampilan
yang lebih menarik, maka aplikasi atau website tersebut menjadi lebih asik
untuk digunakan dan membuat pengunjung maupun pengguna merasa lebih senang
ketika melihatnya. Tentunya apa yang dianggap menarik untuk website atau
aplikasi juga perlu disesuaikan dengan kebutuhan pasar dan pengguna. Jadi
tampilan harus menarik sesuai dengan pengguna aplikasi atau pengunjung website.
Tetapi harus tetap memerhatikan fungsi
website ataupun aplikasi agar tetap berfungsi dengan baik.
g. Efisien
User interface
yang baik harus memastikan bahwa website dan aplikasinya bisa digunakan dengan
efisien. Agar tercipta sebuah UI yang efisien, harus mengetahui kebutuan maupun
keinginan pengunjung website ataupun pengguna aplikasi yang ingin dicapai agar
mereka dapat melakukan prosedur tanpa banyak masalah, mengidentifikasikan
sebuah website atau aplikasi bekerja, fungsi dan kegunaannya, serta membuat
interface yang memudahkan mereka untuk mencapai tujuannya.
h. Forgiving
UI yang baik
seperti membantu user mengembalikan sebuah informasi ketika mereka tidak sengaja
melakukan kesalahan saat mengaksesnya, dan membantu user untuk melakukan
refresh halaman atau aplikasi ketika error sehingga dapat meningkatkan user
experience dari website maupun aplikasi tersebut.
Sumber:
Infante,
Andre. 2014. programming a game with unity a beginner's guide. Birmingham.
https://www.studytonight.com/3d-game-engineering-with-unity/game-development-architecture diakses pada Minggu, 31 Maret 2019 pukul
15.03
https://getd.libs.uga.edu/pdfs/mathew_amit_200808_ms.pdf\ diakses
pada Minggu, 31 Maret 2019 pukul 15.39
https://www.dewaweb.com/blog/user-interface/
diakses pada Minggu, 31 Maret 2019 pukul
16.24
https://www.interaction-design.org/literature/topics/ui-design
diakses pada Minggu, 31 Maret 2019 pukul
16.48