24 BAB 4 IMPLEMENTASI DAN EVALUASI
4.1 Spesifikasi Kebutuhan Perangkat keras yang digunakan untuk menjalankan aplikasi ini harus memiliki spesifikasi minimal sebagai berikut : •
PC dengan processor Pentium Celeron 733 MHz
•
Memori dengan kapasitas 128 Mb
•
VGA Card dengan kapasitas 32Mb dengan 3D Accelarator
Sedangkan untuk perangkat lunak adalah komputer dengan operating system Windows dan DirectX runtime.
4.2 Pengoperasian Program Aplikasi Engine akan dicobakan pada sebuah aplikasi untuk menampilkan detail dari sebuah bangunan AbandonedCity yang telah diekspor dari model 3 dimensi 3DMax ke dalam format file DirectX untuk mesh( .x ), dengan menggunakan Panda X porter yang dibuat oleh Andy Tather. Model ini akan disesuaikan dengan engine sehingga berfungsi juga sebagai level editor, di beberapa titik akan diletakkan spawn object dan occlusion object untuk di-load oleh engine. Beberapa tombol yang digunakan dan fungsinya: •
W, S : Untuk menggerakkan kamera ke arah depan dan ke belakang
•
A, D : Untuk menggerakkan kamera ke kiri dan ke kanan
•
Mouse : Untuk rotate kamera
25 4.3 Evaluasi 4.3.1 Spesifikasi Komputer yang dipakai Program aplikasi ini dites dengan menggunakan komputer dengan spesifikasi sebagai berikut: •
Processor : AMD ThunderBird 1400 MHz
•
Memory : 256 Mb
•
VGA Card : GeForce 2 MX 400
•
Operating system : Windows XP
•
DirectX Runtime 9.0c
Semua hasil evaluasi berikut ini merupakan hasil pengujian dengan menggunakan komputer dengan spesifikasi yang disebutkan di atas.
4.3.2 Pengujian Spesifikasi Engine Engine akan diuji dengan memperhatikan beberapa hal di bawah ini, yang merupakan standard dalam pembuatan engine. Spesifikasi ini diambil dari situs Engine DevMaster yang merupakan situs untuk mendata semua engine game yang pernah dibuat. • • • •
Graphics API o API apakah yang digunakan untuk engine ini apakah DirectX, OpenGL, SDL dan lain – lainnya Programming Language o Bahasa pemrograman yang dibuat untuk membuat engine ini, apakah C++, C, Delphi. Operating System o Engine berjalan di operating system apa aja, di antaranya adalah PC, Mac OS, Linux, Playstation, GameCube. Documentation o Apakah tersedia dokumentasi untuk engine ini, dan dalam bahasa apa dokumentasi ini.
26 • • • •
• • •
• • • • •
• • •
General Feature o Fitur – fitur umum dalam sebuah engine, biasanya mengungkapkan coding style dari Engine, Camera, kemampuan untuk seting graphics. Scripting o Apakah engine ini mendukung scripting bagi penggunanya dan jenis scripting apakah yang digunakan. Build – in Editors o Editor – editor yang dapat membantu proses pembuatan game sehingga memangkas waktu develop untuk koding. Physics o Apakah engine terintegrasi dengan physic system dan jenis physic apakah yang terimplementasi, biasanya terdiri dari basic physics, collision detection, rigid body, vehicle physics. Lighting o Jenis pencahayaan yang digunakan dalam engine biasanya tediri dari pervertex, per-pixel, light mapping, static dan dynamic lighting. Shadows o Apakah engine mendukung adanya shadowing ( bayangan ), biasanya mencakup projected planar, shadow volume. Texturing o Kemampuan untuk men texture object 3 dimensi dengan gambar 2 dimensi. Texturing yang biasanya digunakan adalah basic, multi texturing, bump mapping, mip mapping, trilinear, material custom. Shaders o Apakah mensupport untuk vertex shaders dan pixel shaders. Scene Management o Teknik culling yang dipakai meliputi BSP, Portals, Occlusion Culling, PVS, LOD Animation o Teknik animation untuk mesh meliputi key framming, skinning animation Meshes o Kemampuan untuk meload object 3 dimensi atau mesh Special Effects o Kemampuan tambahan visual effect yang dapat diimplementasi seperti Environment Mapping, Lens flares, Billboarding, Particel System, Sky, Water, Fog, Cell Shading. Terrain o Kemampuan untuk menggenerate terrain dengan bantuan rumus matematik Networking System o Kemampuan engine dalam mensupport client server side, peer to peer Sound System o Kemampuan engine dalam mensupport suara dan efek seperti misalnya 3D Sound Effect, Positioning Sound Effect
27 • • • •
Artificial Intelligence o Kemampaun tambahan AI dalam engine seperti misalnya path finding, decision making, Finite State Machine Rendering o Teknik rendering yang dipakai oleh engine biasanya terdiri dari fixed piped rendering, render to texture( shaders ). Price o Harga engine ini Source Code o Apakah engine ini menyediakan source code untuk diubah.
Beberapa engine yang akan kita bandingkan adalah 3D Game Studio, Farcry Engine, Irlicht Engine, Ogree dan Torque. Engine akan di uji coba dengan spesifikasi – spesifikasi di atas dan dengan menggunakan aplikasi penampilan detail suatu model. Karena keterbatasan harga maupun waktu untuk develop aplikasi dengan menggunakan engine masing – masing maka untuk aplikasi penampilan detail hanya dites dengan menggunakan engine ini saja.
28
Tabel 4.2. Tabel Hasil Evaluasi Spesifikasi Engine Subject
3DGameStudio
Farcry
Torque
Engine
DirectX
OpenGL, Direct X
Irlicht OpenGL, DirectX, Software
Ogree
Graphics API Programming Language
OpenGL, DirectX
OpenGL, DirectX
DirectX
C/C++, Delphi
C/C++
C/C++, C#, VB.Net
C/C++
C/C++
C/C++
Operating System Documentation
Windows
Windows , Xbox, Plays tation, Gam eCube Windows , Linux
General Feature Scripting Build in Editors
Yes
Yes Object Oriented Object Oriented Des ign, Des ign, Plug in Architecture, Save/Load Plug in Architecture, s ys tem Save/Load s ys tem
Pre - m ade s cripting Level, Mode, Script Editors
LUA Language s cripting
Yes Object Oriented Des ign, Integrated XML Pars er, Support .zip file, unicode s upport
Windows , Linux, MacOS Windows , Linux, MacOS Windows
No
Yes Object Oriented Des ign, Plug in Architecture, Save/Load s ys tem , s upport .zip file Material s cripting, Multipas s render s cripting
No
No
Collis ion Detection
Bas ic phys ics , Collis ion Bas ic phys ics , Collis ion Detection, Rigid Body, Bas ic Phys ics , Detection, Rigid Body Vehicle phys ics Collis ion Detection
CryEngine SANDBOX Bas ic phys ics , Bas ic phys ics , Collis ion Collis ion Detection, Detection, Rigid Body, Rigid Body, Vehicle Vehicle phys ics phys ics Per-Vertex, Per-Pixel, Per-Vertex, Per-Pixel, Lightm ap, Glos s m aps , Lightm ap Anis otropic Projected planar, Shadow Volum e Shadow Volum e
Shadow Volum e
Bas ic, Multi-texturing, Bum pm apping, MipMapping
Bas ic, Multi-texturing, Bum pm apping, MipMapping
Bas ic, Multi-texturing, Bum pm apping, MipMapping
Per-Vertex, Per-Pixel, Lightm ap Shadow Mapping, Shadow Volum e Bas ic, Multi-texturing, Bum pm apping, MipMapping, Volum etric, Projected
Vertex, Pixel
Vertex, Pixel
Vertex, Pixel
General, Occlus ion Culling, LOD Invers e Kinem atics , Skeletal, Anim ation Blending
Octrees , Occlus ion Culling
Animation
BSP, Portals , Occlus ion Culling, PVS, LOD Keyfram e, Skeletal, Morphing, Anim ation Blending
Meshes
Mes h Loading, Skinning, Deform ation
Mes h Loading, Skinning, Progres s ive Environm ent Mapping, Lens Flares , Billboard, Particel Sys tem , Sky, Water, Decals , Fog, Mirror
Physics Lighting Shadows
Texturing Shaders Scene Management
Special Effects Terrain
Environm ent Mapping, Lens Flares , Billboard, Particel Sys tem , Sky, Water, Fog, Mirror
Per-Vertex, Per-Pixel, Lightm ap
Yes
Yes Object Oriented Object Oriented Des ign, Des ign, Save/Load Sys tem , Res ource Save/Load s ys tem , Manager Res ource Manager LUA Language s cripting Level, Terrain, GUI Editor
Per-Vertex, Lightm ap Projected planar, Shadow Volum e
Material s cripting, Properties s cripting No
Per-Vertex No
Bas ic, Multi-texturing, Bum pm apping, MipMapping
Bas ic texturing, Scripted texturing
Vertex, Pixel
No
No
Mes h Loading
Mes h Loading, Skinning, Progres s ive
BSP, Portals , Occlus ion Culling, LOD Invers e Kinem atics , Skeletal, Anim ation Blending Mes h Loading, Skinning, Progres s ive, Tes s ellation
General, Octrees , Occlus ion Culling
Skeletal Anim ation, Morphing
General, BSP, Octrees , Occlus ion Culling, LOD Invers e Kinem atics , Skeletal, Anim ation Blending
Skeletal, Anim ation Blending Mes h Loading, Skinning
Environm ent Mapping, Environm ent Mapping, Lens Flares , Billboard, Billboard, Particel Particle Sys tem , Motion Sys tem , Sky, Water, Fog Blur, Sky, Water, Fog
Environm ent Mapping, Lens Flares , Billboard, Particle Sys tem , Sky, Water, Decals , Fog
Billboard, Fog
Rendering Client Server, Mas ter Server
Rendering, CLOD
Rendering
No
Rendering, CLOD
No
Client Server
No
No
Client Server
2D Sound, 3D Sound
No
No
Artificial Intelligence
3D Sound Pathfinding, Decis ion Making, Finite State Machine, Scripted
Client Server 2D Sound, 3D Sound, Stream ing Sound
No
No
Finite State Machine, Scripted
Rendering
Fixed Function, Render To Texture
Fixed Function, Fonts , GUI
Fixed Function, Render To Texture, Fonts , GUI
Fixed Function, Render To Texture, Fonts , GUI
$100 - $1000
Fixed Function, Render To Texture Not public(aprox. $5000)
Finite State Machine Fixed Function, Render To Texture, Fonts
Free
Free under GPL
$100 - $800
Free
No
Yes
Yes
Yes
Yes
Yes
Networking System Sound System
Price Source Code
Pathfinding, Decis ion Making, Scripted
2D Sound, 3D Sound
29 4.3.3 Evaluasi Engine dengan aplikasi Pengujian yang dilakukan adalah dengan membangun sebuah aplikasi dengan menggunakan engine dan pengujian akan berdasar pada pengimplementasian algoritma culling untuk back face, viewing frustum dan occlusion culling. Seperti yang telah dijabarkan dalam landasan teori, culling berguna dalam memfilter polygon yang tidak nampak sehingga kinerja grafis dapat ditingkatkan. Berikut ini adalah pengujian yang dilakukan.
Gambar 4.1 Pengujian Back Face Pengujian 1: Dalam pengujian ini aplikasi dibangun dengan menggunakan back face culling saja, dan hasilnya kita pantau dalam frame per second( fps ). Angka fps ini menunjukkan dalam 1 detik berapa kali screen dirender oleh Engine. Dalam hal ini angka yang ditunjukkan oleh fps memiliki rata – rata yang cukup besar yaitu sekitar 200 fps. Angka ini menunjukkan
30 kerja Engine yang tergolong baik untuk ukuran viewing mesh saja tanpa adanya collision maupun culling lainnya.
Gambar 4.2 Pengujian Back Face, Viewing Frustum, Occlusion Pengujian 2: Dalam pengujian ini aplikasi dibangun dengan menggunakan back face culling, viewing frustum dan occlusion culling. Hasilnya masih kita pantau dari angka frame per second( fps ) yang tercetak di kiri atas aplikasi ini. Angka yang ditunjukkan oleh fps mengalami penurunan namun masih cukup signifikan tinggi setelah diimplementasi viewing dan occlusion culling, hal ini dikarenakan beban cpu meningkat setelah adanya operasi culling dari viewing maupun dari occlusion culling.
31
Gambar 4.3 Pengujian Culling dan Collision System Pengujian 3: Dalam pengujian ini aplikasi dibangun dengan menggunakan back face culling, viewing frustum, occlusion culling dan mengimplementasi collision detection algorithm. Hasilnya kita pantau dari angka frame per second( fps ). Angka yang ditunjukkan oleh fps merupakan rata – rata fps standard minimum yaitu sekitar 45 – 60 fps. Hal ini dikarenakan beban cpu bertambah setelah di implementasikannya algoritma untuk collision detection.