• Tidak ada hasil yang ditemukan

PERMAINAN CAR RACING BERBASIS MOBILE MENGGUNAKAN TEKNOLOGI MARKERLESS AUGMENTED REALITY SKRIPSI VARREL PRESTON HERMAN JR

N/A
N/A
Protected

Academic year: 2022

Membagikan "PERMAINAN CAR RACING BERBASIS MOBILE MENGGUNAKAN TEKNOLOGI MARKERLESS AUGMENTED REALITY SKRIPSI VARREL PRESTON HERMAN JR"

Copied!
86
0
0

Teks penuh

(1)

PERMAINAN CAR RACING BERBASIS MOBILE MENGGUNAKAN TEKNOLOGI MARKERLESS AUGMENTED REALITY

SKRIPSI

VARREL PRESTON HERMAN JR 171402056

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2021

(2)

PERMAINAN CAR RACING BERBASIS MOBILE MENGGUNAKAN TEKNOLOGI MARKERLESS AUGMENTED REALITY

SKRIPSI

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

VARREL PRESTON HERMAN JR 171402056

PROGRAM STUDI S1 TEKNOLOGI INFORMASI

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2021

(3)

PERSETUJUAN

Judul : PERMAINAN CAR RACING BERBASIS MOBILE

MENGGUNAKAN TEKNOLOGI MARKERLESS AUGMENTED REALITY

Kategori : SKRIPSI

Nama : VARREL PRESTON HERMAN JR

Nomor Induk Mahasiswa : 171402056

Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI

Departemen : TEKNOLOGI INFORMASI

Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Marischa Elveny S.TI, M.Kom. Niskarto Zendrato S.Kom., M.Kom.

NIP. 199003272017062001 NIP. 198909192018051001

Diketahui/Disetujui oleh

Program Studi S-1 Teknologi Informasi

Sarah Purnamawati ST., MSc.

NIP. 198302262010122003

(4)

PERNYATAAN

PERMAINAN CAR RACING BERBASIS MOBILE MENGGUNAKAN TEKNOLOGI MARKERLESS AUGMENTED REALITY

SKRIPSI

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

Medan, 30 Desember 2021

VARREL PRESTON HERMAN JR 171402056

(5)

UCAPAN TERIMA KASIH

Alhamdulillahirabbil‘alamin, puji dan syukur atas kehadirat Allah SWT atas berkah dan rahmat-Nya sehingga penulis dapat menyelesaikan penyusunan skripsi dengan judul “Permainan Car Racing Berbasis Mobile Menggunakan Teknologi Markerless Augmented Reality” yang merupakan syarat untuk memperoleh gelar sarjana Komputer di Program Studi S-1 Teknologi Informasi, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

Dalam proses pengerjaan skripsi ini dari awal hingga akhir pastinya tidak luput dari peranan banyak pihak yang telah memberikan bantuan secara langsung maupun tidak langsung dengan berbagai bentuk, baik dalam bentuk doa, bimbingan, motivasi, kerjasama maupun dukungan.

Dipenuhi dengan rasa syukur, pada kesempatan ini penulis ingin mengucapkan terima kasih kepada pihak yang terkait, antara lain :

1. Keluarga penulis Bapak Pasoroan Herman Harianja, S.H.,M.Sc.. , Ibu Ir. Retno Setyawati, MSP., dr. Hereta Sylviana Inger, dan Lady Aqilla Balerina yang telah memberikan kasih sayang, doa, dukungan dan cinta yang menjadi motivasi kepada penulis

2. Bapak Dr. Muryanto Amin, S.Sos., M.Si selaku Rektor Universitas Sumatera Utara.

3. Ibu Dr. Maya Silvi Lydia B.Sc. M.Sc. selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

4. Ibu Sarah Purnamawati ST., MSc. selaku Ketua Program Studi S-1 Teknologi Informasi Universitas Sumatera Utara.

5. Bapak Niskarto Zendrato S.Kom., M.Kom. selaku Dosen Pembimbing I yang dengan sabar dan ikhlas memberikan bimbingan, motivasi, dukungan dan saran kepada penulis selama proses pengerjaan skripsi.

6. Ibu Marischa Elveny S.TI, M.Kom. selaku Dosen Pembimbing II penulis yang telah memberikan bimbingan, motivasi, dukungan serta saran kepada penulis selama proses pengerjaan skripsi.

7. Bapak Dr. Sawaluddin M.IT selaku Dosen Pembimbing Akademik penulis yang telah memberikan bimbingan, motivasi, dukungan serta saran kepada penulis

selama pengerjaan skripsi.

(6)

8. Seluruh dosen dan staff pegawai Program Studi S-1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

9. Hanafi, S.Kom dan Sekar Putri Anyelir, S.Kom selaku senior yang selalu mendukung dalam pengerjaan skripsi.

10. Muhammad Bagas Laska P. dan Nabila Azzahra selaku teman seperjuangan yang saling mendukung dalam pengerjaan skripsi.

11. Teman-teman angkatan 2017 yang selalu berjuang bersama hingga akhir masa

perkuliahan, Deo P. Silitonga, M. Taufik Baskoro, M. Rizki Fatihah, S.Kom, M. Rafif Rasyidi, S.Kom, Fakhri Rizha Ananda, M. Baihaqi ,Serta Teman Teman yang lain yang tidak dapat diucapkan satu persatu.

12. Teman-teman kuliah angkatan 2017 S-1 Teknologi Informasi khususnya teman-teman Kom B 2017 yang telah berjuang bersama-sama dengan penulis.

13. Dan semua pihak yang terlibat baik secara langsung maupun tidak langsung yang telah banyak membantu yang tidak dapat disebutkan namanya satu-persatu.

Semoga seluruh kebaikan yang telah diberikan dengan tulus kepada penulis akan kembali kepada pihak yang memberi dengan tulus juga dari Allah SWT. Semoga skripsi ini dapat memberikan manfaat yang baik kedepannya.

Medan, 30 Desember 2021

VARREL PRESTON HERMAN JR.

(7)

ABSTRAK

Hiburan merupakan salah satu cara mahluk hidup khusus-nya manusia untuk menghilangkan rasa jenuh dari segala sesuatu yang menguras pikiran dan raga. Bermain game merupakan cara paling mudah untuk menghilangkan rasa jenuh sekaligus memberikan rasa gembira saat memainkannya, sehingga bermain game merupakan hiburan yang paling ampuh saat ini. Game memiliki pengertian permainan interaktif yang menggunakan interaksi dengan antarmuka pengguna melalui gambar yang dihasilkan oleh peranti video. Permainan interaktif pada umumnya hanya mencapai batas 2D ataupun 3D, sehingga dinilai kurang menarik karena masih memiliki batasan- batasan dalam memainkannya. Pada penelitian ini, aplikasi permainan akan dikembangkan meggunakan teknologi markerless augmented reality agar permainan dapat menjadi lebih menarik. Penerapan teknologi markerless augmented reality inipun akan membuat permainan tampak lebih nyata dan interaktif dengan cara membawa permainan tersebut berinteraksi dengan dunia nyata. Aplikasi permainan inipun akan memiliki dua mode bermain yaitu singleplayer dan multiplayer dimana pada mode multiplayer, pemain akan berjumpa dengan pemain lainnya untuk melakukan pertandingan. Photon Unity Network adalah sebuah network service yang digunakan pada penelitian aplikasi permainan ini guna untuk merealisasikan mode multiplayer itu sendiri.

Permainan yang akan dikembangkan adalah permainan balapan mobil yang dapat dikendalikan menggunakan controller. Permainan akan dikembangkan menggunakan Unity 3D. Dalam pengujian aplikasi yang dilakukan, 82,5% dari user menyatakan bahwa aplikasi permainan sudah interaktif.

Kata kunci : Permainan interaktif, permainan 3D, permainan balapan mobil, augmented reality, markerless, photon unity network, controller, Unity 3D

(8)

MOBILE-BASED CAR RACING GAME USING MARKERLESS AUGMENTED REALITY TECHNOLOGY

ABSTRACT

