• Tidak ada hasil yang ditemukan

Behaviour NPC Game Historical War 3D Using Finite State Machine

N/A
N/A
Protected

Academic year: 2017

Membagikan "Behaviour NPC Game Historical War 3D Using Finite State Machine"

Copied!
78
0
0

Teks penuh

(1)

DAFTAR PUSTAKA

AeHyun, K. & JaeHwan, B. 2014. Development of mobile game using

multiplatform(unity3D) game engine. International Journal of Intelligent Information Processing(IJIIP) 5(1):29-35.

Beny, 2010. Pengembangan software game menggunakan RPG maker VX. Skripsi. Universitas Sumatera Utara.

Bevilacqua, Fernando. 2013. Finite-State Machines: Theory and Implementation.

(Online)http://gamedevelopment.tutsplus.com/tutorials/finite-state-machines-theory-and-implementation--gamedev-11867 (17-02-2016).

Creighton, R.H. 2010. Unity 3D Game Development by Example. 1:110-115. (E-Books). http://kat.ph. (10-01-2016).

Doran, John P. 2015. Building an FPS Game with Unity. 1:6-215. (E-Books).http://kat.ph. .(20-12-2015).

Ellison, B. 2008. Non-player character. (Online) en.wikipedia.org/wiki/Non-player_character (25 Juli 2012).

Fauzi, M.Haki & Rodiah. 2013. First person shooter 3D”GamaShoot” dengan blender dan unity 3D. Prosiding Seminar Nasioanal Teknologi Informasi dan Multimedia (AMIKOM 2013),pp.1-6.

Goldstone, Will. 2009. Unity Game Development Essentials. 1:14-129. (E-Books). www.it-ebooks.info (10-01-2016).

(2)

Kyaw, A.s.,Swe, T.N. & Peters, C. 2013. Unity 4.x Game AI Programming. 1:5-50. (E-Books).www.it-ebooks.info (08-03-2016).

Mizanuddin. 2011. Pembuatan game FPS (sudut pandang orang pertama) “operasi LUN INAU” dengan menggunakan unity. Skripsi Amikom: Yogyakarta. Meisadri, R. & Indriani, N. 2013. Pembangunan permainan first person shooter

3D alien hunter. Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) 2(1):1-6.

Okita, Alex. 2015. Learning C# Programming with Unity 3D.1:25-133. (E-Books).http://kat.ph.(10-01-2016).

Peng, X. 2014. 3D game development with unity A case study: A first-person shooter (FPS) game. Helsinki Metropolia University of Applied Sciences: Finlandia.

Raharja, W. S. 2011. Pengembangan aplikasi situs sejarah dalam bentuk peta tiga dimensi interaktif kompleks monumen tugu pahlawan surabaya menggunakan unity 3D engine. Institut Teknologi Surabaya.

TWH, M. 2007. Bungai Rampai Perjuangan Rakyat Sumatera Utara. Yayasan Pelestarian Fakta Perjuangan : Medan.

Xavier Borg. Understanding 2 dimensional spaces [Online]. Blaze labs re-search. URL: http://www.blazelabs.com/f-u-hds.asp . Accessed 10 September 2013.

Wagner F., Schmuki R., Wagner, T. & Wolstenholme, P. 2006. Modelling software with finite state machines. Aurbach Pubclications: New York.

(3)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Arsitektur Umum

Metode yang diajukan pada penelitian ini dapat dilihat pada gambar 3.1 yang memberikan gambaran arsitektur umum dan langkah-langkah yang dilakukan dalam penelitian ini. Detail dari arsitektur umum tersebut akan dijelaskan lebih lanjut pada sub-bab berikutnya.

(4)

3.2 Pengumpulan Data

Tahapan pengumpulan data merupakan tahapan awal dan terpenting, karena menjadi dasar dalam pelaksanaan tahapan selanjutnya. Data-data yang digunakan dalam penelitian ini adalah buku sejarah , foto dan internet.

3.2.1 Foto-Foto Masa Lalu

Stabat yang saat itu memiliki perusahaan kereta api milik kolonial Hindia Belanda pada saat itu membuat beberapa dokumentasi yang masih disimpan oleh belanda saat ini. Foto-fotonya banyak diambil dari museum belanda yang memiliki lama daring resmi, seperti The Koninklijk Instituut voor Taal-, Land- en Volkenkunde (KITLV) yang dikelola oleh Universitas Leiden Belanda dan The Tropenmuseum (Museum of the Tropics).

(5)

32

Gambar 3.2 Tampilan laman Situs KITLV (KITLV)

(6)

Gambar 3.4 Tampak Belakang Stasiun Kereta Api Tanjung Pura (KITLV)

(7)

34

Gambar 3.6 Peta Jalur Kereta Api Tanjung Pura – Stabat (KITLV) 3.3 Modelling

Dengan terbatasnya informasi yang ada, dalam menentukan ukuran rumah, peneliti menghitung berdasarkan skala dan estimasi dari ukuran sebenarnya suatu objek yang ada dalam foto stasiun kereta api. Metode yang digunakan dalam proses pemodelan 3D ini ialah image-based modelling (IBM) dengan menggunakan 3D Sketch Up software. Contohnya seperti pada gambar 3.3, gambar 3.4 dan gambar 3.5.

3.3.1 Pemodelan NPC

(8)

Karacter 3D pada aplikasi ini dibuat menggunakan software Adobe Mixamo atau Adobe FUSE. Software ini sangat mudah digunakan dan praktis bagi orang yang tidak memiliki pengalaman untuk membuat karakter 3D. tampilan antarmuka Mixamo seperti yang ada pada gambar 3.7. Dengan menggunakan software Mixamo kita dapat menghemat waktu yang dibutuhkan untuk pembuatan NPC yang pada ukuran normal mungkin memakan waktu yang lama. Sedangkan untuk pembuatan karakter first person menggunakan prefab UFPS v.1.5.0. dari Asset Store sebagai prototype untuk menjalankan karakter utama dalam game ini.

Gambar 3.7 Tampilan Adobe FUSE 3.3.2 Pemodelan Environment

Linkungan virtual dibuat untuk menggambarkan bagaimana Letnan Amir Yahya bersama Timnya melakukan peperangan dengan belanda yang dimulai dari stasiun kereta api. Untuk mendukung ini peneliti menggunakan Game Engine (GE) sebagai platform pengembangan aplikasi.

(9)

36

yang lebih beragam dan mendukung dua bahasa pemrograman, yaitu Javascript dan C# (Wang, et al. 2010).

Game Engine memiliki kemampuan untuk membangun landscape yang merepresentasikan lingkungan sekitar, misalnya pohon, rumput, sungai dan sebagainya dengan memanfaatkan objek terrain yang tersedia. Pengaturan terrain memungkinkan untuk mengatur kecepatan angin, tinggi rendahnya suatu permukaan, warna tekstur tanah dan sebagainya. Selain itu pengaturan lightning yang tepat akan memberikan kesan nyata. Sekitar 80% informasi yang dirasakan manusia berasal dari mata, maka persepsi visual merupakan faktor yang paling penting dalam lingkungan virtual yang dibangun. Lingkungan yang dibangun menjadi aspek terpenting dalam virtual reality dan harus memberikan immersive experience kepada pengguna. Sifat immersivity pada lingkungan virtual tersebut merupakan kunci agar pengguna dapat berinteraksi secara sempurna dengan dunia tersebut dan memungkinkan pengguna berimajinasi sehingga tidak menyadari lingkungan sebenarnya dalam dunia nyata.

3.3.2.1 Membangun Landscape

