# Bàn giao VENO SDK v1.0.0

Ngày kiểm tra: 20/09/2026. Domain: https://sdk.venogame.com/.

Đã triển khai SDK, CLI, Admin và ba game mẫu có thể sử dụng thực tế. Báo cáo này ghi rõ luồng đã kiểm chứng và phần còn thiếu; không xác nhận đã đạt toàn bộ tiêu chí trong đặc tả ban đầu.

## Truy cập

| Thành phần | Địa chỉ |
| --- | --- |
| Website | https://sdk.venogame.com/ |
| Admin | https://sdk.venogame.com/admin |
| Hướng dẫn | https://sdk.venogame.com/docs/ |
| Mã nguồn | https://sdk.venogame.com/downloads/veno-sdk-1.0.0.zip |
| Runtime | https://sdk.venogame.com/v1/veno.js |
| Bản ghim phiên bản | https://sdk.venogame.com/v1.0.0/veno.js |
| Registry | https://sdk.venogame.com/registry/games.json |
| Game mẫu | `/games/tiles/`, `/games/orbit/`, `/games/drop/` |

Tài khoản owner và API token nằm trong file riêng `.private/THONG-TIN-TRUY-CAP.txt` trên máy bàn giao, không có trong gói tải công khai. Owner tự thiết lập TOTP khi đăng nhập lần đầu. Sáu video nằm trong Admin → Video & hàng đợi → Kho video.

## Phạm vi đã có

| Nhóm | Chức năng |
| --- | --- |
| Core | Game Contract TypeScript, sfc32 có seed, RNG fork, clock 1/60, timer/tween, vòng lặp tự động/thủ công, input/action log và replay, layout ba tỉ lệ, pause nhiều nguyên nhân |
| Config | JSON Schema dùng chung; timeout/cache/fallback; kế thừa mặc định → game → target; kill switch |
| Engine | Phaser 3.90 với vòng lặp thủ công; Three.js 0.180 với camera theo tỉ lệ |
| Dịch vụ | Audio và nhật ký SFX, storage có fallback, bắt lỗi; splash/menu/pause/settings/result/reward/cross-promo; 12 ngôn ngữ dùng chung |
| Ads/analytics | Placement, frequency caps, timeout 8 giây; adapter mạng quảng cáo/cổng game; GA4 theo consent và tắt trong demo/record/clean |
| Demo | Bot seed, trỏ chuột/tap/drag/aim, watermark, intro/outro, highlight, loop nhiều seed; demo nền sau 45 giây ở menu |
| Video | WebCodecs MP4 trong browser; CLI Chromium + FFmpeg, H.264/AAC, metadata, hai tỉ lệ 1080p60; queue/claim/heartbeat/chunk upload |
| CLI | create/dev/build/seeds/test/record/deploy; bản web và ZIP cho cổng game; kiểm tra manifest, branding, ngôn ngữ, dung lượng và các API không tất định |
| Admin | Laravel/Filament/MySQL, bốn vai trò, TOTP, token theo scope, draft/publish/hẹn giờ/rollback, registry/dịch/release/build/test/video, emergency và audit |
| VPS | HTTPS, PHP 8.3, SDK/config tĩnh, CORS/cache, game release qua symlink, cron và backup DB hằng ngày |

## Kiểm thử đã thực hiện

| Kiểm tra | Kết quả |
| --- | --- |
| TypeScript | Typecheck đạt |
| Unit | 14 test đạt: RNG/clock/config, logic game/replay nhiều seed, các nhánh quảng cáo gồm timeout |
| Chromium E2E | 9 test đạt: determinism/replay ba game, layout/shell, website, demo loop, recorder restart, idle menu → demo → người chơi |
| CLI test toàn bộ | Tiles, Orbit, Drop đạt: 3.000 bước, determinism/replay, 20 seed × hai mức skill, ba tỉ lệ, kiểm tra lỗi JavaScript |
| PHP platform smoke | 16 kiểm tra trên SQLite tách biệt: schema, draft/publish/revision/rollback, kế thừa, phân quyền/token, translation/audit/password |
| Admin live | Mật khẩu + TOTP, mở 14 mục quản trị, từ chối config sai schema |
| Worker/API | Từ chối thiếu token và schema sai; lưu build/test; hai worker claim 10 job không trùng nhau |
| Deploy | Phát hành cả ba game qua API; thử rollback game; chạy demo production không có lỗi JavaScript |
| Portal bundle | Bản kiểm tra không phát request đến domain VENO |
| Offline/i18n | Reload Tiles offline vẫn chơi được; menu đủ 12 ngôn ngữ |
| Video | Sáu MP4: 30 giây, 1.800 frame, 60 fps, 1080×1920 hoặc 1920×1080, H.264 + AAC, có SFX |
| Tải video | Sáu link ký số hỗ trợ byte range; chữ ký sửa/thiếu bị từ chối |
| Đường dẫn riêng tư | `.env`, `.git`, `.private` bị chặn; staging yêu cầu đăng nhập |
| Dependencies | `npm audit` và Composer audit production không có advisory tại thời điểm kiểm tra |
| Backup | Đã chạy MySQL backup bằng user của site, tải snapshot gzip về máy bàn giao |

