TIP 163. Game Engine. Topik 4 (Pert 5) Atribut Objek, Gerak Terkoordinasi, Blending. Dosen: Aditya Wikan Mahastama

dokumen-dokumen yang mirip
TIP 163. Game Engine. Topik 2 (Pert 3) AI Dalam Game dan Steering Behaviour. Dosen: Aditya Wikan Mahastama

TIP 163. Game Engine. Topik 1 (Pert 2) Game Engine dan Struktur Game HTML5 Sederhana. Dosen: Aditya Wikan Mahastama

TIP 163. Game Engine. Topik 5 (Pert 6) Graf, Representasi Dunia, dan Algoritma Pencari Jalur (Pathfinding) Dosen: Aditya Wikan Mahastama

Algoritma Greedy untuk AI dalam Permainan DotA

BAB I PENDAHULUAN. 1.1 Latar Belakang

OPTIMISASI TOTAL TEMPUH NPC PADA RTS GAME MENGGUNAKAN HARMONY SEARCH ALGORITHM. Herti Miawarni 1* Jl. A. Yani 114, Surabaya 60231, Telp.

Penggunaan Pohon Biner dalam Binary Space Partition untuk Membuat Dungeon Game Roguelike RPG

BAB V IMPLEMENTASI DAN EVALUASI. ketiga dalam metode waterfall, implementasi sistem. Implementasi sistem

GREENFOOT. Pendahuluan

BAB I PENDAHULUAN. fisik dan peras otak. Salah satunya adalah munculnya cabang Electronic Sports

SIMULASI AUTONOMOUS VEHICLE DI UNIVERSITAS KRISTEN SATYA WACANA SALATIGA

Arsitektur dan Organisasi

Workshop Singkat Membuat Game Shooter

PENGGUNAAN ALGORITMA BRUTE FORCE DALAM PERMAINAN PERMAINAN THE LEGEND OF DRUNKEN MAN

Pengaplikasian Pohon dalam Mekanisme Pengambilan Skill Game Dota 2

Algoritma Greedy dalam Strategi Permainan Centipede

Konsep I/O Programming

Penerapan Algoritma Greedy dalam Permainan Connect 4

BAB IV HASIL DAN UJI COBA

GRAFIKA GAME. Aditya Wikan Mahastama. Implementasi Grid dan Animasi Sederhana UNIV KRISTEN DUTA WACANA TEKNIK INFORMATIKA GENAP 1213

Mendesain Tabel Statistik Secara Profesional

Penggunaan Peluang dan Graf dalam Merancang Digital Game

BAB I PENDAHULUAN. Perkembangan yang amat pesat dari dunia teknologi. berimbas pula pada pesatnya perkembangan dunia game video.

TREKQ FLEET MANAGEMENT PROGRAM

Daftar kelompok Kelas Mahasiswa Angkatan 52 Program Pendidikan Kompetensi Umum Institut Pertanian Bogor

BAB IV METODOLOGI PENELITIAN. Ruang lingkup penelitian ini mencakup bidang fisiologi.

PENDAHULUAN. A. Berorientasi Objek. 1. Karakteristik dari Objek

c. Drawing Toolbar digunakan untuk menggambar data spasial atau mendigitasi pada lembar digitasi MapInfo.

UKDW BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB IV METODE PENELITIAN. Ruang lingkup penelitian ini mencakup bidang fisiologi. Penelitian ini menggunakan bentuk penelitian

Pengaturan Perilaku Pasukan Non Player Character menggunakan metode Flocking Behavior berbasis Agent pada permainan Real Time Strategy

Pemrograman Lanjut Review Class dan Object PTIIK

BAB III METODE PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer FMIPA Universitas Lampung

Implementasi Pohon Dalam Permainan Ragnarok Online Valkyrie Uprising

LAMPIRAN-LAMPIRAN. Kuisioner Analisis User 1. Berapakah umur Anda? a. < 15 b c d e. > Anda pria atau wanita?

Bab I PENDAHULUAN 1.1. Latar Belakang Masalah

UKDW BAB 1 PENDAHULUAN Latar Belakang

BAB IV HASIL DAN UJI COBA

BAB 4 IMPLEMENTASI DAN EVALUASI

OBJECT ORIENTED PROGRAMMING (OOP)

METODE CLUSTERING DENGAN ALGORITMA K-MEANS. Oleh : Nengah Widya Utami

