Format bundle

Bundle adalah arsip ZIP berisi game web yang mandiri. Runtime menyajikannya di dalam frame tersandbox, jadi semua yang dibutuhkan game harus ada di dalam arsip itu.

Susunan yang wajib

index.html      titik masuk, di akar arsip
game.json       manifes, di akar arsip
assets/…        sisanya, bebas strukturnya

game.json

{
    "id": "rosok-garage",
    "sdk_version": 1,
    "orientation": "portrait",
    "settings": {}
}
Kolom Arti
id Slug game. Sekadar informasi; server menyapa game lewat slug yang sudah dia tahu.
sdk_version Bilangan bulat, minimal 1. Bundle menolak terbit kalau lebih baru dari SDK yang dibawa aplikasi.
orientation portrait atau landscape.
settings Objek bebas yang diserahkan balik ke game saat runtime.

Ekspor Astrocade

Ekspor yang terdiri dari game_code.html, <slug>.html, dan game_config.json dikemas ulang saat diunggah: berkas entry-nya jadi index.html dan game.json dibuat dari config. Push folder ekspornya apa adanya, tidak perlu dikemas ulang manual.

Validasi

Setiap unggahan diperiksa sebelum disimpan. Satu pemeriksaan gagal berarti seluruh push ditolak, dan pesannya menyebut pemeriksaan mana yang gagal.

Pemeriksaan Aturan
Struktur index.html dan game.json ada di akar arsip
Jembatan SDK sdk_version bilangan bulat ≥ 1 dan tidak lebih baru dari SDK aplikasi saat ini
Keamanan arsip Tidak ada path yang keluar dari akar arsip, tidak ada pemekaran berlebihan
Ukuran Masih di dalam batas unggah dan ekstraksi di bawah

Batas

Batas Nilai
Ukuran unggahan 50 MB per bundle
Berkas per bundle 5 000
Ukuran setelah diekstrak 200 MB
Versi yang disimpan Beberapa versi terbaru per game; yang lama dipangkas bersama berkasnya

Versi dan rollout

Setiap push yang diterima jadi satu versi bernomor. Versi yang dirilis punya persentase rollout: porsi pemain yang disajikan versi itu. Sisanya tetap di versi rilis sebelumnya, dan itulah yang bikin rilis bertahap mungkin: push di rollout: 10, pantau, lalu naikkan. Menyetel rollout sebuah versi ke nol menariknya kembali.

Operator juga bisa menarik game sepenuhnya, yang menyembunyikannya dari katalog dan menolak sesi baru.