ERGGalata
← Devlog
İstemci

Arazi shader'ı hiç derlenmiyordu

Zemin haftalardır griydi. Doku, ışık ve malzeme tek tek denendi, hiçbiri sonucu değiştirmedi. Sebep bir satırlık tip hatasıydı.

Sorun

Arazi renksizdi. Kayalar, toprak, kavruk zemin, hepsi aynı ölü griydi.

Doku çözünürlüğü artırıldı, ışık şiddeti oynandı, malzeme karışım oranları değiştirildi. Hiçbiri işe yaramadı. Gri, hep aynı griydi.

Teşhis

Shader hiç derlenmiyordu.

fbm gürültü fonksiyonu vec2 bekliyordu, çağrı vec3 gönderiyordu. Godot bunu derleme hatası olarak bildiriyor ama sahne yine de açılıyor. Hatalı shader sessizce varsayılan malzemeye düşüyor. Varsayılan malzeme ise gri.

Yani haftalardır ayarlanan hiçbir parametre okunmuyordu. Ayar dosyasında ne yazarsa yazsın ekrandaki sonuç değişmiyordu, çünkü o dosyayı okuyan kod çalışmıyordu.

Bu, ölçüm aracına güvenmenin bedeli. “Değeri değiştirdim, ekran değişmedi” gözlemi iki şey anlamına gelebilir: değer etkisiz, ya da değeri okuyan şey ölü. İkincisini kontrol etmek beş saniye sürüyordu.

Aynı gün ikinci bir sessiz ölü bulundu: project.godot içinde altı render ayarı yorum satırlarına yapışık yazılmıştı. Godot onları ayar olarak hiç görmemişti. Dosyada duruyorlardı, açık görünüyorlardı, uygulanmıyorlardı.

Ne yapıldı

Shader düzeltildi ve zemin ilk kez gerçek renginde göründü. Ardından krater bölgesi baştan kuruldu.

Krater artık Gaea’nın erozyon simülasyonundan geliyor. Blender’dan headless bir köprü yazıldı, tam daire ve sert varyant üretildi. Çukurun tabanı düzlük değil, aşınmış bir çanak.

Delik uçuruma dönüştü: yarıçapın 0,26’sı, düz taban kaldırıldı, normalleri hesaplanmış mesh. Kraterin çevresine 25.689 kaya dizildi (Poly Haven kaynaklı, CC0 malzeme seti: kavruk, moloz, duvar).

Kuzey masifi tek yüzeye çevrildi. Sırt +150 metreden +230 metreye çıkarıldı; ilk hâli tepe gibi kalmıştı, gerçek bir dağ olması istendi.

Deniz üç ayrı kök nedenle uğraştırdı: krater çanağı −250 m’ye indiği için su düzlemi kraterin içini dolduruyordu; deniz alttan görünüyordu; uzak deniz kara altında da çiziliyordu. Üçü de ayrı ayrı kesildi.

Bitkiler ve ev dizimi

Ağaç sistemi çift katmanlı çalışan bir yapıya geçti; çalışma zamanında chunk chunk kuruluyor ve yıkılıyor. 11 paketten 42 yeni ağaç tipi türetildi.

Ev dizimi 38.217 eve çıktı ve o da chunk sistemine geçti.

Bu arada kritik bir veri kaybı yakalandı: dizim düzenindeki “Elle Al” işlemi, elle dizim dosyasındaki diğer tabloları siliyordu. Elle dizilen her şey tek bir yanlış tıklamayla gidebilirdi.

FPS

Harita ekranındaki konum şeridi her karede 38.460 yol noktasını tarıyordu.

50 FPS’ten 404 FPS’e çıktı.

Sonuç

Günün asıl dersi shader değil, sessiz düşmeler. Godot hatalı shader’ı çizmeyi reddetmiyor, gri çiziyor. Yorum satırına yapışık ayarı hata olarak bildirmiyor, yok sayıyor.

İkisi de “çalışıyor gibi görünen” durumlar. Bir değişikliğin işe yaramadığını gördüğünde ilk soru “değer yanlış mı” değil, “bu kod gerçekten çalışıyor mu” olmalı.