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
Oktay Dak'tan bir saha rehberi
Üç 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şlaBaşlamadan önce
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. Küfürlerin üstüne sadece bir POW! yapıştırdım. Her maliyet gerçekten ödendi, her red gerçekten geldi.
Eski bir bilgisayarın içinde minik bir yapay zekâ büyütüyorsun.

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

Yapay zekânın tarihini yapay zekâ olarak yaşıyorsun.
| Eşya | Ne için | Fiyat |
|---|---|---|
| Bir iPhone | Her şeyin son hakemi. Dokunuş, ses, titreşim ancak elde anlaşılıyor. | elindeki |
| Bir bilgisayar | Kodun 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 + EAS | iOS 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 modelleri | Wiro, 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.
Ne yapacağız?
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.
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.
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
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.
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.
Kurallar kitabı
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.
Kural dosyalarım her oyunda değişti:
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.
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üm | Ne diyor | Neden |
|---|---|---|
| Çalışma şekli | Uzun 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ı. |
| Stack | En 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. |
| Platform | Sadece 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. |
| Build | Ayda 15 iOS build. Build almadan önce nedenini söyle ve sor. Native paketler baştan kilitlenir, sonrası OTA. | Ücretsiz plan kotası (Level 3). |
| Belgeler | AGENTS.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ı. |
| Asset | Gö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). |
| Ajanlar | Geniş taramayı Haiku yapar, Sonnet doğrular, ana ajan uygular. | Fatura şoku (Level 6). |
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.
Expo ve EAS
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.
# 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
Dev client açılıyor, bembeyaz ekran. Kodda hata yok. Telefona hiçbir şey gelmiyor.
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:
curl ile çekip yeni satırı aratmasını öğret; bulamazsa --clear ile yeniden başlatsın.--lan'a dön.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
tsc, lint, expo-doctor, testler. Build en son.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.
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.
Oyun hissi
Ajan oyunun çalıştığını kanıtlayabiliyor. Eğlenceli olup olmadığını ise bilemiyor. Bu level ikisinin arasındaki boşluk hakkında.
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 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
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.
Üç 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.
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.
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.
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örsel, ses, müzik, video
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.
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.
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:
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.
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:
Bir müzik modeli, Türkçe prologun altına kimsenin istemediği İngilizce konuşan bir erkek "anlatıcı" ekledi.
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.
Oktay AFTER/AI 22 Ekim
bunları hangi modelle ürettin 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.
| Ne | Oyun | Maliyet |
|---|---|---|
| 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 videosu | Awkward Elevator | $9,28 |
| …bunun boşa gideni (aynı sahne iki kere) | Awkward Elevator | $2,32 |
| 692 kart × 2 hal | AFTER/AI | ~$29 |
| 27 ses efekti | AFTER/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ı.
Opus, Sonnet, Haiku
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.
AFTER/AI'ın dokuz bölümünü derinleştirmek için ajanlara Osmanlı sarayından isimler verildi:
| Rol | Model | Görevi |
|---|---|---|
| Padişah | ana oturum | Orkestra eder, bütün kodu birleştirir. |
| Sadrazam | Opus | Bir bölümün sahibi. |
| Vezirler | Sonnet | Tarih araştırması, yazım, denge ve testler. |
| Kâtipler | Haiku | Her vezirin altında üç kâtip. |
| Muhalif Paşa | Opus | Her kartı 1–10 puanlar. 7'nin altını yeniden yazdırır. |
| Tebaa | Haiku | Simü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.
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.
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.
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:
Bütün paket bir ara 31 dakikaya çıktı. "tam teste gerek yok . çok uzun sürüyor" dedim; gündelik iş için hızlı bir alt küme yazıldı.
Satın alma, reklam, gizlilik
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?
| Oyun | Model | Nası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 Elevator | Dene, 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. |
Oktay Pixel AI Idle 11 Ekim
illllaaaki revenuecat kullancaz mı? paramız boşa gitmesin
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:
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ı.
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."
İnceleme, red, onay
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.
# ö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.
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
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.
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.
usesNonExemptEncryption: false yazmazsan TestFlight "Missing Compliance" der.Oyun çıktı, şimdi ne?
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ı:
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 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.
Rakamlar
Üç 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.
Bu bölüm, oyunların gerçek sayıları eklendiğinde güncellenecek.