İçeriğe atla
md ~/projeler/odd-lives
Atatürk'ü Saygı ve Özlemle Anıyoruz

10 Kasım · 88. yıl dönümü

Atatürk'ü Saygı ve Özlemle Anıyoruz

Cumhuriyetimizin kurucusu Mustafa Kemal Atatürk, 10 Kasım 1938'de saat 09.05'te İstanbul'da, Dolmabahçe Sarayı'nda hayatını kaybetti. Her yıl bu saatte bütün ülkede saygı duruşunda bulunuyoruz.

Bize emanet ettiği Cumhuriyeti yaşatmak hepimizin görevi.

Benim naçiz vücudum elbet bir gün toprak olacaktır, fakat Türkiye Cumhuriyeti ilelebet payidar kalacaktır.Mustafa Kemal Atatürk
Proje arşivi

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.