Entertainment is one way of living things, especially humans, to get rid of boredom from everything that drains the mind and body. Playing games is the easiest way to get rid of boredom while at the same time giving a sense of joy when playing it, so playing games is the most powerful entertainment today. Game has the meaning of interactive playable content that uses interaction with the user interface through images produced by video devices. Interactive games generally only reach the limit of 2D or 3D, so they are considered less attractive because they still have limitations in playing them. In this study, a game application will be developed using markerless augmented reality technology so that the game can be more interesting. The application of markerless augmented reality technology will also make the game look more real and interactive by bringing the game into interaction with the real world. Even this game application will have two playing modes, namely singleplayer and multiplayer where in multiplayer mode, players will meet other players to make matches. Photon Unity Network is a network service that is used in the research of this game application in order to realize the multiplayer mode itself. The game that will be developed is a car racing game that can be controlled using a controller. The game will be developed using Unity 3D. In the application testing conducted, 82.5% of users stated that the game application was interactive.

Keywords : interactive games, 3D games, car racing games, augmented reality, markerless,

photon unity network, controller, Unity

(9)

DAFTAR ISI

Hal

PERSETUJUAN ii

PERNYATAAN iii

UCAPAN TERIMA KASIH iv

ABSTRAK vi

ABSTRACT vii

DAFTAR ISI viii

DAFTAR TABEL xi

DAFTAR GAMBAR xii

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang Masalah 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penelitian 2

1.4 Batasan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 4

BAB 2 LANDASAN TEORI 6

2.1 Game 6

2.2 Racing Games 6

2.3 Augmented Reality 6

2.4 Marker 7

2.5 Game Engine 8

2.6 Unity 3D 10

2.7 ARFoundation 10

2.8 Photon Unity Network 10

2.9 ARKit 11

2.10 ARCore 11

2.11 Plane Detection 11

2.12 2.13

Artificial Intelligence Penelitian Terdahulu

11 12

BAB 3 ANALISIS DAN PERANCANGAN 14

3.1 Analisis Perancangan Permainan 14

(10)

3.1.1 Keterangan Umum Permainan 14

3.1.2 Objektif Permainan 15

3.1.3 Storyboard Permainan 15

3.2 Arsitektur Umum 22

3.3 Game Engine 24

3.3.1 UI Building 24

3.3.2 Game Logic 24

3.3.3 Game Content 29

3.3.4 Event Manager 29

3.3.5 Resource Loading 30

3.4 Photon Unity Network 32

3.5 ARFoundation Packages 32

3.6 AR Engine 33

3.6.1 Surface Detecting 34

3.6.2 Motion Tracking 34

3.6.3 Environmental Understanding 36

3.6.4 Positioning Virtual Object 37

3.6.5 Define Anchor and Trackables 37

3.7 Activity Diagram 38

3.7.1 Diagram aktivitas play 38

3.8 Perancangan Sistem 42

3.8.1 Perancangan flowchart 42

3.8.2 Perancangan tampilan antarmuka 44

BAB 4 IMPLEMENTASI DAN PENGUJIAN 46

4.1 Implementasi Sistem 46

4.1.1 Spesifikasi perangkat keras pengembangan 46

4.1.2 Spesifikasi perangkat keras percobaan permainan 47

4.1.3 Spesifikasi perangkat lunak 47

4.2 Implementasi Aplikasi Permainan 48

4.2.1 Tampilan halaman main menu 48

4.2.2 Tampilan halaman player selection offline 49

4.2.3 Tampilan halaman racer selection offline 49

4.2.4 Tampilan gameplay permainan 50

4.2.5 Tampilan halaman login 51

(11)

4.2.6 Tampilan halaman lobby online 52

4.2.7 Tampilan halaman player selection online 52

4.2.8 Tampilan halaman car selection online 53

4.2.9 Tampilan halaman plane detection 53

4.2.10 Tampilan halaman search for games 54

4.2.11 Tampilan in-game 55

4.2.12 Tampilan finish race 55

4.3 Pengujian Plane Detection 56

4.3.1 Pengujian pendeteksian 2 tingkat bidang datar 56

4.3.2 Pengujian bidang batas bidang datar 56

4.3.3 Pengujian pendeteksian bidang datar pada tingkat pencahayaan lingkungan 57 4.3.4 Pengujian pendeteksian bidang datar pada bidang datar tidak bertekstur 59

4.4 Pengujian Stabilitas Objek Virtual 59

4.5 Pengujian Kinerja Sistem 61

BAB 5 KESIMPULAN DAN SARAN 65

5.1 Kesimpulan 65

5.2 Saran 66

DAFTAR PUSTAKA 67

(12)

DAFTAR TABEL

Tabel 2. 1 Daftar game engine 9

Tabel 2. 2 Penelitian terdahulu 12

Tabel 3. 1 Gambaran umum permainan 14

Tabel 4. 1 Spesifikasi perangkat keras pengembangan 47

Tabel 4. 2 Spesifikasi perangkat keras percobaan 47

Tabel 4. 3 Spesifikasi perangkat lunak pengembangan 48

Tabel 4. 4 Tabel pengujian pengaruh intensitas cahaya 59

Tabel 4. 5 Tabel pengujian level of detail 61

Tabel 4. 6 Tabel pengujian aplikasi terhadap responden 62

Tabel 4. 7 Tabel pengujian aplikasi terhadap game developer 63

(13)

DAFTAR GAMBAR

Gambar 2. 1 Contoh Marker-Based Augmented Reality 7

Gambar 2. 2 Contoh metode Markerless 8

Gambar 3. 1 Alur Storyboard 16

Gambar 3. 2 Storyboard scene “Main Menu” 17

Gambar 3. 3 Storyboard tampilan pertama scene “Player Selection” 17 Gambar 3. 4 Storyboard tampilan kedua scene “Player Selection” 18

Gambar 3. 5 Storyboard tampilan ketiga scene “Main Menu” 18

Gambar 3. 6 Storyboard scene “Gameplay Offline” 19

Gambar 3. 7 Storyboard scene “Login” 19

Gambar 3. 8 Storyboard scene “Lobby Online” 20

Gambar 3. 9 Storyboard scene “Plane Detection” 20

Gambar 3. 10 Storyboard scene “Object Placement” 21

Gambar 3. 11 Storyboard scene “Join Room” 21

Gambar 3. 12 Storyboard scene “Gameplay Online” 22

Gambar 3. 13 Arsitektur Umum Aplikasi 23

Gambar 3. 14 Checkpoints 27

Gambar 3. 15 Track Bounds 27

Gambar 3. 16 Coding Rubber Banding 28

Gambar 3. 17 Struktur Game Content 29

Gambar 3. 18 Pemodelan aset pemodelan 30

Gambar 3. 19 Contoh Box Modelling 31

Gambar 3. 20 Struktur Photon Unity Network 2 32

Gambar 3. 21 Pengaturan ARFoundation dan ARCore 33

Gambar 3. 22 Bagian Coding Plane Detection 34

Gambar 3. 23 Flowchart motion tracking 35

Gambar 3. 24 Coding Feature Points 36

Gambar 3. 25 Coding Environmental Understanding 38

Gambar 3. 26 Coding Anchor Points 39

Gambar 3. 27 Diagram aktivitas singleplayer 41

Gambar 3. 28 Diagram aktivitas multiplayer 42

(14)

Gambar 3. 29 Rancangan flowchart dari aplikasi permainan 43

Gambar 3. 30 Rancangan tampilan main menu 43

Gambar 3. 31 Rancangan tampilan Login 44

Gambar 3. 32 Rancangan tampilan Lobby Online 44

Gambar 3. 33 Rancangan tampilan Player Selection 45

Gambar 3. 35 Rancangan tampilan Plane Detection 45

Gambar 3. 36 Rancangan tampilan Gameplay 45

Gambar 4. 1 Tampilan halaman main menu 56

Gambar 4. 2 Tampilan halaman player selection offline 57

Gambar 4. 3 Tampilan halaman racer selection offline 58

Gambar 4. 4 Tampilan gameplay permainan 58

Gambar 4. 5 Tampilan sudut pandang pertama gameplay permainan 59

Gambar 4. 6 Tampilan halaman login 59

Gambar 4. 7 Tampilan halaman lobby online 60

Gambar 4. 8 Tampilan halaman player selection online 60

Gambar 4. 9 Tampilan halaman car selection online 61

Gambar 4. 10 Tampilan halaman plane detection 62

Gambar 4. 11 Tampilan halaman search for games 62