Unity3D dilengkapi dengan fitur asset store dimana terdapat cukup banyak asset gratis maupun berbayar yang dapat digunakan untuk membangun lingkungan virtual. Lingkungan virtual merupakan entitas menyeluruh dari landscape yang telah didesain sesuai dengan yang diinginkan. Landscape sendiri dibuat menggunakan fitur terrain yang ada pada Unity3D dan merujuk pada peta Tanjung Pura yang dibuat oleh pemerintah colonial Hindia Belanda seperti pada gambar 3.6. Adapun hasil dari pemodelan lingkungan virtual dapat dilihat pada gambar 3.8 untuk tampilan sesuai peta dan gambar 3.6 untuk lingkungan stasiun kereta api.

3.3.2.2 Pengaturan Cahaya (Lightning)

(10)

Pencahayaan juga harus memperhatikan intensitas dari cahaya yang dihasilkan, karena intensitas cahaya yang tidak sesuai akan menyebabkan ketidaksesuaian warna pada model. Perbedaan intensitas cahaya dapat dilihat pada Gambar 3.9 dimana intensitas cahaya terlalu tinggi sehingga menyebabkan perubahan warna yang terlalu mencolok dan tidak sesuai dengan yang diinginkan.

Gambar 3.8 Lingkungan Virtual Stasiun Kereta api

(11)

38

3.3.2.3 Collision Detection

Collision Detection merupakan fitur pada game engine yang berguna untuk mendeteksi adanya benturan antar objek. Agar fitur ini aktif, sebuah collider harus ditambahkan pada sebuah objek. Collider merupakan sebuah mesh yang tidak dilihat dengan cara menonaktifkan fitur mesh renderer pada objek tersebut. Collider berfungsi sebagai trigger agar dua objek yang berbenturan (salah satunya objek aktif) dapat memberikan respon dan tidak dapat menembus objek tersebut. Pada gambar 3.10 dapat dilihat ilustrasi dari dua objek yang mengalami collision yang memiliki rectangle collider.

Gambar 3.10 Cara kerja Collision Detection

Pada Unity3D, Collider sendiri memiliki bentuk geometri seperti square, sphere, capsule atau mesh. Collider berbentuk square, sphere dan capsule memiliki bentuk geometri yang cukup sederhana, namun memiliki presisi collision detection yang rendah terhadap mesh yang memiliki bentuk geometri yang rumit. Namun ketiga jenis collider tersebut lebih ringan saat dijalankan oleh game engine. Sedangkan collider dengan bentuk sama dengan mesh, maka bentuk geometri dari collider tersebut mengikuti bentuk asli dari bentuk mesh sehingga memiliki presisi collision detection yang tinggi. Sebaliknya, collider jenis ini lebih banyak memakai sumber daya memory dan grafis pada komputer.

3.3.2.4 Penggunaan Player Controller

(12)

dibangun. PC akan menerima input dari sensor seperti keyboard, mouse dan console. Pada penelitian ini saya akan menggunakan game assets UFPS dari Unity Asset Store yang memiliki kelengkapan yang dibutuhkan sebagai player controller.

3.3.2.5 Camera

Kamera Unity adalah sebuah game object pada Hierarchy dan ditunjukkan pada jendela scene secara otomatis. Pada kamera game menunjukkan area yang tampak pada screen, yang mana kamera menunjukkan tinggi dan lebarnya jarak pandang, juga mengatur kedalaman. Bentuk ukuran pandangan bisa di atur ke orthographic atau perspective. Pandangan ini dibuat dari posisi mata yang mana bisa dibayangkan dengan lokasi penonton pada bentuk tiga dimensi.

Unity di ilustrasikan pada gambar 3.11. Kamera perspective digunakan pada gambar 3.11a. cara terbaik untuk menunjukkan proyeksi perspective adalah dengan menunjukkan kedalaman dari garis bangunan yang semakin mengecil di kejauhan dan semakin menghilang. Ini tidak berlaku untuk kamera orthographic pada gambar 3.11b. Depth hanya bisa ditentukan oleh objek yang didepannya. Bangunan seperti tampak rata, karena disana tidak ada perbedaan ukuran antara jarak bangunan. Gambar 3.11c dan 3.11d mengilustrasikan pendekatan yang mana volume view dari kamera di tentukan dalam Jendela Scene. Jika object tidak di tempatkan didalam volume view dari kamera pada Scene, maka tidak akan terlihat pada layar game. Gambar 3.11 adalah gambar 3D game scene di Unity menggunakan kamera perspective (a) dan kamera orthographic (b). bentuk klipping yang meruncing menunjukkan menggunakan kamera perspective (c). bentuk klipping yang berbentuk kubing menunjukkan menggunakan kamera orthographic pada scene.

3.3.2.6 Terrain Editor

(13)

40

seperti LOD (level of detail), jarak, culling, dan animasi. Meskipun ini membuatnya menjadi sangat mudah untuk mengatur dan mengembangkan sebuah terrain, dengan berbagai fitur-fiturnya, juga ada limitnya. Untuk mendapatkan informasi yang lebih mendalam tentang tree generator, harus menggunakan referensi manual, kemudian cari panduan terrain engine.

Sebuah objek terrain bisa dibuat pada scene antara Hierarchy dan Project views dengan posisi 0,0,0 ketika pengguna membuat terrain button. Pada Inspector, ketika objek terrain di pilih pada Hierarchy, pengguna akan melihat properties dan tools yang digunakan untuk mengembangkannya, seperti pada gambar 3.12. Posisi, rotasi dan scale akan di set pada Transform section, dan disini nilai defaultnya adalah ok. Tools pada Terrain (Script) adalah tools utama untuk membuat terrain. Sebagai contohnya, pengguna bisa menggunakan tombol pertama untuk membuat gunung dengan beragam ketinggian dan tombol keempat untuk membuat pohon, bush, atau rumput. Pada umumnya, terrain editor adalah salah satu terbesar pada Unity3D.

(14)

Gambar 3.12 Terrain Tools pada Inspector (Peng, 2014) 3.3.2.7 Skybox

(15)

42

Flags pada Skybox. Akhirnya mengembalikannya ke main menu dan pilih Edit > Render Settings, kemudian pengguna bisa memilih material skybox yang mana akan digunakan pada Inspector. Pada game, default material skybox tidak ada.

Gambar 3.13 Enam texture digunakan untuk membuat sebuah Skybox 3.3.2.8 Clouds

(16)

3.4 Game Logic

Game logic pada game ini menggunakan metode finite state machine pada non-player character yang berperan sebagai musuh dan sekutu. Tugas mereka adalah untuk membunuh player atau team yang bersama player. Game logic dibuat berdasarkan alur dasar permainan. Untuk penjelasan lebih detail dapat dilihat pada sub-bab alur dasar permainan sebagai berikut.

3.4.1 Alur Dasar Permainan

Alur permainan dimulai dengan pemain memilih play pada menu interface, ketika sudah berada didalam game player akan melihat Lettu Lidan Syam sebagai npc yang barking (bersorak), player mendekati npc tersebut terus menekan tombol “F” yang diarahkan ke npc dan muncullah kotak dialog pilih next dan next untuk mendapatkan misi. Setelah muncul popup misson player tekan “ESC” dan pilih menu “Quest” terus track quest tersebut. Dikatakan harus membunuh 5 tentara belanda. Setelah membunuh tentara belanda, maka player harus menemui Lettu Lidan Syam kembali dan melaporkan bahwa misi telah selesai baru bisa melanjutkan ke scene selanjutnya. Pada scene kedua player akan bertemu Letnan Amir Yahya dan bercerita, setelah selesai player diharuskan memukul mundur pasukan belanda sampai melewati jembatan stabat. Berakhirlah scene pada game ini dan akan kembali ke main menu.

3.4.2 Implementasi Finite State Machine

(17)

44

3.5 Antarmuka Pengguna (User Interface)

