1

GameAI

I. Jaringan Saraf-GameAI

Perkembangan kecerdasan buatan bersifat omni-directional. Selain mengklasifikasikan AI, ini juga dapat diterapkan pada bidang game, menggunakan algoritme kecerdasan buatan yang relevan untuk mengotomatiskan AI.

AlphaGo, program AI pertama yang memenangkan juara dunia, menggunakan algoritma pembelajaran mendalam dari jaringan saraf untuk belajar.

II. Prinsip GameAI

Prinsip GameAI mirip dengan Classifier: semuanya didasarkan pada jaringan saraf.

Seperti gambar di bawah ini, neural network lengkap berisi input layer, hidden layer dan output layer.

  • Input layer: kumpulkan informasi, yaitu perubahan data waktu nyata dalam game.
    • Misalnya: koordinat sprite, HP pemain, jumlah musuh , dan lain sebagainya.
  • Hidden layer: mengoperasikan dan memproses data yang dikumpulkan.
  • Output layer: hasil klasifikasi keluaran, yaitu keputusan yang kita buat saat bermain game.
    • Contoh: mengontrol pergerakan sprite, mengontrol sprite untuk melompat, mengontrol sprite untuk meluncurkan peluru, dan lain sebagainya.

Jadi, agar GameAI membuat keputusan yang tepat, kita juga perlu melatih seluruh struktur jaringan saraf untuk mendapatkan model yang kita butuhkan.

III. Mode Pelatihan

  • Dalam pelatihan GameAI , kami memiliki dua mode pembelajaran: pembelajaran yang diawasi dan pembelajaran tanpa pengawasan .

Ambil game Flappy Bird sebagai contoh untuk menunjukkan cara menggunakan GameAI untuk membuat kecerdasan buatan memainkan Flappy Bird sendiri.

Mari kita lihat script Flappy Bird:

Buat variabel global untuk sprite "bird": Yspeed .

Saat kecepatan ini berkurang, posisi Y burung akan berubah sesuai dengan nilai kecepatan Y, yang mensimulasikan penurunan konstan burung karena gravitasi.

Saat mouse diklik, atur nilai Yspeed menjadi positif.

Pada titik ini, burung akan melompat jauh dan terus jatuh. Saat ada kolom yang disentuh, permainan selesai.

Saat permainan dimulai, kurangi posisi X sprite “kolom bawah” terus menerus untuk mensimulasikan efek kolom selalu bergerak ke kanan.

Saat "kolom bawah" meninggalkan tepi kiri layar (X <-370), pindahkan ke sisi kanan layar.

Ketika "kolom bawah" bergerak ke posisi tengah (X = -100), burung akan melewati kolom, dan variabel "skor" akan meningkat 1.

Setelah itu, pindahkan posisi "kolom atas" ke posisi "kolom bawah" secara konstan, dan tingkatkan posisi Y "kolom atas" sebesar 1100 secara konstan.

Ini adalah skrip dari sprite utama dalam game ini.

Setelah memahami blok permainan ini, kami memilih burung sebagai peran AI dan membiarkan burung mulai belajar.

1. Pembelajaran yang diawasi

a. Inisialisasi model

Pilih burung sebagai peran AI, dan inisialisasi model: model 1.

Kita dapat mengesampingkan jumlah input layer dan output layer untuk sementara, dan mengatur hidden layer terlebih dahulu.

Untuk Flappy Bird, kami merekomendasikan satu lapisan dari 4 neuron.

b. Tentukan informasi masukan dan keluaran

① Tentukan informasi masukan

Kami telah memilih dua fitur: yang posisi Y dari "burung" dan "kolom bawah".

( Harap catatan: mengatur poin pusat untuk posisi yang ditunjukkan seperti di bawah ini: pada middel burung dan bagian atas tengah "kolom yang lebih rendah". )

② Tentukan informasi keluaran

Saat kami bermain game, kami memiliki dua jenis operasi: tidak melakukan apa-apa dan mengklik mouse.

Oleh karena itu, dalam GameAI, ada dua hasil keluaran: 1. tidak ada tindakan; 2. membuat burung terbang.

Untuk menjalankan tindakan peran AI, kita harus menggunakan blok fungsi untuk merangkum peristiwa penerbangan yang dipicu oleh klik mouse.

