Application Programming Interface (API)


Mungkin bila anda adalah gamers sejati pasti sering melihat ato membaca mengenai DirectX atau OpenGL, yup itu adalah API yang umum digunakan untuk game developments.
DirectX
DirectX adalah API yang dibuat microsoft khusus untuk pengembangan game. tujuan dengan dibuatnya directx memberikan akses pada developer untuk berkomunikasi langsung dengan hardware, dimana tanpa DirectX API, developer (programmer) harus menggunakan API dari operating system (windows) untuk berkomunikasi dengan hardware dan cara ini sangat lambat karena API pada operating system dibuat untuk tujuan umum (bukan hanya game saja) sehingga tidak teroptimisasi. Dengan adanya directx maka developer dapat langsung berkomunikasi dengan hardware (melalui DirectX) tanpa harus melewati operating system.
DirectX terdiri dari beberapa sub-API yaitu :
  1. Direct3D [API untuk pemograman visualiasi 3D]
  2. DirectSound [API untuk pemograman audio 2D/3D]
  3. DirectInput [API untuk pemograman input:mouse,joystick,keyb..]
  4. DirectPlay [API untuk networking (multiplayer games)]
  5. DirectShow [API untuk multimedia : video,music,..]
openGL
openGL adalah API yang memiliki peranan yang sama dengan Direct3D, perbedaannya adalah openGL merupakan API yang crossplatform, yang artinya dapat berjalan diberbagai operating system (tidak hanya windows seperti directx) misalnya Linux,MacOSX,Windows bahkan handheld device.
openAL
openAL adalah API yang memiliki peranan sama dengan DirectAudio dengan perbedaan seperti perbedaan openGL dan Direct3D, openAL merupakan API crossplatform dan opensource.
Engine
Sekarang dibahas lebih mendalam mengenai engine yang terdapat pada game, umumnya sebuah game terdiri dari :
1.Graphics Engine
Graphics\3D Engine bertugas melakukan komputasi untuk melakukan visualisasi game, komputasi disini diantaranya melakukan transformasi (pergerakan) object 3D, rendering object 3D (seperti : lighting,shadow,texturing), dan menggambar effect visual (seperti : particle,fog,motion blur,explosion) pada object, proses ini dilakukan pada GPU (graphics processing unit) apabila pada komputer terinstall 3D accelerated hardware.
Sehingga Graphics engine pada umumnya berkomunikasi dengan hardware GPU dengan perantara 3D API (Direct3D / openGL).
berikut adalah beberapa Graphics Engine opensource :
  1. Ogre3D (via Direct3D/OpenGL)
  2. Genesis3D (via Direct3D)
  3. Irrlicht (via Direct3D/OpenGL)
  4. Panda3D (via Direct3D/OpenGL)
  5. Nebula Device (via Direct3D/OpenGL)
  6. OpenSceneGraph (via OpenGL)
2.Audio Engine
Audio Engine bertugas untuk mengeluarkan suara pada game, termasuk processing audio itu sendiri, seperti effect pada environment, effect doppler, atau perubahan suara akibat dari posisi dan pergerakan sumber suara hingga proses komputasi perubahan suara apabila terdapat objek yang menghalangi suara tersebut.
berikut adalah beberapa audio engine :
  1. audiere
  2. FMod
  3. Audiality
  4. Bass
3.Network Engine
untuk game multiplayer atau online umumnya terdapat engine khusus yang melakukan processing networking yaitu komunikasi dan sinkronisasi antara player yang berada pada berbagai komputer yang terletak pada suatu network
berikut beberapa network engine
  1. torque network library
  2. rakNet
  3. Hawk network library
  4. SDL network library
  5. replica Net
  6. quazal
4.Physics Engine
agar pergerakan dan reaksi setiap object dalam game terlihat nyata, maka game umumnya melakukan simulasi pergerakan dan reaksi object berdasar hukum fisika seperti massa, torque, collision, friction, joint, gravity, momentum dll.
berikut beberapa physics engine:
  1. havok
  2. tokamak
  3. open dynamic engine
  4. newton game dynamic
  5. novodex
5.Game Engine
Game Engine adalah engine yang terdiri dari beberapa engine diatas (graphics,network,physics,dll..).
beberapa Game Engine :
  1. truevision
  2. torque game engine
  3. reality engine
  4. crystal space
  5. KJAPI
  6. unreal

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: