Kamis, 23 April 2020

3D Engine dan Scene Graph & Konsep Pembuatan Script Game Komputer

3D Engine

Di dalam grafika komputer, 3D merupakan bentuk grafik yang menggunakan representasi data geometri tiga dimensi. Grafik 3D ini tersimpan didalam komputer untuk keperluan kalkulasi atau rendering gambar 3D.
Pada 3D, engine bukanlah exutable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri.

3D engine adalah sistem perangkat lunak yang dibuat dan dirancang untuk menciptakan dan mengembangkan gambar 3D, fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render (renderer) untuk 2D/3D grafis.

Berbeda dengan dukungan grafik 2D yang sudah built in, dukungan Java terhadap grafik 3D diletakkan ke dalam API terpisah, yakni Java3D. Java3D merupakan API 3D berbasis scene graph di platform Java, dimana scene graph merupakan sebuah pohon yang berisi hierarki data scene. Di dalam api Java3D didefinisikan sejumlah kelas dan interface yang menyediakan beragam operasi grafik 3D.
Konsep scene graph merupakan inti dari Java3D. Sebuah scene graph merupakan g rafik yang mempresentasikan geometri, material, dan pencahayaan. Scene graph dimulai dari root dengan sebuah Virtual Universe dan mencakup transformasi serta geometri untuk mendefinisikan objek di dunia maya. Secara garis besar, ada tiga tahap fundamental yang diperlukan untuk menghasilkan objek 3D, yaitu:
  1. Menciptakan objek Canvas3D
  2. Menciptakan sebuah scene graph
  3. Menghubungkan objek Canvas3D ke objek BranchGroup yang menunjuk root dari scene graph
  • Ogre 3D
Objected-Oriented Graphics Rendering Engine atau bisa disingkat dengan OGRE merupakan engine yang object oriented & flexible 3D rendering pada game engine yang ditulis dengan menggunakan bahasa C++ serta didesain agar mampu men-developer dengan mudah kepada aplikasi produksi dengan menggunakan utility hardware-accelerated 3D graphic. Gambaran abstraknya OGRE menggunakan sistem library seperti Direct3D & OpenGL, serta menyediakan sebuah dasar interface di dunia objek dan class objek yang lebih tinggi.
OGRE hanya digunakan untuk me-render. Dengan kata lain, fitur OGRE hanya khusus menangani vector & matOix classes, memory handling, dan lain lain. Ini bukan lah salah satu dari semua solusi dalam istilah game development/simulasi. OGRE tidak menyediakan audio/physics support.
Walaupun penjelasan diatas bisa dikatakan sebagai kelemahan dari OGRE itu sendiri, akan tetapi semua itu sebanding dengan kemampuan grafis yang ada pada game engine tersebut. Kelebihan yang paling menonjol pada OGRE adalah graphics engine yang bisa memberikan para developer sebuah kebebasan untuk menggunakan physics apapun, input, audio, & library lainnya. OGRE memberikan para tim development untuk fokus pada graphics daripada beberapa sistem-sistem yang ada dalam game development. OGRE dapat mendupport OIS, SDL, CEGUI libraries. Sekarang ini OGRE adalah publish dibawah dua lisensi, yaitu LGPL & OUL. Maka sekarang ini para publish tersebut membuka OGRE sebagai free/open source software.
Fitur-fitur pada OGRE:

  1. Desain yang object-oriented dengan menggunakan plugin untuk mempermudah memasukkan fitur lainnya
  2. Engine berbasis scane graph dengan bantuan untuk sebuah varietas yang luas, octree, BSP, & paging landscape scene manager
  3. Multi-platform dengan dukungan OpenGL & Direct 3D. Bisa me-render konten yang sama di beda platform tanpa harus mempunyai content creator. dapat diakses pada platform Linux, Mac OS, dan semua versi Windows
  4. OGRE mendukung program vertex dan fragment selama ditulis dengan GLSH, HLSL, Cg, dan assembler 
  5. The landscape scene manager untuk progressive LOD, yang mana bisa dibuat secara otomatis dan manual
  6. Engine annimasi yang men-support penuh untuk multiple hardware
  • Processing
Processing adalah bahasa pemrograman dan lingkungan pemrograman yang bersifat open source yang digunakan untuk memprogram gambar, animasi, dan interaksi. Processing digunakan untuk mengajarkan dasar-dasar pemrograman komputer dalam konteks rupa dan berfungsi sebagai buku sketsa perangkat lunak dan alat produksi profesional. Processing mengintegrasikan suatu bahasa pemrograman, lingkungan pemrograman, dan metodologi pengajaran ke dalam sistem terpadu.
Processing merupakan suatu projek yang dinisiasi oleh Ben fry dan casey reas. Berkembang dari ide-ide yang dieksplorasi di Aesthetics and Computation Group (ACG) di Mit Media Lab. Projek ini kini terus diperbaiki dan dikelola oleh sejumlah Tim Voluntir.
  • Game Maker
Game Maker adalah software yang bisa membantu anda menjadi pengembang game komputer tanpa menggunakan coding sedikitpun. Dapat digunakan untuk membuat 3 dimensi dan Multiplayer. Game Maker dapat menjadikan hak penuh dari software (game) yang anda buat termasuk dapat menjual game tersebut, bahkan bisa mendownload musik, efek suara, gambar, script, serta background.
  • Unity 3D
Unity 3D adalah sebuah game developing software. Dengan software ini, kita bisa membuat game 3D yang seru. Game developer ini sangat mudah digunakan, dengan GUI yang memudahkan kita untuk membuat derta mengedit script untuk menciptakan sebuah game 3D. Selain bisa untuk build game PC, Unity juga dapat digunakan untuk membangun game console seperti Nintendo Wii, PS3, Xbox 360, juga Ipad, Iphone, dan Android. Namun masing-masing membutuhkan biaya lisensinya sendiri. Unity kurang lebih sama dengan Blender game engine, namun unity lebih ringan dan diintegrasi lebih dalam suasana grafik.
Kelebihan Unity terdapat pada multiple platform, artinya banyak platform yang disupport oleh unity, seperti Windows, Mac, iPhone, iPad, Android, Nintendo Wii, dan juga browser. Untuk browser, kita memerlukan sebuah plug-in, yaitu Unity Web player, sama halnya dengan Flash Player pada browser. Pada unity, kita tidak bisa melakukan desain/modelling dikarenakan unity bukan tool untuk mendesain. Jadi jika kita ingin mendesain, dibutuhkan 3D editor lain seperti 3Dsmax atau Blender, kemudian kita export menjadi format .fbx.

Konsep Pembuatan Script Game Komputer

     Ada 2 cara dalam pembuatan game, yaitu dengan membuat sendiri progranya atau dengan menggunakan game maker yang hanya drag and drop saja. Namun kali ini saya akan membahas tentang pembuatan game dengan script alias ngoding sendiri. Dalam ngoding sendiri ada beberapa hal yang harus diperhatikan dalam game yang akan kita buat dari beberapa faktor antara lain :

a. Speed

     Bahasa script untuk sebuah game harus memiliki kemampuan berjalan secepat mungkin. Mengapa dibutuhkan speed pada sebuah script game? Jawabannya adalah karena ketika kita akan membuat suatu game dengan suatu level, pasti secara logikanya suatu perilaku karakter dan rintangan yang terdapat didalamnya akan berbeda. Jika, kita menggunakan bahasa script yang lambat, maka akan memakan waktu yang cukup lama untuk membuatnya.
 
b. Kompilasi dan Interpretasi

     Bahasa script jika ditinjau secara luas diinterpretasikan melalui susunan suatu rangakaian byte. Interpreter akan melihat script setiap baris, serta penyusunan sesuai maksud dari script itu sendiri dan melakukan tindakan yang spesifik.  Suatu byte akan terkompilasi, dan akan dikonversi atau diubah dari teks menjadi suatu byte code. Byte code biasanya lebih padat jika dibandingkan dengan format teks, mengapa disebut lebih padat? Jawabannya adalah karena kode byte dalam suatu format akan lebih optimal ketika dieksekusi, sehingga dapat berjalan lebih cepat.

c. Ekstensibilitas dan Integrasi

     Bahasa script sangat dianjurkan mempunyai akses ke fungsi yang signifikan ke dalam sebuah game. Sebuah script untuk mengendalikan sebuah karakter misalnya, harus dapat memiliki kemampuan untuk menanyai game untuk mencari tahu apa y ang bisa dilihat dan selanjutnya membiarkan game mengerti apa yang harus dilakukan untuk melakukan aksinya. Kumpulan fungsi yang dibutuhkan untuk mengakses sangat jarang diketahui ketika bahasa script telah diimplementasikan. Oleh karena itu, hal ini penting untuk memiliki sebuah bahasa yang dapat dengan mudah memanggil fungsi atau menggunakan kelas main code dalam sebuah game.
d. Re-Entrancy

     Fungsi ini sering berguna untuk memanggil script secara ulang sehingga bisa digunakan kembali. Selain itu fungsi ini dapat berjalan untuk sementara waktu, dan ketika waktu telah habis maka script bisa ditunda. Dan jika script selanjutnya memiliki waktu lagi, maka akan menjalankan kembali script yang telah ditunda sebelumnya.

    Lalu yang terakhir ada Storyboard adalah sketsa gambar yang disusun berurutan sesuai dengan naskah, dengan storyboard kita dapat menyampaikan ide cerita kita kepada orang lain dengan lebih mudah, karena kita dapat menggiring khayalan seseorang mengikuti gambar-gambar yang tersaji, sehingga menghasilkan persepsi yang sama pada ide cerita kita.
  
    Storyboard pada Game sedikit berbeda dari storyboard animasi, dimana pada storyboard game terdapat goal / mission yang akan dibuat pada game itu sendiri. Kemudian storyboard pada game menjelakaskan tentang alur permaianan itu sendiri seperti apa tergantung dari jenis game.  misalkan game ber-genre arcade tidak memiliki alur cerita namun game terebut menitik beratkan pada perolehan point. Jadi storyboard yang dibuat yaitu bagaimana pemain mendapat nilai / point setinggi mungkin.
Refrensi:
http://saripahsyifa24.blogspot.com/2016/04/pengantar-teknologi-game-script-dan.html
https://septianbudiuntoro.wordpress.com/2016/03/12/konsep-pembuatan-script-game-komputer/ 
http://mane3x.wordpress.com/tag/scene-graph/
http://tiattack.blogspot.com/2012/04/arsitektur-game-engine.html
http://blogs.itb.ac.id/wnugroho/processing/
http://pengetahuan-carlim.blogspot.com/2011/11/unity-3d-unity-3d-adalah-sebuah-game.html 
https://www.academia.edu/3875722/Scripting_dalam_Pembuatan_Game  
http://skp.unair.ac.id/repository/web-pdf/web_Pengertian_Bahasa_Scripting_Muhammad.pdf http://repository.amikom.ac.id/files/Publikasi_10.11.4097.pdf 
http://repository.amikom.ac.id/files/Publikasi_10.11.4130.pdf

Tidak ada komentar:

Posting Komentar