Yelbegen/README.md
2025-09-01 21:21:39 +03:00

96 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🟢 Yelbegen - Zig Oyun Motoru
**Yelbegen**, öğrenme ve deney amaçlı olarak geliştirilen **modüler bir oyun motoru**dur.
Motor, **Zig** programlama dili kullanılarak yazılmakta ve Raylib ile RayGUI kütüphanelerini kullanmaktadır.
---
## 🎯 Projenin Amacı
- Zig dilini öğrenmek ve oyun motoru altyapısı geliştirmek
- Modüler bir yapı ile 3D sahne, GUI ve kamera yönetimi denemeleri yapmak
- Basit fizik, input ve rendering sistemlerini test etmek
---
## 🗂 Dosya Yapısı (Örnek)
```bash
Yelbegen/
├─ src/
│ ├─ main.zig # Ana giriş noktası
│ ├─ graphics/
│ │ ├─ base_drawers.zig # Temel çizim fonksiyonları
│ │ └─ gui.zig # GUI yapıları ve panel çizimi
│ ├─ scene/
│ │ └─ camera.zig # Kamera ve sahne yönetimi
│ └─ modules/
│ └─ ... # Gelecek modüller
├─ build.zig # Zig build dosyası
└─ README.md
```
> Her modül kendi işlevini yönetir ve gerektiğinde diğer modüllerle iletişim kurar.
---
## ⚡ Zig Diline Kısa Bakış
**Zig**, sistem programlama dili olarak tasarlanmıştır ve Cye benzer bir yapıya sahiptir.
**Öne çıkan özellikleri:**
- 🔹 **Performans odaklı:** C kadar hızlı, düşük seviyeli kontrol sunar
- 🔹 **Bellek güvenliği:** Pointer kullanımı daha güvenli, hata tespit mekanizmaları mevcut
- 🔹 **Basit ve okunabilir:** Karmaşık makro veya preprocessor yok
- 🔹 **Cross-compilation kolaylığı:** Farklı platformlar için derleme kolay
- 🔹 **Compile-time hesaplama:** Pek çok işlem derleme sırasında yapılabilir
Daha fazla bilgi: [https://ziglang.org](https://ziglang.org)
---
## 📝 Yapılacaklar Listesi (TODO)
- [ ] Temel GUI sistemi oluşturmak
- [ ] Kamera ve 3D sahne yönetimi
- [ ] Basit nesne çizimleri (Cube, Plane vb.)
- [ ] FPS / performans göstergesi
- [ ] Kullanıcı input yönetimi
- [ ] Basit fizik motoru (çarpışma ve hareket)
- [ ] Modüller arası veri yönetimi
- [ ] Raylib + RayGUI entegrasyonu
---
## 🎮 Kullanım
Şu anda proje sadece deneme ve öğrenme amaçlıdır.
İlerleyen aşamalarda çalıştırılabilir bir örnek eklenecektir.
```bash
zig build run
```
🔗 Katkıda Bulunmak
- Kod eklemek, modülleri geliştirmek ve fikirler paylaşmak için pull request açabilirsiniz.
- Zig diline ve Raylib kullanımına aşina olmak katkıyı kolaylaştırır.
```bash
main.zig
├─ graphics/
│ ├─ base_drawers.zig
│ └─ gui.zig
├─ scene/
│ └─ camera.zig
└─ modules/
└─ ... diğer modüller
```
- main.zig → Oyun motorunun ana akışı
- graphics/ → Çizim ve GUI modülleri
- scene/ → Kamera ve sahne yönetimi
- modules/ → Gelecekte eklenebilecek sistemler