このプロジェクトについて

VIM Masterは、Vimを学ぶためのインタラクティブなブラウザベースのゲームです。ドキュメントを読む代わりに、プレイヤーはシミュレートされたエディタ環境内で短く集中したレッスンに取り組み、段階的な難易度とXP、コンボ、実績、バッジなどのゲーミフィケーション要素を備えています。 READMEに記載されている主な機能: - シミュレートされたVimエディタでのインタラクティブな学習。 - ゲーミフィケーション:XP、コンボ、実績、バッジ。 - JSON駆動のコンテンツエンジン:各レッスンは自己完結型のJSONファイルです。 - 時間制限付きのスピードと正確性のチャレンジを行う練習アリーナ。 - アクセスしやすいコマンドリファレンスであるチートモード。 - 進捗、バッジ、XPのローカル保存(インポート/エクスポート対応)。 ローカルで実行するには、リポジトリのクローン、npmでの依存関係のインストール、チェックスクリプトの実行、開発サーバーの起動が必要です。ゲームはVite経由で配信され、通常はhttp://localhost:5173/で利用できます。 アーキテクチャ:V3以降、このプロジェクトはコンテンツプラットフォームアーキテクチャを採用しています。エンジンはレッスンをハードコードするのではなく、コンテンツを消費します。レッスンはcontent/lessons/*.jsonにあり、ビルドステップ(npm run build:content)でcontent/index.jsonにコンパイルされ、エンジンがそれを読み取ります。リポジトリはcontent(レッスンとスキーマ)、docs(コミュニティガイド、アーキテクチャ、原則)、js(エンジン、進捗システム、UIコンポーネント)、testsに整理されています。 テストと検証:プロジェクトでは4部構成の戦略が説明されています。契約スイートは厳格なスキーマに対してJSONレッスンを検証します。ゴールデンスイートはレッスンのソリューション配列からの正確なキー入力をエンジンで実行し、最終的なエディタ状態をtargetContentと照合します。回帰スイートは以前に修正されたバグを防ぎ、ユニットスイートは内部状態ロジックとヘルパーを検証します。これらはすべてnpm run checkで実行できます。 コントリビューション:このアーキテクチャは、コントリビューターがエンジンを理解せずにレッスンを追加できるようにすることを意図しています。レッスンの追加は、既存のJSONファイルをコピーし、テキストを編集してプルリクエストを開くことと説明されており、専用ガイドがdocs/community/contributing-a-lesson.mdにあります。 記載されているロードマップ項目には、完了したJSON駆動コンテンツへの移行、テストスイート、ドキュメント、ゲーミフィケーションを備えたコミュニティアルファ版、進行中のV3 UXの磨き上げ(初回ユーザーエクスペリエンス、ミニマリストUI、認知的負荷の軽減)、計画中のパブリックベータ版が含まれます。このプロジェクトはMITライセンスの下で公開されています。