Tahtaya Kalk — Çizerek Anlatma Oyunu
iPhone ve iPad için Türkçe bir parti oyunu: bir oyuncu kelimeyi gerçek bir tahtaya çizer, takımı tahmin eder; kelimeleri dağıtmak, süreyi tutmak ve puanı saymak uygulamanın işi.
- Rol
- Tek başıma — fikir, tasarım, kod
- Platform
- iPhone ve iPad · 2026
- Durum
- TestFlight’a hazırlanıyor
- Teknolojiler
- Swift · SwiftUI · Observation · AVFoundation
Fikir
Kalabalık bir oda için bir çizim oyunu; telefon işin önüne geçmiyor.
Bir oyuncu tahtaya ya da kâğıda çizer, takımı tahmin eder. İki ila dört takım oynar; oyundan önce tur süresi, tur sayısı ve tur başına bedava pas seçilir. Bilinen kelime bir puan; pas, turun bedava pasları bitene kadar ücretsiz, sonra bir puan götürür. En yüksek puanda eşit kalan takımlar galibiyeti paylaşır, rövanş aynı ayarlarla başlar. Fikirden koda kendi projem; yapay zekâ kodlama asistanlarıyla geliştirdim.
Tasarım
Gürültülü, tombul ve her takımın renginde okunur.
Mobil parti oyunlarından ödünç alınmış çizgi filmsi bir 3D stil: kalın koyu mürekkep konturları, sert gölgeler ve Black ağırlığında SF Rounded. Arka planın tamamı oynayan takımın rengini alıyor; rozetler ve satırlar bu yüzden renkli noktalı beyaz zeminde, takım sarıysa limon yeşilinde duruyor ve dört rengin hepsinde okunuyor. Metinler esprili bir Türkçe: “Süre bitti, kalemler yere!” gibi.
Mühendislik
Tek bir durum makinesi ve kayamayan bir sayaç.
Observation framework ile Swift ve SwiftUI. Tek bir durum makinesi kurulumdan final skorlarına kadar her ekranı yönetiyor. Sayaç, sayılan tiklerden değil her 200 ms’de kontrol edilen bir bitiş zamanından hesaplanıyor; bu yüzden duraklatma tam isabetli ve uygulama arka plana geçince oyun kendini duraklatıyor. Ses, ambient bir ses oturumunda çalıyor; sessiz moda uyuyor ve çalan müziğe karışıyor. Ses ve titreşimin ayrı anahtarları var.
Telefondan hiçbir şey çıkmıyor: hesap yok, reklam yok, analitik yok. Ayarlar ve görülen kelimelerin geçmişi UserDefaults’ta duruyor; App Store gizlilik cevabı “Veri Toplanmıyor”. Henüz birim testi yok; bir UI test hedefi App Store ekran görüntülerini çekiyor ve oyunu Simülatör’de iPhone SE, iPhone 17 Pro Max ve iPad Pro üzerinde oynayarak test ettim.
Kelimeler
En zor kısım, aynı kelimeyi asla iki kez vermemekti.
Bir kelime aynı oyunda geri gelmemeli, önceki oyunlarda kimsenin görmediği kelimeler önce çıkmalı, her seviye bir alt seviyeden sabit bir dilim almalı; turu geri almak ya da özeti düzeltmek görülmüş bir kelimeyi desteye geri koymamalı. Her oyun kullanılan kelimelerin, her seviye de görülenlerin kaydını tutuyor; her yeni deste ikisinde de olmayan kelimelerden çekiliyor. Bir seviyenin tamamı görülünce geçmişi bu oyunun kelimeleriyle yeniden başlıyor.
Kelimeyi gizli tutmak da az kalsın o kadar zordu. Çizen telefonu tutarken takım tahtaya bakıyor; bu yüzden kelime kart basılı tutulana kadar gizli kalıyor, her yeni kelime bir an açılıp yeniden kapanıyor.
Öğrendiklerim
Seçmek, çoğaltmaktan iyidir.
Bir kalite taraması çizmesi zor ya da seviyesine uymayan 127 kelime buldu; listeler 2.700 kelimeden 2.607’ye indi. Soyut kelimeleri en zor seviyeye ayırmak seviyeleri birbirinden belirgin şekilde ayırdı. Gerçek zamanlı sayaçlar sayılan tiklerden değil bitiş zamanlarından gelmeli. Parti oyunları büyük dokunma alanları, ses ve titreşim geri bildirimi ve yanlış dokunuşu affeden düzeltmeler ister. Yapay zekâ ajanları da mekanik işi en iyi yazılı görevler olarak aldıklarında yapıyor; ardından ayrı bir build ve inceleme adımıyla.
Ekranlar
- Kuralları seç: Logonun altında takımlar, tur süresi, bedava pas, tur sayısı, ses ve titreşim.
- Zorluğu seç: Kelime sayılarıyla dört seviye, başlat düğmesi ve tahmini oyun süresi.
- Sıra kimde?: Açılış kurasından sonra: başlayan takım, telefonu saklama hatırlatması ve puan tablosu.
- Çiz, söyleme: Gizli kelime, geri sayım, tur puanı, geri al ve Pas ile Bildi.
- Kalemler yere: Süre bitti; takım son kelimenin zamanında bilinip bilinmediğini söylüyor.
- Yanlış dokunuşu düzelt: Turun her kelimesi; bir dokunuş Bildi ile Pas’ı değiştirir, puan da takip eder.
- Ve kazanan: Rövanş düğmesiyle final skorları.
- Tek kartta kurallar: Nasıl oynanır; ilk açılışta gösterilir.
Teknoloji
- Uygulama
- Swift, SwiftUI, Observation
- Veri
- UserDefaults, bundled word lists
- Ses
- AVAudioPlayer, UIFeedbackGenerator, CC0 sounds from Kenney.nl
- Araçlar
- XcodeGen, Xcode UI tests, Claude Code, Google Antigravity