Manifest và kiểm tra
Các trường của manifest.json (có JSON Schema), mã lỗi kiểm tra và cách sửa.
manifest.json
JSON Schema: https://livebridge.vn/schemas/game-manifest.json. Quy tắc:
id: giống id game đã tạo,^[a-z0-9-]{3,40}$, không đổi sau khi tạo; không dùng từ dành riêng (admin,api,app,www,sdk,dev,developers,games,static,cdn,mail,livebridge,test) hay id game có sẵn.version:x.y.z, phải lớn hơn bản đang chạy.name,summary,description: mỗi cái có cảvivàen, không rỗng, không từ không phù hợp.platform:"web".connection:{ "needsApp": false, "sendUsername": true, "sendAvatar": true }(needsAppluônfalse).entry: đường dẫn file HTML chính từ gốc thư mục (phân biệt hoa thường). Game tải lên dùngentry, không dùngurl.cover: ảnh bìa 16:9 (ví dụ 1280x720) có trong thư mục.screenshots: tối đa 8 ảnh.tags: tối đa 5.connectOrigins: danh sách nơi game được phép gọi mạng, dạnghttps://hosthoặcwss://host(chữ thường, không có đường dẫn, không dấu*). Mặc định[].actions: các hành động game làm được, mỗi cái{ id, name, name_vi, description, description_vi }.defaultGiftMapping: ánh xạ gợi ý, mỗi dòng có hoặcgiftNamehoặcminDiamonds(kèmmaxDiamondstuỳ chọn), cộngactionIdphải có trongactions.
Checklist trước khi tải lên (mã lỗi và cách sửa)
check và upload in lỗi dạng [mã] (trường) kèm "Cách sửa". Cách sửa thường gặp:
zip_invalid: nén lại bằng zip thường (không mật khẩu, không rar/7z). CLI tự nén nên hiếm gặp.zip_too_big: game giải nén quá 50 MB. Nén ảnh/âm thanh, xoá file thừa, hoặc tải tài nguyên lớn từ CDN.zip_too_many_files: hơn 2.000 file. Gộp JS/CSS, ghép ảnh thành sprite sheet.zip_path_escape: đường dẫn có..,\hoặc bắt đầu bằng/. Đổi tên file.zip_symlink: có liên kết tượng trưng. Thay bằng file thật.zip_duplicate: hai file chỉ khác nhau chữ hoa/thường. Đổi tên.manifest_missing: không cómanifest.jsonở gốc thư mục.manifest_invalid: một trường sai. Đọc tên trường trong lỗi, sửa theo JSON Schema.version_not_newer:versionchưa lớn hơn bản đang chạy. Tăng lên.version_exists: số phiên bản này đã được tải lên. Tăngversion.entry_missing:entrykhông trỏ tới file có thật. Sửa đường dẫn (phân biệt hoa thường).cover_missing: thiếu ảnh bìa (hoặc ảnh trongscreenshots). Thêm file hoặc sửa đường dẫn.file_type_forbidden: chỉ cho phép html htm js mjs css json png jpg jpeg gif webp avif svg ico mp3 ogg wav m4a mp4 webm woff woff2 ttf otf wasm txt map. Xoá file khác.words_blocked: tên/tóm tắt/mô tả có từ không phù hợp. Viết lại.url_not_https,url_unreachable: dành cho gameexternal_web(tải lên từ web, không qua CLI).smoke_timeout: trang không phản hồi trong 20 giây. Tìm vòng lặp vô hạn hoặc tác vụ nặng lúc tải.smoke_js_error: có lỗi JavaScript khi chạy thử. Mở?t=lbg_dev, xem Console, sửa lỗi.smoke_sdk_not_connected: SDK không kết nối. Nạphttps://livebridge.vn/sdk/livebridge.jsvà gọinew LiveBridgeGame({...})ngay khi tải trang.smoke_load_failed: không mở được entry. Kiểm traentryvà file tồn tại.smoke_infra: lỗi phía hệ thống kiểm tra. Tải lại cùng phiên bản sau vài phút, không cần đổi version.sdk_missing(chỉ CLI, chỉ cảnh báo): chưa có file.htmlnào nạp/sdk/livebridge.js.
Giới hạn: tối đa 10 game mỗi nhà phát triển, 20 lần tải lên mỗi ngày, hệ thống giữ file của 5 phiên bản mới nhất.
Cách đọc một lỗi kiểm tra
Mỗi lỗi có mã, trường (nếu có), một câu mô tả và một câu "Cách sửa" bằng tiếng Việt và tiếng Anh. Làm theo thứ tự: (1) sửa lỗi đầu tiên bằng đúng "Cách sửa"; (2) chạy lại check; (3) lặp lại. Nếu nhà phát triển dán cho bạn đoạn bắt đầu bằng LiveBridge upload check failed for <game> v<version>: (nút Sao chép lỗi cho AI trên web hoặc đoạn cuối của check), đó chính là danh sách lỗi: sửa từng mục.