İlk Unity oyunuma başlamadan önce Unity'ye hiç dokunmamıştım. C# biliyordum ama oyun geliştirme farklı bir dünya.
Prosedürel Harita
En çok zaman harcadığım yer burası. Basit bir ızgara tabanlı BSP (Binary Space Partitioning) algoritması kullandım. Odaları rastgele böl, koridorlarla birleştir.
İlk implementasyonumda harita her zaman köşelere sıkışıyordu. Sorun odaların minimum boyutunu kontrol etmemekti. Küçük bir kontrol, saatlik bir hata ayıklama seansının önüne geçebilirdi.
Enemy AI
Basit bir state machine: Patrol → Chase → Attack → Death. NavMesh kullandım.
Öğrendiğim şey: NavMesh baking süreci dikkatli yapılmazsa düşmanlar duvara yürüyor.
Inventory Sistemi
ScriptableObject mimarisi burada hayat kurtardı. Her item bir asset dosyası — Unity'nin en güçlü özelliklerinden biri. Başta her şeyi MonoBehaviour ile yazmaya çalışıyordum; bu yaklaşımı keşfetmek gerçek bir dönüm noktası oldu.
Sonuç
Oyun "oynanabilir" ama "bitmiş" değil. Oyun geliştirmenin acımasız gerçeği: her özellik 3 yeni bug getiriyor.
Ama bu süreci seviyorum. Bir sonraki projem daha küçük scope'lu olacak.