Rabu, 04 Mei 2016

MENGENAL LEBIH JAUH GAME ENGINE (OGRE 3D, UNITY 3D, OPENSCENEGRAPH, DELTA 3D)

     Hello sahabat blogger !!! Sebelum membahas satu per satu contoh dari Game Engine, tentunya kita juga harus paham apa itu game engine?? dan apa saja yang ada dalam game engine ?? Mungkin yang belum paham bisa baca lebih lanjut disini. Ibarat makan nasi tanpa garam dong, kurang berasa kalo mau buat game tapi belum paham sepenuhnya hehe. oke langsung aja simak penjelasan berikut.
    Game engine tentunya banyak bentuknya ada open source(gratis) dan ada juga yang berbayar. Berikut adalah contoh beberapa game engine beserta penjelasannya.

OGRE 3D 
     Ogre 3D Merupakan engine untuk rendering grafikal yang Open Source. Ogre3D tidak menyertakan komponen built-in seperti physics, penanganan input user dan kecerdasan buatan (Artificial Intellegence). Ogre ini bersifat hanya sebagai plug-in yang ditanam umum menambahkan library-nya yang merupakan sebagai mesin render yang tangguh dan banyak orang bilang ini sebagai game engine. Berdasar dari FAQ(Frequently Asked Question) dari Ogre 3D wiki, Ogre sebenarnya bukan Game Engine tetapi hanya merupakan Graphic Engine, Ogre 3D hanya fokus pada grafis 3D dan manipulasi adegan 3D. Ogre3D digambarkan cukup baik sehingga programmer tidak perlu memprogram bahasa spesifik untuk 3D seperti OpenGL atau DirectX.
     Namun, Ogre 3D dapat dengan mudah disatukan dengan library lain untuk membuat game. Untuk menggunakan engine ini dalam pembuatan game yang kompleks, maka kita perlu mengintegrasikannya dengan library physics yang tersedia, dan kita juga harus mencari library untuk suara. Ogre3D adalah game engine yang cukup baik untuk digunakan karena mudah digunakan dan kaya fitur. Dibuat oleh beberapa orang dari tim dari sebuah komunitas. Para developernya : Steve ’sinbad’ Streeting, Brian ‘praetor’ Johnstone, Assaf Raman, Holger ‘CABAListic’ Frydrych, Dave ‘masterfalcon’ Rogers, Noam ‘Noman’ Gat, Nir Hasson dan beberapa anggota lain yang sudah keluar/pensiun dari tim tersebut. Ogre 3D ini dapat dijalankan menggunakan beragam jenis hardware (support 3D) tentu dengan performa yang berbeda 

Fitur OGRE 3D: 
  • Desain yang object oriented dengan menggunakan plugin untuk mempermudah memasukkan fitur lainnya. 
  • Engine berbasis scane graph dengan bantuan untuk sebuah varietas yang luas, octree, BSP, & Paging Landscape scene manager. 
  • Multi-platform dengan dukungan OpenGL & Direct3D. Bisa merender konten yang sama di beda platform tanpa harus mempunyai content creator. Dapat diakses pada platform Linux, Mac OS X, dan semua versi Windows. 
  • OGRE mendukung program Vertex dan Fragment selama ditulis dengan GLSH, HLSL, Cg, dan assembler. 
  • The landscape scene manager untuk Progressive LOD, yang mana bisa dibuat secara otomatis & manual. 
  • Engine animasi yang mensuport penuh untuk multiple hardware. 
  • OGRE mempunyai comositing manager dengan bahasa script dan full screen postprocessing untuk efek seperti HDR, blooming, satruation, brightness, blurring, & noise. 
  • Libraries mempunyai fitur memory debugging & loading resource dari archive-nya. 
  • Tersedia konten tools untuk 3D modeler, seperti 3D Studio Max, Maya, Blender, LightWare, Milkshape, Sketchup, dsb. 


Berikut adalah langkah-langkah penginstalan Ogre3D dalam Windows: 

     Untuk installasi OGRE memiliki beberapa tahapan agar bisa digunakan karena OGRE tidak berjalan sendiri melainkan membutuhkan applikasi lain untuk berjalan. User akan membutuhkan komponen-komponen berikut : 