Core khoảng 14,6 KiB gzip, dưới ngân sách 60 KiB. Đã đo Tiles ở trạng thái ít thay đổi với CPU 4×; **chưa đủ để xác nhận hiệu năng cho mọi cảnh và cả ba game**. Kết quả JSON nằm tại `test-results/veno/` trên máy phát triển và `/docs/reports/` trên website. Script live có thể tạo dữ liệu build/deploy/job, chỉ chạy với credential kiểm thử riêng.

## Cần tài khoản hoặc môi trường bên ngoài

- Quảng cáo doanh thu chưa kích hoạt: cần publisher ID được duyệt, CMP/TCF đã cấu hình và kiểm thử thực tế. Hiện `ads.enabled=false`.
- Theo xác nhận của chủ hệ thống, quảng cáo và analytics tiếp tục tắt; analytics.sampleRate=0.
- CrazyGames/Poki/GameDistribution cần sandbox và duyệt của cổng. AdMob cần app native triển khai bridge; chưa có app Android/iOS.
- Chưa có đích backup tự động ngoài VPS. Hiện có backup tại VPS và snapshot trên máy bàn giao.
- Admin/config/game dùng các đường dẫn trên domain SDK; chưa chuyển sang subdomain riêng theo đặc tả.
- Chưa xuất bản package npm hoặc đẩy mã nguồn lên Git remote vì chưa có repository/registry đích.

## Phần đặc tả chưa hoàn tất

- Admin chỉnh JSON có validation; chưa có toàn bộ form tạo từ schema, diff từng dòng, bộ lọc và biểu đồ nâng cao.
- Bản dịch sửa/xuất JSON; chưa có import/export CSV và danh sách tự động key còn thiếu.
- Cross-promo dùng danh sách ID; chưa có toàn bộ luật tag/trọng số/lịch/kéo thả/preview. Chưa có trình biên tập `ads.txt` trong Admin.
- Demo chưa thực thi `cameraMoves` khai báo và toàn bộ logic đạo diễn cao trào nâng cao. Bot/physics mẫu phục vụ kiểm chứng SDK, chưa có nội dung game dài hạn đã cân bằng.
- Three.js cần WebGL2; chưa có fallback WebGL1/Canvas cho game 3D.
- Nút export trong browser hiện xuất hình ảnh MP4; âm thanh đầy đủ dùng CLI FFmpeg. WebCodecs không được bảo đảm trên mọi browser.
- Luật build bắt API không tất định thông dụng; chưa phát hiện mọi alias/wrapper có thể né luật và chưa gắn đầy đủ hook pre-commit.
- Chưa nghiệm thu Safari/Firefox, iOS/Android thật, test rò bộ nhớ dài hạn, tất định vật lý giữa nhiều browser và tải đồng thời lớn. Chromium là môi trường đã kiểm chứng.
- Chưa có thông báo lỗi qua email, đo SLA hoặc diễn tập khôi phục toàn bộ VPS từ máy trắng.

## Vận hành

1. Đăng nhập Admin, thiết lập TOTP và lưu recovery codes.
2. Đọc `README.md`, `VENO-GAME-STANDARD.md`, `DEPLOYMENT.md`, `API.md` trong gói nguồn.
3. Tạo token tối thiểu cho từng máy; máy quay dùng `video:work`, máy phát hành dùng quyền game/build.
4. Chạy worker trên máy có Chromium/FFmpeg khi cần quay thêm; VPS giữ hàng đợi và file video.
5. Hoàn tất các tích hợp và hạng mục còn thiếu trước khi xem hệ thống là đạt toàn bộ nghiệm thu thương mại theo đặc tả.
