Oktay Dak'tan bir saha rehberi

Vibecoding ile oyun geliştirme

Üç iPhone oyununu tek başıma, Expo ve yapay zekâ ajanlarıyla nasıl çıkardım. Gerçek promptlar, gerçek faturalar, gerçek redler.

Oyuna başla

11 level, yaklaşık 45 dakikalık okuma. İlerlemen bu tarayıcıda saklanır. Son güncelleme 12 Kasım 2026.

level0

Başlamadan önce

Karakter seçimi

Ben eğitimli bir oyun geliştiricisi değilim. C# öğrendim, kimse işe almadı, bir Telegram botu yaptım, bot büyüdü. 2025'in sonunda Swift ile bir asansör oyunu yaptım ve çekmeceye kaldırdım. 2026 sonbaharında elimde bir iPhone, Expo ve kodlama ajanları vardı. Bu sefer Xcode'a hiç dokunmadan ilerledim.

Bu rehber o sonbaharın kaydı. 27 Eylül ile 12 Kasım arasında üç oyun yaptık. İkisi App Store'da, biri çıkmak üzere. Buradaki her prompt benim gerçekten yazdığım mesaj; yazım hataları ve klavyeye vurup geçtiğim dfkljghdfg'ler dahil. Her maliyet gerçekten ödendi, her red gerçekten geldi.

Üç oyun

Pixel AI Idle

Eski bir bilgisayarın içinde minik bir yapay zekâ büyütüyorsun.

Tür
Idle / incremental
Motor
Expo SDK 57, React Native
Para
Ödüllü reklam + 3 tek seferlik paket
Zorluk
Durum
App Store'da, 8 Kasım

Awkward Elevator

Yabancılarla asansördesin. Göz göze gelme.

Tür
Refleks / komedi
Motor
Swift'ten Expo'ya, bir günde
Para
İlk 3 kat ücretsiz, tam oyun $1.99
Zorluk
Durum
App Store'da, 30 Ekim

AFTER/AI

Yapay zekânın tarihini yapay zekâ olarak yaşıyorsun.

Tür
Kart kaydırmalı alternatif tarih
Motor
Expo SDK 57, Skia
Para
İlk yaşam ücretsiz, tek bilet
Zorluk
Durum
Yakında

Envanter: ne lazım?

EşyaNe içinFiyat
Bir iPhoneHer şeyin son hakemi. Dokunuş, ses, titreşim ancak elde anlaşılıyor.elindeki
Bir bilgisayarKodun yazıldığı ve ajanın çalıştığı yer. iOS build'i bulutta alındığı için Xcode gerekmiyor; ağır işler de buluta taşınabiliyor (Level 5).elindeki
Apple Developer hesabıApp Store'a çıkmanın tek yolu. Bireysel hesap yeterli, şirket gerekmiyor.$99 / yıl
Expo + EASiOS build'ini senin yerine bulutta alıyor. Ücretsiz planda ayda 15 iOS build.$0
Bir kodlama ajanıBenim için Claude Code: ana işte Opus, ağır işte Sonnet ve Haiku.abonelik + bazen API
Görsel, ses, müzik modelleriWiro, Runware ve inference.sh üzerinden, kullandıkça öde.oyun başına $7–30

Vibecoding burada ne demek: Kodu ben yazmıyorum, ama oyunu ben yapıyorum. Ne hissettirmesi gerektiğini, neyin kötü göründüğünü, neyin komik olduğunu ben söylüyorum. Ajan yazıyor, ölçüyor, test ediyor. Bu rehber o iş bölümünün nerede işlediğini ve nerede çöktüğünü anlatıyor.

Görev 0/3
level1

Ne yapacağız?

Fikir avı

Bu level'da Ajanla fikir bulmanın hızlı ret döngüsü, "önerilen şık" tuzağı ve kodsuz prototip.

Bir oyun fikri ajanla konuşarak bulunuyor, ama ajanın önerdiği fikirle değil. Bizde kazanan fikir neredeyse her seferinde benim ağzımdan çıktı. Ajanın işi o fikri yakalamak, adını koymak ve sınırlarını çizmek oldu.

Hızlı ret döngüsü

Yeni bir oyun konuşması hep böyle gevşek açılıyor:

Oktay Yeni oyun 17 Ekim

kankka... pixel ai idle, awkward elevator ve after-ai bizim oyunlar bunları biliyorsun. yeni bir tane daha başlayalım diyorum ne dersinm? nasıl bir oyun yapsak aklımda bir şey yok ama :=p

Ajan her turda 3–5 fikir getiriyor, birini yıldızlıyor. Ben kısa bir retle ya da yön değiştirerek cevap veriyorum: "bunlar da weak kaldı", "daha farklı bir şeyler lazım", "papers please gibi bir şey". Bir oyun bu döngüde yedi tur ve iki gün sürdü. Bir sonrakinde bir buçuk gün sürdü ve sonunda yine benim fikrim kazandı:

Oktay Yeni oyun 11 Kasım

Hayır ya öyle değil. Misal bir odada 1milyar tane ürün var… Onları başta tek tek topluyorsun. Sonra işte zamanla gelişiyorsun gibi düşün.

"Önerilen" şık tuzağı

Bir ara bu işi düzene sokmak istedim. Ajan önce App Store'un ilk 100'ünü taradı, sonra bana dörder soruluk seçmeli setler sordu. Her soruda "(Önerilen)" yazan şıkkı seçtim. Yirmi dakikada ördekli, sevimli bir bulmaca prototipi çıktı. Sonra şunu yazdım:

Oktay Yeni oyun 4 Kasım

Bok gibi. En baştan başlıyoruz. Sorulara baştan başlayacağız. O nedenle tamamen sil lütfen… daha viral bir şeyler bulalım :) yani şöyle düşün. Aldın tiktoka attım.

Sorun ajanda değildi. Önerilen şık bir yönlendirme. Ajan önerilerini ilk 100 listesine göre ayarlamıştı ve ilk 100 o hafta sevimli bulmacalarla doluydu. Ben ise viral bir şey istiyordum ama bunu hiç söylememiştim.

Kural: Seçenekleri görmeden önce kriteri yaz. Bizimki tek cümle: "Bu oyunun 10 saniyelik klibi TikTok'ta akışı durdurur mu?" Bu kural artık her yeni oyunun başlangıç dosyasında yazıyor ve güvenli seçenek varsayılan öneri yapılmıyor.

İyi bir solo mobil oyunun özellikleri

  • Tek cümleyle anlatılıyor. "1 milyar parayı topla." "Asansörde kimseyle göz göze gelme."
  • Kısa tur. 3–5 dakika ve "bir tur daha" hissi.
  • Görünen ilerleme. Ekranın kahramanı sahnenin kendisi olmalı, ekranda az sayı olmalı.
  • Paranın oyunda bir anlamı var. Reklam ya da satın alma oyunun kurgusuna gömülü olmalı: çevrimdışı ×2, yeniden doğuş bileti.
  • Kısa isim, açıklayan alt başlık. App Store başlığı 30 karakter. Ajana isim çakışmasını da kontrol ettir.

Kod yok, önce prototip

Fikir netleşince ilk iş Expo projesi açmak değil. Ajan tek bir HTML/canvas sayfası yapıyor ve linkini telefonuma yolluyor. Zombi denemesinde başlangıç promptundan oynanabilir prototipe 25 dakika geçti. Görsel yön için de ucuz konsept görseller ürettiriyorum: beş farklı kamera açısı yaklaşık 21 sent tuttu. "FPS olan çok iyi göründü" dedim, karar verildi.

Dikkat: Ajan bir kere sormadan bütün oyunu HTML olarak yazdı. "benden habersiz niye oyun yarattın ahahhah" diye yazdım. Kuralı baştan koy: fikir netleşmeden kod, paket ve build yok.

Görev 0/3
level2

Kurallar kitabı

Ajana yazılı kurallar

Bu level'da AGENTS.md, INTENT.md, kalıcı hafıza ve her yeni oyunu başlatan tek satır.

Konuşma his ve yön üzerinden ilerliyor. Teknik kurallar ise yazılı bir dosyada duruyor. Böylece her oturumda aynı şeyi tekrar anlatmak zorunda kalmıyorsun.

Üç oyun, üç kural kitabı

Kural dosyalarım her oyunda değişti:

  1. Pixel AI Idle: ağır kitap. 1.511 satırlık bir AGENTS.md ve 18 adımlık ("GOAL") bir plan. Bir seferde tek GOAL yapılıyor, her iş sabit bir rapor formatıyla bitiyor. Disiplinliydi ama ağırdı. Sonunda "Kusursuz bir idle incremental oyun olmasını istiyorum" deyip planın kapsam kuralını kendim deldim.
  2. AFTER/AI: belgeler önce. İlk gün kod yazılmadan altı belge vardı: niyet, oyun tasarımı, içerik modeli, mimari, yol haritası ve AGENTS.md. En değerli kuralı şuydu: "Kaydırmanın iyi hissettirdiğini doğrulamadan tarih evrenini kurma." İlk hedef 10 karttı.
  3. Awkward Elevator: minimal. 41 satırlık bir AGENTS.md, çoğu Expo'nun kendi şablonundan gelen metin.

Bugün kullandığım şey üçünün özeti: hafif, soru-cevaplı ve önce prototip yapan bir başlangıç dosyası.

Oktay Yeni oyun 11 Kasım

Yok yok goal falan olmayacak kankacım. Şimdiye kadar alınan kararları bir konuşalım lütfen bir listele sonra devam ederiz.

Her yeni oyunu açan tek satır

İlk mesaj
BASLANGIC-PROMPTU.md dosyasını baştan sona oku, oradaki kurallar bu projenin sabit kuralları. Ona göre başla: önce kardeş projelere göz at, ilk 100 ve viral trend araştırmasını yap, sonra bana ilk soru setini işaretlemeli olarak sor.

Dosyada 12 bölüm var ve her kural önceki üç oyundan birinde yaşanmış bir acıdan geliyor:

BölümNe diyorNeden
Çalışma şekliUzun plan yok. Her karar seçmeli soruyla, bir seferde en fazla 4 soru. Tasarım, para, native paket ve mağaza kararlarında dur ve sor.Ağır GOAL planı solo akışa uymadı.
StackEn güncel Expo SDK. Paketler npx expo install ile. Expo hafızadan bilinmez, önce sürüme uygun doküman okunur.Modelin eğitim verisindeki eski Expo API'leri.
PlatformSadece iPhone, sunucu yok, hesap yok. Build sadece EAS bulutunda. ios/ klasörüne elle dokunulmaz, native proje her build'de yeniden üretilir.Tek ve tekrarlanabilir bir build yolu.
BuildAyda 15 iOS build. Build almadan önce nedenini söyle ve sor. Native paketler baştan kilitlenir, sonrası OTA.Ücretsiz plan kotası (Level 3).
BelgelerAGENTS.md, INTENT.md, DESIGN.md. Oyun mantığı React dışında, saf TypeScript. Türkçe ve İngilizce baştan. Font Türkçe karakterlerle kontrol edilir.Awkward Elevator'ın piksel fontunda "İ" bozuk çıktı.
AssetGörselde tek model. Her müzik Whisper'dan geçer. Her üretimin yanına bir json log yazılır. "AI slop yok."Ajan ses duyamıyor (Level 5).
AjanlarGeniş taramayı Haiku yapar, Sonnet doğrular, ana ajan uygular.Fatura şoku (Level 6).

Hafıza: projenin asıl beyni

AFTER/AI tek bir Claude Code oturumunda beş hafta sürdü. Konuşma o sürede sekiz kere sığmayıp özetlendi. Kararları taşıyan şey 15 küçük hafıza dosyasıydı: fiyat planı, seslendirme sağlayıcısı, görsel yaklaşımı, "görsel iş cihazda görülmeden bitmiş sayılmaz" kuralı, kredi bütçesi. Reddedilen bir fikri de nedeniyle birlikte hafızaya yazdır. Böylece aynı hata ikinci kez yapılmıyor.

Şablon: AGENTS.md'de kurallar ve çalışma şekli olsun; CLAUDE.md içine tek satır @AGENTS.md yaz. INTENT.md'ye ne yaptığını, nedenini, hissini ve sınırlarını yaz. DESIGN.md kararlar netleştikçe büyüyen bir taslak olsun.

Görev 0/3
level3

Expo ve EAS

Kod telefona nasıl gider

Bu level'da Expo Go ve dev client ile telefonda test, build kotası, Metro dertleri ve ilk build'e mutlaka girmesi gereken paket.

Bu sonbahar Xcode'u hiç açmadık. Kod bilgisayarda yazılıyor, telefona ağ üzerinden geliyor; App Store'a gidecek dosyayı ise Expo'nun bulut makineleri derliyor.

Oktay Awkward Elevator 10 Ekim

ewvert telefonda kurulu kankacım. expo go yani. haydi bakalım tüm her şeyi bitirelim. subagentlar agentlar gerekli her şeyi çalıştır lütfen

10 Ekim'de Swift ile yazılmış, on aydır dokunulmamış asansör oyunu bir günde, 23 commit'le Expo'ya taşındı. Eski kod legacy-ios/ klasöründe referans olarak duruyor. Ajan mantığı saf TypeScript'e çevirdi, ekranları yeniden kurdu. Fikirden telefonda oynanan ilk sürüme bir buçuk saat geçti.

Telefonda test etmenin iki yolu

  • Expo Go. App Store'dan indirilen hazır uygulama. Sadece Expo Go'nun içinde olan modülleri kullanırsan hiç build almadan bütün oyunu geliştirebilirsin. Awkward Elevator mağaza build'ine kadar böyle geliştirildi.
  • Dev client. Senin oyununa özel, EAS'ın bir kere derlediği geliştirme uygulaması. Skia, satın alma, reklam gibi native paketler gerekiyorsa bu şart. Pixel AI Idle ve AFTER/AI böyle geliştirildi.
Bilgisayarda
# paketler hep expo'nun seçtiği sürümle
$ npx expo install expo-audio expo-haptics expo-updates
# dev client için, telefon aynı Wi-Fi'da
$ npx expo start --dev-client --lan
# evde değilsen
$ npx expo start --dev-client --tunnel
# bir kerelik geliştirme build'i (bulutta, ~5 dk)
$ npx eas-cli build --platform ios --profile development
Boss: beyaz ekran

Ne oldu

Dev client açılıyor, bembeyaz ekran. Kodda hata yok. Telefona hiçbir şey gelmiyor.

Çözüm

Kod değil ağdı. Güvenlik duvarı (ufw) 8081 portunu kapatıyordu, Docker köprüleri yüzünden Expo da yanlış IP duyuruyordu. Portu yerel ağa açıp REACT_NATIVE_PACKAGER_HOSTNAME'e gerçek IP'yi verince düzeldi.

Benzer küçük canavarlar:

  • Port çakışması. Aynı anda iki oyunun Metro'su açıksa ikincisini başka porta al (bizde 8082 ve 8095).
  • Bayat bundle. Metro bazen dosya değişikliğini kaçırıyor ve testler eski kodla koşuyor. Ajana bundle'ı curl ile çekip yeni satırı aratmasını öğret; bulamazsa --clear ile yeniden başlatsın.
  • Tünel limiti. Expo'nun ortak tüneli dolunca --lan'a dön.

Build bütçesi: ayda 15

EAS'ın ücretsiz planında ayda 15 iOS build hakkın var ve bu hak bütün oyunların arasında paylaşılıyor. Build her şeyden pahalı kaynak gibi korundu:

Oktay Awkward Elevator 10 Ekim

evet evet neredeyse sıfır build alarak hiç build almadan yani neredeyse işimizi yapmamız lazım kankacım.

Oktay AFTER/AI 9 Ekim

