Pengantar Teknologi Game
Engine dan Scene Graph
Game Engine adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol dan sistem operasi seperti Windows, Linux dan Mac OS. 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. Game engine adalah program yang "memotori" jalannya suatu program game.
Scene Graph adalah suatu komponen penting dalam pengembangan game engine. Scene graph berisi semua hal-hal tentang geometri dan grafik pada suatu game. Scene graph berguna untuk mempresentasikan translasi, rotasi dan pengaturan skala dari suatu objek dengan objek yang lain. Misalnya dalam komponen suatu objek, saat ingin memindahkan komponen tersebut dengan cara merotasikannya, dengan adanya scene graph, kita bisa memindahkan objek tersebut sesuai dengan grafik dan graph untuk memposisikannya dengan benar. Hal itu membuat perhitungan hal-hal seperti itu akan lebih mudah.
Bentuk dalam game engine banyak macamnya, yaitu :
- 1. OGRE 3D
OGRE (Object-Oriented Graphics Rendering Engine) adalah engine yang objek-oriented & flexible 3D rendering pada game engine yang ditulis dalam bahasa C++ serta didesain untuk mampu men-developer dengan intuitif & mudah kepada aplikasi produksi dengan menggunakan utility hardware-accelerated 3D graphics.
- Fitur-Fitur yang terdapat pada OGRE
Desain yang objek oriented dengan menggunakan plugin untuk mempermudah memasukkan fitur lainnya.
Engine berbasis scene graph dengan bantuan untuk sebuah varietas yang luas, octree, BSP, & Paging Landscape scene manager
OGRE mendukung program vertex dan fragment selama ditulis dengan GLSH, HLSL, Cg dan Assembler
Liblaries mempunyai fitur memory debugging & loading resource dan archive-nya.
Tersedia konten tools untuk 3D modeler, seperti 3D Studio Max, Maya, Blender dll
- 2. GameMaker Studio
GameMaker Studio adalah game creation system yang dikembangkan oleh Mark Overmars dari YoYoGames menggunakan bahasa pemrograman Delphi. GameMaker memungkingkan penggunanya untuk membuat dan mengembangkan game dengan mudah tanpa perlu belahar bahasa pemrograman yang rumit dengan menggunakan interface drag dan drop-nya. Aplikasi ini memang ditujukan untuk pemula yang ingin mempunyai ide dan ingin mengembangkan idenya menjadi game tanpa dibutuhkannya pengalaman programming atau koding.
Salah satu masalah yang mungkin akan dihadapi pemula yang ingin menggunakan GameMaker ialah disaat GameMaker merupakan pintu masuk bagi pengguna tanpa pengalaman di dunia programming, interface dan penggunaan GameMaker yang sangat user-friendly bisa menjadi pedang bermata dua baginya. Memang benar hal ini bisa membantu seseorang untuk belajar koding, tapi tidak mengajarkan seorang koding itu sendiri. Membuat pengguna pemula susah untuk berpindah ke program yang lebih maju dan lebih profesional daripada GameMaker.
- 3. Unity3D
Unity 3D pertama kali dirilis pada saat acara Apple's Worldwide Developers Conference di tahun 2005. Pada versi awal Unity hanya dapat digunakan di Mac Platform yaitu OS dari produk apple. Namun sekarang Unity 3D berubah menjadi software multi platform yang juga dapat dijalankan pada Windows OS dan Linux OS. Pada dasarnya 3D ini merupakan salah satu jenis game engine dan game development berbasis 3D. Akan tetapi Unity juga bisa dalam membentuk game 2D. Dengan metode asset workflow dan script yang simple dapat memudahkan user dalam mengembangkan game secara mandiri dan membuahkan hasil yang setara dengan perusahaan game developer.
Konsep Pembuatan Script Game Komputer
A. Pemilihan Bahasa Pemrograman
Pemrograman suatu game bisa menggunakan berbagai macam jenis bahasa pemrograman. Diantaranya yang terkenal adalah C++, C dan Java. Proses pembuatan game modern bisa memakan waktu 1-3 tahun untuk menyelesaikannya. Lamanya suatu pengembangan bergantung pada sejumlah faktor, seperti genre, skala, platform pengembangan dan jumlah aset.
Sebagai contoh, sebuah game puzzle yang sederhana dengan menggunakan grafik 2D akan jauh lebih sedikit memakan waktu untuk dikembangkan daripada game role-playing komputer 3D.
Walaupun terdapat banyak sekali pilihan bahasa pemrograman untuk membuat game, namun pada intinya bahasa tersebut harus memenuhi syarat sebagai berikut:
1. Speed
Bahasa scripting untuk game harus mampu berjalan secepat mungkin. Jika kita berniat untuk menggunakan banyak script untuk perilaku karakter dan kejadian di level game, maka script akan perlu untuk mengeksekusi sebagai bagian dari loop game utama. Ini berarti bahwa script yang lambat akan memakan waktu yang kita butuhkan untuk membuat suatu adegan, menjalankan mesin fisika, atau menyiapkan audio.
2. Kompilasi dan Interpretasi (penyusunan dan penafsiran)
Bahasa scripting secara luas diinterpretasikan,melalui susunan serangkaian byte. Penafsiran bahasa diambil melalui format teks. Interpreter melihat setiap baris, penyusunan bekerja sesuai yang maksud dari script, dan melakukan tindakan yang spesifik.
Bahasa byte-terkompilasi dikonversi dari teks ke format internal, yang disebut byte code. Kode byte biasanya jauh lebih padat daripada format teks. Karena kode byte dalam suatu format dioptimalkan ketika dieksekusi, agar dapat berjalan lebih cepat.
3. Ekstensibilitas dan Integrasi
Bahasa scripting perlu memiliki akses ke fungsi yang signifikan ke dalam game. Sebuah script yang mengendalikan karakter, misalnya, harus mampu untuk menanyai game untuk mencari tahu apa yang bisa dilihat dan kemudian membiarkan game tahu apa yang akan dilakukan sebagai aksinya.
Serangkaian fungsi yang dibutuhkan untuk mengakses ini jarang diketahui ketika bahasa scripting telah diimplementasikan atau dipilih. Hal ini penting untuk memiliki sebuah bahasa yang dapat dengan mudah memanggil fungsi-fungsi atau menggunakan kelas main code dalam game. Biasanya, itu adalah penting bagi programmer untuk dapat mengekspos fungsi baru atau kelas yang dengan mudah ketika pembuat script memintanya.
4. Re-Entrancy (ikut serta ulang)
Fungsi ini sering berguna untuk memanggil script menjadi diikutsertakan ulang. Mereka dapat berjalan untuk sementara waktu, dan ketika anggaran waktu telah habis script akan dapat ditunda. Ketika script selanjutnya mendapatkan beberapa waktu kembali, maka akan dapat menjalankan kembali script yang ditunda sebelumnya.
Hal ini sering membantu untuk membiarkan kontrol hasil script saat mencapai jeda normal. Kemudian sebuah algoritma penjadwalan dapat memberikan lebih banyak waktu untuk meminimalisasi penggunaan sumber daya.
Sebuah script untuk mengendalikan sebuah karakter, misalnya, mungkin memiliki lima tahapan yang berbeda (memeriksa situasi, memeriksa kesehatan, menentukan gerakan, rencana rute, dan melaksanakan gerakan). Ini semua dapat dimasukkan dalam satu script yang menghasilkan penyekat antara setiap bagian. Kemudian masing-masing akan berjalan dengan setiap lima frame, dan beban dari eksekusi AI akan didistribusikan.
Re-entrancy yang lebih canggih harus memungkinkan penulis script untuk menandai bagian yang tidak boleh terputus.
B. Embedding (penanaman)
Embedding berhubungan dengan ekstensibilitas. Sebuah bahasa yang tertanam dirancang untuk dimasukkan ke dalam program lain. Ketika kita menjalankan bahasa scripting dari workstation, biasanya akan menjalankan program khusus untuk menafsirkan file source code. Dalam game, sistem scripting perlu dikontrol dari dalam program utama. Game yang menentukan jalannya script harus dijalankan dan harus dapat memberitahu mesin terkait bahasa scripting yang cocok untuk memproses script tersebut.
C. Memilih Sebuah Bahasa
Sejumlah
besar bahasa scripting tersedia, dan banyak dari mereka yang dirilis
di bawah lisensi yangcocok untuk dimasukkan dalam sebuah game. Secara
tradisional, sebagian besar bahasa scripting dalamgame telah diciptakan oleh
pengembang khusus untuk kebutuhan mereka sendiri. Dalam beberapa tahunterakhir
telah ada minat dalam bahasa off-the-shelf,yang kebanyakn diterapkan pada suatu
game engine.Beberapa mesin game komersial dilengkapi dengandukungan bahasa
scripting ini (Unreal dan Quake olehid Software, misalnya). Hal ini memberikan
solusilengkap dalam efisiensi waktu pembuatan game,karena sebagian besar bahasa
yang ada yangdigunakan dalam game pada awalnya tidak dirancanguntuk tujuan ini.
Namun penggunaan bahasa off-the-shelf ini memiliki hubungan dengan kelebihan dankekurangan
yang perlu di evaluasi sebelum kita membuat pilihan.
D. Bahasa Open Source
Banyak bahasa scripting game populer yang dirilis di bawah lisensi open source. Software open-source dirilis di bawah lisensi yang memberikan hak user untuk memasukkannya ke dalam perangkat lunak mereka sendiri tanpa membayar biaya tambahan.
Referensi :
- http://haiqal26.blogspot.com/2018/03/mengenal-software-pembuatan-game-3d.html diakses tanggal 29 April 2020
- https://www.academia.edu/3875722/Scripting_dalam_Pembuatan_Game diakses tanggal 29 April 2020
Komentar
Posting Komentar