Gambar 4. 12 Tampilan halaman in-game 63

Gambar 4. 13 Tampilan finish race 63

Gambar 4. 14 Pengujian pendeteksian 2 tingkat bidang datar 64

Gambar 4. 15 Pengujian batas pendeteksian bidang datar 65

Gambar 4. 16 Pengujian pendeteksian dengan intensitas 169,3 lm 66 Gambar 4. 17 Pengujian pendeteksian dengan intensitas 881,6 lm 66 Gambar 4. 18 Pengujian pendeteksian bidang datar tidak bertekstur 67 Gambar 4. 19 Pengujian stabilitas objek sirkuit pada posisi awal 68

(15)

BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah

Hiburan merupakan salah satu cara mahluk hidup khusus-nya manusia untuk menghilangkan rasa jenuh dari segala sesuatu yang menguras pikiran dan raga. Bermain game merupakan cara paling mudah untuk menghilangkan rasa jenuh sekaligus memberikan rasa gembira saat memainkannya, sehingga bermain game merupakan hiburan yang paling ampuh saat ini. Menurut Fauzia A, game merupakan sebuah bentuk dari hiburan yang dapat dijadikan media untuk menyegarkan pikiran dari rasa penat yang dialami akibat dari padatnya aktivitas yang dilakukan.

Game memiliki pengertian permainan yang dimana pemain melakukan interaksi antarmuka melalui gambar yang dihasilkan oleh perangkat video. Game berdasarkan platform terbagi atas empat, yaitu Hanheld Games, Console Games, PC games , dan Mobile Games. Sedangkan berdasarkan genre game terbagi atas 9, yaitu Action, FPS (First Person Shooter), Strategy, RPG (Role Playing Games), Adventure, Simulation, Sport, Racing, dan Battle Arena.

Racing game merupakan game beradu kecepatan antar pemain untuk menjadi yang lebih dahulu mencapai ke suatu tujuan tertentu, atau jumlah putaran lap tertentu dalam sebuah arena permainan. Game bertema kompetisi kecepatan ini diwujudkan dalam berbagai objek kendaraan seperti pesawat, mobil, jetski, dan lain sebagainya.

Perkembangan Teknologi Informasi dan Komputer (TIK) telah meruap ke banyak bidang ilmu lain saat ini, salah satunya di bidang game development. Dengan pemanfaatan TIK, saat ini sudah ditemukan berbagai metode untuk membuat game khususnya racing game lebih interaktif.

TIK juga dapat membantu para developer game untuk menambah nilai interaktif sebuah racing game dengan membawa nya ke dunia nyata menggunakan teknologi Augmented Reality.

(16)

Augmented Reality merupakan media yang mengembangkan teknologi yang melakukan penggabungan secara real-time antara konten digital yang telah dibuat pada komputer dengan dunia nyata. Augmented Reality terbagi atas 2 metode yaitu marker-based dan markerless.

Marker-based Augmented Reality ialah metode yang menggunakan penanda atau marker yang telah di program untuk menampilkan objek yang kita inginkan, sedangkan markerless tidak membutuhkan penanda untuk menampilkan objek. Fungsi Augmented Reality adalah untuk meningkatkan kesan seseorang terhadap dunia yang ada disekitarnya dan menciptakan sebagian dunia maya dan nyata sebagai antarmuka yang mutakhir yang lebih interaktif.

Saat ini permainan car racing hanya menawarkan teknologi sebatas 2 dimensi atau 3 dimensi yang dinilai kurang interaktif, karena hanya memberikan view angle dari sudut pandang pengemudi dan tidak memperlihatkan bentuk arena secara nyata. Oleh karena itu dibutuhkan alternatif sudut pandang dengan menggunakan teknologi Augmented Reality. Berdasarkan latar belakang tersebut, maka penulis mengusulkan penelitian untuk melakukan pengembangan permainan racing game menggunakan teknologi Markerless Augmented Reality dengan judul

“Permainan Car Racing Berbasis Mobile Menggunakan Teknologi Augmented Reality”.

1.2 Rumusan Masalah

Permainan Car Racing pada umumnya hanya mencapai batas 2D ataupun 3D, sehingga dinilai kurang menarik. Agar permainan terdapat lebih menarik dan interaktif dibutuhkan suatu teknologi yang dapat membawa permainan tampak lebih nyata dan interaktif dengan cara membawa permainan tersebut berinteraksi dengan dunia nyata dengan menggunakan teknologi Markerless Augmented Reality.

1.3 Tujuan Penelitian

Penelitian ini bertujuan untuk mengembangkan sebuah game multiplayer dengan menggunakan Photon Unity Network (PUN) berbasis mobile dengan menerapkan teknologi Markerless Augmented Reality sebagai media hiburan interaktif.

(17)

1.4 Batasan Penelitian

Untuk mencegah luasnya subjek yang tercakup didalam penelitian ini, peniliti menetapan batasan-batasan masalah yang akan dibahas. Adapun batasan masalah dari penelitian ini, yaitu:

1. Permainan hanya bisa dimainkan oleh 2 pemain 2. Permainan hanya memiliki 1 Arena bermain/ Sirkuit

3. Pendeteksian bidang datar hanya dilakukan pada permukaan yang bertekstur 4. Augmented Reality hanya diterapkan pada mode multiplayer

1.5 Manfaat Penelitian

Adapun manfaat yang diharapkan dari penelitian ini, yaitu:

1. Menerapkan pengetahuan tentang augmented reality

2. Sebagai media hiburan bagi pengguna untuk menghilangkan rasa jenuh

3. Memberikan inspirasi bagi peneliti berikutnya yang tertarik dalam pengembangan dan pembangunan aplikasi permainan

1.6 Metodologi Penelitian

Berikut beberapa tahapan yang dilakukan pada penelitian ini, yaitu:

1. Studi Literatur

Tahap pertama yang dilakukan ialah studi literatur, dimana pada tahap ini penulis melakukan pengumpulan data serta mempelajari informasi melalui artikel, jurnal, dan berbagai sumber refrensi lainnya yang berkaitan dengan Augmented Reality, ARCore, Game Engine Unity 3D, Photon Unity Network, Game development, dan UI/UX pada Android.

2. Identifikasi Permasalahan

Tahap selanjutnya adalah menganalisis permasalahan berdasarkan studi literatur untuk mengetahui langkah-langkah penyelesaian masalah seperti, penerapan controller pada objek, sinkronisasi satu pemain dengan yang lainnya, pendeteksian bidang datar bertekstur menggunakan kamera perangkat dan ketepatan pemunculan objek yang akan diproyeksikan ke dunia nyata.

(18)

3. Perancangan

Tahap ini merupakan perancangan struktur aplikasi yang sesuai dengan hasil analisis yang dilakukan pada tahap indentifikasi permasalahan. Struktur yang dirancang adalah logika permainan, arena bermain (sirkuit), controller, serta antarmuka aplikasi.

4. Implementasi

Hasil dari analisis dan perancangan struktur aplikasi akan diimplementasikan pada tahap ini dengan melakukan pembangunan kode program menggunakan game engine Unity 3D dan Microsoft Visual Studio.

5. Pengujian

Pengujian gameplay, sinkronisasi multiplayer, plane detection dan user interface pada aplikasi yang telah dibangun dilakukan pada 30 orang yang kesehariannya bermain game.

6. Penyusunan Laporan

Tahap terakhir merupakan penyusunan laporan hasil analisis, perancangan, implementasi serta pengujian keseluruhan penelitian yang telah dilakukan.

1.7 Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri atas lima bagian, yaitu:

Bab 1: Pendahuluan

Bab 1 mengenai pendahuluan berisikan latar belakang, rumusan masalah, tujuan penelitian, batasan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.

Bab 2: Landasan Teori

Bab 2 mengenai landasan teori berisi tentang penjelasan berbagai teori yang mengacu pada penelitian seperti konsep, defenisi, hipotesis, serta pengetahuan umum lainnya yang berasal dari berbagai sumber terbaru maupun terdahulu yang terbukti valid berdasarkan pengimplementasiannya terhadap penelitian ini dan penelitian-penelitian sebelumnya.

(19)

Bab 3: Analisis dan Perancangan Sistem

Bab ini memaparkan analisis kebutuhan serta rancangan struktur dari sebuah aplikasi permainan yang akan dikembangkan pada penelitian ini.

