- Katılım
- 3 Ocak 2025
- Mesajlar
- 645
- Elmaslar
- 325
- Puan
- 2.355
- Konum
- Amasya
- Minecraft
- Zyph0rr
Discord:
bosstrap
Minecraft dünyası, yüzeyde basit bir hayatta kalma oyunu gibi görünse de arka planda karmaşık algoritmalar ve matematiksel veri yapıları barındırır. Bu sistemler arasında teknik derinliği en yüksek olanlardan biri hiç şüphesiz Köy Yağmaları mekaniğidir. Bir yağma, sadece bir grup düşmanın rastgele bir köye saldırması değildir; oyun motorunun varlık takibi, dünya sınırlandırması ve etkinlik yönetimi sistemlerinin bir araya gelmesiyle oluşan teknik bir süreçtir.
Köy Yağmalarının Teknik Temelleri ve Başlangıç Koşulları
Bir yağmanın başlaması için oyunun "Kötü Kehanet" adını verdiği özel bir durum etkisinin oyuncu üzerinde tanımlanmış olması gerekir. Bu etki, oyun kodunda bir bayrak mekanizması olarak çalışır. Bir Devriye Kaptanı öldürüldüğünde, oyun oyuncunun veri dosyasına bu durumu işler. Teknik bir detay olarak, bu etkinin bir seviye sistemi vardır. Seviye arttıkça, oyunun ilerleyen aşamalarda çağıracağı düşman dalgalarının yoğunluğu ve donanım kalitesi de buna paralel olarak artış gösterir.
Ancak bu etkinin bir yağmaya dönüşmesi için "Köy" tanımının karşılanması şarttır. Minecraft’ın teknik altyapısında bir köy, estetik bir yerleşim birimi değil, belirli bir veri kümesidir. Bir alanın köy sayılabilmesi için en az bir geçerli yatak ve bu yatağa bağlı bir köylü bulunmalıdır. Oyuncu, Kötü Kehanet etkisiyle bu yatağın etrafındaki belirli bir etki alanına girdiğinde, oyun motoru "Yağma Durumu"nu tetikler.
Ancak bu etkinin bir yağmaya dönüşmesi için "Köy" tanımının karşılanması şarttır. Minecraft’ın teknik altyapısında bir köy, estetik bir yerleşim birimi değil, belirli bir veri kümesidir. Bir alanın köy sayılabilmesi için en az bir geçerli yatak ve bu yatağa bağlı bir köylü bulunmalıdır. Oyuncu, Kötü Kehanet etkisiyle bu yatağın etrafındaki belirli bir etki alanına girdiğinde, oyun motoru "Yağma Durumu"nu tetikler.
Yağma Merkezinin Belirlenmesi ve Alan Tanımı
Yağma tetiklendiği anda oyun, "Yağma Merkezi" adı verilen bir koordinat noktası belirler. Bu nokta genellikle köylülerin toplandığı bir zil veya geçerli bir yatağın koordinatıdır. Bu merkez belirlendikten sonra, oyun bu noktanın etrafında sanal bir küre çizer.
Bu kürenin yarıçapı genellikle 64 ile 96 blok arasındadır. Yağma sırasında ortaya çıkacak olan düşmanlar, bu merkezin dış halkasında, yani yaklaşık 64 blok uzaklıktaki bir çember üzerinde doğmaya zorlanır. Oyun motoru, bu doğma işlemini gerçekleştirmek için bir algoritma çalıştırır:
Bu kürenin yarıçapı genellikle 64 ile 96 blok arasındadır. Yağma sırasında ortaya çıkacak olan düşmanlar, bu merkezin dış halkasında, yani yaklaşık 64 blok uzaklıktaki bir çember üzerinde doğmaya zorlanır. Oyun motoru, bu doğma işlemini gerçekleştirmek için bir algoritma çalıştırır:
- Rastgele bir açı seçilir.
- Bu açıda, merkezden 64 blok ötede bir koordinat belirlenir.
- Bu koordinatın "opak bir blok" olup olmadığı ve üzerinde yeterli hava boşluğu bulunup bulunmadığı kontrol edilir.
- Eğer seçilen nokta bir uçurumun kenarı veya bir lav gölüyse, algoritma saniyenin küçük bir diliminde yeni bir nokta arar.
Bu teknik süreç, yağmacıların köyün ortasında değil, dışarıdan kuşatan bir ordu gibi görünmesini sağlar.
Dalga Mekaniği ve Birim Seçimi
Yağmalar, dalga tabanlı bir yapıya sahiptir. Toplam dalga sayısı, oyunun genel zorluk seviyesi ve oyuncunun üzerindeki Kötü Kehanet seviyesinin bir kombinasyonu ile hesaplanır. Kolay zorlukta 3, Normal zorlukta 5 ve Zor zorlukta 7 ana dalga bulunur.
Oyun, her yeni dalgada "Birim Havuzu"ndan seçim yapar. İlk dalgalarda sadece temel yağmacılar (arbalet kullananlar) çağrılırken, orta dalgalarda intikamcılar ve yıkıcılar devreye girer. Son dalgalarda ise oyunun en karmaşık yapay zekasına sahip varlıklarından biri olan uyandırıcılar sisteme dahil olur. Uyandırıcıların teknik açıdan önemi, onların sadece birer savaşçı değil, aynı zamanda başka varlıklar (veksler) çağıran "varlık fabrikaları" olarak kodlanmış olmalarıdır.
Her dalganın başında, üst kısımda gördüğümüz kırmızı bar dolar. Bu bar, o dalga için ayrılmış olan toplam "Varlık Sağlığı" miktarını temsil eder. Bir düşman öldürüldüğünde, barın doluluk oranı düşman biriminin kalan toplam sağlığına göre güncellenir.
Oyun, her yeni dalgada "Birim Havuzu"ndan seçim yapar. İlk dalgalarda sadece temel yağmacılar (arbalet kullananlar) çağrılırken, orta dalgalarda intikamcılar ve yıkıcılar devreye girer. Son dalgalarda ise oyunun en karmaşık yapay zekasına sahip varlıklarından biri olan uyandırıcılar sisteme dahil olur. Uyandırıcıların teknik açıdan önemi, onların sadece birer savaşçı değil, aynı zamanda başka varlıklar (veksler) çağıran "varlık fabrikaları" olarak kodlanmış olmalarıdır.
Her dalganın başında, üst kısımda gördüğümüz kırmızı bar dolar. Bu bar, o dalga için ayrılmış olan toplam "Varlık Sağlığı" miktarını temsil eder. Bir düşman öldürüldüğünde, barın doluluk oranı düşman biriminin kalan toplam sağlığına göre güncellenir.
Yapay Zeka ve Yol Bulma Algoritmaları
Yağmacıların yapay zekası, standart canavarlardan daha agresif ve hedef odaklıdır. Normal bir zombi rastgele dolaşırken, bir yağmacı "Hedef: Köy Merkezi" komutuyla hareket eder.
Teknik olarak bu, bir "Yol Bulma" algoritmasıdır. Yağmacılar, köy merkezindeki zili veya en yakın köylüyü bir hedef koordinat olarak belirlerler. Bu süreçte önlerindeki engelleri (kapılar, çitler) aşmaya odaklanırlar. Özellikle yıkıcılar, belirli blokları kırma veya içinden geçme yeteneğine sahip oldukları için dünya üzerindeki çarpışma kutularını (hitbox) sürekli kontrol ederler.
Eğer bir yağmacı bir çukura düşerse veya bir mağara sistemine girerek köy merkezinden çok uzaklaşırsa, oyunun "Zaman Aşımı" mantığı devreye girer. Yaklaşık 10-15 dakika boyunca köylüye veya oyuncuya ulaşamayan bir birim, yağmanın takılmasını önlemek için sistem tarafından otomatik olarak elenmiş sayılır.
Teknik olarak bu, bir "Yol Bulma" algoritmasıdır. Yağmacılar, köy merkezindeki zili veya en yakın köylüyü bir hedef koordinat olarak belirlerler. Bu süreçte önlerindeki engelleri (kapılar, çitler) aşmaya odaklanırlar. Özellikle yıkıcılar, belirli blokları kırma veya içinden geçme yeteneğine sahip oldukları için dünya üzerindeki çarpışma kutularını (hitbox) sürekli kontrol ederler.
Eğer bir yağmacı bir çukura düşerse veya bir mağara sistemine girerek köy merkezinden çok uzaklaşırsa, oyunun "Zaman Aşımı" mantığı devreye girer. Yaklaşık 10-15 dakika boyunca köylüye veya oyuncuya ulaşamayan bir birim, yağmanın takılmasını önlemek için sistem tarafından otomatik olarak elenmiş sayılır.
Yağma Sonrası Veri Güncellemesi ve Ödüllendirme
Yağma başarıyla tamamlandığında, oyun dünya verisinde "Köyün Kahramanı" durumunu aktif eder. Bu durum, oyuncunun kimlik numarasına (UUID) bağlı bir değişkendir. Bu değişken aktif olduğu sürece, köylülerin ticaret tablolarındaki fiyatlar üzerinden bir indirim çarpanı uygulanır.
Matematiksel olarak bu, ticaret arayüzündeki fiyatların belirli bir yüzde ile çarpılarak aşağı yuvarlanmasıdır. Ayrıca köylülerin oyuncuya hediye atma mekanizması, rastgele bir sayı üreteci üzerinden çalışır. Her meslek grubunun kendi "Hediye Tablosu" vardır ve oyun, oyuncu yakınlardayken bu tablodan belirli aralıklarla çekiliş yapar.
Matematiksel olarak bu, ticaret arayüzündeki fiyatların belirli bir yüzde ile çarpılarak aşağı yuvarlanmasıdır. Ayrıca köylülerin oyuncuya hediye atma mekanizması, rastgele bir sayı üreteci üzerinden çalışır. Her meslek grubunun kendi "Hediye Tablosu" vardır ve oyun, oyuncu yakınlardayken bu tablodan belirli aralıklarla çekiliş yapar.
Teknik Bir Açık: Yağma Çiftlikleri
Oyuncular, bu teknik işleyişi keşfettikten sonra "Yağma Çiftlikleri" adını verdikleri sistemler geliştirmişlerdir. Bu sistemler, oyunun doğma mantığını manipüle eder. Eğer köyün etrafındaki her yer "doğulamaz" (yapraklar, camlar veya alt basamaklar) bloklarla kaplanırsa ve sadece küçük bir alan "doğulabilir" bırakılırsa, oyun motoru tüm yağmacıları mecburen o küçük noktada doğurur. Bu, teknik bir hatadan ziyade oyunun kurallarının sınırlarını zorlayan bir mühendislik başarısıdır.