PROJE RAPORU

Proje Adı: Rocket Rush – 3D Eğitim Destekli Uzay Oyunu

Geliştirme Başlangıç Tarihi: 25.03.2026
Geliştirme Bitiş Tarihi: 12.04.2026
Toplam Süre: Yaklaşık 2,5 hafta


1. Proje Özeti

Bu projede, oyuncunun bir roketi kontrol ederek uzaydaki engel duvarlarının içindeki boşluklardan geçtiği, yakıt topladığı ve belirli noktalarda karşısına çıkan çoktan seçmeli soruları cevaplayarak ilerlediği bir 3 boyutlu eğitim destekli oyun geliştirdim. Projede temel amaç, oyunlaştırma yaklaşımıyla soru çözme sürecini daha etkileşimli ve eğlenceli hale getirmekti.

Oyunun teknik altyapısını React + TypeScript + Vite ile kurdum. 3 boyutlu sahne, kamera, nesne yönetimi ve oyun akışını Three.js kullanarak geliştirdim. Mobil ve masaüstü uyumlu kontroller, soru sistemi, skor tablosu, yakıt sistemi ve oyun akışı tarafını kendim tasarlayıp uyguladım.
Not: Oyun motorunun bazı görsel/teknik kısımlarında ve roket modelinin oluşturulmasında yapay zekâdan fikir ve teknik destek aldım; bunun dışındaki uygulama mantığı, ekran yapıları, soru sistemi, veri organizasyonu ve genel bütünleştirme işlemlerini kendim gerçekleştirdim.


2. Projenin Amacı

Bu projeyi geliştirirken temel hedeflerim şunlardı:


3. Proje Kapsamı

Projede aşağıdaki özellikler yer almaktadır:


4. Kullanılan Teknolojiler

Projede kullandığım teknolojiler şunlardır:


5. Planlama Aşaması

Projeye başlamadan önce önce oyunun mantığını ve akışını planladım. İlk aşamada aşağıdaki sorulara cevap verdim:

Bu planlamaya göre şu yapıyı kurmaya karar verdim:

  1. Ana menü ekranı
  2. 3D oyun sahnesi
  3. HUD (yakıt, skor, hız)
  4. Soru modalı
  5. Oyun sonu ekranı
  6. Skor tablosu

Ayrıca soru zorluklarını kolay / normal / zor olarak ayırdım ve bunları yakıt ödülleriyle ilişkilendirdim:

Bu yapı sayesinde oyun ile eğitim içeriği doğrudan birbirine bağlanmış oldu.


6. Dosya Yapısı ve Görevleri

Projede dosya yapısını modüler olacak şekilde düzenledim.

src/App.tsx

Uygulamanın ana bileşenidir.
Burada:

src/game/GameEngine.ts

Oyunun 3D tarafını yöneten ana sınıftır.
Burada:

src/data/easy.ts, normal.ts, hard.ts

Soru havuzlarını zorluk seviyesine göre ayırdım.

src/data/questions.ts

Soru dosyalarını tek yerden yönetmek ve rastgele soru seçmek için kullandım.

src/index.css

Tam ekran kullanım, kullanıcı seçimi engelleme, touch davranışı ve bazı global animasyonları burada tanımladım.

vite.config.ts

Alias tanımı, Tailwind entegrasyonu, tek dosya build ve test/erişim ayarları burada yapıldı.


7. Geliştirme Süreci (Tarih Bazlı)

Aşağıda projeyi 25.03.2026–12.04.2026 tarihleri arasında adım adım nasıl geliştirdiğimi detaylı olarak açıklıyorum.


25.03.2026 – Fikir Oluşturma ve Ön Analiz

Bu gün projeye genel karar verme aşamasıyla başladım.

Yaptıklarım:

Bu aşamada oyunun ana temelini planladım ve soruları hangi konuda yazacağımı belirledim.


26.03.2026 – Proje Kurulumu ve Teknoloji Altyapısı

Bu gün proje altyapısını kurdum.

Yaptıklarım:

Bu aşama sonrasında proje çalışır duruma geldi ve geliştirmeye hazır hale geldi.


27.03.2026 – Uygulama Ekran Planı ve Ana Bileşen Yapısı

Bu gün React tarafındaki genel ekran mimarisini kurdum.

Eklediklerim:

Ayrıca:

Bu gün sonunda oyunun temel ekran akışı oluştu.