Bab 4: Implementasi dan Pengujian

Bab ini membahas hasil pengembangan dan pengujian dari aplikasi permainan yang telah dikembangkan melalui uji coba secara internal (penulis) dan eksternal (calon pengguna aplikasi)

Bab 5: Kesimpulan dan Saran

Bab terakhir ini berisikan kesimpulan yang diperoleh dari hasil penelitian, serta beberapa saran yang dapat digunakan untuk penelitian berikutnya.

(20)

BAB 2

LANDASAN TEORI

2.1 Game

Game merupakan bahasa Inggris yang memiliki arti permainan. Permainan adalah sesuatu yang dapat dimainkan dengan ketentuan tertentu dimana ada yang menang dan ada yang kalah, umumnya dalam kontekstual yang tidak serius atau dengan tujuan menghibur (Dawang Muchtar, 2005). Perkembangan game itu sendiri dimulai pada tahun 1950an dibeberapa universitas di Inggris dan Amerika dimana saat itu game digunakan sebagai media untuk pelatihan, pengajaran dan program demonstrasi (peragaan) untuk menghibur masyarakat.

2.2 Racing Games

Racing game merupakan salah satu genre video game dimana pemain berpartisipasi dalam suatu kompetisi balapan. Racing game adalah game beradu kecepatan antar pemain untuk menjadi yang lebih dahulu mencapai ke suatu tujuan tertentu, atau jumlah putaran lap tertentu dalam sebuah arena permainan. Game bertema kompetisi kecepatan ini diwujudkan dalam berbagai objek kendaraan seperti sepeda, motor, mobil, pesawat dan lain sebagainya. Game yang memiliki efektifitas yang tinggi dalam menghilangkan stres atau penat adalah game yang mudah untuk dipelajari, tetapi memiliki target yang sulit dicapai, salah satu contohnya adalah racing game (Subari et al, 2019).

2.3 Augmented Reality

Augmented Reality adalah teknologi yang memiliki kegunaan untuk memperluas dunia fisik kita dengan menambahkan lapisan informasi digital ke dalamnya. Penambahan lapisan informasi digital yang dimaksud adalah dengan memproyeksikan objek virtual ( digital content) baik dalam bentuk 2D maupun 3D ke dunia nyata secara real-time (waktu aktual dimana sesuatu terjadi).

Augmented Reality memulai perannya pada tahun 1957-1962, ketika seorang inventor yang bernama Morton Heilig, seorang sinematografer, menemukan dan mematenkan sebuah simulator yang disebut Sensorama dengan visual, getaran dan bau. Simulator tersebut lalu dikembangkan

(21)

oleh seorang ilmuwan bernama Myron Krueger dimana ia menciptakan videoplace yang membuat pengguna dapat melakukan interaksi dengan objek virtual untuk pertama kalinya.

2.4 Marker

Marker adalah sebuah penanda pada sebuah objek 2D atau 3D yang berisikan titik-titik fitur yang dapat dideteksi oleh sistem komputer melalui tangkapan gambaran video (Hanafi, 2021). Hasil dari pendeteksian tersebut kemudian digunakan untuk menampilkan objek yang kita inginkan, komputer akan mengidentifikasi posisi dan orientasi dari marker dan membangun dunia virtual 3D yaitu titik (0,0,0) dan tiga sumbu yaitu X, Y, dan Z. Proses ini dinamakan marker-based tracking yang merupakan salah satu dari dua metode yang terdapat pada augmented reality. Pada metode ini, posisi marker harus terlihat jelas dan berada didalam jangkauan kamera agar dapat terdeteksi.

Contoh metode marker-based augmented reality dapat dilihat pada Gambar 2.1.

Gambar 2. 1 Contoh Marker-Based Augmented Reality

Metode lainnya adalah markerless augmented reality menempatkan objek virtual di lingkungan fisik tergantung pada fitur nyata lingkungan daripada mengidentifikasi marker.

Perbedaan ini menghilangkan kebutuhan akan sistem pelacakan objek. Pengalaman augmented reality tanpa penanda dimungkinkan karena kemajuan dalam kamera, sensor, prosesor, dan algoritma yang mampu mendeteksi dan memetakan dunia nyata secara akurat tanpa mengurangi efisiensi ruang. Contoh metode markerless augmented reality dapat dilihat pada Gambar 2.2.

(22)

Gambar 2. 2 Contoh metode Markerless

2.5 Game Engine

Game engine adalah perangkat lunak (software) inti yang diperlukan agar program permainan dapat berjalan dengan baik. Game engine dapat membuat game untuk konsol, perangkat mobile, maupun komputer. Fungsionalitas inti yang disediakan game engine meliputi mesin rendering untuk menempatkan objek-objek yang diperlukan dalam permainan, mesin fisik untuk mendeteksi tabrakan dan reaksi terhadap tabrakan tersebut, suara, script, animasi yang terjadi saat scene tertentu, kecerdasan buatan (Artificial Intelligence), jaringan, grafik scene, manajemen memori, dan dukungan video untuk sinematik. Game engine juga sering digunakan untuk menghemat proses pengembangan game dengan menggunakan kembali atau mengadaptasi sebagian besar game engine yang sama untuk menghasilkan game yang berbeda atau juga untuk membantu memporting game yang sama ke berbagai platform. Salah satu game engine yang terkenal ialah Unreal Engine 4 yang digunakan untuk membuat beberapa game terkenal seperti Fortnite dan PlayerUnknown's Battlegrounds. Game engine yang akan digunakan pada penelitian ini adalah Unity 3D. Pada Tabel 2.1 dapat dilihat beberapa daftar game engine yang sangat popular dikalangan pengembang game.

(23)

Tabel 2. 1 Daftar game engine Nama Target Platform Bahasa yang

didukung

Game popular yang dihasilkan Creation Engine Windows,

PlayStation 3, Xbox 360, Xbox One, PlayStation 4

C++, Papyrus The Elder Scrolls V:

Skyrim, Fallout 4, Fallout 76

CryEngine Windows, macOS, Linux, PlayStation 3, PlayStation 4, Wii U, Xbox 360, Xbox One, iOS, Android

C++, C# Sniper Ghost Warrior Contracts 2, Farcry, Crysis 3

Dunia Engine Windows,

PlayStation 3, Xbox 360, PlayStation 4, Xbox One

C++ Assassin's Creed, Far

Cry, Prince of Persia, Tom Clancy's, Watch Dogs

Source 2 Windows, macOS,

Linux, Android, iOS

Lua, C++ Dota 2, The Lab , Artifact, Dota Underlords, Half- Life: Alyx

Unreal Engine Windows, OSX, Linux, Xbox, PlayStation, Wii, Android, iOS, WinRT

C++, C#, GLSL, CG, HLSL

Mortal Kombat, Rocket League, Fortnite

Unity Windows,

MacOS,iOS,

Android, Playstation

C#, Javascript Among Us, Phasmophobia, Cities: Skylines Forest

(24)

2.6 Unity 3D

Unity 3D adalah game engine lintas platform yang dikembangkan oleh Unity Technologies. Game engine ini dapat mendukung pengembangan game tiga dimensi, dua dimensi, virtual reality, augmented reality, serta simulasi dan pengalaman lainnya pada lebih dari 25 platform. Dalam pembuatan game 3D dan 2D, Unity menggunakan scripting API dalam bahasa pemgrograman C#.

Pengembang game juga dapat mengembangkan, menjual dan membeli aset yang mereka butuhkan dari pembuat game lain melalui Unity Asset Store yang meliputi aset 3D dan 2D. Beberapa platform yang didukung oleh unity adalah iOS dan Android pada mobile, Windows, MacOS, dan Linux pada PC, WebGL pada web, Playstation, Xbox, dan Nintendo pada konsol, Oculus, ARCore, ARKit, dan Windows MR (hololens) pada AR/VR Platforms.

2.7 ARFoundation

ARFoundation adalah framework multi-platform yang membuat pengembang dapat menggunakan teknologi augmented reality pada proyeknya yang terdapat didalam unity. Interface yang diberikan ARFoundation tidak mengimplementasikan fitur augmented reality itu sendiri, melainkan mereka menyediakan API multi-platform yang dapat kita gunakan seperti ARCore XR Plugin pada Android, ARKit XR Plugin pada iOS, Magic Leap XR Plugin pada Magic Leap, dan Windows XR Plugin pada HoloLens. ARFoundation menawarkan beberapa konsep fitur yang didukung seperti device tracking, plane detection, face tracking, 2D image tracking, 3D object tracking, environment probe, anchor , dan lain-lain.

2.8 Photon Unity Network

Photon Unity Networking (PUN) adalah package yang terdapat didalam unity untuk game multiplayer. Matchmaking yang fleksibel membawa pemain ke ruangan tempat pertemuan dimana objek yang diperluka dapat disinkronasi melalui jaringan. PUN terdiri atas 3 lapisan API dimana lapisan tertinggi adalah kode PUN yang mengimplementasikan fitur khusus unity seperti objek berjaringan, RPC, dan sebagainya. Lapisan kedua berisi logika untuk bekerja dengan photon, melakukan matchmaking, callback dan ini merupakan real-time API. Lapisan terakhir terdiri dari file yang berisi serialisasi, protokol dan semacamnya.

(25)

2.9 ARKit

ARKit merupakan sebuah plugin yang digunakan khusus pada perangkat iOS untuk membangun aplikasi augmented reality. ARKit menggabungkan pelacakan gerak perangkat, pengambilan adegan kamera, pemrosesan adegan lanjutan, dan kemudahan tampilan untuk menyederhanakan tugas pengembang. ARKit memiliki beberapa keunggulan fitur dari plugin lainnya seperti 3D object tracking, 2D & 3D body tracking, dan human segementation yang hanya bisa digunakan didalam plugin ini.

2.10 ARCore

ARCore adalah sebuah software development kit (SDK) yang diperlukan agar pengembang dapat mengimplementasikan teknologi augmented reality pada perangkat Android. ARCore hanya bergantung pada kamera perangkat, sensor gerak ponsel Anda seperti gyroscope dan akselerometer. ARCore mengikuti serangkaian konsep dasar untuk berhasil melihat dan menafsirkan apa yang dilihat kamera, dan memberikan pengalaman augmented reality berdasarkan informasi itu.

2.11 Plane Detection

Plane detection adalah trackable manager yang menjadi bagian daripada package ARFoundation yang digunakan untuk metode markerless pada augmented reality. Plane detection digunakan untuk melakukan pendeteksian bidang dengan memberi feature points pada tekstur bidang datar.

Hasil pendeteksian tersebut nantinya akan digunakan sebagai fondasi untuk meletakan objek virtual ke dunia nyata.

2.12 Artificial Intelligence

Artificial Intelligence atau kecerdasan buatan adalah sistem komputer yang mampu melakukan tugas-tugas yang biasanya membutuhkan kecerdasan manusia. Teknologi ini dapat membuat keputusan dengan cara menganalisis dan menggunakan data yang tersedia di dalam sistem. Proses yang terjadi dalam Artificial Intelligence mencakup learning, reasoning, dan self-correction.

Proses ini mirip dengan manusia yang melakukan analisis sebelum memberikan keputusan.

(26)

2.13 Penelitian Terdahulu

Telah dilakukan beberapa penelitian terdahulu mengenai aplikasi ataupun permainan yang memiliki kaitan dengan augmented reality, photon unity networking, dan game engine unity 3D.

Pada tahun 2017, D. Polančec dan I. Mekterović mengembangkan sebuah game multiplayer dengan genre MOBA yang menggunakan game engine unity 3D dan photon unity networking sebagai framework dalam pembangunan sistem multi pemain pada game tersebut.

Pada tahun berikutnya, (Pranoto et al, 2018) melakukan pengembangan aplikasi permainan link colour berbasis android yang juga merupakan game multiplayer. Aplikasi ini menggunakan game engine unity dan framework photon unity untuk sistem multiplayernya.

Di tahun yang sama Ginting, S.L dan Sofyan, F melakukan penelitian dengan mengembangkan aplikasi pengenalan alat musik tradisional Indonesia berbasis android yang menerapkan marker based augmented reality. (Karundeng et al, 2018) juga melakukan penelitian yang serupa dengan mengembangkan aplikasi yang mengenalkan satwa langka di Indonesia namun pada penelitian ini mereka menerapkan markerless augmented reality.

Pada tahun 2021, Hanafi mengembangkan aplikasi permainan interaktif car controller dengan menerapkan markerless augmented reality berbasis android. Aplikasi ini juga merupakan permainan multiplayer dengan menggunakan photon unity networking sebagai framework multiplayernya. Ia juga menggunakan trackable manager plane detection untuk mendeteksi bidang datar yang nantinya digunakan untuk meletakkan arena bermain. Adapun beberapa penelitian terdahulu yang lainnya dapat dirangkum kedalam Tabel 2.2

Tabel 2. 2 Penelitian terdahulu

No. Peneliti (Tahun) Metode Hasil

1. Alfian Maulana Azhari (2015) Marker-based, Photon Unity Network,

Permainan Multiplayer Fighting Game Augmented Reality menggunakan Photon Cloud

2 Polančec, D. dan Mekterović, I.(2017) Photon Unity Network

Permainan Multiplayer Online Battle Arena berbasis PC menggunakan Photon Cloud

(27)

3. Pranoto et al (2018) Photon Unity Network

Permainan Link Colour berbasis Android menggunakan Photon Cloud

4. Ginting, S.L dan Sofyan, F (2018) Marker-based Aplikasi Pengenalan Alat Musik Tradisional Indonesia berbasis Android

5. Karundeng et al (2018) Markerless Aplikasi Pengenalan Satwa Langka di Indonesia berbasis Android

6. Felix Hardywantara (2019) Markerless, Plane Detection

Aplikasi Augmented Reality untuk

menampilkan model bangunan virtual berbasis Android 7. Syahputra, M.F. et al (2020) Markerless Aplikasi Augmented

Reality untuk menampilkan model rumah virtual berbasis android

8. Hanafi (2021) Markerless,

Plane Detection, Photon Cloud

Permainan multiplayer interaktif car

controller augmented reality berbasis android

(28)

BAB 3

ANALISIS DAN PERANCANGAN

Pada bab ini akan dibahas mengenai rancangan struktur aplikasi permainan serta penerapan teknologi markerless augmented reality dengan memanfaatkan ARCore SDK pada penelitian ini.

3.1 Analisis Perancangan Permainan 3.1.1 Keterangan Umum Permainan

Permainan yang akan dikembangkan termasuk kedalam genre racing games. Permainan ini sendiri merupakan adaptasi dari permainan Tamiya yang sempat populer pada tahun 2000-an. Tujuan utama permainan ini adalah menjadi yang tercepat sampai ke garis finish setelah melakukan 3 putaran (lap). Berbeda dengan Tamiya, pergerakan mobil pada permainan ini dilakukan oleh pemain dengan menggunakan controller. Permainan ini juga memiliki dua mode bermain yaitu

“singleplayer” dimana pemain akan bermain melawan bot, dan “multiplayer” dimana pemain akan bermain melawan pemain lainnya. Augmented reality juga akan diterapkan pada permainan ini , dimana sirkuit arena bermain akan ditampilkan pada bidang datar yang ada di dunia nyata.

Gambaran umum dari permainan akan dapat dilihat pada Tabel 3.1

Tabel 3. 1 Gambaran umum permainan

Elemen Deskripsi

Judul Permainan Car Racing Augmented Reality

Platform Perangkat Android yang mendukung ARCore Engine

Target Pengguna Gamers

Rating ESRB E (Everyone)

Genre Racing Game, Augmented Reality

Gameplay Pemain akan memilih mobil untuk digunakan dan melakukan balapan dengan bot atau pemain lainnya

(29)

Elemen Deskripsi

Unique Selling Point (USP) 1. Adaptasi permainan Tamiya dalam bentuk digital 2. Menerapkan Teknologi augmented reality

3. Menghadirkan 2 mode permainan yaitu singleplayer dan multiplayer

3.1.2 Objektif Permainan

Objektif dari permainan ini adalah mengalahkan musuh bot ataupun pemain lainnya dengan cara melewati mobil musuh dalam jumlah putaran yang ditentukan. Pemain dapat menggerakan mobil dengan menggunakan controller yang tersedia pada setiap mobil.

3.1.3 Storyboard Permainan

