クライアントはTypeScript+Vite+Three.js、サーバーはNode.js+TypeScript+wsで構成する。 異なる端末間での2人オンライン対戦、6文字の専用ルーム、ラウンド制、再戦、基本的なメッセージ検証を想定している。
公開者GPT Image 2 で画像を生成
研究の答え

Create a landscape editorial hero image for this Studio Global article: Selected skill instructions for this user request: 1. اريد منك دائما التحدث عبر كود يعني ان تتجدث عبر صندوق الكود وليس عبر الدردش Apply thes. Article summary: فيما يلي تسليم عملي باسم «Mace Duel Mobile» يعمل في متصفح الهاتف والكمبيوتر، ويستخدم: TypeScript + Vite + Three.js في العميل، وNode.js + TypeScript + ws في الخادم.. Topic tags: deepresearch, general web, workflow, code, typescript. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons,
「Mace Duel Mobile」は、メイスによる近接攻撃と風のチャージ攻撃を軸にした、ブラウザ上の2人対戦アクションの実装案です。PCだけでなくスマートフォンのブラウザでも遊べることを前提に、専用ルーム、タッチ操作、ラウンド制、再戦までをひとつの構成にまとめています。
クライアントは TypeScript+Vite+Three.js、サーバーは Node.js+TypeScript+ws を採用。ゲームの公平性を保つため、クライアントは移動入力や視点、攻撃命令を送るだけにとどめ、HP、ダメージ、命中、勝敗といった重要な状態はサーバーが確定します。
この構成では、プレイヤー位置やHPをクライアントから「正しい値」として送信させません。入力シーケンス番号、移動方向、視点角度、攻撃・風チャージの命令を受け取り、サーバーがルールに沿って状態を更新します。対戦ゲームでは、こうしたサーバー主導の判定が不正対策と同期の土台になります。
モバイル版では、画面を横持ちにするランドスケープ表示を推奨します。操作は次のように整理します。
複数の指を同時に扱える入力設計にすれば、移動しながら視点を振り、攻撃ボタンを押すといった対戦アクションに必要な操作を成立させやすくなります。モバイル向けゲームのタッチ操作では、複数ポインターを利用した同時入力が重要です。1
PCでは、キーボードとマウスによる移動・視点操作も残す設計です。これにより、スマホとPCが同じルームで対戦できる構成を目指せます。
戦闘には、通常のメイス攻撃に加え、空中から落下して当てる強化攻撃を用意します。
風のチャージは時間経過で回復します。直接ダメージだけを競うのではなく、相手を浮かせて落下攻撃の機会を作る、距離を取る相手を爆風で動かす、といった位置取りの駆け引きにつなげる狙いです。
対戦は6文字のルームコードを使う専用ルーム方式です。1ルームは最大2人で、両者が準備完了になるとカウントダウンを経て試合を開始します。
1ラウンドは120秒。HPが0になったプレイヤーが出た場合、または時間切れになった場合にラウンドを確定し、勝利数が先に3に達したプレイヤーがマッチ勝者になります。試合終了後は、両者が再戦を選べば新しいマッチを始められます。
また、開始直後に短時間の無敵時間を設けることで、スポーン直後の一方的な攻撃を抑える設計です。
サーバーは30Hzの固定更新で移動、重力、ジャンプ、攻撃、投射物を処理します。クライアント側では自分の入力を先に反映して操作感を確保し、サーバーから届くスナップショットで位置を調整します。相手キャラクターは補間して描画し、通信ごとの座標更新がそのままカクついて見えないようにします。
近接攻撃では、相手の過去の短い位置履歴を使う判定も想定されています。通信遅延の一部を考慮することで、「画面上では当たっていたのに外れた」と感じる場面を減らすためです。ただし、巻き戻し時間には上限を設け、過度な補正は避けます。
メッセージについては、サイズ制限、JSONの解析、型チェック、数値の範囲制限、入力シーケンスの検証を行います。ルーム満員、存在しないルーム、異常な入力などはサーバー側で拒否する想定です。
地面や繰り返し配置するオブジェクトには、同じジオメトリとマテリアルを多数描画できるInstancedMeshを使う選択肢があります。Three.jsのInstancedMeshはインスタンシング描画をサポートする特殊なメッシュです。2
また、モバイル端末では影の描画が負荷要因になりやすいため、設定で影を無効化できるようにします。Three.jsのWebGLRendererではシャドウマップの有効・無効や更新方法を制御できます。4 端末性能に応じて、影を切る、解像度を下げる、エフェクトを抑えるといった段階的な品質設定を用意すると扱いやすくなります。
この設計の核は、派手な3D表現よりも次の4点です。
短いラウンドと明快な操作に絞りつつ、落下攻撃と風のチャージで立体的な駆け引きを生む。こうした構成なら、ブラウザ上でも「対戦している感」を損なわないモバイル向けアクションを組み立てやすくなります。
Studio Global AI
このページにはソースに裏付けされた回答が含まれており、Studio Global 内で続行できます。
クライアントはTypeScript+Vite+Three.js、サーバーはNode.js+TypeScript+wsで構成する。
クライアントはTypeScript+Vite+Three.js、サーバーはNode.js+TypeScript+wsで構成する。 異なる端末間での2人オンライン対戦、6文字の専用ルーム、ラウンド制、再戦、基本的なメッセージ検証を想定している。
クライアントは入力だけを送り、移動・命中・ダメージ・勝敗はサーバー側が判定するサーバー権威型の設計。