01 Yapay zekâ
Turkish RAG Eval
Türkçe sorularda bir arama sisteminin hangi parçasının gerçekten işe yaradığını ölçtüğüm deney.
Kodu GitHub’da gör
Yazıyı oku
Veri seti
RAG, bir dil modelinin cevap vermeden önce belgelerden ilgili parçaları bulup okuması demek. 12 farklı arama kurgusunu, elle etiketlediğim 58 soruluk Türkçe bir test setinde karşılaştırdım. Bütün sonuçlar tek komutla yeniden üretilebiliyor.
- Öne çıkan sonuç
- Kelimelerin ilk 5 harfini kök gibi kullanmak, arama başarısını (nDCG) tek başına %23–29 artırıyor. Ağır bir biçimbilim aracına gerek kalmıyor.
- Denediklerim
- Anahtar kelimeyle arama (BM25), anlamla arama (dense embedding), ikisinin birleşimi (hybrid RRF) ve 3 farklı metin bölme yöntemi
- Ölçtüklerim
- nDCG@10 · Recall@5 · MRR · P95 gecikme · Python
02 Oyun aracı
Match3 Lab
Match-3 oyunlarında seviye tasarlamayı ve zorluğunu ölçmeyi kolaylaştıran bir araç takımı.
Tarayıcıda oyna
Kodu GitHub’da gör
Oyunun kurallarını Unity’den bağımsız, saf C# ile yazdım; aynı kurallar oyunda da testlerde de botlarda da çalışıyor. Seviyeler elle yazılabilen sade bir biçimde duruyor. Botlar her seviyeyi binlerce kez oynayıp zorluğu sayıya döküyor.
- Ölçüm
- 6 seviye, her biri 1000 bot oyunuyla. Açgözlü ve rastgele botun kazanma oranları zorluk eğrisini çiziyor.
- Araçlar
- Komut satırı (validate · sim · curve · tune) · Unity seviye editörü · simülatör penceresi
- Kullandıklarım
- C# / .NET · Unity 6 · xUnit · WebGL
03 C++
Lockstep Tactics
Üç derleyicide bit bit aynı sonucu veren, her push’ta bunu kanıtlayan ve tarayıcıda yapay zekâya karşı oynanabilen bir C++ taktik oyunu.
Tarayıcıda oyna
Kodu GitHub’da gör
Çok oyunculu oyunlarda her makine aynı simülasyonu kendi başına koşturur; bir bit bile ayrışırsa oyun kopar. Simülasyonu kayan nokta yerine sabit noktalı sayılarla, kendi rastgele sayı üreticisiyle ve sıralaması tanımlı veri yapılarıyla yazdım. Rakip yalnızca tamsayı kullanan küçük bir yapay zekâ; emirleri tekrar dosyasına herkesinki gibi giriyor. Her commit’te 1000 maç MSVC, Apple clang (arm64) ve WebAssembly’de ayrı ayrı oynanıp hash’leri karşılaştırılıyor.
- Ölçüm
- 1000 maçın 1000’i üç derleyicide aynı hash’te bitiyor; yapay zekâ rastgele oyuncuya karşı 978’ini kazanıyor. Kurallardan biri bilerek bozulunca gcc’de 881, tarayıcıda 860 maç ayrışıyor, MSVC’de hiçbiri; hash’e bir size_t girince 64 bit derleyiciler anlaşıyor, WebAssembly ilk tick’te kopuyor. Yani “bende çalışıyor” yetmiyor.
- Araçlar
- Tekrar dosyası (tick başına hash) · ayrışmayı tick ve alan düzeyinde bulan araç (enjekte edilen 100 hatanın 100’ü) · tarayıcıda oynanan raylib arayüzü; maçı tekrar dosyası olarak indiriyor
- Kullandıklarım
- C++20 · CMake · MSVC / clang / gcc / Emscripten · raylib · GitHub Actions
04 Oyun · ekip projesi
Suspicious Delicacies
Restoran işletmeciliğiyle sıra tabanlı RPG’yi tek döngüde birleştiren, üç kişiyle geliştirdiğimiz Unity oyunu.
Proje klasörü (Google Drive)
Takıntılı, şiddete meyilli bir şef dost canlısı yaratıkları avlıyor; onları öldürmek ya da bağışlamak oyuncunun kararı. Toplanan malzemelerle yemek pişiriyor, müşteri ağırlıyor ve şüpheyi üstüne çekmemeye çalışıyor. Her gün av, mutfak ve servis arasında dönüyor.
- Benim payım
- Restoran döngüsü, müşteri yapay zekâsı, hızlı tepki (QTE) anları, dünya haritası ve ekibin kullandığı editör araçları. Savaş ve oyuncu karakteri diğer iki arkadaşımda.
- Durum
- Prototip bir yayıncıya gitti; şimdi Steam Next Fest kalitesinde bir demo hazırlıyoruz. Sayfası açılınca linki buraya gelecek.
- Ölçek
- 273 script, 36 bin satır C#, 225 editör testi (Ekim 2026) · Unity 6 · 2D URP · 2.5D piksel sanatı
05 Unity aracı
TMP Glyph Audit
Oyundaki yazılarda fontta karşılığı olmayan harfleri, oyun çıkmadan bulan Unity paketi.
Kodu GitHub’da gör
Unity’de yazılar TextMeshPro ile çizilir; fontta olmayan bir harf (ğ ya da ş gibi) oyunda kutucuk olarak görünür. Paket bütün sahneleri, prefab’ları ve oyun sırasında yüklenen metin dosyalarını tarıyor, fontların yedek zincirini de hesaba katıp eksik harfleri raporluyor.
- Kullanımı
- Editördeki bir pencereden ya da otomatik derlemede (CI) komutla. Sonucu 0, 1 ya da 2 çıkış koduyla bildiriyor.
- Test
- 24 xUnit ve 5 EditMode testi
- Kullandıklarım
- C# · TextMeshPro · Unity 2023.2+ · açık kaynak, git adresiyle kurulur (UPM)
06 Oyun
Bilim Dedektifi
Gizemli bir ölümü araştıran bir dedektifin gözünden ilerleyen, eğitsel kısa bir macera oyunu.
itch.io’da indir
Hacettepe’de ders projesi olarak ekipçe geliştirdik. Oyun itch.io’da ücretsiz yayında.
- Durum
- Yayında · ücretsiz · Windows için indirilebilir
- Tür
- Eğitsel dedektif ve gizem oyunu
- Ekip
- Hacettepe ders projesi, ekip çalışması
07 Web
Code-Enigma
Matematik odaklı, öğrenciye göre şekillenen bir çalışma platformu.
Kodu GitHub’da gör
İlkhan Arda Akmaca ile birlikte geliştiriyoruz. Ben arayüz tarafındayım: kişisel paneli, öğrencinin kendini akranlarıyla karşılaştırdığı göstergeleri, filtreleri ve ayar ekranlarını yapıyorum.
- Bölümler
- Kişisel panel · Ölçme ve değerlendirme testleri · Video dersler
- Kullandıklarım
- React 19 · Vite · Tailwind CSS 4 · GSAP
Demirhane · Örste
Örsteki iş
Kişisel projeme bakıyorum.
Çekiç benim saatime göre iniyor; okuldaysam ya da uyuyorsam örsün üstünde bekliyor.
Demirhane · Açık kaynak
Açık kaynak katkıları
Kullandığım açık kaynak projelerde bulduğum hataları düzeltip sahiplerine gönderdiğim katkılar.
GitHub profilinde gör
Çoğu, yapay zekâ arama sistemlerini değerlendiren kütüphanelerde ve Unity araçlarında. Aşağıdaki sayılar, proje sahiplerinin kabul edip birleştirdiği değişiklikler (PR).
106 birleşen PR34 proje27 incelemede bekliyor
- MTEB15 PRRAG işimin dayandığı retrieval değerlendirme kütüphanesi
- kornia13 PRBilgisayarlı görü kütüphanesi; sayısal hesaplardaki uç durum hataları
- LightRAG4 PRRAG çatısı; metin ayrıştırma ve Markdown düzeltmeleri
- unity-mcp5 PRUnity editörünü yapay zekâya bağlayan köprü
- docling4 PRBelge okuma aracı; OCR modeli indirme ve eski dosya biçimi (AFP, EBCDIC) düzeltmeleri
Hakkımda
Rızgar Ozan
Oyun mekaniği, veri modeli ya da arayüz: parçaların birbirine nasıl bağlandığıyla uğraşmayı seven bir geliştiriciyim.
CV indir PDF
Ankara’da yaşıyorum, Hacettepe Üniversitesi’nde okuyorum ve bir yandan oyun geliştiriyorum. Bir şeyin çalıştığını söylemeden önce ölçmeyi alışkanlık edindim.
- Deneyim
- Barko Elektronik’te yazılım mühendisliği stajı, Temmuz–Ağustos 2026. İki kişilik ekipte şirketin kendi donanımında çalışan bir LLM altyapısı kurduk, FastAPI ve Docker ile veri servisleri yazdık. Kurumsal portalı Active Directory’ye bağladık.
- Eğitim
- Hacettepe Üniversitesi, Bilgisayar ve Öğretim Teknolojileri Eğitimi. Haziran 2027’de mezun oluyorum.
- Odak
- Türkçe arama ve RAG (Python) · Oyun geliştirme (Unity, C#)
- Araçlar
- Unity · C# · Python · React · JavaScript · Tailwind CSS · Git
- İlgi alanları
- Oyun tasarımı · Arayüz
Yazılar
Ölçüp yazdıklarım
Bir projede ölçtüğüm şeyi uzun uzun anlatmak istediğimde buraya yazıyorum.