Thursday, March 18, 2010

Game Engine

Kalau kamu suka main game, pasti kamu pernah denger yang disebut dengan “game engine” beberapa kali. Bagi kita kita yang udah tuwir, mungkin sudah tau apa itu game engine dan seluk beluknya, namun bagi kamu yang masih hijau, mungkin pernah begadang semalaman cuma buat mikirin, “apa itu game engine ?”

Jawaban dari pencarian kamu nggak akan sesimpel yang kamu harapkan disini, walaupun logikanya memang mirip mesin biasanya, sayangnya ada beberapa hal yang bakal membedakan ( banget ) antara engine mobil dengan engine sebuah game.

Awal Kelahiran Game Engine

Di masa lalu, hampir semua perusahaan game memiliki game engine mereka sendiri, menggunakannya untuk membuat game mereka, dan menyimpannya untuk diri sendiri. Semakin lama kebutuhan untuk game engine yang makin modern semakin bertambah. Waktu demi waktu, game engine yang mereka kembangkan sendiri mulai dirasa terlalu mahal untuk dikembangkan lebih lanjut. Hal ini memicu beberapa developer untuk menciptakan game engine yang terbuka untuk di franchise kan. Sebagai contoh adalah id Tech dan Unreal Engine. Game Engine yang dijual dan di franchisekan secara umum semacam ini disebut dengan middleware. Middleware menawarkan harga yang relatif lebih murah, dan bagi kebanyakan studio game, menggunakan middleware merupakan solusi cepat dan ekonomis ketimbang harus membangun sendiri engine game mereka.

Konsep dari game engine sebenernya cukup gampang, yaitu bahan dasar yang diperlukan sebuah game untuk menjalankan tugasnya, merender pixel demi pixel, menghitung physiscs, memperkirakan input tombol, dan lain hal, yang memungkinkan developer kreatif dapat membuat sebuah game dengan engine yang sama menjadi unik satu sama lain. Di analogikan sebagai sebuah mobil, game engine sudah merupakan bagian mobil, sekitar 50% jadi. Mesin dan rangkaian sistem pengapian, sampai pembuangan. Kurang body dan aksesoris.

Sebuah game engine memungkinkan penggunaan kembali komponen komponen yang dapat mempercepat hadirnya game menjadi nyata di layar monitor mu. Beberapa diantara nya yang termasuk dengan itu adalah deteksi tubrukan, tampilan grafis, setting dalam game, artificial intelligence dan lain lain. Semua komponen tadi disatukan dalam satu pake game engine. Artist dan Developer, dapat menambahkan pustaka texture dan model sendiri untuk dijadikan tokoh utama atau setting dunia dalam sebuah engine. Sekali lagi dalam analogi game, model dan texture dalam game engine bisa dibilang sebagai body dan aksesoris mobil.

Sebuah game engine dibagi lagi menjadi dua bagian besar. Yaitu API dan SDK. API ( Applicaiton Programming Interfaces ) adalah bagian operating system, services dan libraries yang diperlukan untuk memanfaatkan beberapa feature yang diperlukan. Dalam hal ini contohnya DirectX. Sementara SDK adalah kumpulan dari libraries dan API yang sudah siap digunakan untuk memodifikasi program yang menggunakan operating system dan services yang sama. Biasanya, game engine menyertakan keduanya.

Contohnya dalam Unreal Engine, menyiapkan antarmuka baku bagi programmer untuk menciptakan game nya dengan mudah, melalui scripting engine, yang disebut UnrealScript, dan juga libraries, yang berisi model standar dan texture standar dan juga world editor yang disebut sebagai UnrealED.

Tipe Tipe Game Engine

Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrogramman. Tapi dalam pembahasan sekarang ini, ketimbang harus me-list semua jenis game engine yang ada di wikipedia, mendingan kita bahas garis besar nya saja.

Roll-your-own game engine. Banyak perusahaan game kecil seperti publisher indie biasanya menggunakan engine nya sendiri. Ini berarti mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Disisi lain, mereka kadang menggunakan libraries komersil atau malah open source. Terkadang mereka malah membuat semuanya dari nol.

Biasanya, game engine tipe ini lebih disukai karena selain kemungkinan besar tersedia 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 malah menyerang balik developernya. Menara Games Studio membutuhkan satu tahun penuh untuk menyempurnakan game engine nya, hanya untuk di tulis ulang semuanya dalam beberapa hari penggunaan karena adanya bug kecil yang sangat mengganggu.

