Bắt đầu với VENO SDK.
VENO cung cấp vòng lặp, thời gian ảo, ngẫu nhiên có seed, input, giao diện dùng chung và công cụ phát hành. Mỗi game triển khai một Game Contract.
Runtime · CLI · Demo & video · Quản trị
Tích hợp vào game
<script src="https://sdk.venogame.com/v1/veno.js"></script>
<script src="https://sdk.venogame.com/v1/veno.phaser.js"></script>
<script type="module">
import game from './src/game.js';
await veno.boot({ manifest: './game.json', game, mount: '#game' });
</script>Manifest được kiểm tra bằng JSON Schema. Dùng bundle bất biến v1.0.0 để ghim phiên bản; đường dẫn /v1/ nhận bản vá.
Ba quy tắc runtime
- Chỉ dùng
ctx.rngcho ngẫu nhiên. Tách RNG bot và hiệu ứng bằngfork('bot'),fork('fx'). - Chỉ dùng
dt,ctx.clock.now,clock.after/every/tweentrong logic. - Input thật và bot đều gửi Action JSON vào
applyAction().
const game = {
async init(ctx) { /* tải tài nguyên và tạo view */ },
start({ seed, mode, level }) {},
step(dt) {}, render(alpha) {},
applyAction(action) { return true; },
getBotAction(skill) { return null; },
getActionTarget(action) { return { kind: 'none' }; },
getState() { return {}; },
getStatus() { return { phase: 'playing', score: 0,
level: 1, progress: 0, highlights: [] }; },
onResize(layout) {}, pause() {}, resume() {}, destroy() {}
};Công cụ CLI
Tải mã nguồn SDK và CLI, giải nén rồi chạy npm install và npm run build. Yêu cầu Node.js 22+, Chromium của Playwright; FFmpeg cho video.
| Lệnh | Chức năng |
|---|---|
npm run veno -- create my-game --engine=phaser | Tạo game từ template |
npm run veno -- dev --root=dist | Máy chủ phát triển |
npm run veno -- test --all | Kiểm thử game bằng Chromium |
npm run veno -- seeds --game=tiles --n=100 | Tìm seed và lưu vào manifest |
npm run veno -- build --root=examples/tiles --target=crazygames | Kiểm tra và xuất gói ZIP |
npm run veno -- record --game=tiles --aspect=9x16,16x9 | Quay MP4 với thời gian ảo |
npm run veno -- deploy --root=examples/tiles | Đẩy bản build và cập nhật registry |
Demo và xuất video
Mở game với ?demo=1&clean=1&aspect=9x16&seed=8841&dur=30. Chế độ clean ẩn nút shell và tắt quảng cáo, analytics. Demo giữ watermark VENO.
npm run veno -- record --game=tiles --aspect=9x16,16x9 \ --lang=en --dur=30 --fps=60 --out=videos # Máy quay nhận việc từ Admin $env:VENO_API_URL = 'https://sdk.venogame.com/api/v1' $env:VENO_API_TOKEN = 'token-tao-trong-admin' npm run veno -- record --worker
CLI ghi từng khung bằng Chromium và FFmpeg, kèm file JSON chứa seed và highlight. Preset: shorts, yt-landscape, square, preview, yt-landscape-4k.
Quản trị và remote config
Mở VENO Admin, đăng nhập và thiết lập xác thực hai bước. Tạo bản nháp cấu hình, xem thay đổi, xuất bản hoặc hẹn giờ. Mỗi lần xuất bản tạo revision để rollback.
Cấu hình chạy game nằm tại /config/v1/_default.json và /config/v1/<id>.json. Registry công khai: /registry/games.json. Game đọc JSON tĩnh, không phụ thuộc MySQL khi chơi.
Quảng cáo và GA4 cần thông tin tài khoản của bạn trong Admin. Chỉ bật sau khi hoàn tất cấu hình nhà cung cấp và consent. AdMob cần app native triển khai bridge.
Game mẫu
VENO Tiles — Phaser · VENO Orbit — Three.js · VENO Drop — Physics
Mã nguồn, hướng dẫn triển khai và báo cáo kiểm thử nằm trong gói tải về.