GamePortal için oyun yap

Geliştirici belgeleri

SDK rehberi, manifest ve platform kuralları: oyunundan portala giden yol, adım adım.

Ayrıntılı belgeler İngilizcedir; kısa bir Türkçe özet aşağıda. Başvuru tabloları SDK paketlerinden üretilir.

Belgeler

Kısa Türkçe özet

GamePortal için tarayıcı oyunu yazanlara ya da elindeki bir oyunu portala getirmek isteyenlere. Ayrıntılı belgeler İngilizcedir (geliştirici kitlesi için); bu sayfa onların Türkçe haritasıdır.

Ne bu #

Oyun, statik dosyalardan oluşan bir klasördür. Portal onu başka bir adresten (origin) açılan korumalı bir iframe içinde çalıştırır. Oyun ile portal yalnız mesajla konuşur; SDK (@gameportal/game-bridge) bu konuşmayı sizin yerinize yapar. Oyun hem portal içinde (bulut kayıt, skor, günlük meydan okuma, rozet) hem de tek başına, sıradan bir web sayfası olarak aynı kodla çalışır.

Not

Durum. SDK, başlangıç şablonu ve araçlar bugün GamePortal deposundadır ve portaldaki her oyun onlarla yapılmıştır. Dışarıdan oyun yayınlama (hesap, yükleme, geliştirici paneli) V2'de açılır; o zamana kadar oyunlar GamePortal ekibine verilir ve aynı kontrollerden ve incelemeden geçer.

Dört adım #

  1. Oluştur: pnpm create:game benim-oyunum başlangıç şablonunu kopyalar.

  2. Dene: pnpm --filter @gameportal/game-benim-oyunum dev oyunu sahte bir portalla iki ayrı origin'de açar; mesaj günlüğü ve duraklat, devam, dil, gün düğmeleri vardır.

  3. Doğrula: validate (saniyeler, statik kurallar) ve check (3 ile 4 dakika, gerçek tarayıcıda 15 senaryo). Engelleyici kural kalmamalı.

  4. Gönder: CREDITS.txt'i doldurun, sürümü artırın, oyunu ve raporu ekibe verin. İnceleme hedefi dış oyunlar için 48 saattir.

Üç entegrasyon seviyesi #

SeviyeNe olurKod değişikliği
0, sarmalamaOyun olduğu gibi iframe içinde çalışır; portal oynama süresi XP'sini verir.Yok
1, köprüKayıt, dil ve duraklatma portaldan geçer (bulut kayıt).Küçük
2, derinSkor, günlük meydan okuma metriği ve rozet olayları da.Oyunun kurallarını anlamayı gerektirir

Her oyunun uyduğu temel kurallar #

  • İframe içinde oyun asla tek başına moda düşmez; init ne kadar gecikirse gecikse bekler. 2 saniye kuralı yalnız iframe dışında geçerlidir.

  • postMessage hedefi asla "*" olmaz; init yalnız üst pencereden ve portal adresinden kabul edilir; init sonrası her mesaj MessageChannel portundan gider.

  • Kayıt yalnız bridge.storage ile tutulur (en çok 256 KB, 30 saniyede bir, revision ile iyimser kilit). İki sekme çakışırsa oyun ya birleştirir ya oyuncuya sorar; hiçbir tarafı sessizce atmaz.

  • Saat için tek otorite sunucudur: gün init.time.day ile gelir, günlük sayaçlar yalnız day mesajında sıfırlanır. Cihaz saatine (Date.now()) güvenilmez.

  • Oyuna oyuncunun kimliği, e-postası ya da oturum anahtarı gitmez; yalnız "misafir mi" bilgisi gider. Çerez yok, dış adrese istek yok, analitik ve reklam kodu yok.

  • XP, ödül, seri ve rozeti oyun değil portalın sunucusu yazar. Oyun skor ve olay önerir; sunucu makul olup olmadığına manifestteki sınırlarla bakar.

Bu kuralların tamamı (her biri bir kimlikle, nasıl doğrulandığıyla) Platform kuralları sayfasında; Türkçe gerekçeleri depodaki docs/PLATFORM-RULES.md belgesinde.

Belgeler #

  • Quickstart: ilk oyundan gönderime giden yol.

  • Concepts: modlar, el sıkışma, origin ve sandbox, kayıt ve çakışmalar, sunucu günü.

  • SDK reference: köprü API'si, her mesajın alan tabloları, hata kodları, sınırlar.

  • Manifest reference: manifest.json'un her alanı ve skor makullük kuralları.

  • Online matches: sıra tabanlı iki kişilik oyunlar; sunucu hakem, portalın eşleşme katmanı, mp_* akışı ve testler (yalnız GamePortal ekibinin oyunları).

  • Platform rules: kurallar ve seviyeye göre engelleyici kontrol listeleri.

  • Testing: birim testleri, sahte portal, kural koşucusu, CI.

  • Packaging and submission: derleme çıktısı, boyut bütçeleri, lisanslar, sürümleme, inceleme.

  • FAQ and troubleshooting: sık görülen kural hataları ve çözümleri.

  • Changelog: sürümleme politikası ve değişiklik geçmişi.

İlerlemeni kaydet

E-postana bir bağlantı gönderelim ya da Google ile devam et. Misafir olarak kazandıkların hesabına taşınır.