1. Eclipse 
AC / C + + ekstensi untuk Eclipse, WIT. Untuk program C + + di Eclipse, instal ekstensi CDT. 

2. GCC (MinGW) 
CDT bekerja dengan GCC, compiler gnu koleksi, awalnya ditulis untuk platform unix (seperti linux atau FreeBSD). Untuk menjalankannya di windows, kita perlu menciptakan lingkungan unix di windows agar gcc dapat berjalan. Ada dua pilihan. Salah satu pilihan adalah Cygwin, yang hanya menerjemahkan semua sistem unix panggilan ke panggilan sistem windows, yang memungkinkan semua program unix untuk berjalan di windows. Pilihan kedua, kita akan gunakan adalah MinGW. MinGW merupakan kumpulan alat pengembangan linux (seperti compiler dan file header) yang terdiri dari gcc untuk windows. 

3. MSYS 
Tools yang digunakan untuk mengkonfigurasi gcc. MSYS mengkonfigurasikan gcc di bawah platform windows. 

4. The Ogre SDK, Code:: Blocks versi 
Untuk membuat program OGRE, kita perlu OGRE SDK. Ada beberapa SDK precompiled yang tersedia untuk platform pengembangan yang berbeda. Tidak ada SDK khusus untuk Eclipse. 

5. Install Eclipse 
Sistem dasar Eclipse akan menampilkan lingkungan pemrograman Java yang dapat ditambahkan untuk bahasa lain. Install Eclipse, untuk praktikum kali ini, user menggunakan Eclipse Helios versi Eclipse IDE untuk C / C++ Developer. User dapat mendownload Eclipse IDE untuk C / C++ Developer, dengan C/C++ Development Tools Plugin sudah termasuk dalam paket installasi. Setelah didownload, extrak file tersebut dan jalankan Eclipse.exe . 

6. Install MinGW 
MinGW adalah aplikasi gcc untuk Windows. Aplikasi ini seluruhnya berada dalam satu direktori. User akan menggunakan C:/mingw sebagai direktori file. Dalam direktori ini terdapat beberapa subdirektori seperti bin dan libs. MinGW terdiri dari beberapa paket distribusi yang masing-masing memiliki file dalam satu atau lebih dari direktori ini. untuk menginstall paket baru, cukup ekstrak ke direktori (misal) C:/mingw. Kemudian user perlu menambahkan direktori ini ke PATH variabel Windows juga, caranya: 

+++ Klik kanan My Computer – Properties – Advanced – Environmental Variables +++ 
Klik Path variable. Klik Edit, Add “;c:\mingw\bin” (tanpa tanda petik) pada Variable value. Tanda kutip ganda digunakan untuk memisahkan direktori yang berbeda. 

Arsitektur Game Engine

Hello sahabat blogger, pasti udah ga asing lagi dong dengan yang namanya permainan(game) ?? Yapp hampir seluruh manusia di dunia pasti pernah memainkan sebuah game dan tentunya bentuk game pun juga beragam. Yang kita tau sih cuman tinggal maininnya doang, tapi taukah kalian membuat game itu tidak mudah, layaknya sebuah bangunan yang tentu juda ada arsitekturnya. Begitu pula dengan game terdapat beberapa komponen pendukung seperti game engine. Bentuk game engine pun juga beragam. Nah !!! Untuk lebih jelasnya mari simak penjelasan berikut.


Pengertian Game Engine (Mesin Game)

   Game Engine adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.
        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. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek. Game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan.
      Beberapa game dengan jenis dan gameplay yang hampir sama bisa dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan keinginan pemakai engine, yaitu game programmer.


