Halo agan2, agan2wati, bro dan sis. Hari ini ane mau bahas satu teknik dimana banyak pengembang game terkenal membuat game2 mereka. Bagi para gamer, baik console maupun komputer, pasti udah paham maksud judul ane :)
Game 3D modern yang dipasaran sekarang. Sebutlah Crysis, Half-Life, Far Cry, Call of Duty, dll, memakai 3D engine mereka sendiri yang tidak lain adalah "otak" yang merender semua realita semu ke mata Anda.
3D game engines ini adalah produk yang kompleks yang terdiri dari gabungan matematika dan programming. Di thread ini saya pengen kupas sedikit dasar pengetahuan tentang 3D game engine.
Secara spesifik, game engine bekerja dengan mengunakan point (titik) dan vektor, dan semua pendukungnya. Dasar pengetahuan ini meliputi sedikit aljabar dan object-oriented programming.
Dasar dari Sistem Koordinat
Game 3 dimensi tentu harus...3 dimensi. Konsep yang paling sering dipake buat membuat ruang 3D adalah sistem koordinat Kartesius (pelajaran anak SMA dan juga dipake di AutoCAD). Bentuknya seperti ini:
http://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Cartesian-coordinate-system.svg/250px-Cartesian-coordinate-system.svg.png"
Dari sana, si game designer bisa lihat kalau sudut Kartesius 3D terdiri dari 3 sumbu (X, Y, Z) yan merupakan posisi horizontal, vertikal dan kedalaman. Kordinat dari sumbu2 ini disebut "tuple" atau "3-tuple" buat 3D.
https://cdn.tutsplus.com/gamedev/uploads/2013/05/image002.png"
Represendari sari 3-tuple ini adalah P.
Ini bisa dilihat dari persamaan:
P=(x,y,z)
Dan karena origin dari titik di kordinat adalah titik 0. Maka representasi dari 3-tuple ini adalah {O;X,Y,Z}. Dengan statemen ini, bisa dibilang kalau titik x,y dan z adalah posisi yang berelasi dengan titik origin. Definisi ini juga berarti titik mana saja dari titik P, (a, b, c).
P=O+aX+bY+cZ
Points dan Vektor
Setelah paham dasar dari koordinat, sekarang masuk ke bagian titik dan vektor. Atau lebih tepatnya, bagaimana semua elemen beriteraksi antara satu dengan yang lainnya. Point dan Vektor adalah 2 elemen yang berbeda. Point atau titik, adalah lokasi. Sementara Vektor adalah jarak antara dua titik.
https://cdn.tutsplus.com/gamedev/uploads/2013/05/image006.png"
Setelah paham konsep dari point dan vektor, pengembang bisa buat wireframe rendering. Ini kemudian diikuti ole rasterization dan gouraud shading dan terakhir, tekstur.
Transformasi ini disingkat menjadi
- Sebuah objek 3D di sumbu Kartesius.
- Objek tersebut dipindah (transformasi) ke dunia 3D virtual dengan translasi, rotasi atau dilatasi dengan matrix.
- Kamera kemudian akan melihat objek 3D ini di dunia 3D virtual.
- Hasil final adalah objek yang dirender secara 3D di layar.
http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-10-46-metablogapi/7245.3dSoftEngineProgression_5F00_2B467058.png"
Sebagai bacaan tambahan:
Source Engine. Games: Dota 2, Half Life 2 series, Counter-Strike: Source, Counter-Strike: Global Offensive, Left4Dead, Left4Dead 2, Portal 1 and 2
Salah satu engine paling terkenal sebagai pionir dari 3D engine. Engine ini sudah sering dipakai dan sampai punya komunitas sendiri yang terus mengembang engine ini dengan ratusan bahkan ribuan mods. Engine ini karena merupakan salah satu yang paling tua, juga dilihat sebagai engine yang sudah uzur. Tapi kemampuannya masih bisa diandalkan dengan membuat Half-Life 2, Counter-Strike, dan game2 serupa yang banyak di warnet game. Engine ini bisa didownload dari game2 yang dirilis Valve di Steam. Untuk lisensi komersilnya juga ada.
FrostBite. Game: Battlefield, Need for Speed: Rivals, Plants vs. Zombies: Garden Warfare
Buatan EA dan terkenal sejak Battlefield. Engine ini didesign untuk Microsoft Windows, PlayStation 3, PlayStation 4, Xbox 360, dan Xbox One. Dengan nama EA dibelakangnya, FrostBite sering dibilang sebagai state-of-the-art dari game engine.
CryEngine 3. Game: Crysis 2 and 3
CryEngine 3 udah sering dijadikan benchmark dari graphic game 3D. Bahkan pengembang engine ini pernah menyatakan kalau CryEngine 3 sangat canggih sampai2 hardware yang ada saat engine ini pertama kali diluncurkan belum ada yang bisa ngeluarin potensi maksimumnya. Engine ini sudah membuktikan kalau omongan ini bukan isapan jempol belaka dengangame Crysis yang dibilang mempunyai graphic diatas masanya. Fitur unggul dari engine ini adalah kemampuannya untuk membuat landscape 3D yang spektakuler.
Unreal Engine. Games: Mass Effect Series, Dishonored, Bioshock Infinite, Batman: Arkham Asylum, dll
Engine ini adalah tool lengkap untuk membuat game 3D sendiri. Salah satu tool yang paling banyak dipake di industry game. Tersedia versi gratis untuk belajar dan versi lisensi bayar buat bikin game komersil.
Unity. Games: Monument Valley, Oddworld: New 'n' Tasty!, Project Phoenix, Superhot, Torment: Tides of Numenera, dll
Unity adalah engine yang populer di kalangan developer. Dengan engine ini, mereka bisa membuat game 3D dan 2D dengan mudah yang support berbagai macam platform. Ada versi gratis dan bayarnya.
Leadwerks Engine. Games: Hoodwinks, dll
Lewdwerks adalah OpenGL 3D game engine yang mempunyai fitur lighting system, Screen Space Ambient Occlusion, real-time global illumination, advanced shaders, support for huge terrains and physics.
Torque. Games: Tribes 2, Blockland, Marble Blast Gold, Minions of Mirth, TubeTwist, Ultimate Duck Hunting, Wildlife Tycoon: Venture Africa, ThinkTanks, The Destiny of Zorro, dll
Awalnya engine ini dibuat tahun 2001 untuk FPS. Tapi semenjak itu berkembang dengan mengandalkan banyak fitur lainnya. Torque adalah engine open source dan merupakan andalan banyak developer. Beberapa fiturnya adalah world editor, Collada support, per pixel dynamic lighting, normal - parallax occlusion mapping, reflections, sky system, physX, multiple platform publishing dan access to source code.
Blender. Games: Lucy and The Time Machine, Krum dll
Free dan open source. Tools ini termasuk fitur untuk animation, compositing, 3D modeling, uv unwrapping, texturing, rigging, skinning, fluid, smoke, particle system, physics dan rendering. Tool ini juga punya built-in game engine. Game engine ini dibuat dengan bahasa pemrograman C++ dengan support Python scripting and OpenAL 3D sound.
Neoaxis. Games: Magic Story, Homura Combat, Adventures of Mopol, dll
Neoaxis mempunyai banyak fitur dari 3D game engine modern seperti advanced material dan shading support, real-time shadows, built-in Nvidia physX dan current/next-gen rendering. Mempunyai SDK dan map editor. Support untuk FPS (First Person Shooter), Real Time Strategy, 3rd Person Shooter, dll.
C4 Engine. Games: Project Reality 2, Quest of Persia: Lotfali Khan Zand, World of Subways, dll
C4 Engine adalah engine yang lengkap. Meliputi dynamic lighting, stencil, cascaded shadows, advanced shader support, terrain dan scene management seperti portals, occlusion dan level of detail. Versi yang bisa didownload adalah Standard dan Professional. Ada juga versi Academic. Engine ini dipakai buat buat game PlayStation 4, PlayStation 3, Windows (XP keatas), Mac OS X (versions 10.7 keatas), dan Linux.
Shiva3D. Games: The Hunt, dll
3D game engine dengan graphical editor untuk mengembangkan game di web, console, dan mobile. Untuk lengkapnya: di platform Windows, Mac, Linux, iPhone, iPad, BlackBerry Tablet OS/BlackBerry 10, Android, Palm OS, Wii dan WebOS, standalone atau game di web browser. Beberapa fiturnya meliputi: Nvidia physX, compound dynamic body, point light shadows, per-vertex per-pixel dan lightmapping.
Panda 3D. Games: Disney's Toontown, Disney's Pirates of the Caribbean Online, Autumn Moon Entertainment: Ghost Pirates of Vooju Island, SimOps Studios: Code3D, dll
Free dan open source. Game engine ini mempermudah pengembang dalam graphics, audio, I/O, collision detection, dll. Juga meliputi physics, particle effects, GUI creation, AI, OpenGL/DirectX, render to texture dan advanced shaders (normals, gloss, glow maps, HDR, cel shading).
Esenthel Engine. Games: Berbagai game MMO (Massively Multiplayer Online) dan RPG (Role Playing Game)
3D engine paket all-in-one. Dengan engine ini, developer bisa membuat game kelas 1 dengan tool yang mempermudah proses pengembangan game. Engine ini mendukung rendering, animation, physics, memory dan network. Ada lisensi gratis untuk pemakaian non-komersil dan lisensi bebayar buat pengunaan komersil.
id Tech. Game: Wolfenstein, Doom, Quake, dll
Mungkin salah satu game engine paling tua. Generasi dari 3D engine ini bisa ditelusurin dari Wolfenstein 3D yang merupakan "bapak" dari game 3D. Generasi barunya udah meliputi fitur seperti unified lighting dan shadowing, shadow volumes dan mega texture.
Ogre3D. Game: Ankh, Torchlight, dll
Ogre3D adalah 3D rendering engine yang open source rendering engine. Fiturnya memudahkan developer untuk membuat engine mereka sendiri yang meliputi object-oriented design, multi-platform dengan OpenGL dan Direct3D, landscape scene manager, animation engine dan content exporters untuk hampir semua 3D modeling.
Irrlicht. Game: Stunt Challenge, SpaceFlight, dll
Sebenernya bukan 3D engine tapi 3D rendering engine. Tool ini meliputi dynamic shadows, particle system, character animation system, indoor/outdoor rendering, collision detection, lightmapping, direct import of common 3d mesh file formats dan simple collision. Platform independen dan open source.
Dan sebagai tambahan, http://en.wikipedia.org/wiki/List_of_game_engines">http://en.wikipedia.org/wiki/List_of_game_engines
Semoga berguna buat yang mau jadi developer game Indonesia.