Emberline
Okurun kararlarıyla akışı değişen hikâyeler için kurduğum, çok platformlu bir interaktif hikâye platformu.
Android/iOS hedefli · Yayın hazırlığında
- Rol
- Bağımsız geliştirici
- Durum
- Geliştirme ve yayın hazırlığı
- Platform
- Android · iOS (Flutter)
- Odak
- Hikâye motoru ve okuma deneyimi


( Fikir )
Emberline yalnızca metin gösteren bir okuma uygulaması değil; hikâye düğümleri, durum değişkenleri ve koşullu geçişlerle çalışan bir hikâye motoru.
Hikâyeyi veriye, okuma deneyimini motora ayırdım. Hikâyeler JSON olarak yapılandırılıp uygulamadan bağımsız paketleniyor; uygulama aynı motorla farklı türdeki hikâyeleri oynatabiliyor.
( Ne inşa ettim )
Ana sistemlerHikâye motoru
- JSON tabanlı hikâye yapısı ve düğümler
- Seçimlere bağlı durum değişkenleri
- Koşullu geçişler, dallanan anlatı
- Bölüm ve hikâye bitişi, farklı sonlar
- Süreli seçim türleri
Reader
- Okuma arayüzü
- Karakter ve arka plan gösterimi
- Diyalog ve seçim sunumu
- İlerleme ve kayıt yönetimi
Library · Discover
- Hikâye kütüphanesi ve keşif ekranı
- Detay sayfaları, bölüm listeleri, kapaklar
- İndirme ve erişim akışları
Hesap ve kayıt
- Google ve e-posta ile hesap (Firebase Auth)
- Misafir kullanım
- Yerel ilerleme, Firestore senkronizasyonu
- Yer imleri ve favoriler
Üretim hattı
- Markdown'dan JSON'a dönüştürme
- Karakter sprite'ları ve arka planlar
- Hikâye paketleri, Firebase Storage
- Dalları ve koşulları kontrol eden doğrulama betikleri
Tasarım
- "Space UI" adlı özel tasarım yaklaşımı
- Derin renk paleti, özel navigasyon
- Atmosferik, türe uygun görseller
- Duyarlı Flutter arayüzleri
( Teknik derinlik )
Problem ve yaklaşımDallanan hikâyeyi koda gömmeden yönetmek
Seçim tabanlı bir hikâyede her karar yeni bir yol açar. Bu yollar koda gömülürse her hikâye yeni bir geliştirme işine dönüşür.
YaklaşımJSON tabanlı, yeniden kullanılabilir bir hikâye motoru: düğümler, seçimlere bağlı durum değişkenleri, koşullu geçişler ve birden fazla son.
Hikâyelerin bozuk dal olmadan yayına çıkması
Çok sayıda bölüm ve koşul içeren bir hikâyede ulaşılamayan ya da çıkmaza giren bir dal, okur için deneyimi bozar.
YaklaşımPython ile bir üretim hattı: metni Markdown'dan JSON'a dönüştürme, paketleme ve dalları/koşulları kontrol eden doğrulama betikleri.
Okurun ilerlemesini kaybetmemek
Okur misafir olarak başlayabilir, sonra hesap açabilir; ilerlemesi her durumda korunmalı.
YaklaşımYerel ilerleme kaydı, Firebase Authentication ile hesap akışları ve Firestore ile ilgili verinin senkronizasyonu.
( Teknoloji yığını )
Uygulama
Firebase
Araçlar
( Derinleştiğim konular )
Mobil uygulama mimarisi, veri tabanlı içerik yönetimi, kendi yazılım motorumu geliştirmek, kullanıcı deneyimi ve yapay zekâ destekli görsel içerik üretimi.
( Galeri )
Hikâye görselleri