Pada tahap ini akan dirancang tampilan antarmuka dari game Pertempuran Stabat. Perancangan tampilan antarmuka pengguna merupakan perancangan tata letak dari tampilan aplikasi yang akan dibangun. Desain antarmuka pengguna harus mempertimbangkan beberapa aspek. Salah satu aspek terpenting dari desain antarmuka pengguna ialah kenyamanan pengguna dan tingkat kemudahan pemakaian antarmuka yang bersifat user friendly. Pentingnya unsur kemudahan dalam pemakaian (user friendly) dikarenakan tujuan dari adanya tampilan antarmuka pengguna ialah untuk memudahkan pengguna dalam menggunakan aplikasi. Bagaimana aplikasi bisa dijalankan dengan mudah oleh pengguna yang sama sekali belum pernah menjalankan aplikasi tersebut menjadi faktor penting dalam desain antarmuka pengguna. Flowchart User Interface dapat dilihat pada gambar 3.14

ControlState(){

if(CurrenStatePatrol && CanEngage == true){

investigate();

}

if(CurrenStateInvestigate && canSeeEnemy == true){

(18)

Gambar 3.14 Flowchart sistem aplikasi game

(19)

46

3.5.1 Tampilan Menu Utama

Pada halaman Menu utama, terdapat tiga Menu utama. Menu-menu tersebut ditampilan dalam sebuah tombol (button). Menu-menu utama tersebut ialah , tombol Play, tombol Options, dan tombol Quit. Sedangkan tombol Options ketika ditekan maka akan menampilkan sub menu, yaitu untuk mengatur Volume Music dan Ukuran dari resolusi yang digunakan. Tampilan menu utama dapat dilihat pada gambar 3.15.

Gambar 3.15 Desain Tampilan Antarmuka Pengguna Menu Utama 3.5.2 Tampilan Loading Screen

(20)
(21)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Bab ini membahas implementasi dan pengujian sistem sesuai dengan analisis dan perancangan sistem pada Bab 3. Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil rancangan aplikasi dan pengujian untuk membuktikan jika aplikasi dapat berjalan dengan baik.

4.1 Implementasi Sistem

Implementasi aplikasi game sejarah ini dibuat menggunakan Unity dalam Bahasa pemrograman C# dengan menggunakan Integrated Development Environment (IDE) MonoDevelop Versi 5.9.6. Penulis memilih menggunakan Unity dikarenakan unity memiliki banyak fitur yang lengkap untuk membuat game 3D dan gratis.

4.1.1 Konfigurasi Perangkat Keras

Untuk menjalankan game pada komputer ataupun laptop, kebutuhan perangkat keras yang digunakan cukup tinggi, terutama processor, RAM dan Kartu Grafis. Agar pengujian dapat berjalan dengan baik, penelitian ini menggunakan komputer notebook Asus K43S dengan spesifikasi perangkat keras yang dapat dilihat pada tabel. 4.1.

4.1.2 Konfiguras perangkat lunak yang digunakan

(22)

Tabel 4.1 Konfigurasi perangkat keras yang digunakan

No. Jenis Komponen Komponen yang digunakan

1. Processor Intel® Core™ i3-2330M CPU @2.20GHz (4CPUs), ~2.2GHz

2. Memory 4096MB RAM

3. Kartu Grafis Intel® HD Graphics 3000

4. Storage 500 GB Hitachi

5. Resolusi Layar 1366 x 768 (32bit) (60Hz)

Tabel 4.2. Konfigurasi perangkat lunak yang digunakan

No. Jenis Software Software yang digunakan

1. Sistem Operasi Microsoft® Windows 7 Ultimate 64bit 2. Modelling Tools SketchUp dan Adobe

3. Game Engine Unity 3D v5.1.2f

4.1.3 File Asset

(23)

50

Gambar 4.1 Berkas File pada Folder Project Unity 4.1.4 Eksekusi Aplikasi

Berikut akan di jelaskan hasil eksekusi aplikasi game fps yang dijalankan pada laptop Asus K43S. Penjelasan dimulai dari awal aplikasi yang dapat dilihat pada gambar 4.2.

Gambar 4.2 Tampilan awal game

(24)

terdapat setting resolusi gambar juga pada sub menu “Option”. Untuk langsung keluar player bisa memilih menu “Quit” dan programpun akan terhenti. Untuk memulai game player bisa memilih menu “Play”. Setelah itu akan muncul tampilan loading screen seperti tampak pada gambar 4.3 berikut.

Gambar 4.3 Tampilan Loading Screen

Pada halaman ini Unity sedang loading asset yang dibutuhkan untuk gameplay. Tampilan loading screen ini dibutuhkan karena agar player mengetahui bahwa aplikasi sedang bekerja. Setelah tampilan loading screen selesai maka tampilan selanjutnya adalah tampilan dalam game seperti pada gambar 4.4 berikut.

(25)

52

Penjelasan penomoran pada gambar 4.4 adalah sebagai berikut : 1. Health Point (Darah) Player

2. Jumlah ammo

Gambar 4.5 Pause pada saat ingame

Pada gambar 4.5 adalah tampilan pada saat Pause ingame. Menu menggunakan File dari Asset Store yaitu Dialogue System for Unity v1.5.8 sebagai prototipe. Penjelasan nomor pada gambar 4.5 adalah sebagai berikut :

1. Quest Log

Berisikan submenu untuk Tracking Quest atau misi pada saat bermain. 2. Save Game

(26)

3. Load Game

Submenu untuk meload game yang telah disave sebelumnya. 4. Clear Saved Game

Submenu untuk menghapus file save. 5. Restart Game

Submenu untuk merestart game dan kembali ke awal menu pada game. 6. Close Menu

Submenu untuk menutup tampilan pause.

Tampilan pada saat player kehabisan HP (Health Points) pada gambar 4.6 adalah dimana player memiliki darah 0% atau dibawah 0%.

(27)

54

4.2 Pengujian Sistem

Pada bagian ini akan dijelaskan pengujian terhadap aplikasi game fps. Penjelasan ini dibagi atas uji metode, uji antarmuka dan uji sistem.

4.2.1. Uji Metode

Pengujian perlu dilakukan untuk menilai seberapa baik kerja metode yang digunakan pada suatu system. Bila metode yang digunakan tidak bekerja sesuai kebutuhan maka perlu diselidiki lebih lanjut mengenai faktor yang mempengaruhi terjadinya kendala tersebut. Metode yang diuji pada tahap ini adalah metode npc untuk Patrol dan Engage (menembak) ketika melihat musuh, bila musuh sudah tidak ada npc akan kembali ke mode diam atau patrol kembali. Pada gambar 4.7 npc sedang berpatroli. Tanda panah merah menandakan npc menuju waypoint yang telah ditentukan.

(28)

Ketika npc berhasil membuat player kehabisan HP, player akan kembali ke posisi awal dalam game dan npc yang masih hidup akan kembali berpatroli kembali berdasarkan waypoint yang telah ditentukan. Seperti yang terlihat pada gambar 4.8 berikut npc yang masih hidup adalah satu ketika player telah kehabisan HP. Npc melakukan patroli kembali seperti sebelum player datang sesuai dengan waypoint yang telah ditentukan pada npc tersebut. Ini salah satu kekurangan dari game ini, npc tidak dapat maju untuk mendorong atau memperbesar daerah jangkauan patrolinya. Jadi npc hanya dapat kembali ke waypoint yang ditentukan tanpa ada perubahan arah patrolinya.

Gambar 4.8 Npc kembali berpatroli 4.2.2 Uji Antarmuka

(29)

56

dilakukan untuk mengetahui apakah permainan yang dibuat layak atau tidak untuk dimainkan dalam notebook. Untuk kategori pemberian nilai dapat dilihat pada Tabel 4.3 dan hasil dari evaluasi antarmuka aplikasi yang diperoleh dapat dilihat apda Tabel 4.4.

Tabel 4.3. Kategori pemberian nilai No. Alternatif Jawaban Bobot Nilai

1. Sangat Baik 5

2. Baik 4

3. Cukup 3

4. Buruk 2

5. Sangat Buruk 1

Tabel 4.4. Uji antarmuka aplikasi

No. Sasaran Penilaian

Sk : Nilai untuk setiap k (k = sangat baik, baik, cukup, buruk dan sangat buruk) f : Total respon dalam k.

(30)

Hasil Penilaian :

1. Desain aplikasi secara umum : nilai sama dengan 4,5. 2. Tampilan FPS : nilai sama dengan 4,1.

3. Menu : nilai sama dengan 4.

4. Tampilan animasi permainan : nilai sama dengan 3,7.

5. HUD : nilai sama dengan 3,9.

6. Audio game : nilai sama dengan 3,9.

Nilai total keseluruhan dari aspek antarmuka dihitung dengan menggunakan Rumus (4,4) berikut.

Stotal = ∑ Sk/n ……….………..(4,4) Keterangan :

Stotal : Nilai untuk keseluruhan penilaian. n : Jumlah sasaran penilaian.

Maka diperoleh nilai keseluruhan dari aspek antarmuka sebagai berikut : Stotal = 4,15 + 4,1 + 4 + 3,7 + 3,9 + 3,9 / 6

= 3,93

Dari nilai keseluruhan didapatkan nilai 3.93 maka dapat disimpulkan bahwa hasil penelitian pengguna terhadap aspek antarmuka aplikasi game fps adalah Cukup.

4.2.3 Uji Sistem

(31)

58

Gambar 4.9 Frame per Second game Berikut penjelasan pada Gambar 4.9 :

1. Statistic

Dapat dilihat statistic pada game tersebut bahwa Frame per Second dari game adalah 15 FPS yang dapat dikatakan rendah. Karena minimal FPS untuk game adalah 30 FPS agar terlihat mulus di mata player. Tris dan Verts yang sangat besar membuat proses rendering game ini memakan banyak memori sehingga fps yang dihasilkan juga rendah.

(32)

kemudian menampilkan data dalam kerangka waktu, sehingga penulis dapat melihat frame atau daerah spike (menghabiskan banyak waktu) daripada yang lain. Dengan mengklik dimana saja di timeline, bagian bawah profiler window akan menampilkan informasi rinci untuk frame yang dipilih seperti pada Gambar 4.10. terlihat proses rendering meningkat drastis ketika player mulai berjalan hingga menyentuh 15 FPS. Rendering adalah proses data pada kamera di unity untuk memilah layer yang dapat dilihat oleh kamera atau karakter didalam game dalam bentuk visual.

Gambar 4.10 Profiler window unity

(33)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan evaluasi dari bab-bab terdahulu, maka dapat diambil kesimpulan sebagai berikut :

1. Sumber informasi tentang perang distabat ini sangat terbatas, sehingga pembuatan Model 3D bangunan dan Landscape yang dibuat hanya berdasarkan pada gambar yang ada.

2. Cerita sejarah pada penelitian hanya pada suatu event war yang terjadi untuk memperebutkan stabat, sehingga kelanjutan dari ceritanya tidak dimuat dan hanya berdasarkan buku sejarah yang sangat singkat.

3. Pada saat dimainkan Game ini memiliki frame rate (fps) sekitar 15, dikarenakan membutuhkan kartu grafis yang lebih tinggi.

(34)

5.2 Saran

Beberapa saran yang dapat menjadi pertimbangan dalam penelitian selanjutnya adalah : 1. Penyederhanaan proses pemodelan 3D, sehingga rendering lebih optimal dengan

memanfaatkan tekstur yang lebih nyata.

2. Menambahkan lebih banyak lagi scene untuk cerita sejarah tentang Sumatera Utara.

(35)

BAB 2

LANDASAN TEORI

2.1. Sejarah singkat perang merebut Stabat

(36)

Belanda melancarkan agresinya yang pertama. Letnan Amir Yahya yang berada di tanjung pura di panggil komandannya untuk merebut kembali stabat. Sesuai dengan rencana, pasukan Lettu Lidan Syam yang ditugaskan untuk merebut stabat bergerak melalui bukit melintang dengan melalui jembatan kereta api. Pasukan yang berkekuatan 350 orang itu dengan tenang melangkah menuju titik yang telah ditentukan. Dari sana pasukan RI menggempur kedudukan belanda, sekaligus merebut kota stabat. Pasukan bergerak tepat pukul 18.00 dan sampai di ujung jembatan stabat pukul 20.00 Wib.

(37)

9

2.2 Teori 2D dan 3D

sebuah pemahaman tentang gerak dan penggerak keduanya sangat penting dalam memahami games. Kebanyakan objek didalam game bergerak. Apa yang membuatnya menjadi dinamis adalah gerakan itu sendiri. Jika itu adalah 2D character seperti Angry Birds atau 3D karakter yang lengkap seperti Tomb Raider, suasana game dan gerakan yang terus-menerus. Untuk memahami pengertian dari gerak, khususnya yang berkaitan dengan permainan komputer, pengetahuan dasar dalam vektor matematika diperlukan. Vektor digunakan secara luas dalam pengembangan game bukan hanya untuk menjelaskan kecepatan, akselerasi, posisi, dan arah tetapi juga dalam model 3D untuk menentukan texturing UV, sifat pencahayaan, dan efek khusus lainnya (Peng, 2014). 2.2.1 Prinsip Vektor

(38)

Gambar 2.1 Peta imajinatif menggambarkan penggunaan vektor (Peng,2014) Untuk kembali ke kapal kargo dari harta karun itu, para pelaut dapat berjalan di sepanjang jalan yang sama yang digambarkan di atas, tetapi dalam ke arah sebaliknya. Ini dapat diselesaikan dengan membalik vektor sehingga semua nilai koordinat harus dikalikan dengan -1. Dalam hal ini, untuk dapat kembali ke kapal mereka harus pergi melalui vektor (-3,7). Ini adalah cara terbaik bagi orang untuk mengetahui jarak lurus antara kapal dan harta karun itu. Panjang vektor, ditulis v, didefenisikan besarnya dan ditulus |v|, dan itu bisa ditemukan menggunakan teorema Pythagoras, seperti yang ditunjukan pada persamaan 1.

Setiap game object atau prefab di Unity memiliki banyak vektor yang terkait dengan itu. Transformasi setiap komponen game object atau prefab memiliki tiga sifat penting: rotasi, posisi, dan skala. Tampilan dari environment game klasik dengan model karakter sebagai objek yang ditunjukkan pada Gamtbar 2.2. Pada umumnya, dalam 3D, sumbu x menyatakan samping, y menyatakan atas, dan z menyatakan depan. Setiap game object atau prefab memiliki bentuknya sendiri. Sumbu ditunjukan di jendela Scene dengan tiga jenis garis panah merah, yang ditunjukkan pada Gambar 2.2, warna merah, hijau, dan biru. Sumbu y adalah hijau, sumbu x adalah merah, dan sumbu Z adalah biru.

(39)

11

Environment di Unity memiliki sumbunya sendiri, dan orientasi yang dapat disesuaikan oleh pengguna dalam mengubah sudut pandang sekitar untuk mengamati objek yang berbeda. Di Unity, orientasi kamera yang menentukan orientasi utama. Semua game object memiliki orientasi mereka sendiri digambarkan dengan sumbu x, y, z yang diperlihatkan pada Jendela Scene ketika game object itu terpasang. Dengan demikian, dengan membaringkan game object, sumbu y dari game object ini maka dia menjadi horizontal.

Gambar 2.2 Koordinat di Edit Scene pada Unity (Peng,2014)

(40)

2.2.2 Defenisi Ruang 2D dan 3D

(Peng,2014) Teori-teori vektor pada ruand 2D atau 3D diterapkan dengan cara yang sama. Perbedaan antara sistem koordinat 2D dan sistem koordinat 3D adalah nilai parameternya yang berlainan. Dalam game engine 3D, game 2D yang dikembangkan dengan sumbu x dan sumbu z. Dalam game 2D, umumnya diposisikan pada latar yang sama, yang mana diinisialisasikan nilai dari y menjadi 0. Setiap pergerakan pada game object tersebut hanya bisa bertindak pada latar itu saja. Hal ini dapat diasimilasikan dengan memindahkan objek sekitar daerah atas planar. Kebanyakan game 2D, kamera ditempatkan langsung di atas scene dan perspektif dihapus untuk memberikan pandangan adegan yang benar-benar 2D. apakah itu game 2D atau 3D kamera adalah komponen yang penting karena menampilkan semua tindakan dari game object pada player di arena permainan. Sebagai hasilnya melalui lensa mata kita dapat merasakan suasana permainan itu. Memahami bagaimana kamera bergerak dan bagaimana cara untuk menyesuaikannya dibutuhkan pengetahuan dasar.

(41)

13

biasanya diwakili oleh simbol. Ruang ini hanya salah satu contoh dari berbagai ruang dalam tiga dimensi yang disebut 3-manifold.

Gambar 2.3 Memahami ruang 2D. disalin dari insinyur Xavier Borg (2007) 2.2.3 Translasi, Rotasi, dan Skala

(Peng, 2014) Setiap game object apakah itu dalam bentuk 2D atau 3D dapat dilakukan dengan tiga transformasi : translasi, rotasi, dan skala. Translasi berhubungan dengan gerakan dan posisi game object dan ditentukan oleh vektor 2D bahwa orang pada bagian sebelumnya telah berpindah pada peta. Fitur penting dari translasi adalah setiap kali nilai-nilai x, y, dan z di ubah. Nilai-nilai-nilainya dapat diubah sekaligus dengan vektor atau satu per satu. Untuk memindahkan game object ke arah x sebanyak 8, Unity C# :

Gameobject.transform.position.x =+8 ;

Untuk memindahkan game object sebanyak 5 pada x, 9 pada y, dan 14 pada z, dalam Unity C#, itu bisa ditulis seperti ini :

(42)

Gameobject.transform.position = new Vector3 (5,9,14);

Unity menaruh rotasi sebagai Quaternion internal. Untuk memutar objek, gunakan Transform.rotate. Gunakan Transform.eulerAngles untuk mengatur rotasi sudut euler. Sebuah game object dapat diputar sumbu x, y, atau z atau dunia pada sumbu x, y, dan z. rotasi gabungan juga sangat mendukung. Sebuah objek dapat diputar semaunya yang didefenisikan oleh nilai-nilai vektor.

Pada akhirnya skala dapat mengubah ukuran objek seperti yang ditunjukkan pada Gambar 2.4 Sebuah game object dapat diskalakan sepanjang sumbu x, y, dan z. Ini kemampuan yang sangat penting yang dapat mengubah skala game object dengan mengatur nilai skala secara individual, begini :

Gambar 2.4 Menskalakan Objek (Peng, 2014)

(43)

15

sumbu y menjadi -1 akan mengubah game object terbalik. Ini adalah kemampuan yang diperlukan untuk memahami bagaimana game object akan bergerak dalam game. Para desainer harus meluangkan waktu untuk menyesuaikan diri dengan ruang 2D dan 3D. Untungnya, Unity menyediakan matematika yang dapat dikerjakan dengan mudah dan memberitahukan berbagai fungsi yang mudah digunakan.

2.3 Prinsip Desain atau Aturan pada Game First Person Shooter

(Peng, 2014) Seluruh Tema dari projek game ini adalah mekanisme yang berhubungan dengan aksi yang sedang berlangsung pada game dari operasi animasi internal dan pemrograman ke interaksi antara environment dan player. Namun, dalam penelitian game, mekanisme game tersebut digunakan untuk mengacu kepada hubungan yang dikembangkan yang menfasilitasi dan menentukan tantangan antara game dan player. Itu adalah sistem yang rumit yang mengandung serangkain alasan yang masuk akal, aksi, tujuan, dan umpan balik para player. Memahami mekanisme game sangat berguna untuk membuat aksi-aksi dan unsur-unsur lain yang dapat diimplementasikan dan menghasilkan ide yang tak terbatas untuk game dengan menggabungkan aksi, aturan dan tujuan. Siklus ini diilustrasikan pada Gambar 2.5.

(44)

(Peng, 2014) Para player disajikan dengan sebuah tantangan. Untuk mencapai tantangan mereka mendapatkan alat yang dapat digunakan untuk melakukan aksi dan aturan-aturan yang membatasi ruang lingkup aksi ini. Alat-alat yang digunakan mengandung objek yang berisi masukkan atau input seperti sensor dan keyboard, serta alat-alat virtual didalam game seperti senjata, kotak-alat, dan kunci. Peraturan tentang bagaimana player dapat bermain didunia game. Didalam game kartu, umumnya aturan ditulis dalam buku instruksi dan ditangani oleh player. Dalam video game, player dibimbing secara sadar akan aturan dalam game dan pemrogram kode game tersebut harus dapat memastikan bahwa player bisa mengikutinya. Pemrogram juga memberikan informasi kepada player tergantung dari aksi ataupun tindakan yang dilakukan untuk membantu mereka belajar bagaimana cara memainkan game ini dengan lebih baik dan menyelesaikan tantangan. Bagian dari mekanisme umpan balik juga bisa menginformasikan player ketika mereka menang atau gagal.

2.4 Teori Finite State Machine

(45)

17

2.4.1 Perencanaan State dan Transisi

(Bevilacqua, 2013) Penerapan FSM dimulai dengan states dan transisi yang dibutuhkan. Bayangkan FSM pada Gambar 2.6, menggambarkan otak dari semut yang membawa daun ke rumah. Titik awal adalah state find leaf, yang mana akan aktif sampai semut menemukan daunnya. Ketika itu terjadi, kondisi state di transisikan ke go home, yang mana akan aktif sampai semut sampai di sarang. Ketika semut sampai sarang, state yang aktif menjadi find leaf lagi, jadi semut mengulangi perjalanannya. Jika state yang aktif adalah find leaf dan kursor mouse mendekati semut, transisinya menjadi state run away. Ketika state aktif, semut akan lari dari kursor mouse. Ketika kursor tidak lagi menjadi ancaman, transisi state kembali ke find leaf. Karena ada transisi yang menghubungkan antara find leaf dan run away, semut akan selalu melarikan diri dari kursor mouse ketika itu mendekati semut selama semut mencari daun. Itu tidak akan terjadi jika state yang aktif adalah go home (cek gambar 2.7). Dalam kasus ini semut akan pulang kerumah tanpa rasa takut, hanya transisi ke find leaf ketika semut sampai rumah.

2.4.2 Menerapkan Finite State Machine

(46)

Gambar 2.6 Menggambarkan Otak dari semut (Bevilacqua, 2013)

(47)

19

public class FSM {

private var activeState : Function; // menunjukkan fungsi state yang aktif

public function FSM () {}

public function setState(state :Function) :void { activeState = state ; }

public function update () :void { if ( activeState != null )

{ activeState(); } }

}

(48)

Gambar 2.8 FSM dari otak semut dengan berfokus pada kode (Bevilacqua, 2013) public class Ant

{

public var position :Vector3D; public var velocity :Vector3D; public var brain :FSM ;

public function Ant (posX : Number, posY :Number) { position = new Vector3D (posX, posY); velocity = new Vector3D (-1,-1);

brain = new FSM () ;

//beritahu brain untuk memulai mencari daun (leaf).

brain.setState (findLeaf); }

/** state findLeaf membuat semut menuju daun.

*/

(49)

21 memanggil fungsi state yang sedang aktif : findLeaf (), goHome(), atau runaway().

(50)

public function findLeaf() :void {

// menggerakkan semut ke daun

velocity = new Vector3D(Game.instance.leaf.x - position.x, Game.instance.leaf.y -

position.y);

if (distance(Game.mouse, this) <= MOUSE_THREAT_RADIUS) {

// kursos mouse mengancam kita. Ayo lari !

State goHome () digunakan untuk membuat semut pulang kerumah :

public function goHome() :void {

// menggerakan semut menuju rumah.

velocity = new Vector3D(Game.instance.home.x - position.x, Game.instance.home.y

- position.y);

if (distance(Game.instance.home, this) <= 10) {

// semut sampai dirumah. Cari daun lagi.

(51)

23

Akhirnya, state runAway () digunakan untuk membuat semut melarikan diri dari kursor mouse :

public function runAway() :void {

// menggerakkan semut untuk menjauh dari kursor mouse

velocity = new Vector3D(position.x - Game.mouse.x, position.y - Game.mouse.y);

// apakah kursor mouse masih dekat sini?

if (distance(Game.mouse, this) > MOUSE_THREAT_RADIUS) {

// tidak, kursor mouse telah pergi. Ayo cari daun lagi.

brain.setState(findLeaf);

}

}

(52)

Gambar 2.9 FSM semut diperbaharui dengan transisi baru (Bevilacqua, 2013) Stack-based FSM dapat diimplementasikan dengan menggunakan pendekatan yang sama seperti sebelumnya, tapi kali ini menggunakan sebuah array dari fungsi pointer untuk mengontrol tumpukan. Properti activeState tidak lagi diperlukan, karena tumpukan yang paling atas telah menjadi state aktif.

public class StackFSM {

private var stack :Array;

public function StackFSM() {

this.stack = new Array();

}

public function update() :void {

var currentStateFunction :Function = getCurrentState();

if (currentStateFunction != null) {

currentStateFunction();

}

(53)

25

public function popState() :Function {

return stack.pop();

}

public function pushState(state :Function) :void {

if (getCurrentState() != state) {

stack.push(state);

}

}

public function getCurrentState() :Function {

return stack.length > 0 ? stack[stack.length - 1] : null;

}

}

(54)
(55)

27

brain.pushState(findLeaf); // dorong state "findLeaf", buat menjadi state aktif

(56)

}

(57)

29

Karakter npc mengisi dunia fiksi dari game dan dapat mengisi peran apapun yang tidak di tempati oleh player character. Karakter npc mungkin sekutu, para pengamat atau pesaing untuk player character. Npc juga bisa pedagang yang berdagang mata uang untuk hal-hal seperti peralatan atau perlengkapan Npc sehingga bervariasi dalam tingkat detail (Ellison, 2008).

2.6 Penelitian Terdahulu

Beberapa penelitian yang berkaitan dengan pembuatan game First Person Shooter menggunakan Unity adalah :

1. Xia, Peng (2014) membahas tentang membuat game First Person Shooter menggunakan Unity.

2. Jailani, A.Q. (2010) meneliti tentang membuat strategi gerak hindar Non-Player Character (NPC) pada game First Person Shooter (FPS) menggunakan Finite State Machine (FSM).

3. Mizanuddin (2011) membuat game First Person Shooter Operasi Lun Inau menggunakan Unity.

(58)

BAB 1 PENDAHULUAN

1.1. LATAR BELAKANG

Sumatera Utara memiliki banyak cerita sejarah yang mengangumkan. Salah satunya adalah cerita tentang Agresi Militer Belanda yang terjadi di Indonesia Khususnya Sumatera Utara. Perjuangan Rakyat Sumatera demi kemerdekaan. Generasi sekarang mungkin tidak mengetahui secara mendetail bagaimana bentuk dan corak perang kemerdekaan. Senjata-senjata jenis apa yang digunakan dan bagaimana cara memperoleh begitu banyak senjata untuk mempertahankan kemerdekaan. Dengan bermodalkan sumber daya militer, para pemuda dilatih jepang dalam kesatuan Giyungan, Heiho, dan Peta, sehingga mereka cukup bakal menjadi pimpinan militer, dan cukup mahir menggunakan senjata mulai dari senjata ringan hingga senjata berat. Adanya sebutan pejuang berjuang hanya dengan “bambu runcing” pengertiannya, kita berjuang mulanya tidak punya senjata (TWH, 2007).

(59)

2

Sehingga dibutuhkan sarana yang dapat membuat orang tahu akan sejarah ini dengan pendekata yang menyenangkan. Perkembangan teknologi yang tengah terjadi pada saat ini telah membuat perubahan yang signifikan dalam pola hidup manusia. Kebutuhan akan teknologi menjadi hal yang hampir merata di seluruh dunia. Sebagian besar orang-orang menggunakan teknologi ini untuk menunjang kehidupan mereka dan sebagai sarana hiburan, salah satu penggunaan teknologi komputer sebagai sarana hiburan adalah Game. Game banyak diminati karena membutuhkan interaksi dengan pengguna. Mulai dari anak-anak hingga orang dewasa menyukai Game. Pada umumnya Game dibuat untuk sarana hiburan bagi penggunanya. Akan tetapi hal itu tidak membuat Game 100% aman untuk dikonsumsi. Hal-hal yang membuat Game itu tidak aman untuk dikonsumsi adalah rating dari Game tersebut, efek visual output Game, perbedaan budaya antara pengguna dan vendor Game, dan lain-lain (Mizanuddin, 2011).

(60)

Salah satu komponen yang kini diterapkan pada Game adalah kecerdasan buatan (Artificial Intelligence atau AI). AI yang didefenisikan sebagai Kecerdasan Entitas Ilmiah. Penelitian tentang AI (Artificial Intelligence) pada NPC (Non-Player Character) dalam Game hingga saat ini masih terus di kembangkan. Artificial Intelligence tersebut dikembangkan untuk merancang perilaku Non-Player Character (Zikri, 2011). Artificial Intelligence pada Game First Person Shooter umumnya terdiri dari perencanaan path, mengambil item, menggunakan item, dan berperang. Khusus untuk berperang Non-Player Character juga diharapkan mempunyai strategi-strategi khusus seperti halnya manusia. Strategi yang dimaksud bisa berupa strategi dimana pengambilan keputusan kapan saat mengejar lawan, menyerang lawan maupun menghindari lawan dengan penyesuaian pada kondisi Non-Player Character pada saat itu (Jailani, 2010). Salah satu metode yang digunakan untuk kecerdasan buatan dalam membuat game adalah metode Finite State Machine (FSM). FSM banyak digunakan untuk membuat Game yang pada situasi tertentu dapat menghasilkan respon. Didalam Game cerita adalah bagian yang sangat penting.

Oleh karena itu maka dibuatlah penelitian ini, Berdasarkan latar belakang tersebut, penulis melakukan penelitian dengan judul “Behaviour NPC Game 3D Using Finite State Machine”. Dengan penelitian ini diharapkan orang dapat membayangkan secara visual tentang sejarah tersebut yang ditampilkan dengan menyenangkan.

1.2 RUMUSAN MASALAH

Perancangan cerita sejarah dalam bentuk games sangat diperlukan sebagai media pembelajaran sejarah. Rumusah masalah pada penlitian ini adalah Bagaimana cara mengenalkan Game Sejarah Sumatera Utara dalam bentuk 3D serta merancang NPC Using Finite State Machine.

1.3 BATASAN MASALAH

Adapun batasan masalah untuk menghindari penyimpangan dan perluasan yang tidak diperlukan, penulis membuat batasan antara lain :

(61)

4

3. Game bersifat offline tidak terhubung ke internet. 4. Game Engine yang digunakan adalah Unity. 5. Bahasa Pemrograman yang digunakan C#

1.4. TUJUAN PENELITIAN

Tujuan dari penelitian ini adalah Menghasilkan sarana hiburan dalam bentuk games untuk mengenalkan Sejarah Sumatera Utara dalam bentuk 3D.

1.5. MANFAAT PENELITIAN

Manfaat dari penelitian yang dilakukan adalah :

1. Menghasilkan Game bernuansa sejarah atau Historical untuk dipelajari dalam lingkungan virtual (virtual environment)..

2. Finite State Machine dapat diterapkan pada NPC dalam game FPS. 3. Menjadi referensi bagi penelitian-penelitian berikutnya.

1.6. METODOLOGI

Tahapan-tahapan yang akan dilakukan pada pelaksanaan penelitian adalah sebagai berikut Studi Literatur

Studi literatur dilakukan dalam rangka pengumpulan referensi/pustakan tentang Sejarah perang Sumatera Utara, Unity, serta algoritma Finite State Machine.

1. Analisis Permasalahan

(62)

2. Implementasi

Pada tahap ini dilakukan implementasi algoritma Finite State Machine untuk menghasilkan behavior NPC yang reaktif dan realtime. Kemudian memasukkan cerita sejarah perang Sumatera Utara kedalam Game.

3. Evaluasi dan Analisis Hasil

4. Pada tahap ini dilakukan evaluasi serta analisis terhadap hasil implementasi menggunakan Finite State Machine sebagai behavior NPC.

5. Dokumentasi dan Laporan

Pada tahap ini dilakukan dokumentasi dan penyusunan laporan hasil evaluasi dan analisis serta implementasi Finite State Machine pada behavior NPC.

1.7. SISTEMATIKA PENULISAN

Sistematikan penulisan skripsi ini terdiri atas lima bagian utama sebagai berikut : Bab 1 : Pendahuluan

Bab pendahuluan ini berisi tentang hal-hal yang mendasari dilakukannya penelitian serta pengidentifikasian masalah penelitian. Bagian-bagian yang terdapat dalam bab pendahuluan ini meliputi latar belakang masalah, perumusan masalah, batasan masalah, tujuan penelitian, dan manfaat penelitian.

Bab 2 : Landasan Teori

Pada bab tinjauan pustaka menguraikan landasan teori, penelitian terdahulu, teori algoritma Finite State Machine, serta cerita sejarah perang Sumatera Utara.

Bab 3 : Analisis dan Perancangan

(63)

6

Bab 4 : Implementasi dan Pengujian

Pada bab ini berisi pembahasan tentang implementasi yang telah dijabarkan pada bab 3. Selain itu, hasil yang didapatkan dari pengujian yang dilakukan akan dijabarkan di bab ini.

Bab 5 : Kesimpulan dan Saran

(64)

ABSTRAK

Sumatera Utara memiliki banyak cerita sejarah tentang perjuangan. Misalnya tentang agresi militer belanda di Indonesia setelah merdeka. Banyak perlawanan-perlawanan yang dilakukan tiap daerah di sumatera utara untuk mempertahankan kemerdekaannya. Aplikasi ini dibuat untuk menampilkan game dalam bentuk 3D yang digunakan sebagai sarana hiburan dan edukasi. Game ini bergenre First-Person Shooting yang mana pemain mencari musuh dan membunuh dengan cara menembaknya. Perancangan aplikasi game ini berdasarkan cerita rakyat sumatera utara tentang memperebutkan stabat dari tangan belanda. Game Engine yang digunakan adalah Unity 5. Unity dapat digunakan untuk menghasilkan game dalam bentuk 3D untuk merealisasikan dunia nyata dalam bentuk virtual. Perancangan game ini adalah hasil dari analisis, desain , dan implementasi dari metode Finite State Machine yang digunakan untuk behavior NPC. Hasil dari perancangan game ini adalah Game dalam bentuk 3D berdasarkan cerita sejarah dan untuk Npcnya menggunakan metode Finite State Machine.

(65)

vi

BEHAVIOUR NPC GAME HISTORICAL WAR 3D USING FINITE

STATE MACHINE

ABSTRACT

North Sumatra has a lot of stories about the history of the struggle. For instance on the Dutch military aggression in Indonesia after independence. Many insurgencies do each region in northern Sumatra to maintain its independence. This application was created to show the game in the form of 3D for entertainment and education. This game genre of First-Person Shooter in which players seek to kill the enemy and shot her way. This game application design based on the folklore of North Sumatra on fighting Stabat from Dutch hands. Game Engine used is Unity 5. Unity can be used to produce the game in 3D to realize the real world in virtual form. The design of this game is the result of the analysis, design, and implementation of methods Finite State Machine is used for NPC behavior. Results from the design of this game is a game in 3D based on the story of history and to Npc using Finite State Machine.

(66)

BEHAVIOUR NPC GAME HISTORICAL WAR 3D USING FINITE

STATE MACHINE

SKRIPSI

ANDEAN ARIPPA

101402010

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA

MEDAN

(67)

BEHAVIOUR NPC GAME HISTORICAL WAR 3D USING FINITE STATE

MACHINE

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi

ANDEAN ARIPPA 101402010

PROGRAM STUDI TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(68)

PERSETUJUAN

Judul : BEHAVIOUR NPC GAME HISTORICAL WAR 3D

USING FINITE STATE MACHINE

Kategori : SKRIPSI

Nama : ANDEAN ARIPPA

Nomor Induk Mahasiswa : 101402010

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc. Muhammad Fadly Syahputra, B.Sc., M.Sc.IT NIP. 19860303201012 1 004 NIP. 198301292009121003

Diketahui/Disetujui Oleh

Program Studi Teknologi Informasi Ketua,

(69)

iii

PERNYATAAN

BEHAVIOUR NPC GAME HISTORICAL WAR 3D USING FINITE STATE MACHINE

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2016

(70)

UCAPAN TERIMA KASIH

Puji dan syukur penulis ucapkan kepada Allah SWT dengan segala rahmat dan karuniaNya penulisan tugas akhir ini berhasil diselesaikan dalam waktu yang telah ditetapkan. Selama penyelesaian tugas akhir ini, banyak bantuan dan kerja sama serta doa dan dukungan dari berbagai pihak, oleh karena itu penulis sampaikan ucapan terima kasih sedalam-dalamnya dan penghargaan kepada:

1. Kedua orang tua dan sanak saudara penulis yang telah memberikan dukungan dan motivasi baik materil dan spiritual selama penulis mengikuti pendidikan hingga selesainya tugas akhir ini.

2. Bapak M. Fadly Syahputra, B.Sc.,M.Sc.IT, selaku pembimbing 1 sekaligus Sekretaris Program Studi Teknologi Informasi dan Bapak Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc. selaku pembimbing 2 yang telah banyak meluangkan waktu dan pikiran beliau, memotivasi, memberikan arahan, kritik dan saran kepada penulis.

3. Bapak Dan Ibu Dosen Penguji yang telah memberikan kritik dan saran kepada penulis.

4. Semua dosen, staff dan pegawai di Jurusan Teknologi Informasi serta Fakultas Ilmu Komputer dan Teknologi Informasi yang tidak dapat saya sebutkan satu-persatu.

5. Rekan seperjuangan dalam penelitian ini, M.Kurniawan Widhianto, Ovy Rizky, dan Joko Almady, serta rekan-rekan mahasiswa yang tidak dapat saya sebutkan satu-persatu, khususnya angkatan 2010 Program Studi Teknologi Informasi USU yang telah memberikan dukungan dan semangat untuk saya.

(71)

v

ABSTRAK

Sumatera Utara memiliki banyak cerita sejarah tentang perjuangan. Misalnya tentang agresi militer belanda di Indonesia setelah merdeka. Banyak perlawanan-perlawanan yang dilakukan tiap daerah di sumatera utara untuk mempertahankan kemerdekaannya. Aplikasi ini dibuat untuk menampilkan game dalam bentuk 3D yang digunakan sebagai sarana hiburan dan edukasi. Game ini bergenre First-Person Shooting yang mana pemain mencari musuh dan membunuh dengan cara menembaknya. Perancangan aplikasi game ini berdasarkan cerita rakyat sumatera utara tentang memperebutkan stabat dari tangan belanda. Game Engine yang digunakan adalah Unity 5. Unity dapat digunakan untuk menghasilkan game dalam bentuk 3D untuk merealisasikan dunia nyata dalam bentuk virtual. Perancangan game ini adalah hasil dari analisis, desain , dan implementasi dari metode Finite State Machine yang digunakan untuk behavior NPC. Hasil dari perancangan game ini adalah Game dalam bentuk 3D berdasarkan cerita sejarah dan untuk Npcnya menggunakan metode Finite State Machine.

(72)

BEHAVIOUR NPC GAME HISTORICAL WAR 3D USING FINITE

STATE MACHINE

ABSTRACT

North Sumatra has a lot of stories about the history of the struggle. For instance on the Dutch military aggression in Indonesia after independence. Many insurgencies do each region in northern Sumatra to maintain its independence. This application was created to show the game in the form of 3D for entertainment and education. This game genre of First-Person Shooter in which players seek to kill the enemy and shot her way. This game application design based on the folklore of North Sumatra on fighting Stabat from Dutch hands. Game Engine used is Unity 5. Unity can be used to produce the game in 3D to realize the real world in virtual form. The design of this game is the result of the analysis, design, and implementation of methods Finite State Machine is used for NPC behavior. Results from the design of this game is a game in 3D based on the story of history and to Npc using Finite State Machine.

(73)

vii

1.4 Tujuan Penelitian 4

1.5 Manfaat Penelitian 4

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

BAB 2 LANDASAN TEORI

2.1 Sejarah Singkat Perang Merebut Stabat 7

2.2 Teori 2D dan 3D 9

2.2.1 Prinsip Vektor 9

2.2.2 Defenisi Ruang 2D dan 3D 12

2.2.3 Translasi, Rotasi dan Skala 13 2.3 Prinsip Desain atau Aturan pada game First-Person Shooter 15

2.4 Teori Finite State Machine 16

2.4.1 Perencanaan State dan Transisi 17 2.4.2 Menerapkan Finite State Machine 17

(74)

2.6 Penelitian Terdahulu 29

BAB 3 ANALISIS DAN PERANCANGAN

3.1 Arsitektur Umum 30

3.2 Pengumpulan Data 31

3.2.1 Foto-Foto Masa Lalu 31

3.3 Modelling 34

3.3.1 Pemodelan NPC 34

3.3.2 Pemodelan Environment 35

3.3.2.1 Membangun Landscape 36

3.3.2.2 Pengaturan Cahaya 36

3.3.2.3 Collision Detection 38

3.3.2.4 Penggunaan Player Controller 38

3.3.2.5 Camera 39

3.4.2 Implementasi Finite State Machine 43 3.5. Antarmuka Pengguna (User Interface) 44

3.5.1 Tampilan Menu Utama 46

3.5.2 Tampilan Loading Screen 46

BAB 4 IMPLEMENTASI DAN PENGUJIAN

4.1 Konfigurasi Sistem 48

(75)

ix

4.1.3 File Asset 49

4.1.4 Eksekusi Aplikasi 50

4.2 Pengujian Sistem 54

4.2.1 Uji Metode 54

4.2.2 Uji Antarmuka 55

4.2.3 Uji Sistem 57

BAB 5 KESIMPULAN

5.1 Kesimpulan 60

5.2 Saran 61

(76)

DAFTAR TABEL

Halaman Tabel 4.1 Konfigurasi perangkat keras yang digunakan 49 Tabel 4.2. Konfigurasi perangkat lunak yang digunakan 49

Tabel 4.3 Kategori Pemberian Nilai 56

(77)

xi

DAFTAR GAMBAR

Halaman Gambar 2.1 Peta imajinatif menggambarkan penggunaan vektor 10 Gambar 2.2 Koordinat di Edit Scene pada Unity 11

Gambar 2.3 Memahami Ruang 2D 13

Gambar 2.4 Menskalakan Objek 14

Gambar 2.5. Siklus Mekanisme Game 15

Gambar 2.6 Menggambarkan Otak dari Semut 18

Gambar 2.7 FSM Menggambarkan Otak dari Semut. Perhatikan kurangnya Transisi antara Run away dan Go home 18 Gambar 2.8 FSM dari Otak Semut Dengan Berfokus Pada Kode 20 Gambar 2.9 FSM Semut Diperbaharui Dengan Transisi Baru 24

Gambar 3.1 Arsitektur Umum 30

Gambar 3.2 Tampilan Laman Situs KITLV 32

Gambar 3.3 Tampak Depan Stasiun Kereta Api Tanjung Pura 32 Gambar 3.4 Tampak Belakang Stasiun Kereta Api Tanjung Pura 33

Gambar 3.5 Jembatan Menuju Stabat 33

Gambar 3.6 Peta Jalur Kereta Api Tanjung Pura – Stabat 34

Gambar 3.7 Tampilan Adobe FUSE 35

Gambar 3.8 Lingkungan Virtual Stasiun Kereta api 37 Gambar 3.9 Intensitas Cahaya yang Terlalu Tinggi atau Terlalu

(78)

Gambar 3.16 Desain Tampilan Antarmuka Pengguna Loading Screen 47 Gambar 4.1 Berkas File Pada Folder Project Unity 50

Gambar 4.2 Tampilan Awal Game 50

Gambar 4.3 Tampilan Loading Screen 51

Gambar 4.4 Tampilan In-Game Pertempuran Stabat 51

Gambar 4.5 Pause Pada Saat inGame 52

Gambar 4.6 Tampilan Player Kehabisan Health Point 53

Gambar 4.7 NPC Berpatroli 54

Gambar 4.8 NPC kembali Berpatroli 55

Gambar 4.9 Frame per Second game 58

Gambar

Gambar 3.1 Arsitektur Umum
Gambar 3.2 Tampilan laman Situs KITLV (KITLV)
Gambar 3.10 Cara kerja Collision Detection
Gambar 3.11 kamera perspective di Unity3D. di copy dari Penny de Byl
+7

Referensi

Dokumen terkait

Pada tahapan ini melakukan proses pembuatan sistem basis data yang nantinya digunakan untuk menyimpan proses transaksi. Gambar 2 Usulan Use Case Diagram Pada Gambar 2

Gunakan peralatan perlindungan diri seperti yang ditentukan Hindari kontak dengan kulit, mata atau pakaian Jangan menghirup debu/asap/gas/kabut/uap/semburan Cuci pakaian yang

Untuk tujuan ananlisis digunakan data sekunder berupa data time series 2008 – 2012, yaitu data PDRB atas dasar harga konstan di Kabupaten Jayawijaya dan

Standar Kompetensi Lulusan (SKL) berfungsi sebagai criteria dalam menentukan kelulusan peserta didik pada setiap satuan pendidikan, rujukan untuk penyusunan standar-standar

Penelitian Shurbagi (2014) yang memeriksa hubungan kepemimpinan transformasional, kepuasan kerja, dan komitmen organisasi pada 280 karyawan dari sektor minyak bumi

Karakteristik trip MCB tipe ini akan menguntungkan bila digunakan pada peralatan listrik dengan arus yang lebih tinggi, seperti lampu, motor dan lain sebagainya.. MCB tipe D,

Nama dan aras kewenangan dari setiap organ lain yang dimaksud di atas, diatur dalam Peraturan Badan Penyelenggara (terpisah dan berkedudukan lebih rendah dari Statuta PTS) yang

Dari hasil tersebut dapat disimpulkan bahwa ada hubungan positif dan signifikan antara tingkat pengetahuan dengan sikap terhadap pernikahan dini yang pada remaja