AE
LVL 01

Captain's Chronicles

Bir adada geçen Unity oyunu: pazar satıcıları, gezen NPC'ler, adanın çevresinde seyreden gemiler ve oyunun içine taşınmış 10 İstanbul müzesi.

Rol
Oyun Programcısı
Motor
Unity · C#
Platform
Windows
Ekip
Bireysel dönem projesi
01

Ne yaptım

Sistem 01

Can ve açlık sistemi

Oyuncunun hayatta kalmasını belirleyen iki değer birbirine bağlı çalışıyor.

  • Açlık yalnızca oyuncu hareket ederken azalıyor.
  • Açlık bitince can azalmaya başlıyor; can bitince kaybetme paneli açılıyor.
  • Raycast tabanlı tetikleyiciler oyuncunun müze alanına girdiğini algılıyor ve sistemi devre dışı bırakıyor.
RaycastTriggerC#
Sistem 02

Envanter

Toplanabilir can ve açlık iksirleri için envanter sistemi.

  • İksirlere yaklaşıp E tuşuyla toplanıyor; trigger olayları hangi iksirin yakında olduğunu takip ediyor.
  • I tuşuyla envanter açılıyor. İksir yoksa ilgili buton gizleniyor.
  • Mavi iksir açlığı, yeşil iksir canı dolduruyor; değerler Clamp ile 100'e sınırlanıyor.
EnvanterTriggerUI
Sistem 03

Satıcılar ve diyalog

Pazar alanındaki satıcılar oyuncu yaklaşınca tepki veriyor.

  • Satıcı, oyuncunun yaklaştığını OverlapSphere ile algılıyor.
  • Oyuncu yaklaşınca Animator trigger'ıyla ayağa kalkıyor, uzaklaşınca oturuyor.
  • Yaklaşınca rastgele bir diyalog paneli açılıyor, imleç serbest kalıyor; diyalog kapanınca oyuna dönülüyor.
  • Oturma animasyonu olmayan satıcılar için TraderIdle sınıfı, Trader'dan türeyip animasyon metodunu boş bırakıyor.
OverlapSphereAnimatorDiyalogKalıtım
Sistem 04

NPC ve gemi yapay zekâsı

Ada canlı görünsün diye hareket eden karakterler ve gemiler.

  • NPC'ler NavMesh ile devriye noktaları arasında dolaşıyor; rota döngüsel, son noktadan başa dönüyor.
  • NPC'ler havuzdan sırayla aktifleştiriliyor.
  • Gemiler waypoint'leri sırayla izliyor; rota bitince yok edilmek yerine havuza dönüyor.
  • Her 20 saniyede bir gemi çıkıyor. Boşta gemi varsa yeniden kullanılıyor, yoksa yenisi üretiliyor.
NavMeshWaypointNesne havuzuAI