biriktirdiğimiz buildler nelerdi. hepsini tek seferde alalım

  • Native paketleri baştan kilitle. Ses, titreşim, satın alma, bildirim, güncelleme: ilk build'de hepsi olsun.
  • Eski dev client'ı bozma. Yeni bir native modül eklediğinde kod, modül yoksa sahte (mock) sürüme düşsün. Pixel AI Idle'da bu sayede eski dev client kırmızı ekran vermedi.
  • Doğrulama build'siz. tsc, lint, expo-doctor, testler. Build en son.
Boss: OTA'sız ilk build

Ne oldu

Pixel AI Idle'ın ilk mağaza build'inde expo-updates yoktu. Analitik eklemek için yeni bir sürüm ve yeni bir inceleme beklemek gerekti.

Çözüm

expo-updates ilk build'e girdikten sonra teklif ekranları, reklam ayarları ve hata düzeltmeleri incelemesiz, eas update ile aynı gece gitti.

İki ince ayrıntı: OTA güncellemesi yeni kurulumda ancak ikinci açılışta devreye giriyor. runtimeVersion uygulama sürümüne bağlıysa, eski sürüme düzeltme göndermek için o sürümün dalından güncelleme yayınlaman gerekiyor.

Görev 0/4
level4

Oyun hissi

Oynanır kılmak

Bu level'da Ajana göz vermek, denge botları, insanın bulduğu açıklar ve akıcılık.

Ajan oyunun çalıştığını kanıtlayabiliyor. Eğlenceli olup olmadığını ise bilemiyor. Bu level ikisinin arasındaki boşluk hakkında.

Ajana göz ver

Ajan telefonu göremiyor. Bu yüzden oyunun bir web sürümü çalıştırılıyor ve başsız (headless) bir Chrome iPhone boyutunda ekran görüntüsü alıyor. Hazır kayıt dosyalarıyla oyunun başını da sonunu da açabiliyor. Aynı düzenek sonradan 12 dilde 72 mağaza ekran görüntüsünü de çıkardı.

Ajan bu kontrolü bırakınca neler olduğunu gördüm:

Oktay Awkward Elevator 31 Ekim

Yahu sen mallaştun mı biraz ahahahah düzgünce yerleştir … eskiden böyle değildin sen ekran görüntüsü istemeden yaptın tüm oyunu amk

Ajan her ekranı yeniden kendisi render edip bakmaya başladı. Her turun sonuna da "📱 Test etmen gerekenler" diye numaralı bir liste koydu. Dokunuş, ses, titreşim ve gerçek satın alma o listede, çünkü onları sadece telefonda ben doğrulayabiliyorum.

Mantık React'in dışında

Üç oyunda da oyun kuralları ekrandan ayrı, saf TypeScript olarak yazıldı. AFTER/AI'ın kural kitabındaki cümle şu: "React oyunun durumunu çizer, tarihin kurallarını belirlemez." Bunun büyük bir faydası var: oyun ekransız da oynanabiliyor, yani bir bot binlerce kez oynayabiliyor.

  • Pixel AI Idle: açgözlü bir bot saniyede 3 dokunuşla oynuyor. İlk yeniden doğuş yaklaşık 42 dakikada, veri merkezi yaklaşık 4 saatte geliyor.
  • Awkward Elevator: tohumlu (seeded) bir denge botu, kat başına 40 ile 12.000 arası oyun oynuyor. Sonuçlar tarihli raporlar olarak kaydediliyor.
  • AFTER/AI: 11 farklı oyuncu tipiyle 500 oyuncu, 900 oyun, 124.556 hamle. İlk 100 oyuncuda bir kayıt kaybı hatası çıktı.
Boss: hiçbir şey yapmayan oyuncu

Ne oldu

Botlar bin oyun oynamıştı ama kimse kıpırdamadan durmayı denememişti. Ben denedim: asansörün 2. katı hiçbir şey yapmadan oyunların %87'sinde kazanılıyordu.

Çözüm

Bakış baskısı zamanla artıyor, asansör hiç boşalmıyor. Hiçbir şey yapmadan kazanma oranı %0–8'e indi. Bu durum artık kalıcı bir testle korunuyor.

Oktay Awkward Elevator 4 Kasım

Karakterlerin yani mesela teyzeler. Bunların aynı anda soru sorması konuşması veya aynı anda bakması saçma değil mi? … Lütfen oyuncu gözüyle uçtan uca inceler misin?

Bot ölçtü: 3. kattaki oyunların yarısında iki teyze aynı anda soru soruyordu ve zorluğun çoğu bu saçmalıktan geliyordu. Bir kerede tek konuşan, tek bakan kuralı geldi; zorluk mantıklı bir nedenle geri kondu. Bot ölçer, neyin komik olduğuna insan karar verir.

Claude AFTER/AI 4 Kasım

Simülasyon oyunun çalıştığını gösteriyor, eğlenceli olduğunu göstermiyor.

Takılma hissi

Oktay Awkward Elevator 15 Ekim

oyunumuz biraz fazla takılmalı. yani akıcı değil. donma değil demek istediğim

Neden basitti, bulması zordu: oyun her karede durumunu React'e veriyor, React de bütün sahneyi saniyede 60 kez yeniden çiziyordu. Çözüm: motor bir ref'te duruyor, kare kare değişen değerler Reanimated ile UI thread'inde hareket ediyor, yalnızca transform kullanılıyor, ses çağrıları kare döngüsünün dışına alınıyor. AFTER/AI'da da benzeri oldu: köz efektli başlık ekranı JS thread'ini tutuyordu, sahne 5 milisaniyelik dilimlerle kuruldu.