Mostly-ready game engines. Engine engine ini biasanya sudah menyediakan semuanya begitu diberikan pada developer / programmer. Semuanya termasuk contoh GUI, physiscs, libraries model dan texture, dan segalanya. Banyak dari mereka yang sudah benar benar matang, sehingga dapat langsung digunakan untuk scripting sejak hari pertama.

Biasanya game engine semacam ini memiliki batasan batasan, terutama jika dibandingkan dengan game engine sebelumnya yang benar benar terbuka lebar. Hal ini ditujukan agar tidak terjadi terlalu banyak error yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis, dan masih memungkinkan game engine nya itu sendiri untuk mengoptimalkan kinerja game nya. Banyak dari game engine seperti ini, Unreal Engine, Source Engine, id Tech Engine dan sebagainya, yang sudah sangat optimal dibandingkan jika harus membuat dari awal. Hal ini dengan serta merta menyingkat sangat banyak waktu dan jelas, biaya dari para Developer game.

Point-and-click engines. Engine untuk point-and-click merupakan engine yang sangat amat dibatasi, tapi dibuat sangat user friendly. Kamu bahkan bisa mulai membuat game mu sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game point-and-click yang kamu banget.

Kekurangannya terletak pada terbatasnya jenis interaksi yang bisa dilakukan, dan biasanya hal ini mencakup semuanya, mulai dari grafis, hingga tata suara. Tapi bukan berarti game engine jenis ini nggak berguna, bagi developer cerdas dan berdaya kreativitas tinggi, game engine bapuk seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game engine seperti ini memang ditujukan bagi developer yang ingin menyingkat waktu pemrogramman, dan secepatnya merilis game game mereka.

Jenis –jenis game
a)Gratis(Freware)
Aleph One Axiom Engine Allegro library Blender3D

Box2D Build engine Cafu Engine Lua ClanLib

Crystal Space Cube Cube 2 DarkPlaces

Delta3d id Tech 1 DXFramework Ethanon Engine

Exult Genesis3D Genesis Device Glest

id Tech 2 id Tech 3 ika ioquake3

Irrlicht Engine jMonkeyEngine Jogre Lightweight Java Game Library

LÖVE Nebula Device OpenSceneGraph ORX

Panda3D Quake engine QuakeC PLIB Retribution Engine

Second Life SLUDGE Sphere Spring

Stratagus Troll2D Verge 3.2 Xilon Engine II

Blender

Golden T Game Engine (GTGE)

DXFramework

Ogre

Aleph One

Axiom Engine

Allegro Library

Build Engine

Cube

Cube 2

DarkPlaces

jMonkeyEngine (jME)

Sphere

b) Berbayar


Alamo A.L.I.V.E. Aurora Engine BigWorld

BRender C4 Engine Cafu Engine Coldstone game engine

CPAL3D CryEngine, CryEngine 2, CryEngine 3 Crystal Tools

DX Studio Dunia Engine Earth-4 Engine Electron engine Elflight Engine Enigma Engine Esenthel Engine Esperient Creato

Euphoria Freescape Frostbite Engine Gamebryo

GameSalad Gamestudio Glacier, Glacier2 GrimE

Hedgehog Engine HeroEngine id Tech 4 id Tech 5IMUSE

Infernal Engine INSANE Infinity Engine Jade engine

Jedi Kaneva Game Platform Kinetica

Leadwerks Engine Lemon Engine Lithtech LyN engine

Medusa Monumental Technology Suite MT Framework

Multimedia Fusion 2 Multiverse Network Odyssey Engine

Onyx Engine PhyreEngine Q (game engine) RAGE

RelentENGINE RenderWare Revolution3D RPG Maker VX

RPG Maker XP RPG Maker 2003 RPG Maker 95 SAGE engine

Scaleform SCUMM Serious Engine ShiVa

Silent Storm engine Sith Source engine

Torque Game Engine Torque Game Engine Advanced

TOSHI Truevision3D Unigine Unity

Unreal Engine Vengeance engine Vicious Engine Virtools

Vision Engine Visual3D.NET Game Engine WGAF

X-Ray Zillions of Games

Kelebihan dan Kekurangan Game Engine Freeware dengan Game Engine Shareware

Blender