Alur sistem permainan merupakan bagian penting dalam struktur aplikasi permainan guna untuk mencapai tujuan yang diinginkan. Untuk mempermudah perancangan alur sistem permainan yang akan dibangun, dibuatlah sebuah storyboard permainan dengan membuat sketsa tahapan ataupun tampilan yang ada pada permainan. Gambar 3.1 menampilkan storyboard aplikasi permainan ini.

(30)

Scene “Player Selection”

Scene “Plane Detection”

Scene “Object Placement”

Scene “Join Room”

Scene “Gameplay Online”

Gambar 3. 1 Alur Storyboard

Singleplayer Multiplayer

Scene “Main Menu”

Scene “Login”

Scene “Player Selection”

Scene “Lobby”

Scene “Gameplay Offline”

(31)

Scene “Main Menu”

Gambar 3. 2 Storyboard scene “Main Menu”

Scene pertama adalah Scene main menu, dimana pada scene ini pemain dapat memilih 2 mode permainan yaitu “singleplayer” untuk bermain melawan bot dan “multiplayer” untuk bermain melawan pemain lain.

Scene “Player Selection”

Gambar 3. 3 Storyboard tampilan pertama scene “Player Selection”

Jika pemain memilih singleplayer, maka scene player selection akan ditampilkan. Pada scene ini, terdapat 3 tampilan. Pada tampilan pertama terdapat 4 tombol yaitu tombol “circuit” untuk memilih arena bermain, tombol “car” untuk memilih mobil yang diiginkan , tombol “back” untuk kembali ke scene main menu dan tombol “race” untuk memulai permainan.

(32)

Gambar 3. 4 Storyboard tampilan kedua scene “Player Selection”

Jika pemain memilih tombol circuit, maka UI akan menampilkan panel pemilihan sirkuit untuk dipilih. Terdapat 2 tombol pada panel ini yaitu tombol circuit untuk memilih sirkuit tersebut dan tombol back untuk kembali ke tampilan pertama scene player selection.

Gambar 3. 5 Storyboard tampilan ketiga scene “Main Menu”

Jika pemain memilih tombol car, maka UI akan menampilkan panel pemilihan mobil yang dapat digunakan. Terdapat 2 macam tombol pada panel ini yaitu tombol car untuk memilih mobil yang diinginkan dan tombol back untuk kembali ke tampilan pertama scene player selection.

(33)

Scene “Gameplay Offline”

Gambar 3. 6 Storyboard scene “Gameplay Offline”

Setelah memilih sirkuit dan mobil, pemain akan memasuki scene gameplay offline dimana permainan dimulai. Mobil yang sudah dipilih akan muncul beserta dengan 7 bot yang sudah disiapkan dengan script Artificial Intelligence (AI) untuk ikut bertanding. Pergerakan mobil pemain dapat dilakukan dengan menggunakan tombol-tombol controller yang telah disediakan.

Tombol gas berfungsi untuk memajukan mobil, tombol brake berfungsi untuk memundurkan mobil, dan tombol steer berfungsi untuk mengatur gerakan rotasi mobil ke kiri dan ke kanan.

Scene “Login”

Gambar 3. 7 Storyboard scene “Login”

Jika pada scene main menu pemain memilih multiplayer, maka pemain akan menuju scene login dimana pemain diharuskan untuk mengisi “nickname” yang akan digunakan dalam pertandingan.

Scene “Lobby Online”

(34)

Gambar 3. 8 Storyboard scene “Lobby Online”

Setelah berhasil login dan terkoneksi dengan server PUN, pemain akan masuk ke scene lobby online. Pada scene ini terdapat 2 tombol yaitu quick race untuk mulai bermain dengan pemain lain (dengan melakukan pemilihan mobil seperti pada scene player selection) dan tombol exit untuk kembali ke scene main menu.

Scene “Plane Detection”

Gambar 3. 9 Storyboard scene “Plane Detection”

Pada scene ini, pengguna diminta untuk mendeteksi ruang sekitar dengan kamera perangkat.

Sistem akan mempelajari lingkungan dan mendeteksi bidang datar bertekstur untuk dijadikan tempat proyeksi objek sirkuit arena bermain pada dunia nyata. Terdapat tombol place untuk menetapkan arena pada area bidang datar yang dipilih.

Scene “Object Placement”

(35)

Gambar 3. 10 Storyboard scene “Object Placement”

Scene ini memerintahkan pemain untuk menetapkan objek sirkuit pada bidang datar yang sudah ditentukan. Pada scene ini terdapat 2 tombol yaitu tombol adjust untuk mengatur ulang posisi arena sirkuit dan tombol find untuk mulai mencari atau membuat room.

Scene “Join Room”

Gambar 3. 11 Storyboard scene “Join Room”

Setelah pemain menekan tombol find pada scene sebelumnya, maka sistem akan mencoba mencari room. Jika tidak ada room yang ditemukan makan secara otomatis sistem akan membuat room.

Permainan akan dimulai jika pemain lain telah bergabung kedalam room yang sama.

(36)

Scene “Gameplay Online”

Gambar 3. 12 Storyboard scene “Gameplay Online”

Jika pemain lain berhasil masuk kedalam room yang telah dibuat, maka permainan akan langsung dimulai dengan menghitur mundur waktu.

3.2 Arsitektur Umum

Pada aplikasi permainan yang menerapkan sistem multiplayer dan augmented reality, dibutuhkan sebuah network service sebagai perantara antar pemain, sebuah game engine untuk membangun aplikasi dan sebuah augmented reality engine agar aplikasi dapat menjalankan augmented reality itu sendiri. Gambar 3.13 akan menampilkan arsitektur umum dari aplikasi yang akan dibangun agar lebih mudah memahami perpaduan tersebut.

(37)

Gambar 3. 13 Arsitektur Umum Aplikasi

Resource

Animasi Audio Model 2D dan 3D

Game Engine (Unity)

Resource Loading

Game Content Game Logic

Event UI Building

Output

Mobile Car Racing Augmented Reality Game

ARFoundation Packages

ARKit AR Libraries ARCore AR Libraries

Konsep Permainan

Storyboard Game Document

AR Engine

Define Anchor and Trackables Positioning Virtual

Object Environmental Understanding Motion Tracking Surface Detecting

Photon Unity Network

Photon GameServer Photon NameServer

(38)

Berdasarkan Gambar 3.13, dapat dilihat bahwa aplikasi permainan ini akan dibangun menggunakan 1 game engine, 1 network service dan 1 augmented reality engine. Game engine yang akan digunakan adalah Unity 3D versi 2019.4.17f1, network service yang digunakan adalah Photon Unity Network (PUN) 2, dan augmented reality engine yang digunakan adalah augmented reality development software. Dapat dilihat juga terdapat 2 komponen pendukung yaitu resource yang menyediakan model 2D maupun 3D, animasi, dan audio, dan ARFoundation yang menyediakan ARCore dan ARkit libraries yang mendukung pengimplementasian augmented reality pada permainan ini.

3.3 Game Engine

Pada bab sebelumnya, dijelaskan bahwa aplikasi permainan ini membutuhkan perangkat lunak yang dinamakan game engine untuk dikembangkan. Game engine yang digunakan pada aplikasi permainan ini adalah Unity 3D dan bahasa pemrograman yang digunakan adalah C#.

Pengembangan aplikasi permainan ini dibagi menjadi 5 modul yaitu UI Building, Game Logic, Event Manager, Game Content dan Resource Loading.

3.3.1 UI Building

Modul UI building ini digunakan sebagai tempat untuk melakukan pembangunan dan scripting pada user interface (tampilan antarmuka) dari aplikasi permainan itu sendiri. Semua unsur user interface yaitu tombol, panel, dan aset antarmuka lainnya digabungkan pada modul ini untuk berinteraksi dengan pengguna. Interaksi yang dimaksud adalah pengisian nama pemain, pemilihan sirkuit, pemilihan mobil dan penggerakan mobil dalam permainan. Setelah tampilan antarmuka ini dibangun, dilanjutkan dengan pembuatan game logic (logika permainan).

3.3.2 Game Logic

