Pengertian Game Engine
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 pointnya adalah fungsi
‘main()’. Biasanya program utama ini relative pendek. Jadi game engine adalah
program yang memotori jalannya suatu program game.
Ada banyak mesin permainan yang
dirancang untuk bekerja pada konsol permainan video dan siste operasi desktop
seperti Microsoft Windows, Linux, dan Mac OS X. Fungsi inti biasanya disediakan
oleh mesin permainan mencakup mesin render untuk 2D atau 3D.
Fungsi-fungsi
didalam game engine antara lain :
- Rendering engine
- Physical engine
- Sound script
- Animation
- Artificial intelegent
- Network
- Streaming
- Memory management
- Scene graph
Sejarah Game Engine
Sebelum (Game Engine) mesin permainan, permainan yang biasanya ditulis
sebagai entitas tunggal: game untuk Atari 2600, misalnya, harus dirancang dari
bawah ke atas untuk memanfaatkan optimal hardware layar tampilan ini rutin-core
hari ini disebut kernel oleh retro pengembang.
Istilah
“Game Engine (Mesin Permainan)” muncul pada pertengahan 1990-an, terutama
dalam kaitannya dengan game 3D seperti penembak orang pertama (FPS). (Lihat
juga:. mesin first-person shooter) tersebut adalah popularitas Id Doom Software
dan game Quake, daripada bekerja dari awal, pengembang lain berlisensi bagian
inti dari perangkat lunak dan desain grafis mereka sendiri, karakter, senjata
dan tingkat -The “permainan isi ” atau “aset permainan.” Pemisahan aturan
permainan spesifik dan data dari konsep-konsep dasar seperti deteksi tabrakan
dan entitas permainan berarti bahwa tim bisa tumbuh dan mengkhususkan.
Tujuan Penggunaan Game Engine
Digunakan
untuk menyediakan fasilitas yang memudahkan pengembangan, seperti grafik,
suara, fisika dan fungsi AI. Mesin permainan biasanya menyediakan abstraksi
platform yang memungkinkan permainan yang sama untuk dijalankan pada berbagai
platform termasuk game konsol dan komputer probadi dengan sedikit 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 komponen
middleware game seperti Havok untuk fisika, Miles Sound System untuk suara,
atau Bink untuk Video.
Beberapa mesin permainan hanya
menyediakan 3D real-time rendering kemampuan bukan berbagai fungsi yang
dibutuhkan oleh game. Mesin ini mengandalkan pengembang game untuk melaksanakan
selurug fungsi atau merakit dari komponen middleware permainan lainnya. Jenis
umumnya disebut mesin grafis, mesin render atau 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.
Tipe Game Engine
- Roll your own game engine
Banyak
perusahaan game kecil biasanya menggunakan engine sendiri. Mereka menggunakan
API seperti XNA, DirectX atau OpenGL untuk membuat game engine sendiri. Di sisi
lain terkadang menggunakan library komersil atau open source. Biasanya game
engine tipe ini lebih disukai karen selain kemungkinan besar diberikan secara
gratis, juga memperbolehkan mereka (para developer) lebih fleksibel dalam
mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine
mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara semacam ini
justru menyerang balik developernya.
- Mostly ready game engine
Engine
ini biasanya sudah menyediakan semuanya begitu diberikan pada programmer.
Termasuk contoh GUI, physics, libraries model, texture dll. Banyak dari mereka
yang sudah benar-benar mengerti, sehingga dapat langsung digunakan untuk
scripting. Game engine semacam ini memiliki beberapa batasan terutama jika dibandingkan dengan
game engine sebelumnya. Hal ini ditujukan agar tidak terjadi banyak error yang
mungkin terjadi setelah sebuah game yang menggunakan engine dirilis dan masih
memungkinkan geme engine tersebut untuk mengoptimalkan kinerja game. Contoh
tipe game engine seperti ini adalah Unreal Engine, Source Engine, id Tech
Engine dan sebagainya yang sudah sangat optimal dibandingkan jika harus membuat
dari awal.
- Point and click engines
Engine
ini merupakan engine yang sangar dibatasi, tetapi dibuat dengan sangat user
friendly. Setiap orang dapat mulai membuat game sendiri menggunakan engine
seperti GameMaker, Torque Game Builder dan Unity3D dengan sedikit memanfaatkan
coding. Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa
dilakukan dan biasanya hal ini mencakup semuanya, mulai dari grafis hingga tata
suara. Tetapi bukan berarti game engine jenis ini tidak berguna. Bagi developer
cerdas dan memiliki kreativitas tinggi, game engine seperti ini bisa dirubah
menjadi game menyenangkan seperti Flow. Game engine ini memang ditujukan bagi
developer yang ingin menyingkat waktu pemrograman dan merilis game secepatnya.
Elemen Game Engine
- Tools / Data
Dalam
pengembangan game dibutuhkan data yang tidak semudah menuliskan text files.
Dalam pengembangan game dibutuhkan beberapa tools seperti 3D model editor,
level editor dan graphics program.
- System
Merupakan
bagian dari game engine yang berfungsi melakukan komunikasi dengan hardware
yang berada didalam mesin. Jika game engine sudah dibuat dengan baik maka
system ini adalah bagian yang membutuhkan perubahan cukup banyak apabila
dilakukan implementasi pada platform yang berbeda. Didalam system sendiri
terdapat beberapa sub system yaitu graphics, input, sound, timer,
configuration. System sendiri bertanggung jawab untuk melakukan inisialisasi,
update dan mematikan sub system yang terdapat didalamnya.
- Console
Dengan
menambahkan console dapat dilakukan perubahan setting game dan setting game
engine didalam geme tanpa perlu melakukan restart pada game tersebut. Console
sendiri lebih sering digunakan dalam proses debugging. Apabila game engine
tersebut mengalami error, maka tinggal dilakukan output error message tersebut
kedalam console tanpa harus melakukan restart. Console dapat dihidupkan dan
dimatikan sesuai dengan keinginan.
- Support
Merupakan
bagian yang paling sering digunakan oleh system didalam game engine. Support
sendiri berisi rumus matematika yang biasa digunakan vector, matriks, memory
manager, file loader. Merupakan dasar dari game engine dan hamper digunakan
semua project game engine.
- Renderer / Engine Core
Pada
game engine, engine core / renderer terlihat dari beberapa sub yaitu
Visibility, Collision, Detection dan Response, Camera, Static Geometry, Dynamic
Geometry, Particle System, Billboarding, Meshes, Skybox, Lighting, Fogging,
Vertex Shading, dan Output.
- Game Interface
Merupakan
layer diantara game engine dan game itu sendiri. Berfungsi sebagai control yang
bertujuan untuk memberikan interface apabila didalam game engine tersebut
fungsi yang bersifat dinamis sehingga memudahkan untuk mengembangkan game
tersebut.
- The Game
Merupakan
inti dari penggunaan game engine sendiri, sehingga bebas untuk dikembangkan.
Apa Itu Spring ?
Adalah mesin permainan untuk strategi real-time (RTS) video game awalnya diciptakan
oleh Stefan Johansson dan Robin Westberg, anggota klan permainan Swedia
Yankspankers. Awalnya ditujukan untuk membawa pengalaman gameplay dari total Annihilation menjadi tiga dimensi, mesin telah berkembang untuk
mendukung sejumlah besar fitur yang lebih modern dan lebih fleksibel, termasuk built-in tingkat tinggi diperpanjang melalui Lua scripting
antarmuka. Mesin inti
permainan yang bebas dan perangkat lunak open source, tunduk pada
persyaratan berlisensi di bawah GNU General Public License versi 2.
Sejak tahun
2005 Spring mesin sedang dikembangkan oleh The Spring Community. Proyek ini
telah melampaui tujuan awal untuk memiliki permainan menjalankan mods dan pihak ketiga unit dari total Annihilation, dan telah berkembang
menjadi mesin RTS yang lebih umum. Sebagian besar
game yang berjalan pada mesin (per Desember 2010) difokuskan pada multiplayer gameplay. Ada juga saat
ini sejumlah misi pemain tunggal, dibangun di atas kerangka kerja memanfaatkan
mesin Lua kemampuan
scripting. Ada juga
sejumlah besar pertempuran AI, memungkinkan
untuk bermain offline atau pemain tambahan dalam sebuah game online.
Arsitektur Perangkat Lunak
Kebanyakan
game Musim Semi
Mesin berbasis dirancang untuk dimainkan
secara online, dalam pertandingan multiplayer. The Spring Mesin menggunakan
simulasi permainan deterministik yang dijalankan secara bersamaan pada semua
klien game. Hanya perintah
pengguna akan dikirim ke pemain lain, mencegah kecurangan aktif. Multiplayer
didukung pada kedua Linux dan Window. Lobi pre-game
menggunakan protokol yang dirancang khusus mirip dengan Internet Relay Chat untuk memfasilitasi chatting, pemutar
pertandingan-keputusan, dan penyesuaian opsi pertempuran. Sejumlah semi
lobi klien ada.
Lobi-lobi
untuk permainan memungkinkan pengaturan permainan pemain tunggal juga. Hal ini dapat
dilakukan baik dengan menggunakan modus pemain spesial tunggal, atau
menggunakan modus multiplayer dengan password dan menambahkan bot untuk
permainan. Alih-alih
menggunakan bot, beberapa permainan juga mendukung mode permainan khusus yang
memungkinkan satu pemain gameplay. Paling populer
di daerah ini adalah "ayam" mode Zero-K dan Annihilation Seimbang, di mana pemain
harus bertahan melawan gelombang monster. Sejak versi
0.79, Spring juga memiliki misi. Sebuah editor
misi dengan fungsi-fungsi lanjutan sementara intuitif dibundel dengan
permainan.
Skirmish AI
(atau bot) yang diperlukan untuk mendapatkan normal pemain tunggal permainan
berjalan. Mereka
mengambil alih peran mengendalikan tim dan karena itu dapat dilihat sebagai
mesin setara dengan pemain manusia tetapi tentu saja kurang licik. Mesin
mendukung plugin AI Skirmish yang akan ditulis dalam berbagai bahasa
pemrograman.Saat ini Lua, C, C++, Phyton dan JVM bahasa seperti Java dan Groovy. Hal ini juga
memungkinkan untuk mengembangkan plugin untuk mendukung lebih banyak bahasa.
Fitur render musim semi termasuk medan
mampudeformasi, proyektil 3D dan beberapa penyaji air. File-file unit jumlah Annihilation yang
kompatibel, yang memungkinkan unit pihak ketiga yang akan diimpor. Bahasa scripting
memungkinkan untuk gameplay disesuaikan dan antarmuka pengguna modifikasi. Tim Pemain
juga dapat menggambar dan menulis di peta permainan untuk mengkoordinasikan
langkah taktis dengan pemain lain. Pihak
ketiga AI memungkinkan untuk berbagi tingkat kesulitan.
Sumber