Görev 0/3
level5

Görsel, ses, müzik, video

Asset fabrikası

Bu level'da Tutarlı yapay zekâ görselleri, duyamayan bir ajanla ses işi ve gerçek maliyetler.

Kod dışında oyundaki her şey üretildi: karakterler, sahneler, ikonlar, müzik, seslendirme, fragman. Hilesi şuydu: modelden güzel bir resim istemek değil, birbirine uyan yüzlerce resim isteyebilmek.

Tek model kuralı

Oktay Pixel AI Idle 11 Ekim

Kankacım sadece gpr sunburnst modelini kullan… Nano banana asla olmamalı. Maliyet… 15 dolar okey.

Üç oyunun bütün görselleri tek modelle, gpt-image-2.5-sunburst ile üretildi. AFTER/AI'da karar vermeden önce dört sahne yedi farklı modelde denendi; deneme 58 sent tuttu. Tek modelde kalmak stilin kaymasını engelliyor.

Tutarlılığın sırrı: üretme, düzenle

Aynı karakterin ya da aynı odanın farklı hallerini sıfırdan üretirsen her seferinde biraz başka biri çıkar. Bunun yerine önce bir temel görsel üretiliyor, her yeni hal o görselin düzenlemesi olarak isteniyor:

  • Pixel AI Idle'ın laboratuvarı: eski PC'den veri merkezine 8 aşama, her biri bir öncekinin düzenlemesi. Oda, pencere, kedi ve masa yerinde kalıyor. Sonra kod resmi 320×240'lık piksel ızgarasına indiriyor, 96 renge düşürüyor ve 4 kat büyütüyor. Toplam 34 sent.
  • Asansördeki karakterler: önce temel sprite, sonra her poz onun düzenlemesi. Promptlar uzun ve madde madde: perspektif, aynanın hangi duvarda olduğu (oyunun mekaniği buna bağlı), "insan yok, yazı yok, sayı yok". 17 sprite yaklaşık $1,2 tuttu.
  • AFTER/AI'ın kartları: 692 kartın her biri için iki hal üretildi: anı hali ve yanma hali. Yanma hali anı halinin düzenlemesi olduğu için ikisi piksel piksel üst üste oturuyor. Kod sadece aralarında geçiş yapıyor. Hepsi bir gecede çizildi ve yaklaşık $29 tuttu.
Her düzenleme promptunun başı
Keep EXACTLY the same camera framing, the same straight-on front orthographic view, the same pixel art style… Change only: …
No text, no letters, no numbers, no logos, no watermark.
  • İkonları ızgara olarak üret. Tek görselde 3×3 ikon, sonra kodla kes. 43 ikon birkaç kuruşa geldi.
  • Dikey düşün. "biz bu görselleri neden dikey üretmiyoruz amk? telefon oyunu bu sonuçta"
  • Efekti kodla çizme, resmi boya. AFTER/AI'da kartın üstüne kodla çizilen ateş iki kere reddedildi. Hafızaya yazılan ders: "Güzellik resimden gelmeli; kod sadece boyanmış haller arasında geçiş yapmalı."

Duyamayan bir ajanla ses işi

Claude AFTER/AI 9 Ekim

Seçimlerin hepsi ölçüme dayanıyor, ben sesleri duyamıyorum.

Bu cümle ses işinin bütün kuralını anlatıyor. Ajan ses dosyasını ölçebiliyor ama dinleyemiyor. O yüzden her şey otomatik kontrolden geçiyor:

Boss: hayalet anlatıcı

Ne oldu

Bir müzik modeli, Türkçe prologun altına kimsenin istemediği İngilizce konuşan bir erkek "anlatıcı" ekledi.

Çözüm

O günden beri her müzik parçası Whisper'dan geçiyor. Transkript boşsa parça temiz demek. Bu kural artık her yeni oyunun başlangıç dosyasında.

  • Ses yüksekliği ölçülerek ayarlanıyor. Müzik −18 LUFS, tepe en fazla −2,3 dBTP. Telefon hoparlörü derin basta bozulduğu için 60–80 Hz altı kesiliyor.
  • Ses dokunuşla birlikte gelmeli. Kart kaldırma sesi 0,24 saniye kırpıldı, çünkü "parmaktan sonra çalıyordu".
  • Seslendirme: ElevenLabs v4. Asansörde 195 replik var ve teyzenin her sorusunun kendi cevabı var. Pixel AI Idle'da 12 dilde 144 replik var.
  • Efektleri ürettirmek şart değil. Pixel AI Idle'ın 14 efekti saf Python ile sentezlendi; hiç model kullanılmadı.

Oktay AFTER/AI 22 Ekim

bunları hangi modelle ürettin amk iğrenç bunlar

Zevk yine insanda. Müzikte üç model denendi: biri reddedildi, ElevenLabs Music v2 ana tema oldu ("oha eleven aşırı iyi oldu"), ACE-Step sonraki yaşamların fon müziği oldu.

Maliyet tablosu

NeOyunMaliyet
Bütün asset'ler (ilk sürüm)Pixel AI Idle~$7
…bunun fragman kısmı (Seedance)Pixel AI Idle$5,56
Bütün karakter sprite'larıAwkward Elevator~$1–2
Üç 10 saniyelik tanıtım videosuAwkward Elevator$9,28
…bunun boşa gideni (aynı sahne iki kere)Awkward Elevator$2,32
692 kart × 2 halAFTER/AI~$29
27 ses efektiAFTER/AI~$0,54
12 müzik adayı (ACE-Step)AFTER/AI$0,74

