proje 18

2D Büyücü Savaşı & Masaüstü Simülasyonlar

Nesne yönelimli programlama prensipleri, özel bir oyun döngüsü ve fizik motoru üzerine sıfırdan kurulmuş iki masaüstü oyun ve simülasyon projesi.

Kategori
Oyun & Araçlar
Rol
Bağımsız geliştirici — oyun döngüsü, fizik ve arayüz
Yıl
2025 – 2026

kullanılan teknolojiler

  • Java
  • Swing
  • Graphics2D
  • C#
  • OOP
  • NetBeans

problem

Problem

Nesne yönelimli programlama prensiplerini, çarpışma ve fizik algoritmalarını ve dinamik yol bulma mantığını masaüstü bir arayüz ortamında, kare düşüşü yaşamadan simüle etmek gerekiyordu.

çözüm

Çözüm

Java ve Swing ortamında kalıtım, polimorfizm ve kapsülleme merkezli modüler bir oyun motoru yapısı kurdum. AABB çarpışma algılama, mermi mekaniği, can barı ve durum yönetimini sıfırdan geliştirdim; ayrıca dinamik grid ve mayın tarlası üzerinde yol bulma algoritmaları yazdım.

sonuç

Sonuç

İki oyuncunun klavye kontrolleriyle eşzamanlı rekabet edebildiği, bellek sızıntısı olmayan ve akıcı kare oranına sahip masaüstü uygulamalar ve simülasyonlar tamamlandı.

öne çıkan özellikler

  • 01Kalıtım, polimorfizm ve kapsülleme merkezli modüler oyun motoru yapısı.
  • 02Sıfırdan yazılmış AABB çarpışma algılama, mermi mekaniği ve can/enerji yönetimi.
  • 03Dinamik grid ve mayın tarlası üzerinde yol bulma algoritmaları.
  • 04İki oyuncunun klavyeyle eşzamanlı oynayabildiği, akıcı kare oranına sahip oyun döngüsü.

neden bu seçimler

Neden hazır oyun motoru kullanılmadı?

Amaç bir oyun yayımlamak değil, oyun döngüsünün ve fizik hesaplarının nasıl çalıştığını doğrudan yazarak öğrenmekti. Hazır bir motor bu katmanı gizler. Graphics2D üzerinde sabit adımlı kendi döngümü yazmak, iş parçacığı yönetimini ve zamanlama mantığını doğrudan görmemi sağladı.

Neden sabit adımlı güncelleme?

Kare hızına bağlı güncelleme, hızlı ve yavaş makinelerde farklı fizik davranışı üretiyor. Sabit adımlı döngüde fizik her makinede aynı sonucu veriyor; çizim hızı ayrı, hesap hızı ayrı ilerliyor.

Benzer bir proje mi düşünüyorsun?