BAB I PENDAHULUAN. 1.1 Latar Belakang Penelitian. Seiring dengan berkembangnya dunia usaha yang semakin pesat, maka

TIP DAN TRIK BEKERJA EFEKTIF DAN EFISIEN

BAB IV HASIL DAN PEMBAHASAN

SEMINAR NASIONAL PENINGKATAN KUALITAS PENULISAN KARYA ILMIAH STOK BINA GUNA, SABTU 16 SEPTEMBER 2017 PERBEDAAN PENGARUH LATIHAN SIDE SHUFFLE

BAB II TINJAUAN PUSTAKA

PENGUKURAN PERANGKAT LUNAK

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

BAB III METODOLOGI PENELITIAN

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

Pemilihan Monster yang Akan Digunakan dalam Permainan Yu-Gi-Oh! Capsule Monster Coliseum

PENGARUH LATIHAN FORMASI BERPUSAT TERHADAP KETERAMPILAN SERVIS SEPAK TAKRAW

BAB 5 IMPLEMENTASI DAN PENGUJIAN

Algoritma Prim sebagai Maze Generation Algorithm

BAB IV IMPLEMENTASI KARYA. dikerjakan, dan memiliki keterkaitan satu sama lain. Proses pembuatan game

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Penerapan Kombinatorial dan Penggunaan Pohon Keputusan pada Role Jungler dalam Permainan League of Legends

APLIKASI GAME ALIEN MENGGUNAKAN UNITY. : Dwi Handayani NPM : Pembimbing : Revida Iriana, S.Kom., MMSI

BAB III ANALISA DAN PERANCANGAN

Implementasi Map. Aditya Wikan M

IMPLEMENTASI ROLE PLAYING GAME BERBASIS FLASH (Studi Kasus Petualangan Fredo Bangkitnya Hantu Tanpa kepala) Bernard Renaldy Suteja, Freddie Setiawan

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

SIMULASI PERGERAKAN PASUKAN BERBASIS POTENTIAL FIELD SISWATI

Latihan Membuat Peta Tematik Sistem Koordinat Data Frame, TOC, Layer Pada Software Arc GIS 10.1

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

Aditya Wikan Mahastama

MINGGU II : DASAR C# Tujuan Pembelajaran. Materi

STRUKTUR DATA SORTING ARRAY

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB III ANALISA DAN PERANCANGAN

SIMPLE TUTORIAL - ADOBE DREAMWEAVER CS 5 Oleh: H. Heri Istiyanto, S.Si., M.Kom.

BAB 3 PENANGANAN JARINGAN KOMUNIKASI MULTIHOP TERKONFIGURASI SENDIRI UNTUK PAIRFORM-COMMUNICATION

BAB IV DESKRIPSI PEKERJAAN. media promosi digital bernama Advergame. Dalam kerja praktik ini penulis

Algoritma Divide and Conquer untuk Optimasi Pemberian Efek Aura pada Permainan DotA (Defense of the Ancient)

1. Dragon War (Pertempuran Naga)

2014 IMPLEMENTASI FUZZY LOGIC METODE MAMDANI UNTUK PENGEMBANGAN INTELLIGENT NON- PLAYER CHARACTER PADA GAME STRATEGY

BAB III METODE PENELITIAN

Penerapan Algoritma Greedy pada Permainan Fire Emblem

STRUKTUR DATA (3) sorting array. M.Cs

SIMULASI PERGERAKAN AGEN BERBASIS BOID DENGAN OPTIMASI NEIGHBORHOOD AVOIDANCE

BAB III ANALISA DAN PERANCANGAN

BAB I PENDAHULUAN. mereka melakukan gerakan-gerakan olahraga dalam kegiatan bermain. Dimana

BAB I PENDAHULUAN. Ekstrakurikuler adalah kegiatan yang dilakukan siswa-siswi sekolah atau

Perancangan Algoritma Greedy pada AI Permainan Turn Based Strategy

Nilai harapan suatu variabel acak x ditulis E (x) didefinisikan E (x) = Σ x. f (x) Var (x) = σ x 2 = E [ x E (x) ] 2 = E (x 2 ) { E (x) } 2

GAME KAZEL: PENYELAMATAN DESA DENGAN ACTIONSCRIPT 2 BERBASIS FLASH

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

Dasar Perancangan Game Bagian 1: Formal Element