Ağır işler buluta: Video render, Whisper ve uzun test koşuları Google Cloud Run'da çalıştı; lansman filmleri Remotion ile orada çizildi. Bilgisayar bu yükü taşımak zorunda kalmadı.

Görev 0/4
level6

Opus, Sonnet, Haiku

Alt ajan ordusu

Bu level'da Bir ajanın başka ajanları yönetmesi, Divan gecesi ve $366'lık ders.

Ana ajan işleri alt ajanlara dağıtabiliyor. Doğru kurulursa bir gecede bir roman kadar içerik çıkıyor. Yanlış kurulursa fatura geliyor.

Oktay Pixel AI Idle 11 Ekim

Evet bence de hepsini yapalım sırayla. Ama sen yapma onu sonnet yapsın söyle … bitince sen kontrol işi yaparsın :)

İş bölümü zamanla oturdu: Haiku tarar, Sonnet yapar ve doğrular, ana ajan (Opus) karar verir ve uygular. Birbirine dokunmayan işler paralel gidiyor. Asansörün akıcılık sorunu üç katmanlı bir "ordu" ile incelendi: üç Sonnet komutan, her birinin altında üç Haiku.

Divan gecesi

AFTER/AI'ın dokuz bölümünü derinleştirmek için ajanlara Osmanlı sarayından isimler verildi:

RolModelGörevi
Padişahana oturumOrkestra eder, bütün kodu birleştirir.
SadrazamOpusBir bölümün sahibi.
VezirlerSonnetTarih araştırması, yazım, denge ve testler.
KâtiplerHaikuHer vezirin altında üç kâtip.
Muhalif PaşaOpusHer kartı 1–10 puanlar. 7'nin altını yeniden yazdırır.
TebaaHaikuSimüle edilmiş oyunları farklı oyuncu gözüyle okur.

Hepsini bağlayan şey 1.289 satırlık bir senaryo sözleşmesiydi: Ferman. Paralel yazan ekiplerin birbirinden kopmaması için bayrak adlarını, bölüm tablosunu ve "hiçbir ekip başka bir ekiple konuşmak zorunda kalmaz" kuralını sabitliyordu. Her bölüm kendi git dalında yazıldı. Muhalif Paşa 730 taslak kartın yaklaşık %60'ını 7'nin altında puanlayıp geri gönderdi.

Sonuç: 692 kart, 92 alternatif tarih, kaynaklı 164 gerçek olay, 8 son. Hepsi otomatik doğrulayıcılardan geçti.

Boss: fatura

Ne oldu

Ajan $60–150 tahmin etmişti, oturumun toplamı $366 oldu (Opus $256, Sonnet $80, Haiku $30). Gece 153 ajan planlandı, limit dolunca sadece 37'si bitirebildi. Abonelik kredisi bitti; "mevcut bakiye sıfır diyor … imdat". İşi bitirmek için oturumu API kredisine geçirdim.

Ders

Pahalı modeli çoğaltma. Ucuz model tarasın, güçlü model yargılasın, dağılım dar kalsın. Simülasyonlar küçük olsun. Yarıda kesilen ajanlar önbellekten devam edebiliyor, ama "wip … interrupted" commit'leri o gecenin yara izi olarak duruyor.

Aynı anda çok ağır ajan: Dört Opus ajanını aynı anda çalıştırdığımda oturum dondu. "çok fazla olunca donmuş kapanmış tek tek yollar mısın lütfen?" dedim; sıralı çalıştırmaya geçildi. Web aramasının oturum başına ortak bir kotası da var ve bütün alt ajanlar o kotayı paylaşıyor.

Doğrulayıcılar: içeriğin kalitesini kod koruyor

Ajanların yazdığı yaklaşık 700 kartı ancak bu sayede yönetebildik. AFTER/AI'da npm test 35 doğrulayıcı çalıştırıyor:

  • Kart metni uzunluğu ve tek soru işareti.
  • Okunan ama hiç yazılmayan bayraklar.
  • Her bölümde bir oyunun 15–20 kart görmesi.
  • İngilizce ekranda tek bir Türkçe kelime bile kalmaması (247 ekran).

Bütün paket bir ara 31 dakikaya çıktı. "tam teste gerek yok amk. çok uzun sürüyor" dedim; gündelik iş için hızlı bir alt küme yazıldı.

Görev 0/3
level7

Satın alma, reklam, gizlilik

Para modeli

Bu level'da Üç oyun, üç farklı para modeli; RevenueCat'siz satın alma ve bir bilet olan ödeme ekranı.

Oktay Pixel AI Idle 11 Ekim

Oyunu reklamsız bırakıp ücretli mi yapsak oyun içi reklam koyup jeton satıp reklamsız sürüm mü satsak? Ne dersin?

OyunModelNasıl
Pixel AI IdleÜcretsiz + reklam + paketlerİsteğe bağlı ödüllü reklam, ara sıra zorunlu reklam, üç tek seferlik paket ($1.99 / $3.99 / $4.99). Herhangi bir satın alma reklamları kaldırıyor. AdMob.
Awkward ElevatorDene, sonra açİlk 3 kat ücretsiz, 4–6. katlar $1.99'lık "Tam Oyun". Reklam yok.
AFTER/AIİlk yaşam ücretsizİlk yapay zekâ kışında ölüyorsun. "Yeniden doğ" anında tek seferlik bir bilet sonraki yaşamları açıyor.

