Buat game kustom bisa-digerbang
Sebuah game swahosting berjalan dan memverifikasi begitu kamu mengarahkan game-src ke ia. Tapi untuk memakainya sebagai gerbang game, di mana pengunjung harus menuntaskannya untuk lolos, Caputchin harus bisa menurunkan-ulang hasilnya sendiri, bukan memercayai peramban. Itulah gunanya artefak putar-ulang. Di akhir tutorial ini game kustommu akan layak-gerbang.
Ini adalah imbalan determinisme: karena game-mu merekam sebuah trace dan menurunkan semua dari seed, server bisa menjalankan salinan headless logikamu terhadap seed dan trace yang sama dan mencapai vonis yang sama secara independen.
Apa itu artefak putar-ulang
Artefak adalah bundel JavaScript kecil mandiri yang hanya berisi logika game-mu, tanpa rendering, tanpa DOM, dan tanpa jaringan. Server memuatnya ke sandbox terisolasi dan menjalankannya untuk menghasilkan vonis dari (seed, trace). Ia bukan game yang bisa kamu mainkan; ia adalah hakim headless game-mu yang bisa dimainkan.
Dua properti diwajibkan:
- Mandiri. Ia tak bisa mengimpor apa pun yang tak bisa diselesaikan isolate; bundel semuanya. Unggahan dibatasi pada 2 MB, yang jauh di atas bundel logika tipikal.
- Deterministik dan sepakat dengan game live. Diberi seed yang sama dan trace yang dipancarkan game live-mu, ia harus mencapai vonis yang sama yang diklaim game live. Jika mereka tak sepakat, pemain nyata mendapat penolakan palsu.
1. Daftarkan game kustom
Jika belum, daftarkan game di dasbor agar ia punya id dan tempat untuk menahan artefak. Di halaman Game kunci situs (atau tim), pakai input Game kustom di panel Tambahkan game: masukkan id-mu dan klik Definisikan. Lihat game kustom untuk langkah ini dan skema yang kamu definisikan.
2. Unggah artefak
Di tab Pengaturan game terdaftar, unggah bundel putar-ulang. Ia dikirim sebagai satu berkas; Caputchin men-hash-konten-nya (mengunggah-ulang byte yang sama adalah no-op) dan segera menjalankan pemeriksaan-diri.
3. Pemeriksaan-diri
Pemeriksaan-diri menjalankan artefak yang kamu unggah di isolate putar-ulang terhadap seed sintetis (dan sampel trace yang kamu commit, jika kamu menyediakannya) dan mencatat apakah ia menghasilkan vonis bersih:
- Lolos → instal menjadi layak-gerbang. Lencana Tidak bisa diputar ulang hilang, dan kamu kini bisa menyalakan wajibkan game dengan game ini di kumpulan.
- Gagal → artefak tetap disimpan (jadi kamu bisa memeriksa galatnya), tapi instal tetap tak-layak-gerbang. Perbaiki logika dan unggah-ulang.
Pemeriksaan-diri yang gagal adalah sistem memberitahumu hakim headless tak sepakat dengan dirinya sendiri atau tak bisa berjalan; ia persis ketaksepakatan yang akan menyebabkan penolakan palsu di produksi, ditangkap sebelum pengunjung mana pun menghantamnya.
4. Nyalakan gerbang
Begitu pemeriksaan-diri lolos, game ada di kumpulan gerbang key. Nyalakan Wajibkan game di halaman Keamanan key (atau plafon paksa-game tim), dan Caputchin akan menyajikan game kustommu, mengambil trace pemain, dan menjalankan-ulang artefakmu di sisi-server untuk memutuskan tiap verifikasi.
Menjaga keduanya sinkron
Game live (dimuat lewat game-src) dan artefak putar-ulang adalah dua build dari logika yang sama. Saat kamu mengubah apa pun yang memengaruhi hasil, bangun-ulang dan unggah-ulang artefak agar keduanya masih sepakat. Jika mereka menyimpang, pemeriksaan-diri atau putar-ulang produksi akan mulai menolak kemenangan nyata. Membangun keduanya dari satu modul logika bersama adalah cara andal menjaga mereka identik.
Lihat juga
- Bangun game swahosting: menghasilkan trace yang diputar-ulang artefak ini.
- Game dan gerbang game: menyalakan gerbang dan persyaratan dapat-diputar-ulang.
- Game kustom: mendaftarkan dan lencana Tidak-bisa-diputar-ulang.
- Referensi skema dasbor: bidang yang dibaca game dari konteks factory-nya.