Usia perang-ai
Age of War AI, sebuah proyek yang saya habiskan untuk waktu yang kuat, yang berubah menjadi kode spagheti besar -besaran. Itu adalah proyek besar pertama saya dan itu menunjukkan kepada saya berapa banyak lagi yang harus saya pelajari karena saya kurang (dan saya masih kemungkinan besar) di semua bidang. Dalam konteks proyek ini saya melakukan hal berikut:
Bagaimana Tidak Melakukan Proyek
- Dapatkan permainan Vanilla Age of War, buat modul yang mengekstrak data melalui perpustakaan OpenCV saat permainan berlangsung dan masukkan ke dalam algoritma yang rapi. Yang tidak saya sadari adalah bahwa mengevaluasi 30 hingga 50 agen pada permainan yang tidak mempercepat dan waktu bermain rata-rata 10 menit per sesi membutuhkan banyak waktu untuk berlatih dan tidak menghasilkan hasil yang signifikan
- Dapatkan mesin cheat, sadari itu tidak berfungsi dengan game khusus ini untuk siapa yang tahu alasan apa, kemudian temukan dekompiler untuk permainan flash dan suntikkan skrip ke dalam game yang memicu file teks untuk menghindari seluruh hal opencv untuk mendapatkan nilai. Mendapat hasil yang sedikit lebih baik karena saya berhasil mempercepat game X2 dengan mesin cheat tetapi masih kurang.
- Pergi Persatuan. Karena saya sudah menemukan jalan masuk ke kode permainan, saya membalikkan rekayasa semua mekanika IT dan membuat simulasi yang cukup setia dalam persatuan yang memiliki parameter yang sama persis dengan game aslinya.
- Simulasi 50 lingkungan dalam persatuan dengan kecepatan 10x dan buat mereka berkomunikasi melalui TCP dengan naskah Python saya yang sekarang memiliki manajer dewa yang rapi untuk semua lingkungan dan tindakan masing -masing. Di sini saya benar -benar mulai melihat beberapa hasil yang signifikan dan strategi mengembangkan dan mengelola untuk menang dalam mode normal yay. Tapi saya ingin moe
- Beralih sepenuhnya pada agen ML Unity pada dasarnya meninggalkan skrip Python, kereta api dan agen dengan PPO dan mendapatkannya setelah berton -ton mengubah parameter dan fungsinya membuatnya memiliki strategi yang cukup baik yang memenangkan permainan dalam mode keras Hard
- UJI pada permainan asli dan rekam kemenangannya dan sadari Anda kalah 2 bulan pada proyek yang bisa selesai dalam waktu kurang dari 3 minggu
- Masih membuat perpustakaan visualisasi untuk rapi menggunakan manim mesin matematika karena saya menemukan beberapa video youtube keren tentang topik yang tidak mempublikasikan repositori mereka
Anda dapat melihat ikhtisar rasa sakit ini di sini - saya akan kembali 100% ke saluran ini untuk mendapatkannya setidaknya 1m tetapi untuk saat ini saya memiliki tujuan lain untuk dikejar.
Berlari di Python 3.7.9
Input:
- Jumlah pasukan dalam pelatihan (1 input)
- Musuh HP - Persentase Total Kesehatan (1 Input)
- HP Saya - Persentase Total Kesehatan (1 Input)
- Uang - dinormalisasi dengan biaya unit dasar (uang/cost_of_basic_unit) (1 input)
- XP - Dapat meningkatkan usia atau tidak (1 input)
- Dapat mengaktifkan kemampuan - cooldown 0 hingga 1 (1 input)
- Pasukan saya di tanah tipe 1, 2, 3, 4 (4 input)
- Pasukan musuh di tanah tipe 1, 2, 3, 4 (4 input)
- Jumlah slot meriam yang tersedia (1 input)
- Player Age - One Hot Encoded (5 input)
- Usia Musuh - Satu Hot Encoded (5 Input)
- Array dengan menara dan menara usia (maks 4) (1 input untuk tipe karena mereka semakin kuat dan 1 input untuk kehancuran usia) (2 untuk setiap slot) (8 input)
- Di mana pertempuran saat ini terjadi (0-1 pangkalan Anda ke pangkalan musuh) (1 input)
Output:
- Buat Pasukan Tingkat 1, 2, 3 (3 tindakan)
- Buat Pasukan Tingkat 4 untuk Usia Luar Angkasa (1 aksi)
- Beli slot meriam (1 aksi)
- Beli Cannon Tier 1, 2, 3, slot pertama yang tersedia (3 tindakan)
- Jual Cannon di slot tertentu (4 tindakan)
- tunggu (1 tindakan)
- Gunakan kemampuan
Ketergantungan:
- Numpy
- Dayung OCR
- Open-cv
- SCIPY
- rapi-python
pip install numpy paddlepaddle paddleocr opencv-python scipy neat-python
Aset hanya berfungsi untuk resolusi spesifik itu jika Anda ingin memodifikasi gim ulang Anda harus mengubah ukuran aset yang sesuai (misalnya: buat gim dan aset x% lebih kecil)
Anda dapat mengunduh arsip yang saya gunakan untuk game dari sini