Selamat Datang di Blog Saya

Halo pembaca semua, saya harap Anda menikmati apa yang saya ketik. Mudah-mudahan informasi tersebut berguna dan bermanfaat bagi Anda pembaca semuanya.

Salam Kenal ☜☠☞

Minggu, 31 Maret 2019

Arsitektur Game Engine


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.

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

Tidak ada komentar:

Posting Komentar

Berkomentarlah yang baik
Tidak ada unsur SARA, Pornografi, Ejekan,dsb
Salam Blogger...!!