RevenueCat şart değil

Oktay Pixel AI Idle 11 Ekim

illllaaaki revenuecat kullancaz mı? paramız boşa gitmesin lan

Abonelik yoksa gerek yok. Tek seferlik satın alma ve geri yükleme (Restore) için StoreKit yetiyor; üç oyun da expo-iap kullanıyor. Hatırlanması gerekenler:

  • Restore butonu zorunlu.
  • İlk non-consumable ürün yeni bir uygulama sürümüyle birlikte incelemeye gönderilmeli.
  • Gerçek satın alma sadece TestFlight'ta test edilebiliyor. Sandbox hesabı için kullanılmamış bir e-posta lazım.
  • Uç durumlar: iade edilen satın alma kilidi geri almalı; "Satın Almadan Önce Sor" onay bekliyorsa hiçbir şey açılmamalı.

Ödeme ekranı bir bilet

Oktay AFTER/AI 6 Kasım

Ben ödeme kısmını bulamadım … Tutar bile yazmıyor ki

Oktay AFTER/AI 6 Kasım

20 tane farklı yeni stil yarat uçtan uca ve yan yana fotolarını koy

Ajan yirmi farklı ödeme ekranı tasarladı: müze, takımyıldız, 80'ler terminali, 2036'dan gelen bir mektup… Dörtlü bir kısa liste çıktı, ikisi canlandırıldı ve bilet seçildi. İlk yaşamın bileti "KULLANILDI · KIŞ" damgalı. Yeni bilette 1976'dan 2036'ya güzergâh ve fiyatlı bir koçan var. Satın alınca koçan yırtılıyor, titreşimle "GEÇERLİ · 1976" damgası basılıyor. Tasarım önce web'de prototiplendi, sonra uygulamaya taşındı.

Kural 4.5.4: Bildirimler satın almayı, fiyatı ya da indirimi reklam edemez. AFTER/AI'ın hatırlatmaları sadece hikâyeden cümleler kullanıyor ve ayarlardan kapatılabiliyor. Abonelik dışındaki ürünlerde sahte "eski fiyat" göstermek de red sebebi olabilir; indirim fikri bu yüzden rafa kalktı.

Gizlilik bir ürün kararı

Analitik için SDK yok. Rastgele bir kurulum kimliğiyle PostHog'a (AB sunucuları) düz fetch isteği atılıyor. Reklam kimliği kullanılmadığı için takip izni (ATT) sorulmuyor. Asansör oyununda gizlilik etiketi kod gönderilmeden önce güncellendi: "önce etiketi güncelledik, sonra kodu."

Görev 0/3
boss8

İnceleme, red, onay

App Store

Bu level'da İlk build'in mağaza kaydını açması, sadece insanın yapabileceği işler, 19 günlük bekleme ve tek satırlık red.

Mağaza tarafı neredeyse oyunun kendisi kadar sürdü. Vergi, banka, sözleşmeler, satın alma metinleri, gizlilik etiketi, 12 dilde ekran görüntüsü. Ajan bunların çoğunu yapabiliyor; birkaç düğmeye ise sadece sen basabiliyorsun.

İlk build mağaza kaydını açar

Mağaza build'i
# önce: kaç sorun var?
$ npx expo-doctor
$ npx expo config --type introspect
# sonra: bulutta derle ve doğrudan TestFlight'a gönder
$ npx eas-cli build --platform ios --profile production --auto-submit

Awkward Elevator'ın App Store Connect'te hiç kaydı yoktu. İlk --auto-submit build'i paket kimliğini kaydetti, uygulama kaydını açtı ve bir TestFlight grubu kurdu. Apple girişi ve iki adımlı doğrulama soruldukça cevapları ben kendi terminalimde verdim.

Sadece senin yapabileceğin işler

  • Para ve hukuk: ücretli uygulama sözleşmesi, banka (USD hesabı), vergi formu (W-8BEN), Küçük İşletme Programı başvurusu (%15 komisyon). Ajan ekran görüntülerime bakarak adım adım yol gösterdi ama ödeme, vergi ve sözleşme ekranlarını doldurmadı.
  • Son "Gönder" tıklaması: Ajan App Store Connect'i Chrome eklentisiyle ve API'yle dolduruyor. "İncelemeye gönder", fiyat değişikliği ve "Hepsini sil" gibi geri alınamayan düğmeleri ise ajanın kendi güvenlik kontrolü engelledi. O düğmelere ben bastım.
  • Şifreler: Bir ara Apple şifremi sohbete yapıştırdım. Ajan kullanmadı ve değiştirmemi söyledi. Yapıştırma.

Oktay Pixel AI Idle 11 Ekim

tamam ne yapılacaksa app store connectte benim yapmam gereken hepsini alt alta yaz senin chrome eklentinle yaptıracağım hepsini

Bekleme ve red

Boss: Kural 2.5.4

Ne oldu

Pixel AI Idle 19 gün inceleme bekledi, sonra reddedildi. expo-audio varsayılan olarak "arka planda ses" iznini ekliyordu, oyun ise arka planda ses çalmıyordu.

Çözüm

