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.
Tidak ada komentar:
Posting Komentar