96 lines
2.7 KiB
Markdown
96 lines
2.7 KiB
Markdown
|
||
# 🟢 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 C’ye 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 |