You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
10 KiB
10 KiB
サンプルゲームを作成しよう
課題概要
スペースゲームでゲーム終了条件や再スタート機能を習得した今、これらの概念をまったく新しいゲーム体験に応用する時が来ました。異なる終了条件パターンや再スタートの仕組みを示す独自のゲームを設計・構築してください。
この課題では、ゲームデザインについて創造的に考えながら、学んだ技術的スキルを実践することが求められます。さまざまな勝利や敗北のシナリオを探求し、プレイヤーの進行を実装し、魅力的な再スタート体験を作り出します。
プロジェクト要件
コアゲーム機能
あなたのゲームには以下の必須要素を含める必要があります:
終了条件のバリエーション: ゲームが終了する少なくとも2つの方法を実装してください:
- ポイントベースの勝利: プレイヤーが目標スコアに到達する、または特定のアイテムを収集する
- ライフベースの敗北: プレイヤーがすべてのライフまたは体力を失う
- 目標達成: 敵をすべて倒す、特定のアイテムを収集する、または目標を達成する
- 時間制限: 一定時間が経過する、またはカウントダウンがゼロになる
再スタート機能:
- ゲーム状態のクリア: 以前のゲームオブジェクトをすべて削除し、変数をリセットする
- システムの再初期化: 新しいプレイヤーステータス、敵、目標で再スタートする
- ユーザーフレンドリーな操作: ゲーム再スタートの明確な指示を提供する
プレイヤーへのフィードバック:
- 勝利メッセージ: プレイヤーの達成を祝うポジティブなフィードバックを提供する
- 敗北メッセージ: 再挑戦を促す励ましのメッセージを提供する
- 進行状況の表示: 現在のスコア、ライフ、または目標の状態を表示する
ゲームアイデアとインスピレーション
以下のゲームコンセプトから選ぶか、独自のアイデアを作成してください:
1. コンソールアドベンチャーゲーム
戦闘メカニクスを備えたテキストベースのアドベンチャーを作成:
Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****
実装すべき主な機能:
- ターン制戦闘で異なる攻撃オプションを提供
- プレイヤーと敵の体力ポイント
- コインやアイテムを収集するインベントリシステム
- 難易度が異なる複数の敵タイプ
- 敵をすべて倒したときの勝利条件
2. コレクションゲーム
- 目標: 障害物を避けながら特定のアイテムを収集する
- 終了条件: 目標の収集数に到達する、またはすべてのライフを失う
- 進行: ゲームが進むにつれてアイテムが収集しにくくなる
3. パズルゲーム
- 目標: 難易度が徐々に上がるパズルを解く
- 終了条件: すべてのレベルをクリアする、または移動数/時間が尽きる
- 再スタート: 進行状況をクリアして最初のレベルにリセット
4. 防衛ゲーム
- 目標: 敵の波から基地を守る
- 終了条件: すべての波を生き延びる(勝利)または基地が破壊される(敗北)
- 進行: 敵の波が難易度と数を増加させる
実装ガイドライン
始め方
-
ゲームデザインを計画する:
- 基本的なゲームプレイループをスケッチする
- 終了条件を明確に定義する
- 再スタート時にリセットする必要があるデータを特定する
-
プロジェクト構造を設定する:
my-game/ ├── index.html ├── style.css ├── game.js └── README.md -
コアゲームループを作成する:
- ゲーム状態を初期化する
- ユーザー入力を処理する
- ゲームロジックを更新する
- 終了条件を確認する
- 現在の状態を描画する
技術要件
モダンJavaScriptを使用する:
- 変数宣言に
constとletを適用する - 適切な場所でアロー関数を使用する
- テンプレートリテラルや分割代入などのES6+機能を実装する
イベント駆動型アーキテクチャ:
- ユーザー操作のイベントハンドラーを作成する
- イベントを通じてゲーム状態の変更を実装する
- 再スタート機能のためのイベントリスナーを使用する
クリーンコードの実践:
- 単一の責任を持つ関数を書く
- 説明的な変数名や関数名を使用する
- ゲームロジックやルールを説明するコメントを追加する
- コードを論理的なセクションに整理する
提出要件
提出物
- 完成したゲームファイル: ゲームを実行するために必要なすべてのHTML、CSS、JavaScriptファイル
- README.md: 以下を説明するドキュメント:
- ゲームの遊び方
- 実装した終了条件
- 再スタートの手順
- 特別な機能やメカニクス
- コードコメント: ゲームロジックやアルゴリズムの明確な説明
テストチェックリスト
提出前に、以下を確認してください:
- ブラウザコンソールでエラーなく実行できる
- 指定された通りに複数の終了条件を実装している
- クリーンな状態で再スタートできる
- ゲーム状態についてプレイヤーに明確なフィードバックを提供している
- モダンJavaScriptの構文とベストプラクティスを使用している
- README.mdに包括的なドキュメントを含んでいる
評価基準
| 評価基準 | 優秀 (4) | 良好 (3) | 発展途上 (2) | 初歩的 (1) |
|---|---|---|---|---|
| ゲーム機能 | 複数の終了条件、スムーズな再スタート、洗練されたゲームプレイ体験を備えた完全なゲーム | 基本的な終了条件と機能的な再スタートメカニズムを備えた完全なゲーム | 一部の終了条件が実装され、再スタートに軽微な問題がある部分的なゲーム | 限られた機能と重大なバグを持つ未完成のゲーム |
| コード品質 | モダンJavaScriptの実践を使用したクリーンで整理されたコード、包括的なコメント、優れた構造 | モダンな構文を使用した良好なコード構成、適切なコメント、明確な構造 | 一部モダンな実践を使用した基本的なコード構成、最小限のコメント | 古い構文を使用した不十分なコード構成、コメントや構造が欠如 |
| ユーザー体験 | 明確な指示、優れたフィードバック、魅力的な終了/再スタート体験を備えた直感的なゲームプレイ | 適切な指示とフィードバックを備えた良好なゲームプレイ、機能的な終了/再スタート | 最小限の指示とフィードバックを備えた基本的なゲームプレイ | 不明瞭な指示と不十分なユーザーフィードバックを備えた混乱したゲームプレイ |
| 技術的実装 | ゲーム開発の概念、イベント処理、状態管理の習得を示す | ゲーム概念の確固たる理解と良好な実装を示す | 基本的な理解と許容可能な実装を示す | 限られた理解と不十分な実装を示す |
| ドキュメント | 明確な指示、十分に文書化されたコード、徹底的なテスト証拠を備えた包括的なREADME | 明確な指示と適切なコードコメントを備えた良好なドキュメント | 最小限の指示を備えた基本的なドキュメント | 不十分または欠如したドキュメント |
評価スケール
- 優秀 (16-20点): 創造的な機能と洗練された実装で期待を超える
- 良好 (12-15点): すべての要件を満たし、堅実な実行を示す
- 発展途上 (8-11点): ほとんどの要件を満たし、軽微な問題がある
- 初歩的 (4-7点): 一部の要件を満たしているが、大幅な改善が必要
追加学習リソース
💡 プロのヒント: シンプルに始めて、徐々に機能を追加してください。バグのある複雑なゲームよりも、洗練されたシンプルなゲームの方が良いです!
免責事項:
この文書はAI翻訳サービスCo-op Translatorを使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された文書を正式な情報源としてお考えください。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解について、当社は責任を負いません。