Spacewar Oyunu: KOÜ Yazılım Mühendisliği Projesi
Merhaba, ben Metehan Şenyer, Kocaeli Üniversitesi Yazılım Mühendisliği öğrencisiyim. Bu proje, 2024-2025 dönemi Programlama Laboratuvarı III dersi kapsamında geliştirdiğim Spacewar Oyunudur. Proje, yazılım geliştirme becerilerimi sergilemek ve OOP (Nesne Yönelimli Programlama) prensiplerini gerçek bir projede uygulama fırsatı sunmuştur.
🚀 Proje Hakkında
Spacewar Oyunu, C# dilinde geliştirilmiş, OOP prensiplerini temel alan bir uzay savaşı oyunudur. Amacım, yalnızca teknik gereklilikleri yerine getirmek değil, aynı zamanda eğlenceli ve etkileyici bir oyun deneyimi sunmaktı. Proje, JetBrains Rider ile geliştirilmiş ve MacOS üzerinde test edilmiştir.
🎯 Projenin Temel Amaçları
- C# Programlama Dili kullanılarak OOP prensiplerinin (kalıtım, polimorfizm, kapsülleme) uygulanması.
- Çarpışma Algoritmaları ve oyun mekanikleri geliştirme.
- Teknik özelliklere ek olarak ses efektleri, görseller, ve GUI gibi detaylarla kullanıcı deneyimini zenginleştirmek.
🛠️ Kullanılan Araçlar
Proje boyunca aşağıdaki araçlar ve kaynaklardan faydalandım:
- C#: Oyun geliştirme ve OOP prensiplerinin uygulanması.
- Raylib: Grafiksel oyun geliştirme kütüphanesi.
- JetBrains Rider: Kod geliştirme ortamı.
- Adobe Photoshop: Görsel tasarım ve düzenleme.
Kullanılan Araç | Tavsiye Linkler |
---|---|
C# | Microsoft |
C# | Murat Yücedağ C# Eğitim Kampı |
Raylib | Tüm Raylib Özellikleri |
Raylib-cs | C# Raylib Paketi |
Sınıf Diyagramı | Plant Text |
İllüstrasyonlar | Itch.io |
Ses Efektleri | Freesound |
Ses Efektleri | Pixabay |
Çarpışma Sistemi | Çember ve Üçgen Kesişim Algoritması |
Çarpışma Sistemi | Üçgen içinde Nokta Testi / Same Side Tekniği |
Animasyon | Animations Guide |
🎮 Oynanış Mekanikleri
Mekanik | Açıklama |
---|---|
Oyuncu Hareketleri | Uzay gemisini yönlendirerek düşmanlardan kaçabilir ve ateş edebilirsiniz. |
Çarpışma Algoritması | Mermilerin ve gemilerin çarpışmalarını algılar ve gerekli işlemleri başlatır. |
Puan Sistemi | Ekstra can, hız ve hasar gibi avantajlar sağlar. |
Power-Ups | Zorluk seviyesi oyuncunun performansına göre artar. |
📊 Teknik Detaylar
Projenin detayları aşağıdaki gibidir:
- Sınıflar: Oyunun yapısını modüler ve genişletilebilir hale getirmek için OOP prensiplerine uygun olarak tasarlandı.
- Spaceship, Enemy, Bullet gibi sınıflar yer almaktadır.
- Çarpışma Algoritmaları: Özel algoritmalar (çember kesişim, üçgen içinde nokta testi) kullanılarak çarpışmalar kontrol edildi.
- Oyun Akışı: Başlangıç, güncelleme ve bitiş aşamaları, sade ve etkin bir oyun döngüsü ile yönetildi.
💾 İndirme ve Çalıştırma
Proje dosyalarını buradan indirip kendi bilgisayarınızda çalıştırabilirsiniz:
Geliştiriciler için
git clone https://github.com/metehansenyer/KOU-YZM209-CSGameProject-Spacewar.git
Sadece Oynamak İsteyenler için
Platform | İndirme Linki |
---|---|
Windows | İndir |
MacOS | İndir |
MacOS Kullanıcıları için Not: Oyunu açmak için şu adımları takip edin:
-
Terminal’i açın ve oyunun indirildiği klasöre gidin.
-
Aşağıdaki komutu çalıştırın:
./KOU-YZM209-CSGameProject-Spacewar
-
Normal açılışta kaplamaların yüklenmemesi sorunu bu şekilde çözülmüştür.
🎥 Oynanış Videosu
Oynanış videosunu buradan izleyebilirsiniz.
🤝 Teşekkürler
Zor şartlar altındaki proje sunumumdaki yardımlarından dolayı Kocaeli Üniversitesi Yazılım Mühendisliği Bölümü'den Araştırma Görevlisi Melike Bektaş Kösesoy ve Araştırma Görevlisi Şevval Şolpan hocama teşekkürlerimi arz ederim.
🌟 Benimle İletişime Geçin
Eğer bu proje ilginizi çektiyse ve benimle iletişime geçmek isterseniz, aşağıdaki bağlantıları kullanabilirsiniz:
- Email: mthansnyr@gmail.com
- LinkedIn: @metehansenyer
Oyun geliştirme ve yazılım projeleri hakkında her zaman sohbet etmeye açığım!