Tujuan Penggunaan Game Engine

     Game engine menyediakan seperangkat alat pengembangan visual di samping komponen software digunakan kembali. Alat-alat ini umumnya diberikan dalam suatu lingkungan pengembangan terpadu untuk mengaktifkan disederhanakan, perkembangan pesat dari permainan dengan cara data-driven. Mesin pengembang Game upaya untuk “pra-menciptakan roda” dengan mengembangkan suite perangkat lunak kuat yang mencakup banyak unsur pengembang game mungkin perlu untuk membangun sebuah permainan. Kebanyakan mesin permainan suite menyediakan fasilitas yang memudahkan pengembangan, seperti grafik, suara, fisika dan fungsi AI. Mesin permainan ini kadang-kadang disebut “middleware” karena, seperti dengan istilah naluri bisnis, mereka menyediakan sebuah platform perangkat lunak yang fleksibel dan dapat digunakan kembali yang menyediakan semua fungsionalitas inti yang dibutuhkan, langsung dari kotak, untuk mengembangkan sebuah aplikasi permainan sambil mengurangi biaya , kompleksitas, dan waktu-ke-pasar-semua faktor penting dalam industri video game yang sangat kompetitif. Gamebryo dan RenderWare adalah seperti program middleware banyak digunakan.
      Seperti solusi middleware lainnya, mesin permainan biasanya menyediakan abstraksi platform, yang memungkinkan permainan yang sama untuk dijalankan pada berbagai platform termasuk game konsol dan komputer pribadi dengan sedikit, jika ada, perubahan yang dibuat ke kode sumber permainan. Seringkali, mesin permainan dirancang dengan arsitektur berbasis komponen yang memungkinkan sistem tertentu dalam mesin yang akan diganti atau diperpanjang dengan lebih khusus (dan sering kali lebih mahal) komponen middleware game seperti Havok untuk fisika, Miles Sound System untuk suara, atau Bink untuk Video.
      Beberapa mesin permainan seperti RenderWare bahkan dirancang sebagai rangkaian dihubungkan secara longgar komponen middleware permainan yang bisa selektif dikombinasikan untuk membuat mesin khusus, bukan pendekatan yang lebih umum dari memperluas atau menyesuaikan solusi terintegrasi yang fleksibel. Namun diperpanjang tercapai, hal itu tetap menjadi prioritas tinggi dalam mesin game karena berbagai kegunaan yang mereka diterapkan. Meskipun kekhususan nama, mesin permainan yang sering digunakan untuk jenis lain aplikasi interaktif dengan kebutuhan grafis real-time seperti demo pemasaran, visualisasi arsitektur, simulasi pelatihan, dan lingkungan pemodelan.
    Beberapa mesin permainan hanya menyediakan 3D real-time rendering kemampuan bukan berbagai fungsi yang dibutuhkan oleh game. Mesin ini mengandalkan pengembang game untuk melaksanakan seluruh fungsi ini atau merakit dari komponen middleware permainan lainnya. Jenis mesin umumnya disebut sebagai “mesin grafis,” “mesin render,” atau “mesin 3D” bukan meliputi lebih istilah “mesin permainan.” Terminologi ini tidak konsisten banyak digunakan sebagai fitur lengkap mesin permainan 3D disebut hanya sebagai “mesin 3D.” Beberapa contoh mesin grafis adalah: Crystal Space, Genesis3D, Irrlicht, JMonkey Engine, OGRE, RealmForge, Truevision3D, dan Visi Engine. Modern permainan atau mesin grafis umumnya memberikan grafik adegan, yang merupakan representasi berorientasi objek dari dunia permainan 3D yang sering menyederhanakan desain game dan dapat digunakan untuk rendering yang lebih efisien dari dunia maya yang luas.


Arsitektur Game Engine

     Arsitek adalah pelajaran untuk membuat rancangan dari bangunan. Sedangkan arsitektur mesin game adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Dapat dikatakan bahwa arsitektur mesin game itu adalah rancangan dari sistem perangkat lunak dari game itu sendiri.
      Tahap awal dari merancang suatu game adalah memilih jenis game yang akan dibuat agar dapat lebih terfokus dalam mengerjakannya. Selanjutnya adalah mendesaian game yang akan dibuat. Setelah kita memiliki desain game, langkah berikutnya adalah mengimplementasikan desain tersebut menjadi source code. Apabila source telah selesai dirancang, maka game tersebut dapat dimainkan dan digunakan sesuai yang diinginkan oleh sang pembuat game. Apakah game tersebut dibuat untuk dikomersilkan atau dikembangkan oleh orang lain.

Beberapa elemen yang terdapat dalam game engine, yaitu: