Dalam masa pandemi ini, kita pasti memiliki banyak waktu luang dalam kehidupan kita sehari – hari. Kita bisa mengisi waktu luang ini, dengan melakukan kegiatan yang sesuai dengan hobi kita. Seperti melukis / menggambar, membuat video, membaca, melihat film, dll. Pasti ada diantara kita yang mengisi waktu luang dengan bermain game. Tapi apakah ada yang tau cara membuat game ? mari kita mengenal dunia Game Engine !.

Apa itu Game Engine ?

Game engine adalah sebuah framework software yang di desain untuk pembuatan video game, yang biasanya berisi libraries yang dibutuhkan dan juga add-on agar mensupport software third-party yang dapat memudahkan pembuatan video game.

Fungsi inti dari game engine itu termasuk dengan, rendering engine (“renderer”) untuk game 2D maupun 3D grafis, Physics Engine atau yang bisa disebut Collision Detection, Sound, Scripting, Animation, Artificial Intelligent (AI), Network, Stream, Memory Management, Threading, Localization Support, dan Graphic Management

Ada banyak game engine yang sudah ada diinternet, baik itu berbayar maupun gratis. Dan setiap game engine memiliki kekurang dan kelebihan masing – masing. Tetapi sebelum kita melihat game engine yang ada pada era kita, Yuk kita lihat perkembangan game engine mulai dari dulu hingga sekarang !.

Sejarah dari Game Engine

Sebelum adanya game engine, banyak game yang dibuat dengan cara manual dan memaksimalkan hardware dari console game pada zaman itu. Game developer pada zaman itu tidak dapat dengan bebas membuat tampilan / desain game mereka akibat dari batasan hardware display maupun memory yang sudah terpasang di console. Saat adanya perkembangan game arcade yang merupakan market game pada masa itu, banyak game yang telah dibuang atau tidak dapat dipasarkan akibat dari minimnya kompabilitas hardware terhadap game – game yang telah dibuat. Dari sisi developer, hal ini membuat mereka merasa rugi, karena lamanya pembuatan game pada zaman itu.

Akibat dari itu banyak perusahaan video game yang menciptakan game enginenya sendiri. Contoh dari game engine pada masa itu, dibuat oleh Shigeru Miyamoto dari Nintendo. Game engine yang mereka buat itu digunakan untuk beberapa game side-scrolling. Contohnya : Excitebike (1948) dan Super Mario Bros (1985).

Karena pada masa itu, game engine belum bertebaran / belum bebas digunakan, ada beberapa 2D game creation system yang dapat digunakan oleh orang – orang yang pemula atau hobby dalam pembuatan game. Game Creation System (GCS) adalah sebuah game engine yang sangat mudah dalam penggunaanya, karena sudah disiapkan asset – asset untuk pembuatan game. Contoh dari asset yang ada di GSC ini yaitu, Pinball Construction Set, Adventure Construction Set, Shoot’Em-Up Construction Kit, dan masih banyak lagi.

Kata dari “Game Engine” baru dilestarikan pada tahun 1990, terutama pada game yang berhubungan dengan genre first-person shooters (FPS). Doom dan Quake merupakan game yang menggunakan game engine sama tetapi beda developer. Kedua developer tersebut dapat mengambil software inti dari game engine tersebut yang kemudian mereka olah lagi dengan desain game mereka sendiri. Setelah itu, banyak game engine yang diciptakan oleh perusahaan, dalam tujuan untuk mempersingkat pembuatan dari sequel game mereka.

First-person shooter engine masih banyak digunakan dalam pembuatan games. Engine ini juga dapat digunakan pada genre lain, seperti game The Elder Scrolls yang bergenre RPG tetapi masih menggunakan sudut pandang FPS.

Semakin berkembangnya zaman, banyak teknologi game engine yang sudah user-friendly, sudah bisa digunakan oleh orang yang bahkan sama sekali tidak paham coding. Game engine juga digunakan untuk hal yang serius, seperti Simulasi pelatihan tentara, dokter, penerbangan, dll. Karena perkembangan ini, sekarang game engine bisa membuat game untuk platform yang berbeda dari game console, seperti Mobile, Desktop, Web Browser. Game engine juga mengikuti perkembangan dari Bahasa programming, seperti Java, C#, dan Python.

Fungsi – Fungsi Game Engine

1. Rendering Graphic

Rendering merupakan proses final dari pembuatan gambar maupun animasi, saat merender object maupun character dari game, renderer akan memperhatikan bentuk geometric dari model object / character, arah pandang kamera renderer, texture dari object / character, pencahayaan dari tempat renderer.

2. Ray Tracing

Fungsi ini merupakan fungsi yang advance dari renderer, Fungsi ini dapat menciptakan gambar yang lebih realistis, dengan menambahkan intensitas warna, dan bayangan yang diciptakan jika terkena cahaya di dunia nyata.

3. Fogging

Fungsi ini digunakan untuk player agar tidak melihat proses render saat didalam game, Fungsi ini kadang digunakan pada game yang bergenre open world, saat merender setiap dunia yang ada di depan player, fungsi ini sangat berfungsi untuk mengurangi kinerja hardware pemain dalam merender dunia game yang luas

4. Anti-Aliasing

Fungsi ini mendeteksi outline kasar pada object game dan melembutkan garis tersebut sehingga terlihat nyata. Agar fungsi ini mudah dalam mendeteksi kita bisa membuat lebih banyak tepi body object.

5. Animation

Fungsi ini digunakan untuk menciptakan animasi bagi character maupun object. Ada 2 cara dalam mengaplikasikan animasi, yaitu cara Inverse Kinematics dan Forward Kinematics

Forward Kinematics adalah tipe animasi movement yang dimulai dari sendi character / object lalu disalurkan ke tubuh character / object. Contohnya Ragdoll

Inverse Kinematics adalah tipe animasi yang terbalik dari Forward Kinematics, yaitu pergerakan dimulai dari luar sendi lalu disalurkan ke body object / character. Contohnya animasi yang sudah di Pre-Render (Idle Cycle)

6. Artificial Intelligence

Fungsi ini dibuat untuk menciptakan AI untuk character yang ada di game, mulai dari NPC, Hewan yang ada di game, dll. Fungsi ini sering di gunakan untuk system “Pathfinding” yang merupakan sistem untuk memberitahu NPC kemana ia bergerak. Ada juga yang bernama “Navigation” yang sama seperti “Pathfinding” tetapi lebih advance.

7. Deteksi Collision

Fungsi ini digunakan untuk mendeteksi 2 object atau lebih yang mungkin bertabrakan atau saling menyentuh. Jadi bila ada Character player yang menyentuh suatu object atau NPC, game engine akan menentukan tipe action yang mungkin akan diberikan saat aksi tersebut terjadi.

8. Physics

Fungsi ini akan menentukan suatu reaksi fisika yang akan terjadi digame. Fungsi ini akan menciptakan reaksi yang realistis sehingga game akan terasa lebih nyata jika dimainkan. Tetapi fungsi ini mungkin tidak dapat membetulkan beberapa reaksi yang mungkin terlalu ekstrim. Sehingga cara ke 2 untuk membetulkan tersebut kita bisa menggunakan Middleware. Middleware ini merupakan Physic Library, yang berisis reaksi – reaksi yang sudah jadi dan dengan mudah diapply ke dunia game.

9. Sound

Fungsi ini mungkin penting dalam menambahkan tingkat realitas saat bermain game. Dengan menambahkan sound, player mungkin dapat merasakan suasana yang diberikan oleh game. Dan juga dengan sound player akan mendapatkan feedback dari action yang mereka lakukan didalam game. Banyak juga game yang menggunakan sound sebagai pondasi game mereka, contohya game yang bergenre Rhythm.

 Contoh Game Engine

1. Godot

source: godotengine.org

Godot game engine adalah game engine open source yang bisa digunakan untuk membuat game untuk berbagai platform seperti, Desktop (Windows, Mac, Linux) dan Mobile. Godot engine memiliki kelebihan dalam pembuatan game 2D, tetapi juga bisa membuat game 3D. Godot engine memudahkan pembuatan 2D game akibat dari fungsi pixel koordinat. Godot engine menggunakan beberapa Bahasa pemograman seperti,C#  , C++, and GDScript.

Kelebihan

  1. Godot mempunyai sistem dasar pixel measurement.
  2. Godot memudahkan developer dalam pembuatan game 2D
  3. UI dasar yang berbentuk Node memudahkan developer pemula
  4. Aplikasi godot engine sangat ringan dan open source

Kekurangan

  1. Godot tidak memiliki beberapa fungsi yang ada dalam game engine lain dalam pembuatan game 3D
  2. Godot tidak dapat membuat game untuk platform console
  3. Documentation untuk godot kurang diperjelas / tidak mudah untuk dipahami

2. Armory

source: 80.lv

Armory engine adalah game engine open-source yang terintegrasi dengan software 3D animation yang bernama Blender. Armory engine memiliki renderer yang mensupport voxel-based GI, temporal antialiasing, screen space raytracing, dan dapat mengubah fase renderer untuk material nodes. Game yang diciptakan menggunakan Armory engine dapat di mainkan di platform Desktop, Mobile, Web Browser, dan Console. Armory engine menggunakan bahasa C#

Kelebihan

  1. Armory engine merupakan game engine open-source, sehingga engine ini bisa dimodifikasi dengan mudah
  2. Armory engine ini fleksible, tidak mengekang user dalam menggunakan fitur yang disediakan oleh armory engine
  3. Armory engine memiliki sebuah fitur yang bernama logic nodes, yaitu sebuah fitur yang memudahkan para non-coders dalam mengcoding logika dalam game yang dibuat.
  4. Armory engine terintegrasi dengan blender, sehingga tidak usah bolak – balik dalam membuat game

Kekurangan

Armory engine ini masih work-in-progress, jadi belum tentu apakah game yang anda buat bisa direalisasikan di Armory engine dengan lancar atau tanpa masalah

3. Unity

source: unity3d.com

Unity game engine adalah game engine yang open source dan memiliki community yang saling mendukung dalam pembuatan game. Unity engine dapat membuat game 2D maupun 3D, engine itu juga dapat membuat game yang support dengan segala platform, mulai dari Desktop, Mobile, Web Browser, dan Console. Saat melakukan instalasi dari engine ini, user dapat memilih add-on mana yang ingin diinstall dimana add-on tersebut digunakan dalam memilih platform game. Unity menggunakan sistem component, contohnya setiap objek yang ada di dunia game memiliki sebuah body / atribut. Atribut – atribut tersebut dapat menambahkan fungsi kepada objek. Seperti : memunculkan objek agar tampil di world, menambahkan suara yang dihasilkan objek, dll. Unity menggunakan Bahasa pemograman Java dan C#.

Kelebihan

  1. Unity engine itu fleksibel, dapat menciptakan game 3D, Augmented Reality, bahkan Virtual Reality
  2. Karena menggunakan C#, memudahkan developer untuk langsung terjun dalam pembuatan game dengan mudah, Unity bahkan mensupport OOP (Object-Oriented Programming)
  3. Unity engine dapat dengan mudah membuat UI untuk game, bahkan dengan mudah mentransisi dari UI Desktop menuju UI Mobile atau sebaliknya

Kekurangan

  1. Unity engine memiliki banyak tampilan sehingga, bagi developer yang pertama kali mencoba unity akan kebingungan.
  2. Asset yang terdapat dalam community rata – rata berbayar

Menu