Open Play’e genel bakış
Bu sayfa, Open Play’in oyununuz için hangi hazır parçaları sunduğunu ve bu parçalarla hangi kanaldan konuşacağınızı özetler. Entegrasyona başlamadan önce okuyun; ayrıntılar için her bölümün sonundaki bağlantıları izleyin.
Open Play nedir?
Open Play, oyunların arka uç ihtiyaçlarını tek bir sunucu olarak karşılar: oyuncu kimliği ve oturumu, karakterler, envanter, ekonomi, mağaza, ödüller, sosyal özellikler, skor tabloları, bildirimler, webhook’lar ve gerçek zamanlı bağlantı. Oyununuzu bu sunucuya HTTP (REST) ve WebSocket üzerinden bağlarsınız; oyunu yöneten ekip aynı sunucuyu yönetim panelinden yapılandırır.
Not
Open Play bugün bir Docker Compose yığınıdır ve sizin ya da ekibinizin altyapısında çalışır. Kurulum ve dağıtım için üretim dağıtımı rehberine (
docs/production-and-adapters.tr.md) bakın; bu belge oyun geliştiricisinin bakış açısını anlatır.
Neler sunar? Modül haritası
Özelliklerin çoğu modül olarak açılıp kapatılır. Kapalı bir modülün uçları çalışmaz ve 404 ile module_disabled kodunu döndürür (bkz. Kavramlar). Modüller panelde Oyun ayarları › Modüller sekmesinden yönetilir.
| Modül | Oyununuza ne verir? | Rehber |
|---|---|---|
characters | Karakter tanımları, karakterler, komutlar, kurallar, özellikler (trait), seviye eğrileri | Karakterler |
economy | Para birimleri, cüzdanlar, transferler, defter (ledger) | Ekonomi |
items | Eşya tanımları, eşya örnekleri, envanter | Eşyalar ve envanter |
trading | Tüccar ve oyuncular arası takas | Ham REST: uç noktalar |
store | Mağaza kataloğu, satın alma, uygulama içi satın alma (IAP) doğrulaması | Mağaza ve IAP |
rewards | Ödül tabloları, görev, NPC ödülü, VIP, günlük giriş ödülü | Ödüller |
social | Klan ve parti | Sosyal |
chat | Sohbet | Sohbet |
competition | Skor tabloları ve turnuvalar | Rekabet |
notifications | Bildirim kanalları, şablonlar, oyuncu gelen kutusu, web push | Bildirimler |
webhooks | Oyun olaylarını kendi sunucunuza imzalı olarak iletme | Webhook’lar |
scenes | Sahneler ve görsel varlıklar | Sahneler, varlıklar, modeller |
plugins | Eklenti platformu ve gerçek zamanlı yüzey | Eklentiler, Gerçek zamanlı |
Modül anahtarı olmayan çekirdek yüzeyler her zaman açıktır:
- Oyuncu kimliği ve oturumu: misafir, e-posta/parola, Google. Bkz. Kimlik doğrulama.
- İçerik grupları ve katalog: panelden yönetilen, oyunun okuduğu veri. Bkz. İçerik grupları.
- Oyun kuralları ve otomasyonlar. Bkz. Oyun kuralları.
- API anahtarları, ortamlar ve alan adları. Bkz. Kavramlar.
Hangi kanaldan konuşursunuz?
| Kanal | Kim kullanır? | Kimlik | Ne için? |
|---|---|---|---|
REST (/v1/...) + sunucu anahtarı | Oyun sunucunuz (güvenilen arka uç) | Authorization: Bearer crx_live_<önek>_<gizli> | Yönetim ve parayı/eşyayı değiştiren işlemler |
| REST + istemci anahtarı | Oyun istemciniz | aynı biçimde istemci anahtarı | Sınırlı, hassas olmayan işlemler |
| REST + oyuncu oturumu | Oyuncunun kendi istemcisi (tarayıcı, Unity) | çerez ya da oturum belirteci + x-crx-env | Oyuncunun kendi verisi: giriş, katalog, mağaza, sıralama, eklenti komutları |
WebSocket (/v1/realtime/ws vb.) | Oyuncunun istemcisi | tek kullanımlık bilet | Eklenti durumu, anlık girdi, kesintisiz akış |
| Webhook (Open Play → sizin sunucunuz) | Sizin sunucunuz | X-Crx-Signature imzası | Olay bildirimi |
| SDK | TypeScript ve Unity | yukarıdakilerin sarmalayıcısı | REST ve WebSocket’i tipli kullanmak |
Uyarı
Sunucu anahtarı bir sırdır. Tarayıcıya, mobil uygulamaya ya da oyun paketine koymayın. İstemci tarafında yalnızca oyuncu oturumu ve (gerekirse) istemci anahtarı kullanın.
gRPC arayüzü sunucu tarafında vardır ancak oyun geliştiricisi için dışa açık bir kanal değildir; varsayılan olarak yalnız loopback’te dinler ve SDK’lar kullanmaz. Bu belge onu anlatmaz.
Nereden başlamalı?
- Kavramlar: stüdyo, oyun, ortam, modül, anahtar türleri, oyuncu oturumu.
- Hızlı başlangıç: ilk sunucu çağrınız ve ilk oyuncu girişiniz.
- Mimari ve barındırma: aynı köken (same-origin) kuralı, alan adları, neyin nerede çalıştığı.
- Kimlik doğrulama ve SDK’lar.
Bugünkü sınırlar
Aşağıdakiler bilinçli olarak dürüst yazılmıştır; yol haritanızı buna göre kurun.
- CORS yalnız ortamın alan adı listesindeki origin’lere açıktır ve çerez aynı site ister. Tarayıcı oyunu, alan adı bir ortama bağlıysa Open Play’i doğrudan çağırabilir; oyun Open Play’den farklı bir kayıtlı alan adındaysa
SameSite=Laxoturum çerezi gitmez (ters vekil kullanın). Bkz. Mimari ve barındırma. - Üçüncü taraf eklenti yükleme desteklenmez. Eklentiler sunucuya derlenmiş olarak gelir; panelden eklenti yüklenmez. Bkz. Eklentiler.
- SDK kapsamı kısmidir. TypeScript SDK’sında tipli istemci olmayan modüller ham REST ile kullanılır. Bkz. TypeScript SDK.
- Unity’de yalnız Unity 6000.6.7f1 doğrulanmıştır. Bkz. Unity SDK.
- Hata gövdeleri çoğunlukla düz metindir. Yalnız birkaç yerde JSON hata zarfı vardır. Bkz. Hatalar.