Game logic atau logika permainan merupakan inti dari permainan karena disini merupakan tempat dimana kita akan mulai membangun permainan itu sendiri mulai dari logika cara bermain, pengaturan pengendalian mobil, scripting artificial intelligence, dan lain-lainnya. Logika tersebut akan diterapkan pada mobil dan event manager dalam permainan. Untuk memahami logika permainan pada aplikasi permainan ini, berikut pseudocode dari logika permainan yang dikembangkan.

(39)

Pseudocode 1: Game Logic

SpeedInput -> float //Kecepatan Laju Maju & Mundur TurnInput -> float //Nilai Putaran

AISpeedMod -> float //Modifier Kecepatan AI AISpeedInput -> float //Kecepatan Laju AI AIMaxTurn -> float //Nilai Putaran AI CurrentLap -> int //Lap Saat Ini

CpNumber -> int //Nomor Checkpoint NextCp -> int //Checkpoint Berikutnya TotalLaps -> int //Total Lap

IsAI -> bool //Menentukan sebuah mobil pemain atau AI

If(!IsAI)

SpeedInput = input vertical TurnInput = input horizontal Else

SpeedInput = AISpeedInput * AISpeedMod TurnInput = Angle/AIMaxTurn

If(CpNumber == NextCp) NextCp ++

If(NextCp > total checkpoint) LapCompleted()

If(IsAI)

If(CpNumber == NextCp) SetNextAITarget()

LapCompleted() CurrentLap ++

(40)

Pada pseudocode 1 dapat dilihat bahwa mobil akan menerima input dari controller bila variabel IsAI tidak benar. Jika IsAI adalah benar, maka mobil akan dikontrol oleh AI dimana input kecepatan mobil akan dikalikan dengan AISpeedMod agar kecepatan mobil bervariasi. Pada aplikasi permainan balapan ini diterapkan sistem “checkpoint” agar event manager dapat melacak posisi pemain dan apakah pemain itu sudah melakukan putaran (Lap). Jika checkpoint yang sudah dilewati sama dengan NextCp maka nilai NextCp akan bertambah 1 dan jika nilai NextCp sudah melebihi jumlah total checkpoint maka pemain berhasil melalui 1 putaran (Lap). Apabila mobil AI telah melewati checkpoint, maka fungsi SetNextAITarget akan dipanggil dan dijalankan. Fungsi LapCompleted juga akan menambah nilai CurrentLap dengan 1 dan jika nilai CurrentLap lebih tinggi daripada nilai TotalLaps maka game akan berakhir dan mobil pemain pun akan dikendalikan oleh AI. Pada fungsi SetNextAITarget , nilai variabel CurrentTarget akan bertambah dengan 1 dan fungsi RandomiseAITarget akan dijalankan. Fungsi RandomiseAITarget adalah untuk membuat mobil AI menuju titik checkpoint secara acak pada sumbu X dan Z sehingga permainan tampak lebih interaktif. Adapun sistem checkpoint pada aplikasi permainan ini akan ditunjukan pada Gambar 3.14.

If(CurrentLap > TotalLaps) IsAI = true

FinishGame()

SetNextAITarget() CurrentTarget ++

RandomiseAITarget()

RandomiseAITarget()

New vector = RandomX,0f,RandomZ

(41)

Gambar 3. 14 Checkpoints

Dapat dilihat pada Gambaar 3.14 bahwa sistem checkpoint yang digunakan adalah sistem checkpoint bar yang tidak memiliki mesh collider. Artinya sistem akan melacak pemain jika melewati bar tersebut dan menentukan checkpoint selanjutnya.

Gambar 3. 15 Track Bounds

(42)

Pada Gambar 3.15. memperlihatkan bahwa permainan ini memiliki track bounds atau area batas bermain yang merupakan bar. Bar tersebut memiliki mesh collider namun tidak memiliki mesh renderer sehingga pemain tidak dapat melihat bar ini namun dapat menabraknya. Track bounds ini berfungsi sebagai blockade area kosong pada sirkuit, agar pemain tidak dapat berbuat curang dengan melewati sela kosong yang ada pada sirkuit ini dan harus melewati semua checkpoint untuk berhasil menyelesaikan 1 putaran (lap).

Gambar 3. 16 Coding Rubber Banding

Pada aplikasi permainan ini, terkhusus untuk mode singleplayer, juga diterapkan sistem rubber banding agar permainan lebih interaktif. Rubber banding itu sendiri adalah sebuah sistem untuk permainan balapan dimana kecepatan mobil pemain akan berkurang jika ia berada di posisi pertama dan menambah kecepatan mobil AI. Begitu pula sebaliknya, jika mobil AI berada di posisi 1 kecepatannya akan berkurang dan kecepatan mobil pemain akan bertambah. Hal ini diterapkan agar permainan tampak lebih kompetitif dan tidak membosankan karena akan banyak terjadi pergantian posisi sepanjang jalan nya pertandingan yang disebabkan oleh rubber banding itu sendiri. Coding rubber banding dapat dilihat pada Gambar 3.16.

(43)

3.3.3 Game Content

Setelah selesai dengan perancangan game logic, Pembangunan aplikasi permainan dilanjutkan dengan perancangan game content. Game content merupakan sebuah modul yang menampung segala struktur data, tugas, dan aset yang diperlukan untuk ditampilkan pada sebuah game scene.

Struktur game content akan ditampilkan pada Gambar 3.17.

Gambar 3. 17 Struktur Game Content

Modul game content memiliki 3 komponen utama. Komponen pertama ialah komponen data yang berisikan tentang state dan game object yang memiliki hubungan dengan komponen kedua. Komponen kedua adalah game object yang berisikan data drawable seperti arena sirkuit, posisi awal mobil (spawn point) dan juga beberapa efek yang memiliki hubungan dengan komponen ketiga. Komponen ketiga adalah effect yang berisikan efek-efek yang digunakan pada game object seperti animasi asap mobil dan efek suara saat terjadi tabrakan atau bermanufer.

3.3.4 Event Manager

Event manager berfungsi untuk mengatur pesan yang ditampilkan dengan perintah oleh pemain yang diterima oleh event listener, dengan memberikan feedback berupa pesan dan aksi yang dibutuhkan sesuai dengan perintah itu sendiri.

Pada rancangan storyboard aplikasi permainan, terdapat beberapa events yang diatur pada aplikasi permainan nantinya. Events tersebut adalah :

(44)

Gambar 3. 18 Pemodelan aset penelitian

Event JoinRoom, akan dipanggil dan dijalankan Ketika pemain berhasil membuat sebuah room atau bergabung dengan room yang sudah ada

Event Spawn, akan dipanggil dan dijalankan Ketika permainan akan dimulai.

3.3.5 Resource Loading

Modul ini berfungsi untuk mengambil aset berupa game object dengan model 2D dan 3D, animasi, dan audio serta aset-aset UI lainnya seperti tombol dan panel. Pada Unity 3D, aset akan disimpan dalam folder assets yang berada dalam projek dan akan dipanggil melalui modul resource loading ini. Adapun aset-aset yang akan digunakan pada penelitian ini merupakan objek 3 dimensi yang dibuat menggunakan aplikasi Blender 3D. Blender 3D adalah aplikasi grafis 3 dimensi yang digunakan untuk membuat animasi, efek visual dan objek 3 dimensi. Blender sendiri memiliki beberapa fitur utama seperti 3D modeling, texturing, rigging and skinning, particle simulation, sculpting, animating, match moving, rendering, motion graphics, and compositing. Aset pada penilitian ini yang dibuat menggunakan Blender 3D adalah aset mobil, aset jalan (meliputi tikungan, garis start, dan posisi awal pemain), aset lingkungan (meliputi tribun penonton, tenda, bangunan, dan pembatas jalan), serta aset pembatas arena bermain.

(45)

Gambar 3. 19 Contoh Box Modelling

Adapaun teknik pemodelan yang digunakan pada penelitian ini adalah “Box Modelling”. Box modelling adalah pemodelan dengan teknik poligonal di mana pemodelan dimulai dengan geometris primitif (kubus, bola, silinder, dll.) dan kemudian membentuknya sampai munculnya diinginkan tercapai. Box modelling bekerja secara bertahap, dimulai dengan mesh resolusi rendah, memperbaiki bentuk, dan kemudian membagi mesh untuk kelancaran output tepi kasar dan menambahkan detail. Proses pengelompokan dan pemurnian diulang sampai mesh mengandung cukup detail poligonal untuk menyampaikan konsep dimaksud. Alasan digunakannya bentuk kubus (atau seperti kotak) adalah karena kubus mudah dimanipulasi. Mereka hanya memiliki 8 simpul secara total dan umumnya lebih mudah untuk membuat bentuk seperti kotak daripada bentuk melingkar bulat. Box modelling sebagian besar menggunakan alat-alat seperti ekstrusi dan pemotongan loop.