Kemudian setel peran AI untuk menggunakan tindakan: "tidak ada tindakan" dan "terbang".

③ Kondisi kematian peran AI

Mengatur kematian kondisi dari peran AI:

Dan atur untuk mendapatkan fitur real-time dari peran AI:

Tidak seperti Pengklasifikasi, nilai eigen input di GameAI akan berubah secara real time.

④ Konfirmasikan jumlah lapisan masukan dan lapisan keluaran

Setelah mengkonfirmasi informasi masukan dan keluaran, ingatlah untuk mengisi jumlah lapisan masukan dan keluaran di lokasi model inisialisasi untuk menyelesaikan penyiapan seluruh model.

Fitur dari layer masukan adalah "posisi Y burung" dan "posisi Y kolom bawah", sehingga jumlah layer masukan adalah 2.

Hasil layer keluaran adalah “no action” dan “fly”, sehingga jumlah layer keluaran juga 2.

#### c. Pelatihan dan pencatatan data

Setelah menyiapkan model dan informasi masukan dan keluaran, kami akan mulai melatih GameAI :

Dalam supervised learning, kita perlu memainkan game sendiri terlebih dahulu, dan mencatat pengoperasian dalam game tersebut sebagai data pelatihan.

Setelah pelatihan dan perekaman, pelatihan dapat dihentikan dan data dapat disimpan di model 1.

Pembelajaran dari data pelatihan ini adalah pembelajaran yang diawasi.

d.  Algoritma propagasi-kembali

Saat peran AI mati, kita dapat terus menggunakan " Algoritma Propagasi-Kembali " untuk mengoptimalkan model yang dipilih.

Setelah mengoptimalkan data pelatihan yang direkam, model akan meniru tindakan dalam data pelatihan dan terus bertindak.

Jika Anda ingin mempertahankan hasil pelatihan sebelumnya setelah pelatihan, ingatlah untuk menghapus blok yang menginisialisasi model dan menjalankan proyek lagi.

e. Gunakan modelnya

Saat model menyelesaikan pelatihan, kita dapat menggunakannya untuk membiarkan peran AI membuat keputusannya sendiri dan memainkan game secara otomatis.

Hubungkan blok "Peran AI membuat keputusan".

Dengan cara ini, peran AI dapat membuat keputusan berdasarkan fitur saat ini, yaitu, "tidak ada tindakan" atau "terbang", dan memainkan game itu sendiri.

  • Flappy Bird dengan pembelajaran yang diawasi

Klik gambar untuk mencoba proyek ini. Anda dapat membeli kode proyek ini dan melihat cara kerjanya ~

2. Pembelajaran tanpa pengawasan

Pembelajaran yang diawasi setara dengan mengajarkan AI cara bermain game dengan menggunakan algoritma propagasi kembali.

Pembelajaran tanpa pengawasan adalah membiarkan AI belajar bermain game sendiri dengan menggunakan algoritma evolusi.

Dalam pembelajaran GameAI tanpa pengawasan, model awal dihasilkan secara acak daripada dari pelatihan.

Dengan menghasilkan sejumlah besar model acak untuk menjaga peran AI tetap dalam permainan. Beberapa dari model ini akan segera dihilangkan, tetapi beberapa bisa mendapatkan skor yang sangat tinggi.

Kemudian, melalui algoritma evolusi, struktur model dengan skor tinggi dipertahankan, dan seperti organisme. Mereka berkembang di antara mereka sendiri.

Akhirnya, model dengan skor yang lebih tinggi, kinerja yang lebih baik dan generasi selanjutnya yang lebih kuat dikembangkan.

Sekali lagi, ambil permainan Flappy Bird sebagai contoh untuk melihat apa itu pembelajaran tanpa pengawasan:

a. Inisialisasi model

Baik dalam pembelajaran yang diawasi dan pembelajaran tanpa pengawasan, kita harus memilih burung sebagai peran AI, dan menginisialisasi model: model 1.

Atur lapisan teka-teki sebagai satu lapisan dari 4 neuron:

Sedangkan untuk pembelajaran tanpa pengawasan, jika hanya satu sprite dijalankan pada satu waktu, efisiensinya terlalu rendah.