app.json'da iki satır: enableBackgroundPlayback: false ve mikrofon izni kapalı. Native bir değişiklik olduğu için OTA olmadı, ikinci build gerekti. Hızlandırılmış inceleme dürüst bir metinle istendi ve kabul edildi.

Oktay Pixel AI Idle 30 Ekim

Yeni Build yollayınca 20 gün daha bekleyecek miyiz sence ahahahah

Aynı tuzak asansörde de vardı. Göndermeden önceki denetimde bir alt ajan expo-audio'nun eklediği mikrofon ve arka plan izinlerini yakaladı. Awkward Elevator ilk denemede onaylandı. Pixel AI Idle'ın 1.0.2 sürümünde ise expo-notifications sessizce push yetkisi ekledi ve build, App ID'ye Push yeteneği eklenene kadar çöktü.

Kural: Expo eklentilerinin varsayılanları senin istemediğin izinleri ekleyebilir. Her mağaza build'inden önce expo config --type introspect çıktısını ajana okut.

Küçük ama değerli

  • İngiltere İngilizcesini ekle. Türkiye mağazası ABD değil İngiltere İngilizcesini ve Türkçeyi okuyor. en-GB, 175 mağazanın 172'sinde okunuyor.
  • Onaylanan metin kilitlenir. Unuttuğun dili bir sonraki sürüme eklersin.
  • Anahtar kelimeler: en fazla 100 karakter, virgülle ayrılmış, boşluksuz ve başlıktaki kelimeleri tekrar etmeyen.
  • Ekran görüntüleri: web sürümünden headless tarayıcıyla çekiliyor, Python ile yazı ekleniyor. iPad'im olmadığı halde iPad görüntüleri de böyle çıktı.
  • Şifreleme sorusu: usesNonExemptEncryption: false yazmazsan TestFlight "Missing Compliance" der.
  • Destek ve gizlilik sayfaları: GitHub Pages'te yeterli.
Görev 0/4
level9

Oyun çıktı, şimdi ne?

Yayından sonra

Bu level'da Asıl duvar: dağıtım. Ölç, dinle, aynı gece OTA ile düzelt.

Kod yazmak sandığımdan kolaydı. Oyunu insanlara ulaştırmak sandığımdan zordu. İlk gün indirmeler geldi, ama satış gelmedi.

Oktay Awkward Elevator 4 Kasım

mesela 20 kişi indirmiş ama 0 satınalma var. neden? bunların üstüne düşünelim.

Bu soru bir sürü küçük değişikliğe yol açtı:

  • Öğretici kısaldı. 1. kat 1 dakika 50 saniye sürüyordu ve üçte ikisi talimat okumakla geçiyordu. Öğretici 14 adımdan 7'ye indi.
  • Ödeme duvarından önce bir fragman geldi.
  • Kaybedince neden kaybettiğin yazıyor.
  • Puanlama, paylaşım kartı ve yerel hatırlatmalar eklendi.

Ölç: ucuz analitik ve takip linkleri

Her paylaşım linki kaynağını söylüyor (/go/reddit, /go/x). Bir Telegram botu yeni oyuncuları ve saatlik raporu telefona atıyor. İlk haftanın dersleri:

  • Reddit, X'i açık ara geçti. X gönderileri birkaç saatte söndü; ilgili bir subreddit saatlerce tıklama getirdi.
  • Reklam, reklam kaldırma paketini satıyor. Pixel AI Idle'ın ilk iki satışı zorunlu bir reklamdan hemen sonra geldi. Animasyonlu "özel teklif" pencereleri ise hiç satmadı.
  • Oyuncuların büyük kısmı ilk birkaç dakikada bırakıyor, daha hiçbir reklam görmeden. Asıl iş ilk beş dakikada.

Dinle: aynı gece düzelt

Reddit Pixel AI Idle 10 Kasım

Üç oyuncu zorunlu reklamlardan şikâyet etti, biri buna "dealbreaker" dedi.

Oktay Pixel AI Idle 10 Kasım

Tamam o 5. Gelir kaybettiren kısmı acil çözelim kankacım ota ile okey? Sürüme gerek yok bunun için

Reklam aralığı 5 dakikadan 10 dakikaya çıktı ve ilk reklam üçüncü yeteneğe kadar ertelendi. Değişiklik aynı gece OTA ile gitti; cevap da bunu dürüstçe söyledi. Bir Discord topluluğu bulut kaydı istedi, bir sonraki sürüme kayıt kodu ve iCloud kaydı girdi.

Türkiye'den bir not: "Türklerden ise 'AI SLOP' cümlesi hariç dönüş alamıyorsun… Çünkü bu bir slop oyun değil." Yapay zekâyla yapıldığını söylemek bazı kitlelerde ön yargıyla karşılanıyor. Oyunu göster, aracı değil.

Görev 0/3
level10

Rakamlar

Skor tablosu

Üç oyunun indirme, gelir ve oyuncu verileri burada toplanacak.

Örnek veri: bu bölümdeki sayılar gerçek değil, gerçek veriler yakında eklenecek.

Toplam indirme
1.000örnek
Toplam gelir
$100örnek
Ödeyen oyuncu
%5örnek
Ertesi gün dönen
%30örnek
Oyuna göre indirme (örnek)
Pixel AI Idle600
Awkward Elevator400
AFTER/AI—

Bu bölüm, oyunların gerçek sayıları eklendiğinde güncellenecek.

★