Blender merupakan salah satu program “Modeling 3D dan Animation”, tapi Blender mempunyai
kelebihan sendiri dibandingkan program modeling 3D lainnya.
Kelebihan yang dimiliki Blender adalah dapat membuat game tanpa menggunakan program
tambahan lainnya, Karena Blender sudah memiliki “Engine Game” sendiri dan menggunakan “Python”
sebagai bahasa pemograman yang lebih mudah ketimbang menggunakan C++,C, dll.
Blender menggunakan “OpenGL” sebagai render grafiknya yang dapat digunakan pada
berbagai macam “OS” seperti Windows, Linux dan Mac OS X. Gambar berikut merupakan sebuah
“screenshot” dari salah satu project game yang dibuat menggunakan Blender

Sekarang ini Blender merencanakan sudah mengeluarkan versi yang terbarunya, yaitu Versi 2.49
yang lebih ditujukan untuk pembuat game. Karena Versi ini memiliki fitur-fitur baru yang dirancang
untuk membuat tampilan game yang lebih realistis dari pada versi sebelumnya.

Blender 2.49 memiliki fitur baru seperti :
* Video Texture
* Real-time GLSL Material
* Game Logic
* Bullet SoftBody
* Python Editor
* Multilayer Textures
* Physics
* Render Baking dan Normal Mapping dan masih banyak yang lainnya.
* Composite Adalah tempat menambahkan efek visual seperti pada gamabar berikut.

Untuk membuat game di Blender anda tidak perlu jago pemograman, jika anda hanya ingin
membuat game sederhana anda cukup mempelajari tool-tool yang disediakan oleh blender tanpa harus menggunakan “script” sedikitpun.
lebih lanjut fitur-fiturnya beserta pdfnya di

Lebih lanjut disini
http://www.ziddu.com/download/5196704/Belendergameengine.zip.html

Swift3D merupakan tool biasa digunakan untuk merender 3D menjadi 2D. Jadinya pasti memiliki kelebihan dan kekurangannya.

Baik, sekarang akan saya jelaskan satu-satu kelebihan dan kekurangannya. :)

Kelebihan Swift3D

  • Merupakan tool yang simpel, tidak ribet, tinggal drag and drop.
  • Swift3D mendukung animasi objek 3D.
  • Animasi dapat diexport ke banyak file, misal avi, flv, swf, swt, dan ai.
  • Kita dapat memilih jenis rendering yang kita inginkan, yaitu raster (bitmap) dan vector. Jenis gambar raster lebih lama saat me-render, akan tetapi hasilnya lebih bagus. Sedang untuk vector, gambarnya satu warna atau gradasi warna vector (cocok untuk dimasukkan pada animasi vector flash).
  • Jika kita ingin membuat model yang simpel, maka swift3D bisa digunakan untuk membuatnya. ;)

Kekurangan Swift3D

  • Sangat tidak cocok untuk membuat bentuk 3D yang kompleks. Jika ingin membuat bentuk 3D yang komplek kita harus menggunakan 3dsmax atau blender kemudian kita export dalam bentuk 3ds.
  • Susah untuk membuat animasi sendiri selain dari template animasi dari swift3D.
  • Kita tidak dapat memberikan efek pada objek, misal efek noise dll.
  • Jika kita ingin membuat sprite game berisikan animasi, mungkin cocok digunakan swift3D karena mengingat jika kita menggunakan 3D pada flash dengan engine seperti papervision3D, away3D, sandy3D, maka akan bertambah berat.

sumber :

http://en.wikipedia.org/wiki/Game_engine

http://en.wikipedia.org/wiki/List_of_game_engines

http://www.gamexeon.com/forum/article/37197-game-engine-apaan-sih.html

http://iddev.wordpress.com/2009/08/27/kelebihan-dan-kekurangan-swift3d/

http://blenderindonesia.org/forum/viewtopic.php?f=47&t=22

Friday, March 5, 2010

Kerangka grafik komputer


Kerangka grafik komputer

1.Graphics Library/package (contoh : OpenGL) adalah perantara aplikasi dan display hardware(Graphics System).

2.Application program memetakan objek aplikasi ke tampilan/citra dengan memanggil graphics library.
3.Hasil dari interaksi user menghasilkan/modifikasi citra.
4.Citra merupakan hasil akhir dari sintesa, disain, manufaktur, visualisasi dll.

Pemodelan Geometris

Transformasi dari suatu konsep (atau suatu benda nyata) ke suatu model geometris yang bisa ditampilkan pada suatu komputer :