BAB 2 LANDASAN TEORI. Perangkat lunak adalah perintah ( program komputer ) yang bila dieksekusi

1. TINGKATAN UMUR SEKOLAH SEPAKBOLA

OPTIMASI PENCAPAIAN TARGET PADA SIMULASI PERENCANAAN JALUR ROBOT BERGERAK DI LINGKUNGAN DINAMIS

BAB I PENDAHULUAN 1.1 Latar Belakang

1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian

PERSYARATAN PRODUK. 1.1 Pendahuluan Latar Belakang Tujuan

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

TKC306 - Robotika. Eko Didik Widianto. Sistem Komputer - Universitas Diponegoro

Penggunaan Graf dan Pohon dalam Game Digimon World Dusk

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

Transkripsi:

TIP 163 Game Engine Topik 4 (Pert 5) Atribut Objek, Gerak Terkoordinasi, Blending Dosen: Aditya Wikan Mahastama

Last Week Review Silakan kumpulkan tugas pemrograman kedua minggu lalu untuk direview bersama Apa yang anda temukan?

Last Week Addition: Atribut Objek Atribut objek adalah sifat yang dimiliki oleh sebuah objek game, dalam bentuk nilai yang dapat dikuantisasi. Kombinasi beberapa atribut objek dapat tampak seolah-olah sebagai perilaku objek (behavior) saat berinteraksi dengan objek lainnya. Atribut sebuah objek dapat dipengaruhi oleh objek lainnya.

