Saya berhasil mendapatkan level yang cukup baik dengan menggunakan algoritma berikut, berdasarkan pada kotak persegi:
Pertama, buat satu set kamar. Parameter acak akan menentukan ukuran kamar dan jumlahnya. Algoritma adaptif bahkan dapat mendefinisikan beberapa zona yang terbuat dari lorong besar, dan lainnya dari ruangan yang sangat kecil.
Kemudian, Anda perlu memastikan bahwa semua kamar terhubung satu sama lain. Untuk ini, jalankan pathfinder untuk menggali koridor (misalkan, A *) di antara setiap pasangan kamar, memberikan bobot yang dipilih secara acak untuk ruang yang ada (kamar atau koridor lainnya) dibandingkan dengan ruang yang belum diukir (dinding). Jika perbedaan beratnya kecil, maka menggali koridor baru akan cukup murah, dan algoritme akan membuat banyak koridor di antara kamar, dengan banyak kemungkinan untuk berpindah dari satu tempat ke tempat lain. Jika perbedaan beratnya tinggi, maka algoritme akan lebih suka melewati ruang dan koridor yang ada, membuat jalur lebih berliku, dan dengan lebih sedikit pilihan untuk mencapai tujuan tertentu.
Ini memungkinkan Anda, dari sejumlah kecil parameter, untuk menciptakan tingkat tampilan yang sangat berbeda, dari ruang besar yang jarang dengan koridor kecil yang menghubungkannya ke labirin sarang yang tampak dari kamar-kamar yang saling berhubungan erat.
Berikut adalah contoh level yang dihasilkan.
Berdasarkan algoritma ini, Anda dapat menambahkan hiasan dinding yang tergantung pada zona, membuat koridor lebih kecil atau lebih besar, membuat kamar khusus, dan sebagainya.