– Shape/bentuk
– Posisi
– Orientasi (cara pandang)
– Surface Properties/Ciri-ciri Permukaan (warna, tekstur)
– Volumetric Properties/Ciri-ciri volumetric (ketebalan/pejal, penyebaran cahaya)
- Lights/cahaya (tingkat terang, jenis warna)
- Dan lain-lain …

Pemodelan Geometris yang lebih rumit :
– Jala-jala segi banyak: suatu koleksi yang besar dari segi bersudut banyak, dihubungkan satu sama lain.
– Bentuk permukaan bebas: menggunakan fungsi polynomial tingkat rendah.
– CSG: membangun suatu bentuk dengan menerapkan operasi boolean pada bentuk yang primitif.

Hardware Display Grafik : Vektor

1.Vetor (calligraphic, stroke, random-scan)
2.Arsitektur Vektor

Hardware Display Grafik : Raster
1.Raster (TV, bitmap, pixmap), digunakan dalam layar dan laser printer
2.Arsitektur Raster

Desain Permodelan Grafik ...

Pemodelan adalah membentuk suatu benda-benda atau obyek. Membuat dan mendesain obyek tersebut sehingga terlihat seperti hidup. Sesuai dengan obyek dan basisnya, proses ini secara keseluruhan dikerjakan di komputer. Melalui konsep dan proses desain, keseluruhan obyek bisa diperlihatkan secara 3 dimensi, sehingga banyak yang menyebut hasil ini sebagai pemodelan 3 dimensi (3D modelling).

Ada beberapa aspek yang harus dipertimbangkan bila membangun model obyek, kesemuanya memberi kontribusi pada kualitas hasil akhir. Hal-hal tersebut meliputi metoda untuk mendapatkan atau membuat data yang mendeskripsikan obyek, tujuan dari model, tingkat kerumitan, perhitungan biaya, kesesuaian dan kenyamanan, serta kemudahan manipulasi model. Proses pemodelan 3D membutuhkan perancangan yang dibagi dengan beberapa tahapan untuk pembentukannya. Seperti obyek apa yang ingin dibentuk sebagai obyek dasar, metoda pemodelan obyek 3D, pencahayaan dan animasi gerakan obyek sesuai dengan urutan proses yang akan dilakukan.

a. Motion Capture/Model 2D
Yaitu langkah awal untuk menentukan bentuk model obyek yang akan dibangun dalam bentuk 3D. Penekanannya adalah obyek berupa gambar wajah yang sudah dibentuk intensitas warna tiap pixelnya dengan metode Image Adjustment Brightness/Contrast, Image Color Balance, Layer Multiply, dan tampilan Convert Mode RGB dan format JPEG. Dalam tahap ini digunakan aplikasi grafis seperti Adobe Photoshop atau sejenisnya. Dalam tahap ini proses penentuan obyek 2D memiliki pengertian bahwa obyek 2D yang akan dibentuk merupakan dasar pemodelan 3D.

b. Dasar Metode Modeling 3D
Ada beberapa metode yang digunakan untuk pemodelan 3D. Ada jenis metode pemodelan obyek yang disesuaikan dengan kebutuhannya seperti dengan nurbs dan polygon ataupun subdivision. Modeling polygon merupakan bentuk segitiga dan segiempat yang menentukan area dari permukaan sebuah karakter. Sedangkan Modeling dengan NURBS (Non-Uniform Rational Bezier Spline) merupakan metode paling populer untuk membangun sebuah model organik. Kurva pada Nurbs dapat dibentuk dengan hanya tiga titik saja.
c. Proses Rendering
Rendering adalah proses akhir dari keseluruhan proses pemodelan ataupun animasi komputer. Dalam rendering, semua data-data yang sudah dimasukkan dalam proses modeling, animasi, texturing, pencahayaan dengan parameter tertentu akan diterjemahkan dalam sebuah bentuk output. Dalam standard PAL system, resolusi sebuah render adalah 720 x 576 pixels. Bagian rendering yang sering digunakan:

  • Field Rendering. Field rendering sering digunakan untuk mengurangi strobing effect yang disebabkan gerakan cepat dari sebuah obyek dalam rendering video.
  • Shader. Shader adalah sebuah tambahan yang digunakan dalam 3D software tertentu dalam proses special rendering. Biasanya shader diperlukan untuk memenuhi kebutuhan special effect tertentu seperti lighting effects, atmosphere, fog dan sebagainya.