Contoh atribut yang ada sejak game muncul pertama kali adalah life/health (nyawa), kemudian berkembang menjadi atribut-atribut lainnya seperti speed, agility, dsb. Contoh pseudocode struktur data atribut objek dan perubahannya adalah sebagai berikut: int hero.life = 100; int monster.life = 100; if (monster touches hero){ hero.life = hero.life 1;

if (hero hits monster){ hit = random (5..10); monster.life = monster.life hit; Untuk game yang kompleks, bisa terdapat juga atribut side dan group yang digunakan sebagai indikator pengelompokan beberapa objek dengan kesamaan pihak atau kesamaan peran.

Gerak Terkoordinasi Gerak terkoordinasi adalah bagaimana objek-objek yang merupakan bagian dari sebuah kelompok besar dapat bergerak secara teratur. Gerak yang teratur ini dapat berupa keseragaman gerak objek dalam suatu saat (disebut juga formasi atau formation). Bentuk lain adalah respon gerak yang muncul sebagai wujud locomotion dari behaviour berkelompok yang telah dibuat (coordinated response).

Formation Formasi mengatur agar gerakan setiap objek dikendalikan dalam bentuk barisan tertentu. Formasi ini pada umumnya mengikuti formasi militer yang sudah ada, gunanya untuk menjaga ritme gerak, menjaga keutuhan kelompok, dan ada pula yang berguna untuk melindungi objek yang lebih lemah. Setiap formasi pasti memiliki pusat formasi yang dapat berupa satu objek tertentu, atau koordinat tengah dari populasi objek terpilih. Koordinat ini dapat dicari

dengan rata-rata, menggunakan klasifikasi, atau clustering. Contoh pseudocode penentuan titik pusat dengan rata-rata posisi objek: total_x = 0; total_y = 0; for(i=0;i<objects;i++){ total_x = total_x + object[i].x; total_y = total_y + object[i].y; groupcenter_x = total_x / objects; groupcenter_y = total_y / objects;

Formation Setiap objek nantinya harus memiliki jarak yang teratur dari pusat formasi. Keteraturan ini dapat dicapai dengan menjaga jarak objek tersebut dengan jarak objek lain dalam formasi. Cara ini sebenarnya digunakan juga oleh manusia dalam mengatur barisan. Contoh pseudocode formasi melingkar dari sejumlah objek: fdistance = 10;

for(i=0;i<objects;i++){ if (distance_to_groupcenter > fdistance){ seek(groupcenter_x, groupcenter_y); for(j=0;j<objects;j++){ if(i!=j){ if (object[i]_distance_to_object[j] < fdistance){ flee_from(object[j]);

- Coordinated Response Respon terkoordinasi merupakan sebuah behaviour tree di mana objek-objek yang merupakan anggota sebuah kelompok akan memberikan reaksi yang sama (termasuk steering behaviour) saat ada perubahan tertentu pada atribut kelompok atau atribut anggota kelompok. Contoh coordinated response di antaranya: 1. Jika ada anggota kelompok yang diserang, maka mengubah formasi menjadi bertahan (dengan objek paling lemah berada di tengah), mengubah -

steering behavior setiap anggota menjadi seek atau pursue lawan, dan object behaviour menjadi mode tempur. 2. Jika ada anggota kelompok yang diserang dan tidak memungkinkan untuk melawan, anggota yang masih dalam jarak aman mencari tempat persembunyian. Coordinated response saat ini tidak hanya berorientasi gerak, tetapi lebih digolongkan pada pengambilan keputusan, sehingga pada ulasan masakini dimasukkan ke dalam game tactics.

Kombinasi Steering Behaviour Adalah kombinasi beberapa steering behaviour pada saat yang sama, sehingga locomotionnya akan berupa satu arah gerak resultan yang merupakan perpaduan dari dua atau lebih steering behaviour. Saat ini hampir semua game menerapkan kombinasi, karena kondisi game world yang kompleks. Contohnya adalah seorang karakter yang akan menuju kota, (seek posisi kota), kemudian diganggu monster, akan mencoba evade sambil mempertahankan seek-nya.

Blending Langsung mengkombinasikan beberapa steering behaviour yang ada, sehingga mendapatkan resultan langsung. Contoh pada pseudocode berikut: Function go_down(){ //fungsi steering y = y + 1; //locomotion Function go_right(){ x = x + 1;

main(){ go_down(); if(enemy_seen){ go_right(); Jika melihat adanya musuh yang menghalangi, maka karakter di atas akan tetap bergerak ke bawah ditambah dengan bergerak ke kanan.

Weighted Blending Mengkombinasikan beberapa steering behaviour yang ada dengan memberikan bobot, sehingga arah gerak resultan dapat disesuaikan dengan keperluannya. Contoh pada pseudocode berikut: Function go_down(){ //fungsi steering y = y + 1; //locomotion Function go_right(int enemydist){ x = x + ((1/enemydist) * 5);

main(){ go_down(); if(enemy_seen){ enemydist = get_enemy_distance; go_right(enemydist); Jika melihat adanya musuh yang menghalangi, maka karakter di atas akan tetap bergerak ke bawah ditambah dengan bergerak ke kanan sesuai dengan jarak musuh, semakin dekat semakin menghindar.

Priority Blending Mengkombinasikan beberapa steering behaviour yang ada tetapi memberi prioritas arah steering bagi yang lebih penting jika terlalu menyimpang. Contoh pada pseudocode berikut: Function go_down(){ //fungsi steering y = y + 1; //locomotion Function go_right(){ x = x + 1;

main(){ go_down(); if(enemy_seen){ if (x < 10){ //limiting priority go_right(); Jika melihat adanya musuh yang menghalangi, maka karakter di atas akan tetap bergerak ke bawah ditambah dengan bergerak ke kanan, tetapi jika

terlalu jauh ke kanan, akan semakin jauh dari target, sehingga pergerakan menghindar dibatasi sampai jarak tertentu saja.

Cooperative Arbitration Melakukan blending dengan memunculkan steering behaviour baru pada kondisi tertentu saja. Contoh: sudah dilakukan pada semua contoh di atas!

Eksperimen Kombinasi Steering (1): 1. Dari game yang terakhir, buatlah agar hero bergerak menuju ke titik tertentu yang sudah ditentukan dengan click mouse (hero seek a coordinate). 2. Jika sepanjang jalan menuju ke titik tersebut hero menemui wall (satu wall saja yang boleh menghalangi jalan), hero otomatis menghindar. Boleh pilih menggunakan blending yang mana (salah satu saja).

Eksperimen Kombinasi Steering (2): 1. Buatlah goblin yang wandering dengan cara: goblin seek ke titik tertentu, kemudian setiap beberapa milidetik, titik tersebut berubah secara acak. Jika goblin melihat hero dalam jarak pandang minimum, goblin memburu hero. Jika hero terhalang wall, goblin tidak dapat melihat (kembali wandering). 2. Dari game yang terakhir, buatlah agar hero bergerak menuju ke titik tertentu yang sudah ditentukan dengan click mouse (hero seek a coordinate).

3. Jika sepanjang jalan menuju ke titik tersebut hero menemui goblin, hero otomatis mencari tempat persembunyian (wall).