Bir kare ızgaraya dayanarak aşağıdaki algoritmayı kullanarak oldukça iyi görünümlü seviyeler elde etmeyi başardım:
İlk önce, bir oda grubu oluşturun. Rastgele parametreler odaların büyüklüğünü ve sayılarını tanımlayacaktır. Uyarlanabilir bir algoritma, büyük koridorlardan yapılmış bazı bölgeleri ve çok küçük odalardan bazılarını tanımlayabilir.
Ardından, tüm odaların birbirine bağlı olduğundan emin olmanız gerekir. Bunun için, her oda çiftinin arasında koridorları (diyelim ki A *) kazmak için bir yol gösterici kullanın, oyulmuş değil (duvarlar) ile karşılaştırıldığında mevcut alanlara (odalar veya diğer koridorlar) rastgele seçilmiş bir ağırlık verin. Ağırlıktaki fark küçükse, o zaman yeni koridorları kazmak makul derecede ucuz olacaktır ve algoritma bir odadan diğerine gitmek için birçok olasılıkla odalar arasında birçok koridor yapacaktır. Ağırlıktaki fark yüksek ise, algoritma mevcut odalardan ve koridorlardan geçmeyi tercih eder, yolları daha zorlaştırır ve belirli bir varış noktasına ulaşmak için daha az seçenekle tercih eder.
Bu, az sayıda parametreden, birbirlerini birbirine bağlayan odaların kovan görünümlü bir labirentine bağlayan küçük koridorlu seyrek masif salonlardan çok farklı görünüm seviyeleri yaratmanıza izin verir.
İşte oluşturulan seviye örneği.
Bu algoritmaya dayanarak, bölgeye bağlı duvar dekorasyonu ekleyebilir, koridorları küçültebilir veya büyütebilir, özel odalar yapabilir ve benzeri işlemleri yapabilirsiniz.