Metehan Şenyer

Game Project: Spacewar

Game Project: Spacewar banner

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ı
RaylibTüm Raylib Özellikleri
Raylib-csC# Raylib Paketi
Sınıf DiyagramıPlant Text
İllüstrasyonlarItch.io
Ses EfektleriFreesound
Ses EfektleriPixabay
Çarpışma SistemiÇember ve Üçgen Kesişim Algoritması
Çarpışma SistemiÜçgen içinde Nokta Testi / Same Side Tekniği
AnimasyonAnimations Guide

🎮 Oynanış Mekanikleri

MekanikAçıklama
Oyuncu HareketleriUzay 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 SistemiEkstra can, hız ve hasar gibi avantajlar sağlar.
Power-UpsZorluk 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ı.
    1. 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:

  1. Terminal’i açın ve oyunun indirildiği klasöre gidin.

  2. Aşağıdaki komutu çalıştırın:

    ./KOU-YZM209-CSGameProject-Spacewar
    
  3. 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:

Oyun geliştirme ve yazılım projeleri hakkında her zaman sohbet etmeye açığım!

GitHub'da Görüntüle