28.03.2026 – Three.js Sahnesi ve Temel Oyun Motoru

Bu gün 3D tarafın temelini attım.

Eklediklerim:

Ayrıca:

Bu gün oyun motorunun temel iskeleti tamamlandı.


29.03.2026 – Roket Modeli ve Görsel Karakter Tasarımı

Bu aşamada oyuncunun kontrol edeceği roketi oluşturdum.
Not: Roketin 3D formu ve bazı görsel modelleme kararlarında yapay zekâdan teknik fikir desteği aldım.

Eklediklerim:

Yaptığım değişiklikler:


30.03.2026 – Hareket Sistemi ve Fizik

Bu gün oyunun oynanabilir olmasını sağlayan temel fizik sistemini yazdım.

Eklediklerim:

Yaptığım değişiklikler:

Bu gün sonunda oyun temel düzeyde oynanabilir hale geldi.


31.03.2026 – Duvar ve Delik Sistemi

Bu gün oyunun ana engel yapısını geliştirdim.

Eklediklerim:

Yaptığım değişiklikler:

Bu sistem oyunun ana refleks mekaniğini oluşturdu.


01.04.2026 – Yakıt Bidonları ve Zorluk İlişkisi

Bu gün deliklerin içine yakıt ödülü sistemi ekledim.

Eklediklerim:

Yaptığım değişiklikler:

Bu aşamada eğitim kısmı ile oyun mekaniği doğrudan birleşmiş oldu.


02.04.2026 – Çarpışma, Delik Kontrolü ve Skor Sistemi

Bu gün duvar geçişlerini ve başarısızlık durumlarını tamamladım.

Eklediklerim:

Yaptığım değişiklikler:

Bu gün sonunda oyun artık "hedefi olan" bir yapıya kavuştu.


03.04.2026 – Soru Veri Yapısı ve Soru Havuzu

Bu gün eğitim içeriğini ders kitabını baz alarak toplam 90 soru oluşturdum ve kod tarafında düzenledim.

Eklediklerim:

Yaptığım değişiklikler:

Bu kısım tamamen veri yönetimi ve içerik organizasyonu odaklı ilerledi.


04.04.2026 – Soru Modalı ve Ödül/Ceza Mekaniği

Bu gün soru ekranını oyuna bağladım.

Eklediklerim:

Yaptığım değişiklikler:

Böylece soru sistemi sadece ekranda gösterilen bir bölüm değil, oyunun doğal parçası haline geldi.


05.04.2026 – Mobil Joystick ve Gaz Butonu

Bu gün mobil oynanabilirlik üzerinde çalıştım.

Eklediklerim:

Yaptığım değişiklikler:

Bu gün proje mobil cihazlar için çok daha kullanılabilir hale geldi.


06.04.2026 – Oyun HUD'ı

Bu gün oyuncuya anlık bilgi veren arayüzleri ekledim.

Eklediklerim:

Yaptığım değişiklikler:

Bu sayede oyuncu tüm kritik bilgileri anlık takip edebilir hale geldi.


07.04.2026 – Oyun Sonu Ekranı ve Menü Düzenlemeleri

Bu gün kullanıcı akışını tamamladım.

Eklediklerim:

Yaptığım değişiklikler:


08.04.2026 – Skor Tablosu ve Kayıt Sistemi

Bu gün oyuncu skorlarının saklanmasını sağladım.

Eklediklerim:

Yaptığım değişiklikler:

Bu özellik projeye tekrar oynanabilirlik kattı.


09.04.2026 – Görsel Efektler ve Atmosfer

Bu gün oyunun görsel hissini güçlendirdim.

Eklediklerim:

Yaptığım değişiklikler:

Bu gün oyun daha canlı ve profesyonel göründü.


10.04.2026 – Performans Optimizasyonları

Bu gün performans odaklı düzenlemeler yaptım.
Not: Oyun motoru optimizasyonu tarafında burada yapay zekâdan teknik öneri düzeyinde destek aldım.

Yaptığım iyileştirmeler:

Karşılaştığım sorun:

Çözüm:


11.04.2026 – Test, Hata Ayıklama ve Dengeleme

Bu gün farklı oynanış senaryolarını test ettim.

Test ettiğim başlıklar:

Yaptığım değişiklikler:


12.04.2026 – Son Düzenlemeler ve Teslim Hazırlığı

Bu gün projeyi teslim aşamasına getirdim.