(46)

3.4 Photon Unity Network

Agar permainan dapat menerapkan mode multiplayer secara real-time, dibutuhkan sebuah network service. Network service yang digunakan pada penelitian ini adalah Photon Unity Network (PUN) versi 2. PUN menawarkan global connectivity dengan maksimal concurrent user (CCU) sebanyak 20 untuk pilihan pengembang non-profit. CCU merupakan satuan jumlah user yang secara bersamaan mengakses dan menggunakan aplikasi tersebut. Struktur PUN dapat dilihat pada Gambar 3.20.

Gambar 3. 20 Struktur Photon Unity Network 2

Struktur pada Gambar 3.18 menunjukan bahwa client pertama-tama akan masuk kedalam Name Server yang dimana Name Server ini telah tersedia berbagai macam Master Server yang dibagi berdasarkan region (wilayah) seperti Asia, Eropa, Australia. Disini client akan dibagi berdasarkan wilayah koneksi kedalam Master Server wilayah masing-masing. Setelah itu, client akan dimasukan kedalam Game Server sesuai dengan aplikasi permainan ini. Pada Game Server inilah client akan membuat room dan melakukan pertandingan balapan antar client.

3.5 ARFoundation Packages

ARFoundation merupakan packages yang terdapat didalam game engine Unity 3D sebagai media untuk menerapkan teknologi augmented reality pada aplikasi permainan ini agar pengembangan aplikasi dapat bekerja secara multi-platform. Dalam package ini juga telah tersedia libraries sebagai pendukung pembangunan aplikasi, yaitu ARCore Libraries untuk pengembangan pada platform Android dan ARKit Libraries untuk pengembangan pada platform iOS. Instalasi package

(47)

dan plugin sesuai dengan platform yang ingin dibangun harus terlebih dahulu dilakukan agar ARFoundation ini dapat digunakan pada pengembangan aplikasi permainan ini. Pada penelitian ini akan digunakan ARCore Libraries karena aplikasi permainan akan dibangun pada platform Android. Gambar 3.21 memperlihatkan bahwa ARFoundation packages dan plugin telah terpasang pada game engine aplikasi permainan ini.

Gambar 3. 21 Pengaturan ARFoundation dan ARCore

3.6 AR Engine

AR Engine adalah mesin yang merupakan kumpulan dari coding yang akan mengimplementasikan teknologi augmented reality pada aplikasi permainan ini. AR Engine yang digunakan pada penelitian ini adalah ARFoundation yang merupakan package yang terdapat pada game engine Unity 3D dan dikembangkan dalam bahasa pemgrograman C#. Tahapan yang dilakukan oleh AR Engine untuk mengimplementasikan teknologi augmented reality itu sendiri dapat dilihat pada arsitektur umum yang ada pada Gambar 3.13 yang dimulai dari Surface Detecting, dilanjutkan dengan Motion Tracking, Environmental Understanding, Positioning Virtual Object dan diakhiri dengan Define Anchor and Trackables.

(48)

3.6.1 Surface Detecting

Surface detecting merupakan langkah pertama yang dilakukan oleh AR Engine dimana kamera perangkat akan menangkap permukaan datar yang akan dideteksi tekstur nya sehingga dapat memproyeksikan objek virtual pada permukaan datar tersebut. Pemanfaatan jarak kamera perangkat dari bidang datar yang bertekstur dilakukan pada proses ini. Gambar 3.22 menampilkan bagian coding yang digunakan pada proses ini.

Gambar 3. 22 Bagian Coding Plane Detection

3.6.2 Motion Tracking

Motion Tracking merupakan proses sistem membaca gerak kamera terhadap lingkungan sekitar.

Bersamaan dengan Surface Detecting, sistem akan melakukan proses Concurrent Odometry and Mapping (COM) untuk mengetahui posisi kamera dan lingkungan sekitarnya serta mendeteksi letak feature points yang hasilnya akan memperbarui lokasi kamera secara berkelanjutan. COM berfungsi agar objek virtual yang diproyeksikan dapat diamati dari berbagai sudut kamera. Adapun tahapan langkah dalam motion tracking ditunjukan pada Gambar 3.23.

(49)

Gambar 3. 23 Flowchart motion tracking

Concurrent Odometry and Mapping

Proses ini merupakan proses pelacakan lingkungan dunia nyata untuk mengetahui posisi kamera dan membangun lingkungan 3 dimensi sebagai representasi visual yang akan digunakan untuk proses selanjutnya.

Detecting Feature Points

Setelah mendeteksi lingkungan dan mengetahui posisi kamera, kamera perangkat akan mendeteksi tekstur-tekstur yang terdapat pada bidang datar seperti lantai keramik, aspal, meja, dan lainnya.

Setelah pendeteksian tersebut, sistem akan meletakan feature points pada tekstur bidang datar tersebut yang akan digunakan sebagai fondasi untuk membentuk plane yang akan digunakan sebagai tempat proyeksi objek virtual pada dunia nyata. Gambar 3.24 menampilkan coding untuk penggunaan feature points.

(50)

Gambar 3. 24 Coding Feature Points Inertial Measurement Unit

Setelah berhasil meletakan feature points pada tekstur permukaan datar, sistem akan mengkombinasikannya dengan inertial measurement unit (IMU) yang merupakan unit yang terdapat didalam perangkat smartphone yang berfungsi untuk mendapatkan orientasi perkiraan posisi kamera perangkat. IMU juga dapat dikatakan sebagai pengukur tingkat sudut pada sebuah smartphone dengen menggunakan accelerometers dan gyroscopes.

3.6.3 Environmental Understanding

Pada proses inilah feature points yang telah diletakan pada tekstur bidang datar yang sudah dideteksi pada motion tracking diubah menjadi plane yang akan mengikuti kamera secara terus menerus. Untuk menyesuaikan ukuran dan luas permukaan yang terdeteksi, digunakanlah material dan shader khusus. Plane yang sudah dibentuk akan tetap berada pada tempatnya walaupun perangkat kamera berpindah-pindah. Permukaan yang memiliki perbedaan ketinggian akan tetap terdeteksi sebagai plane dengan shader warna yang berbeda sebagai penanda perbedaan itu sendiri.

Gambar 3.25 menampilkan coding untuk proses environmental understanding.

Gambar

Gambar 2. 1 Contoh Marker-Based Augmented Reality
Gambar 2. 2 Contoh metode Markerless
Gambar 3. 12 Storyboard scene “Gameplay Online”
Gambar 3. 13 Arsitektur Umum Aplikasi
+7

Referensi

Dokumen terkait

Berdasarkan hasil perbedaan yang signifikan dari kemampuan motorik kasar yang dilakukan pada 47 anak dari kelompok eksperimen bahwa hasil uji selisih dengan N-Gain

Kredit yang diberikan oleh bank didasarkan atas kepercayaan sehingga dengan demikian pemberian kredit oleh bank dimaksudkan sebagai salah satu usaha bank untuk mendapatkan

Data yang dirilis Bank Indonesia selalu menunjukkan bahwa rasio pembiayaan yang disalurkan perbankan syariah terhadap dana pihak ketiga (DPK) atau FDR selalu berkisar di

Rencana Kinerja Tahunan ini disusun berdasarkan pada Rencana Strategis (RENSTRA) Komisi Pemilihan Umum Kabupaten Bangka Tahun 2015-2019 serta Indikator Kinerja

Perbedaan hasil penelitian ini dengan penelitian sebelumnya adalah bahwa pada kedua obyek penelitian sebelumnya adalah perusahaan manufaktur yang yang merupakan

 Jadi, pemanasan global adalah merupakan meningkatnya temperatur di planet bumi secara global, meliputi peningkatan temperatur atmosfir, temperatur laut dan

Dengan menyebut nama Allah SWT yang maha pengasih lagi maha penyayang, kami panjatkan puja dan puji syukur atas kehadirat-Nya, yang