- Overdrive adalah sebuah game yang mempertandingan 2 bot mobil dalam sebuah ajang balapan.
- Pemenang dari permainan ini adalah player pertama yang melewati blok finish.
- Terdapat command-command dan powerups yang dapat dimanfaatkan di dalam permainan.
- Memanfaatkan algoritma Greedy dalam permainan Overdrive dengan membuat bot.
- Kode algoritma dibuat dengan melanjutkan kode awal yang telah disiapkan oleh developer.
-
Fix jika memiliki damage lebih dari 1
Alasannya agar memiliki max speed sebesar 9. Alasan kami tidak memilih damage lebih dari 0 karena setiap kali fix akan mengurangi damage sebesar 2, jadi rugi kalau masih memiliki 1 damage.
-
Accelerate jika speed sama dengan 0
Alasannya hanya sekadar untuk berjaga-jaga jikalau mobil tersebut berhenti.
-
Belok kiri ataupun kanan jika ada obstacle ataupun musuh di depan
Alasannya agar bisa meminimalkan damage yang diterima ataupun agar mobil kami tidak stuck di belakang mobil musuh.
-
Gunakan emp di saat musuh berada di depan, kiri, atau kanan
Alasannya untuk mengejar ketertinggalan dari musuh. Kami juga memprioritaskan powerup emp dahulu agar membuat musuh tidak tenang dalam berkendara.
-
Gunakan tweet di lane musuh dan blok dimana musuh berhenti saat accelerate
Alasannya agar mengganggu musuh di mana pun dan kapan pun selagi bisa. Kami meletakkan tweet di lane musuh berada dan blok dimana dia berhenti saat melakukan accelerate plus satu agar memaksimalkan kemungkinan memaksa musuh untuk berbelok.
-
Fix sebelum memanggil command boost jika damage sama dengan 1
Alasannya agar memaksimalkan kecepatan dari boost itu sendiri. Kami berpikir bahwa sia-sia jika menggunakan boost apabila max speed yang dimiliki tidak sama dengan kecepatan boost.
-
Gunakan boost
Alasannya agar mengejar ketertinggalan dari musuh ataupun semakin menjauh dari musuh. Kami menggunakan command boost terlebih dahulu sebelum accelerate karena kami ingin memaksimalkan kecepatan setelah boost tersebut habis.
-
Accelerate apabila speed akan bertambah
Alasannya agar memiliki kecepatan yang konstan di state max speed.
-
Gunakan oil jika musuh berada di belakang
Alasannya untuk mengganggu pergerakan musuh, sehingga dia akan terpaksa menghindari obstacle tersebut. Powerup oil kami prioritaskan terakhir karena kami merasa bahwa oil memiliki chance yang kecil untuk mengenai musuh.
-
Belok ke lane 2 atau 3 jika berada di pinggir lintasan
Alasannya agar di round selanjutnya bisa memiliki dua pilihan belok. Selain itu, alasan kami ingin bergerak ke tengah agar memperbesar kemungkinan pemanggilan command emp untuk menyerang musuh di saat kami tertinggal.
- Official Overdrive Game Engine: https://github.com/EntelectChallenge/2020-Overdrive/releases/tag/2020.3.4
- Java (minimal Java 8): https://www.oracle.com/java/technologies/downloads/#java8
- IntelIiJ IDEA: https://www.jetbrains.com/idea/
- NodeJS: https://nodejs.org/en/download/
- Visualizer (Optional) : https://entelect-replay.raezor.co.za/
- Pastikan terlebih dahulu requirement sudah terinstall semua
- Dalam folder starter-pack terdapat folder-folder, tetapi tenang untuk sekarang perhatikan salah satu folder bot, misal starter-bot
- Dalam folder tersebut terdapat file pom.xml yang berguna untuk mengenali project java di Intellij IDEA
- Pada Maven Toolbox di Intellij IDEA, tambahkan project java ini jika misalnya belum terindentifikasi dengan menggunakan tombol + dan memilih file pom.xml tadi
- Kemudian Build project ini dengan menggunakan Maven Toolbox pada bagian Lifecycle dan kemudian install
- Akan terbentuk folder bernama target yang isinya berisi file berekstensi .jar
- Copy folder src ke dalam folder starter-pack
- Di folder src tadi, buat folder target di dalam folder java
- Copy file .jar yang ada di folder bin ke dalam folder target yang dibuat sebelumnya
- Ganti nama folder src terluar jika diperlukan
- Pada game-runnner-config.json, set path "player-a" atau "player-b" menjadi "{src atau nama folder setelah diganti}/java"
- Jika konfigurasi sudah dilakukan, jalankan run.bat
- Akan tampil permainan pada command prompt dan rekap pertandingan akan tersimpan di folder match-logs
- Jika ingin menggunakan visualizer yang kami sarankan di bagian requirement, zip folder pertandingan yang ada di folder match-logs
- Klik link visualizernya
- Masukkan file zip tadi ke visualizer dengan menggunakan tanda + di bagian atas kiri
- Kemudian permainan dapat di eksplorasi dengan visualizer ini
NIM | Nama |
---|---|
13520021 | Gede Sumerta Yoga |
13520123 | Johannes Winson Sukiatmodjo |
13520126 | Ignasius Ferry Priguna |