SDK Godot
Addon GDScript untuk Godot 4.2+ dengan layanan yang sama seperti SDK Unity.
Komentar kode dan nama API tetap dalam bahasa Inggris agar sesuai dengan SDK.
Persyaratan#
- Godot 4.2 atau lebih baru, GDScript. Ekspor desktop, mobile, dan Web.
- Tanpa dependensi: hanya
HTTPRequest,Crypto, danFileAccessbawaan Godot.
Instalasi#
- Unduh
.zipSDK Godot dari halaman project Anda atau halaman unduhan. - Ekstrak ke project Anda sehingga foldernya menjadi
res://addons/majacloud(jangan ubah namanya). - Project ▸ Project Settings ▸ Plugins: aktifkan Majacloud. Plugin ini menambahkan autoload
Majacloud.
Pengaturan project#
Plugin menambahkan entri berikut di Project Settings ▸ General ▸ Majacloud:
| Pengaturan | Default | Arti |
|---|---|---|
connection/base_url | Alamat instalasi ini. | |
connection/project_id | Dashboard ▸ API key. | |
connection/client_key | Key publik pk_live_…. | |
connection/config_public_key | Diisi oleh Test connection; mengunci verifikasi Remote Config. | |
advanced/timeout_seconds | 15 | Jumlah detik sebelum request gagal dengan timeout. |
advanced/max_retries | 2 | Jumlah percobaan ulang untuk request yang aman saat terjadi error jaringan dan server. |
advanced/fetch_config_on_start | true | Mengambil remote config saat game dimulai. |
advanced/log_requests | false | Mencetak setiap request ke output. |
Test connection#
Project ▸ Tools ▸ Majacloud: Test connection memanggil API dengan pengaturan Anda, menampilkan nama project dan paket, lalu menyimpan public key Remote Config di majacloud/connection/config_public_key.
Konfigurasi dari kode#
Panggil configure() untuk berpindah environment dari kode. Pengaturan ini menggantikan settings untuk sisa sesi:
# Switch environments from code; the last argument pins the Remote Config key (PEM)
Majacloud.configure("https://staging.yourstudio.com", "<project id>", "pk_live_…", public_key_pem)MajacloudResult#
Setiap panggilan di-await dan mengembalikan MajacloudResult. Tidak pernah crash karena error jaringan atau server.
| Field | Arti |
|---|---|
ok | true jika panggilan berhasil. |
value | Respons REST sebagai Dictionary (lihat referensi REST); bilangan bulat diterima sebagai int. |
error | Kosong jika berhasil; jika gagal, berisi kode tetap seperti conflict atau network (lihat error). |
message | Penjelasan yang mudah dibaca. |
status | Status HTTP, 0 jika server tidak terjangkau. |
request_id | Cari ID ini di halaman Log. |
details | Data tambahan dari server, mis. next_claim_at. |
is_retryable() dan is_not_found(). |
Signal#
Hubungkan ke signal berikut untuk memperbarui UI Anda:
func _ready() -> void:
Majacloud.auth.player_changed.connect(_on_player_changed)
Majacloud.auth.session_expired.connect(func(): show_sign_in_screen())
Majacloud.remote_config.updated.connect(func(): apply_balance())
func _on_player_changed(player: Dictionary) -> void:
$NameLabel.text = player.get("display_name", "")Penyimpanan di perangkat#
Sesi tamu disimpan terenkripsi di user://majacloud/<project id>.session dan dipulihkan saat game dibuka lagi. Remote config yang sudah diverifikasi di-cache di sebelahnya untuk bermain offline, dan user://majacloud/device.id berisi ID instalasi acak (bukan berbasis hardware).
Ekspor Web#
- Sajikan hasil ekspor lewat HTTPS; API mengirim header CORS yang dibutuhkan browser.
user://disimpan di penyimpanan browser, sehingga sesi tetap ada setelah halaman dimuat ulang.- Panggil
link_account()dari input event (misalnya saat tombol ditekan) agar browser mengizinkan tab baru.