2026Geliştiriliyor
Odd Lives: Yürüyüş Oyunu
- React Native
- Expo
- TypeScript
- React Native Skia
- HealthKit
- App Attest
- Fastify
- PostgreSQL
- Drizzle ORM
- Docker Compose
- Caddy
- Oracle Cloud
- GitHub Actions
- EAS Build
Genel bakış
Gerçek hayattaki adımlarla büyüyen pixel bir karakterin iPhone oyunu. Yürüdükçe karakter XP kazanıyor, seviye atlıyor ve özellikleri gelişiyor; gece stadyumunda seviyesi yakın oyuncularla ve arkadaşlarıyla 60 metreden maratona yarışıyor. Her sezon karakter başka bir hayata geçiyor, ilk sezon koşu. Oyunun tek yakıtı adım: enerji sistemi yok, parayla güç satılmıyor.
01 · Problem
Adım sayar uygulamaları günün sayısını gösteriyor ama yarın yeniden yürümek için bir sebep vermiyor. Adımı oyuna çeviren bir oyunda enerji sınırı ya da parayla alınan güç olunca da ilerleme yürümekten çok beklemeye ve ödemeye bağlanıyor.
02 · Çözüm
Adımları HealthKit'ten okuyorum; XP, seviye ve özellikler yalnızca adımdan geliyor. Yarış sürelerini gerçek bir fizyoloji modeliyle hesaplıyorum: 60 ve 100 metrede Furusawa modeli, 800 metreden 5 kilometreye kritik hız, 10 kilometre ve üstünde Riegel formülü; en iyi reaksiyonla bile dünya rekoru kırılmıyor. Bu formülleri uygulamanın ve sunucunun birlikte kullandığı tek bir TypeScript paketinde yazdım, böylece telefondaki tahminle sunucunun sonucu ayrışmıyor. Bütün pixel art kodla çiziliyor; aynı çizim 2.419.200 görünüm kombinasyonunun hepsinde çalışıyor, telefonda React Native Skia'ya, bilgisayarda PNG'ye çiziliyor. Sesleri eski konsol çipleri gibi kare dalga, üçgen dalga ve gürültüden sentezledim. Sunucu Fastify, PostgreSQL ve Drizzle ile Docker Compose üstünde Oracle Cloud'da çalışıyor; Apple ile giriş ve App Attest sunucuda doğrulanıyor.
03 · Sonuç
Geliştirme sürüyor. Karakter oluşturma, adım pisti ve dostluk yarışları telefonda çalışıyor: yarış start tabancası, flaş ve titreşimle başlıyor, gece stadyumunda 8 şeritte koşuluyor ve fotofiniş ile spiker yorumuyla bitiyor. Sunucu canlıda; sunucu kodundaki her değişiklik GitHub Actions ile kendiliğinden dağıtılıyor, veritabanı her gece yedekleniyor. Oyun yalnızca iPhone için ve Türkiye App Store'da yayınlanacak.