Skema dasbor game kustom
Sebuah game marketplace mengirim manifest caputchin.json yang mendeklarasikan bidang mana yang boleh disetel tiap preset kustomisasi. Sebuah game kustom tak punya manifest, jadi kamu mendeklarasikan skema bidang itu di dasbor sebagai gantinya. Kamu mendefinisikannya sekali per game kustom, per sumbu, lalu menulis preset terhadapnya; dari sana ia diselesaikan dan diterapkan persis seperti game marketplace di jenjang paket yang sama.
Halaman ini adalah referensi untuk skema itu. Untuk menulis game itu sendiri, lihat bangun game swahosting; untuk alur pendaftaran sisi-pelanggan, lihat game kustom.
Satu skema per sumbu
Skema sebuah game kustom dideklarasikan per sumbu, dan tiga sumbu independen:
| Sumbu | Apa yang dikustomisasinya | Skema |
|---|---|---|
| Locale | String terjemahan game. | Implisit: bidang locale selalu teks biasa, jadi tak ada yang dideklarasikan; kamu menulis preset string langsung. |
| Skin | Warna, aset visual, dan tombol presentasi. | Kamu mendeklarasikan bidang warna, aset, dan skalar (sakelar / angka / rentang / pilihan) yang boleh disetel preset skin. |
| Konfigurasi | Opsi gameplay (tingkat kesulitan, hitungan, sakelar). | Kamu mendeklarasikan bidang opsi yang boleh disetel preset konfigurasi. |
Kamu mendefinisikan skema hanya untuk sumbu yang game-mu sebenarnya pakai. Sebuah sumbu tanpa skema sekadar tak punya bidang yang bisa dikustomisasi dari jenis itu.
Tipe bidang
Sebuah skema adalah set bidang bernama, masing-masing dengan tipe. Tipe bidangnya adalah set yang sama yang dipakai sisa kustomisasi; referensi skema kustomisasi adalah deskripsi otoritatif setiap tipe dan nilai yang diterimanya. Singkatnya:
| Tipe | Nilai |
|---|---|
string | Teks bebas. |
boolean | true atau false. |
number | Angka hingga mana pun. |
range | Sebuah angka dalam min dan max. |
list | Satu dari set opsi tetap. |
link | Sebuah URL http/https. |
color | Sebuah warna hex atau rgb(). |
image | Sebuah URL gambar atau unggahan. |
audio | Sebuah URL audio atau unggahan. |
video | Sebuah URL video atau unggahan. |
Locale memakai string saja (dan resolver tak memvalidasi skema locale sama sekali). Skin dan konfigurasi memvalidasi nilai yang ditulis terhadap skema yang kamu deklarasikan dan membuang nilai yang tak cocok dengan tipenya.
Cakupan: di mana sebuah skema berada
Skema game-kustom disetel pada sebuah cakupan, tim atau kunci situs, model cakupan yang sama dengan penggantian. Saat baik sebuah tim maupun salah satu kunci situsnya mendeklarasikan skema untuk game dan sumbu yang sama, skema kunci situs menggantikan milik tim untuk sumbu itu (penggantian seluruh-sumbu, bukan penggabungan bidang-demi-bidang). Ini mencerminkan bagaimana sisa kustomisasi diselesaikan paling-spesifik-menang.
Aset bersifat absolut
Karena kamu menghosting game yang bisa dimainkan sendiri, tak ada bundel platform untuk menyelesaikan path aset relatif. Nilai image, audio, atau video mana pun di preset skin harus berupa URL absolut. (Sebuah game marketplace bisa memakai path relatif-bundel; game kustom tak bisa.)
Bagaimana sebuah preset mencapai game
Begitu skema dan preset ada, Caputchin menyelesaikan satu preset per sumbu untuk tiap pengunjung (paling-spesifik-menang lintas kunci situs, tim, dan default-mu) dan mengirim nilai terselesaikan ke game-mu lewat konteks game factory: ctx.locale, ctx.skin, ctx.config. Game-mu membaca nama bidangnya sendiri dari objek itu. Skema adalah yang membuat editor dasbor menunjukkan input yang tepat dan yang memvalidasi nilai sebelum mereka pernah mencapai pengunjung.
Lihat juga
- Referensi skema kustomisasi: setiap tipe bidang dan nilai yang diterimanya, secara penuh.
- Game kustom: mendaftarkan game kustom dan mendefinisikan skemanya.
- Bangun game swahosting: membaca preset terselesaikan dari konteks factory.
- Penggantian tim: model cakupan yang diikuti skema.