Kocaeli Üniversitesi Teknoloji Fakültesi – Bilişim Sistemleri Mühendisliği
2025–2026 Güz Dönemi | Yazılım Geliştirme Laboratuvarı – I
Proje Türü: Yapay Zeka Destekli TPS (Third Person Shooter) Oyunu
| Üye Adı | Görevi |
|---|---|
| Sude Naz Lekesiz | Harita Yapımı (Level Design), Raporlama |
| Fatma Nilay Süzer | Düşman Yapay Zekası (AI Programming) |
| Efe Süzel | Karakter Hareketleri (Player Controller), Arayüz (UI) |
Gelecekte yapay zeka teknolojisi insanlığın kontrolünden çıkmış ve robot orduları dünyayı ele geçirmek için harekete geçmiştir.
İnsanlık bu tehlikeyi fark ettiğinde çok geç kalmış ve tüm robotları imha etmek zorunda kalmıştır. Ancak bu savaş sırasında bir biyolojik felaket meydana gelmiş, dünya üzerindeki neredeyse tüm insanlar zombilere dönüşmüştür.
PBR-7, insanlığın yarattığı son savaş robotudur ve imha edilmekten kurtulan tek makinedir.
Şimdi dünya, onu bir tehdit olarak gören zombi sürüleriyle doludur.
PBR-7’nin tek amacı, bu low-poly orman arazisinde hayatta kalmak ve insanlığın (eğer kaldıysa) son umudunu korumaktır.
Not: Projede SciFiWarriorPBRHPPolyard modeli ve harita varlıkları olarak Pure Poly ile Tree_Textures kullanılmıştır.
Oyun, Third Person Shooter (TPS) türünde bir hayatta kalma oyunudur.
Oyuncu, PBR-7 robotunu kontrol ederek zombi dalgalarına karşı mücadele eder.
Zombiler, Finite State Machine (FSM) tabanlı yapay zeka ile oyuncuyu algılar, kovalar ve saldırır.
Oyuncu:
- Siper alma sistemi (cover system),
- Doğru nişan alma,
- Stratejik pozisyonlama gibi mekaniklerle hayatta kalmaya çalışır.
“Gears of War” gibi oyunlardaki cover mekanikleri incelenmiş, ancak proje kapsamında daha akıcı ve hareket odaklı bir TPS sistemi hedeflenmiştir.
Örnek alınan oyunlar arasında Warframe ve Risk of Rain 2 bulunmaktadır.
Düşman davranışları için Finite State Machine (FSM) modeli kullanılmıştır.
“Left 4 Dead” oyunundaki sürü (horde) zekasından ilham alınmış, ancak her düşman bireysel FSM mantığıyla hareket etmektedir:
Unity’nin Component-Based Architecture yapısı esas alınmıştır.
Her GameObject, kendi davranışlarını yöneten ayrı bir C# script ile kontrol edilir:
Playercontrol.csEnemyAI.cs
FSM, enum State yapısı ve Update() metodu içinde switch-case bloklarıyla yönetilir.
Unity’nin AI Navigation sistemi kullanılmıştır.
Harita “Bake” edilerek NavMesh oluşturulmuş, düşmanlara NavMesh Agent bileşeni atanmıştır.
Bu sayede düşmanlar, oyuncuya ulaşmak için en uygun yolu dinamik olarak hesaplar.
Klavye / Mouse Girdisi → Playermove.cs W,A,S,D → Karakter hareketi Mouse → Kamera dönüşü Sol Tık → Fire() metodu (WeaponController.cs)
Fire() → Raycast (kamera ortasından ileri) Raycast Hit → Nesne "Enemy" etiketi mi? Evet → EnemyHealth.cs → TakeDamage() Hayır → Mermi izi veya vurma efekti
CheckDistanceToPlayer():
Görüş mesafesinde → State = Chase Saldırı mesafesinde → State = Attack
| Durum | Açıklama |
|---|---|
| Idle (Boşta) | Hedef yoksa kısa süre bekler, Idle animasyonu oynatır. |
| Chase (Kovalama) | Oyuncu görüş alanına girince kovalamaya başlar. |
| Attack (Saldırı) | Oyuncu yakın mesafedeyse saldırı animasyonu oynatır. |
Assets/
├── Scenes/
│ ├── MainMenu.unity
│ ├── GameScene.unity
│ └── GameOver.unity
│
├── Scripts/
│ ├── Bullet.cs
│ ├── CameraFollow.cs
│ ├── Enemy.cs
│ ├── EnemyHealth.cs
│ ├── IsometricCameraFollow.cs
│ ├── PlayerControl.cs
│ ├── PlayerHealth.cs
│ ├── UIManager.cs
│ ├── WaveSpawner.cs
│ └── WeaponControl.cs
│
├── Prefabs/
│ ├── Player.prefab
│ ├── Enemy.prefab
│ ├── Bullet.prefab
│ └── ...
│
├── Materials/
│ └── ...
│
└── Animations/
└── PlayerAnimator.controller
Proje boyunca odaklanılan temel isterler:
- TPS Mekaniği
- FSM Yapay Zeka
- NavMesh Yol Bulma
Ekstra özellik eklemek yerine mevcut sistemlerin kararlı ve hatasız çalışması hedeflenmiştir.
Sorun: Branch geçişlerinde prefab bozulmaları
Çözüm: Unity meta dosyaları görünür yapıldı, .gitignore Unity’ye özel olarak düzenlendi.
Sorun: NavMesh zeminle tam hizalanmadı.
Çözüm: Agent Radius ve Step Height parametreleri optimize edilerek yeniden “Bake” işlemi yapıldı.
Sorun: Unity arayüzünü manuel kullanmak süreci yavaşlattı.
Çözüm: Kısayollar öğrenilerek daha verimli geliştirme süreci oluşturuldu.
- Yapay Zeka Temelleri: FSM yapısını oyun motorunda sıfırdan tasarlama.
- Unity Yetkinliği: NavMesh, Raycasting, Animator, Controller kullanımı.
- Proje Yönetimi: GitHub üzerinden ekip çalışması ve commit disiplini.
- Problem Çözme: Gerçek zamanlı hataları analiz edip kalıcı çözümler üretme.
RoboGun, Unity tabanlı bir TPS oyunu olarak FSM yapay zekası, NavMesh yol bulma ve modüler mimariyi etkin biçimde birleştiren bir yapıya sahiptir.
Proje, ekip içi görev dağılımı, teknik çözüm üretme ve sürüm kontrolü konularında kapsamlı bir öğrenme deneyimi sunmuştur.

