Skip to content

Entelect Challenge 2020 - Overdrive Bot Modification

Notifications You must be signed in to change notification settings

apwic/JnCK-Entelect-Challenge-2020

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JnCK-bot Modification to Entelect Challenge 2020 - Overdrive

Tugas Besar Mata Kuliah IF2211 Strategi ITB. Built by Kelompok 2 - JnCK

Table of Contents

General Information

Overdrive adalah sebuah game yang mempertandingan 2 bot mobil dalam sebuah ajang balapan. Setiap pemain akan memiliki sebuah bot mobil dan masing-masing bot akan saling bertanding untuk mencapai garis finish dan memenangkan pertandingan. Agar dapat memenangkan pertandingan, setiap pemain harus mengimplementasikan strategi tertentu untuk dapat mengalahkan lawannya.

Pada tugas besar ini, setiap kelompok diminta untuk membuat sebuah bot yang akan diadu dengan bot kelompok lain pada permainan Overdrive di kompetisi Tubes 1. Bot tersebut mengimplementasikan algoritma greedy yang berperan sebagai strategi bot agar dapat menyelesaikan fungsi objektif dari permainan Overdrive, yaitu memenangkan permainan dengan cara mencapai garis finish lebih awal atau mencapai garis finish bersamaan tetapi dengan kecepatan lebih besar atau memiliki skor terbesar jika kedua komponen tersebut masih bernilai imbang.

Our Approach

Algoritma yang kelompok kami terapkan adalah algoritma greedy (sesuasi dengan spesifikasi tubes). Greedy yang digunakan adalah hasil penggabungan dari tiga aspek dasar permainan yaitu cautious yang mengurus pergerakan bot dalam memilih dan menghindari obstacle, opportunist mengurus segala hal dalam penggunaan power up untuk kepentingan bot kami sendiri, dan destructive berfungsi dalam penggunaan power up penyerangan untuk dapat membuat bot musuh semakin tertinggal ataupun menghentikan gerakan mereka. Hasil dari penggabungan ketiga aspek tersebut menjadikan JnCK-bot sebagai bot yang all-rounder, dengan kemampuan seimbang antara penggunaan power up menyerang maupun bertahan dan juga mampu menganalisis lane terbaik.

Greedy yang dilakukan kurang lebih untuk mencari lane terbaik digunakan greedy terhadap weight tiap lane, dengan weight ditentukan berdasarkan banyaknya power up dan juga terrain. Untuk penggunaan power up aspek opportunist juga dengan pendekatan yang mirip yaitu mencari lane dengan weight paling optimum untuk melakukan power up. Sedangkan, untuk power up penyerangan dilakukan pengecekan terhadap kondisi bot saat ini lalu jika kondisi-kondisi terpenuhi maka akan dipilih power up terbaik untuk digunakan berdasarkan weight (prioritas).

Technologies Used

  • Java (Maven)
  • NodeJS

Setup

Untuk menjalankan permainan dibutuhkan:

  • Java Development Kit (Minimal 8)
  • IntelliJ IDEA
  • NodeJS
  • Apache Maven
  • Starter Pack Overdrive, bisa diunduh disini

Untuk menggunakan bot sebenarnya tidak perlu di-build lagi karena sudah ada versi build paling baru pada commit terakhir,jika ingin melakukan build:

  • Buka folder repository pada IntelliJ IDEA
  • Akan muncul pop-up untuk melakukan load terhadap Maven Projet atau jika tidak muncul bisa klik kanan pada pom.xml lalu Add to maven project
  • Load Maven Project tersebut
  • Di kanan atas nanti terlihat ada tulisan "Maven", klik tulisan tersebut
  • Lalu klik "JnCK-bot", "Lifecycle", dan install
  • Hasil dari build tersebut akan muncul di folder bin

Usage

Pada repository tersedia source code beserta file jar dari bot yang kelompok kami buat. Untuk menggunakannya:

  • Download starter pack dari Overdrive untuk bisa menjalankan permainan
  • Extract starter pack tersebut
  • Lakukan clone atau unduh repository ini
  • Tempatkan folder repository pada root folder yang sama tempat meng-extract starter pack Overdrive.
  • Edit konfigurasi bot pada game-runner-config.json.
  • Pilih 'player-a' ataupun 'player-b'
  • Edit path pada salah satu player yang dipilih menjadi menjadi "./" + folder repository
  • Jalankan command start run.bat atau klik dua kali pada file run.batdi file explorer.

Project Status

Project ini sudah selesai

Room for Improvement

Room for improvement:

  • Strategi algoritma yang digunakan pada bot ini merupakan strategi greedy sebagai pemenuhan kriteria tugas besar. Pada dasarnya algoritma greedy belum tentu menghasilkan hasil yang terbaik,sehingga untuk improvement bisa dilakukan percobaan terhadap jenis-jenis algoritma lainnya.
  • Jenis greedy yang kelompok kami gunakan juga mungkin belum menjadi yang paling optimum, sehingga bisa dilakukan eksplorasi terhadap alternatif-alternatif greedy yang lainnya.
  • Bot kami merupakan bot all-rounder yang tidak menggunakan strategi khusus pada skenario tertentu, sehingga mungkin bisa dilakukan berbagai macam strategi cheesy yang memungkinkan.

Acknowledgements

  • Projek ini dikerjakan untuk memenuhi tugas besar mata kuliah IF2211 Strategi Algoritma
  • Terima kasih kepada seluruh dosen pengajar mata kuliah IF2211 dan asisten

Contact

Created by:

About

Entelect Challenge 2020 - Overdrive Bot Modification

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%