# 🟢 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