Jadi kita perlu mengatur lebih banyak sprite. Di sini, kita dapat mengatur jumlah sprite untuk setiap putaran menjadi 100:

b. Variabel entitas dan acara dimulai

Agar 100 peran AI (burung) berjalan secara independen, kita perlu mengubah beberapa pengaturan game: variabel entitas dan acara dimulai.

① Tetapkan variabel entitas

Untuk permainan ini, kita perlu mengubah variabel global " Yspeed " burung menjadi variabel entitas.

Ubah variabel yang digunakan di blok:

② Kejadian dimulai

Karena membutuhkan waktu untuk mengkloning 100 burung, untuk menghindari beberapa burung kloning pertama bergerak mendahului yang lain, kita perlu mengubah kondisi pemicu di awal permainan menjadi "ketika AI Game dimulai" untuk membuat semua burung bertindak waktu yang sama.

c  Tentukan informasi masukan dan keluaran

① Tentukan informasi masukan

Kita telah memilih dua fitur: yang Y posisi dari "burung" dan "kolom bawah".

② Tentukan informasi keluaran

Saat kita bermain game, kita memiliki dua jenis operasi: tidak melakukan apa-apa dan mengklik mouse.

Oleh karena itu, dalam GameAI, ada dua hasil keluaran: 1. tidak ada tindakan; 2. membuat burung terbang.

Untuk menjalankan tindakan peran AI, kita harus menggunakan blok fungsi untuk merangkum peristiwa penerbangan yang dipicu oleh klik mouse.

Kemudian setel peran AI untuk menggunakan tindakan: "tidak ada tindakan" dan "terbang".

③ Kondisi kematian peran AI

Mengatur kematian coditions dari peran AI:

Dan atur untuk mendapatkan fitur real-time dari peran AI:

Tidak seperti Pengklasifikasi, nilai masukan eigen di GameAI akan berubah secara real time.

④ Konfirmasikan jumlah lapisan masukan dan lapisan keluaran

Setelah mengkonfirmasi informasi masukan dan keluaran, ingatlah untuk mengisi jumlah lapisan masukan dan keluaran di lokasi model inisialisasi untuk menyelesaikan penyiapan seluruh model.

d.  Keputusan GameAI

Biarkan AI membuat keputusannya sendiri: "tidak ada tindakan" atau "terbang".

e. Algoritma evolusi

Ketika suatu peran AI sudah mati, mencatat skor tersebut; ketika semua peran AI mati, Anda dapat menemukan model yang lebih baik untuk batch ini.

Saat semua peran AI mati, gunakan "Evolution Algorithm" untuk mengoptimalkan model, dan mulai ulang GameAI untuk prediksi berikutnya.

Jika Anda ingin mempertahankan hasil pelatihan sebelumnya setelah pelatihan, ingatlah untuk menghapus blok yang menginisialisasi model dan menjalankan proyek lagi.

Hanya dengan cara ini program dapat terus mengoptimalkan model berdasarkan model 1 sebelumnya.

f. Gunakan modelnya

Saat model menyelesaikan pelatihan, kita dapat menggunakannya untuk membiarkan peran AI membuat keputusannya sendiri dan memainkan game secara otomatis.

Gunakan model dan mulai GameAI.

  • Flappy Bird dengan pembelajaran tanpa pengawasan

Klik gambar untuk mencoba proyek ini. Anda dapat membeli kode proyek ini dan melihat cara kerjanya ~

IV. Gunakan model untuk mengembangkan game AI

Jika kita puas dengan modelnya, kita juga bisa menggunakan model AI untuk membuat game AI.

Apakah kita menggunakan pembelajaran yang diawasi atau pembelajaran tanpa pengawasan, model terakhir yang disimpan akan disimpan dalam file bcm.

Kemudian kita bisa langsung membiarkan burung bermain game secara otomatis berdasarkan model 1:

Harap diperhatikan: tindakan dan fitur peran AI harus sama dengan yang ada dalam pelatihan.

Kemudian kita bisa mengembangkan game ini seperti di bawah ini:

1.Biarkan pemain bermain dengan peran AI

2.Kontrol kolom untuk menambah kesulitan