🎮
マルチプレイ first-class
サーバー権威の reducer でマルチプレイゲームを即座に立ち上げ。状態同期・再接続・チート耐性は SDK とサーバーが持つ。
JavaScript / TypeScript で書く、UZU プラットフォームで遊ばれる、Web ベースのゲーム SDK
YouTube Playables / Roblox / itch.io にはない 「マルチプレイ + ボイスチャット + 日本市場ネイティブ」 の組み合わせを SDK レベルで提供しています。
数百万ユーザーの UZU アプリ内で、creator が作ったゲームが即座に遊ばれます。
npx @uzuhq/code-cli create-2d-game my-game
cd my-game
npx uzu publish// src/logic.ts — サーバーで動く
import type { ActionArgs, ActionMap, GameLogic } from '@uzuhq/code-sdk';
type State = { scores: Record<string, number> };
const actions = {
tap: ({ state, playerId }: ActionArgs<State>) => {
state.scores[playerId] += 1;
},
} satisfies ActionMap<State>;
export type Actions = typeof actions;
const logic: GameLogic<State, Actions> = {
setup: ({ players }) => ({
scores: Object.fromEntries(players.map((p) => [p.id, 0])),
}),
actions,
update: () => {},
};
export default logic;// src/main.ts — 画面側
import { run } from '@uzuhq/code-sdk';
import logic, { type Actions } from './logic';
run<State, Actions>({
logic,
playerCount: 2,
onState: (state) => render(state),
inputs: (sendAction) => {
canvas.addEventListener('click', () => sendAction('tap'));
},
});これだけで「2 人マルチプレイ + 状態同期 + ボイチャ付き」のゲームが動きます。