Yaptıklarım:

Bu aşamada proje raporlamaya ve sunuma hazır hale geldi.


8. Uyguladığım Temel Oyun Mekanikleri

Projede geliştirdiğim başlıca mekanikler şunlardır:

8.1 Yakıt Sistemi

8.2 Skor Sistemi

8.3 Soru Tetikleme Sistemi

8.4 Oyun Sonu Koşulları


9. Arayüz Tasarımı

Arayüzü geliştirirken sade ama okunabilir bir yapı kurmaya dikkat ettim.

Kullandığım ekranlar:

Tasarım kararlarım:


10. Karşılaştığım Problemler ve Çözümler

Problem 1: React ile oyun motoru senkronizasyonu

Oyun motoru sürekli güncellenirken React tarafında her kare state güncellemesi yapmak performans açısından uygun değildi.

Çözüm:
State değişimlerini belirli aralıklarla yayınlayan bir yapı kullandım.


Problem 2: Çok nesneli sahnede performans düşüşü

Duvarlar, bidonlar, parçacıklar ve efektler arttıkça sahne maliyeti yükseldi.

Çözüm:
Paylaşımlı geometri/material yapıları, görünmeyen nesnelerin temizlenmesi ve gereksiz hesaplamaların azaltılması ile bunu optimize ettim.


Problem 3: Mobil kontrolde istenmeyen dokunmalar

Touch olaylarında bazen oyuncu hem butona hem sahneye etki edebiliyordu.

Çözüm:
Joystick ve buton alanlarını ayrıştırdım, preventDefault() kullandım ve dokunma mantığını dikkatli yönettim.


Problem 4: Oyun duraklatıldığında akış kontrolü

Soru açıldığında fizik, input ve görsel akışın karışmaması gerekiyordu.

Çözüm:
Motor içinde _isPaused yapısı kurarak render'ı koruyup fizik güncellemelerini durdurdum.


11. Yapay Zekâ Kullanım Beyanı

Bu projede yapay zekâyı tamamen kodu yazdırmak amacıyla değil, belirli teknik/görsel alanlarda destekleyici araç olarak kullandım.

Yapay zekâdan destek aldığım kısımlar:

Kendi geliştirdiğim başlıca kısımlar:

Bu nedenle projede yapay zekâ, yardımcı bir araç olarak kullanılmış; ürünün genel mantığı, yapısı ve kullanıcı deneyimi tarafı tarafımdan geliştirilmiştir.


12. Proje Sonucu ve Değerlendirme

Bu proje sonunda:

Proje, hem teknik hem de tasarım açısından benim için öğretici oldu. Özellikle oyun döngüsü, çarpışma kontrolü, 3D sahne yönetimi ve kullanıcı deneyimi tasarımı konusunda önemli deneyim kazandım.

Gelecekte bu projeye şu geliştirmeleri eklemeyi planlayabilirim:

Sonuç olarak, Rocket Rush, oyunlaştırılmış öğrenme fikrini temel alan, teknik olarak çalışan, geliştirilebilir ve kullanıcıya etkileşimli deneyim sunan başarılı bir proje olmuştur.


Kısa Geliştirme Özeti Tablosu

Tarih Yapılan İş
25.03.2026 Fikir, hedef ve oyun planlaması
26.03.2026 Proje kurulumu, paketler, yapılandırma
27.03.2026 Ekran akışı ve React temel yapısı
28.03.2026 Three.js sahne, kamera, renderer
29.03.2026 Roket modeli ve temel görsellik
30.03.2026 Fizik, hareket ve yakıt sistemi
31.03.2026 Duvar ve delik üretim sistemi
01.04.2026 Yakıt bidonları ve zorluk ilişkisi
02.04.2026 Çarpışma ve skor mantığı
03.04.2026 Soru havuzu ve veri yapısı
04.04.2026 Soru modalı, ödül/ceza sistemi
05.04.2026 Mobil joystick ve gaz butonu
06.04.2026 HUD tasarımı
07.04.2026 Menü ve oyun sonu ekranı
08.04.2026 Skor tablosu ve kayıt sistemi
09.04.2026 Efektler, kamera hissi, atmosfer
10.04.2026 Performans optimizasyonları
11.04.2026 Test ve hata düzeltmeleri
12.04.2026 Son kontroller ve teslim hazırlığı

Umut Toprak
12.04.2026