d. Texturing
Proses texturing ini untuk menentukan karakterisik sebuah materi obyek dari segi tekstur. Untuk materi sebuah object bisa digunakan aplikasi properti tertentu seperti reflectivity, transparency, dan refraction. Texture kemudian bisa digunakan untuk meng-create berbagai variasi warna pattern, tingkat kehalusan/kekasaran sebuah lapisan object secara lebih detail.

e. Image dan Display
Merupakan hasil akhir dari keseluruhan proses dari pemodelan. Biasanya obyek pemodelan yang menjadi output adalah berupa gambar untuk kebutuhan koreksi pewarnaan, pencahayaan, atau visual effect yang dimasukkan pada tahap teksturing pemodelan. Output images memiliki Resolusi tinggi berkisar Full 1280/Screen berupa file dengan JPEG,TIFF, dan lain-lain. Dalam tahap display, menampilkan sebuah bacth Render, yaitu pemodelan yang dibangun, dilihat, dijalankan dengan tool animasi. Selanjutnya dianalisa apakah model yang dibangun sudah sesuai tujuan. Output dari Display ini adalah berupa *.Avi, dengan Resolusi maksimal Full 1280/Screen dan file *.JPEG.

Thursday, March 4, 2010

Storyboard ...

Game ini berjudul “Need a Police”. Pada game ini terjadi rangkaian peristiwa perampokan suatu Bank. Dan di dalam Bank tersebut terdapat beberapa nasabah dan pegawai Bank yang dijadikan Sandra oleh para perampok. Di sini User berperan sebagai seorang Polisi (a Police). Tugas dari Polisi di sini yaitu harus menyelamatkan para nasabah dengan cara menghabisi para perampok.

Kondisinya sang polisi dihadapkan pada suatu ruangan. Posisi si User (polisi) berada di pintu utama dari sebuah Bank yang di dalamnya terdapat banyak perampok, nasabah, dan pegawai Bank.

Pertama posisi si User sedang bersembunyi. Tindakan bersembunyi ini, User juga sekaligus mengisi peluru dari senjata api yang dimilikinya (Reload). Kemudian para perampok akan bermunculan dari tempat persembunyiannya yaitu, meja Teller, meja yang diterbalikkan, lorong yang menuju ke toilet, dan ruangan manager. Dan untuk dapat menembak para perampok, User harus keluar terlebih dahulu dari tempat persembunyiannya (Attack). Si User akan mendapatkan nilai untuk setiap kali dia berhasil menembak (Shoot) perampok. Akan tetapi, sesekali para perampok muncul dengan membawa Sandra. Dan bila si User menembak Sandra, maka akan terjadi pengurangan nilai. Dan nilai akan diakumulasikan pada akhir permainan. Akhir dari permainan itu adalah ketika semua perampok telah dilumpuhkan (MISSION COMPLETE). Tapi si User memiliki batas untuk terkena tembakan. Dan ketika sudah mencapai batas, maka User akan mati (DEATH). Batas ini biasa disebut dengan istilah Life Point.

Button-button yang digunakan yaitu :

- Button RELOAD

- Button SHOOT

- Button ATTACK

- Pengaturan Arah menggunakan Mouse

Pada game ini terdapat beberapa tingkatan permainan yaitu, Easy, Medium, dan Hard. Perbedaan dari tingkatan-tingkatan tersebut ialah banyaknya para perampok, perampok yang muncul dengan membawa Sandra, dan banyaknya Life Point (semakin sulit tingkatan permainan, semakin sedikit Life Point yang diberikan).

Untuk tampilan awal game, yaitu menu dimana terdapat 3 pilihan yang diantaranya adalah NEW GAME, TUTORIAL, dan OPTIONS. Pada menu OPTIONS terdapat beberapa hal yang dapat diatur oleh User, yaitu Level (Easy, Medium, Hard), Sound (Enable Sound atau Disable Sound). Kemudian pada Menu TUTORIAL yaitu berisikan petunjuk cara bermain untuk game ini. Lalu Menu NEW GAME, yaitu menjalankan game dari awal hingga selesai. Setelah User selesai memainkan game (Mission Complete atau Death), maka nilai akan diakumulasikan dan si User diminta untuk menginput beberapa karakter sebagai tanda hasil dari apa yang dia dapatkan, lalu akan dimasukkan ke dalam Report Ranking.