C言語で作るターミナルタイピングRPG「クムドール・クロニクル」まとめ:道中マップのある冒険と、遊びやすさを整える開発記録 | UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

C言語で作るターミナルタイピングRPG「クムドール・クロニクル」まとめ:道中マップのある冒険と、遊びやすさを整える開発記録 | UNIX Cafe
目次

クムドール・クロニクル:文字だけの画面で、王国を旅するタイピングRPG

このページは、C言語製のターミナルタイピングRPG「クムドール・クロニクル」の紹介記事と、これまでの改善をまとめた記事です。

画面に表示された課題を正確に入力して、敵を倒す。その仕組みに、文字で描いた道中マップや探索イベントを組み合わせ、クムドール王国を旅するゲームにしました。

もともとは「クムドールの試練」という名前で開発していたゲームですが、そこから、訓練場で指の位置を確かめ、マップを歩き、敵と出会い、次の土地へ進む流れへと再構成しています。旅と記録を意識して、名前も「クムドール・クロニクル」に変えました。

マップを歩けるようになると、今度は別のことが気になってきます。移動するたびに画面が揺れる。押しっぱなしにしていたキーが、戦闘の入力欄に入ってしまう。ステージを突破しても、前の画面が残っている。

そうした小さな違和感を、一つずつ直してきた記録でもあります。

このゲームでできること:

  • ビッグハンド訓練場で、キーと指の対応を確認する
  • 文字で描かれた道中マップを歩き、鍵や宝箱などを見つける
  • タイピングで敵を倒し、全20ステージの本編を進める
  • ホームポジションから、数字や記号を含む課題へ段階的に練習する
  • 成績を確認し、セーブして少しずつ冒険を続ける

この記事では、v1.0.0での再出発から、v1.0.1の画面改善、v1.0.2の入力とステージ遷移の整理までを振り返ります。

先に雰囲気を試してみたい方には、Webお試し版も用意しています。

GitHubでは、kumdor-chronicleという名前で公開しています。

GitHubリポジトリ:kumdor-chronicle

クムドール・クロニクルは、どんなゲーム?

キーボードを剣にして、クムドール王国を旅する

舞台は惑星クムドールです。クム酒の原料になるクムの木が石化し、湖からチャトフィッシュが姿を消し、王都の通信塔にも異常が起きています。

地球でキーボード道場を営む主人公は、救援依頼を受け、クムドール王国へ向かいます。このゲームでは、キーボードが「クムドールの剣」です。課題を正しく打つことが、敵や試練を乗り越える力になります。

物語の始まりには、一文字ずつ文章が流れるプロローグを入れました。句読点で少し間を置き、タイプ音を添えると、ターミナルにも冒険が始まる雰囲気が出てきます。

ホームポジションから、少しずつ使うキーを増やす

ターミナル版の本編は全20ステージです。最初に使うのは、f、j、スペース。そこから練習する範囲を広げていきます。

ステージ主な練習内容
1〜4ホームポジションとホーム段
5〜7上段のキー
8〜10下段のキー
11〜13数字
14〜20大文字、Shift記号、短い通信文、全キー混合

各段は、左手、右手、両手の順に進みます。同じキーの繰り返しだけでなく、短い単語やスペース入りの課題も出てきます。

判定では、大文字と小文字、スペース、記号も区別します。表示された課題をよく見て、そのとおりに入力することが基本です。

まずはWebお試し版で遊んでみる

ターミナルでのビルドに入る前に、ブラウザでゲームの雰囲気を試すこともできます。

Webお試し版には、プロローグ、ビッグハンド訓練場、第1章序盤5ステージを収録しています。道中探索と遭遇戦を体験でき、BGMは右上の音符ボタンで消音できます。収録内容はゲームの紹介記事でも案内しています。

ターミナル版の全20ステージとは収録範囲が異なりますが、「文字だけのRPGは、どんな感じなのか」を知る入口として遊んでみてください。

クムドール・クロニクル Webお試し版で遊ぶ

訓練場から探索、バトルへ

ビッグハンド訓練場で、指の位置を確かめる

いきなり本編に入る前に、キーと指の対応を確認できるのが、ビッグハンド訓練場です。

真ん中の列、上の列、下の列、数字を、左手、右手、両手に分けて練習できます。担当する指とキーの対応図も表示します。

訓練場では、入力を間違えてもHPは減りません。まず手の位置を確かめたい場合は、ここで少し練習してから本編へ進めます。

道中マップを歩く

本編では、アスキーアートのマップを歩きます。ターミナル上での基本操作は、次の3つです。

キー操作
f向いている方向へ進む
スペース右を向く
j目の前を調べる

対話端末では、この操作にEnterは必要ありません。キーを押すと、そのまま移動や方向転換ができます。

マップには、鍵の K、宝箱の C、回復、罠などがあります。鍵を見つけて宝箱を開けたり、回復を探したりしながら進みます。イベントの配置も変わるため、周囲を確かめる楽しみを持たせています。

課題を入力して敵を倒す

歩いている途中で敵に遭遇すると、タイピングの課題が表示されます。ここでは文字列を入力し、Enterで確定します。

通常の遭遇戦は、1問成功すると1体撃破です。敵を10体倒すと、そのステージを突破します。入力を間違えると反撃を受け、HPが0になると敗北です。

後半には、入力文字が見えなくなる暗闇や、Backspace/Deleteで戻せなくなる修正不可なども加わります。毒状態では正解が毒の解除に使われることもあり、いつも同じ調子で進めるとは限りません。

ステージを突破したら、成績を確認して次へ進みます。探索、戦闘、結果の確認という区切りを作り、練習を続けやすい流れにしています。

ここまでで、ゲームはどう変わったか

開発の流れは、大きく3つに分けられます。

区切り主な変更遊ぶときに変わったこと
v1.0.0タイトルを変更し、旅として再構成。プロローグ演出を整備王国をめぐる冒険として出発する形になった
v1.0.1マップ表示、鍵と宝箱、イベント配置、戦闘開始表示を改善探索中の情報が見やすくなり、マップを歩く楽しみが増えた
v1.0.2残った入力への対策と、ステージ突破後の画面遷移を整理戦闘の入力を始めやすくなり、結果を確認して次へ進めるようになった

最初は、道中を歩きながら物語を進める形を整えました。その後は、実際の操作で気になるところを直しています。

画面に情報が出ていることと、ゲームをしながら必要な情報が読めることは別なので、その辺りを整理すると遊びやすさにつながります。

まずどこから読むべきか

ゲーム全体を知りたい場合は、v1.0.0の紹介記事から読むと分かりやすいです。画面や入力の工夫に興味がある場合は、更新記事とその追記から読めます。

読者の目的おすすめの記事・箇所
世界観やゲームの仕組みを知りたいv1.0.0の紹介記事
文字送りの演出に興味がある紹介記事の「プロローグをタイピング風にする」
マップの見やすさや探索の改善を知りたいv1.0.1の更新記事
キーの押しっぱなしへの対策を知りたい更新記事の追記1
結果画面とステージ間の操作を知りたい更新記事の追記2
先に遊んでみたいWebお試し版、または本記事の起動手順

紹介記事と開発記録

v1.0.0:道中マップを使うゲームへ再編成

「クムドール・クロニクル」としての出発点を紹介した記事です。

訓練場で指の位置を確認し、道中マップを歩き、敵に遭遇して課題を入力する。ゲーム全体の流れと、タイピングの練習をどう組み込んだかを書いています。

プロローグの文字送りも、この紹介記事で扱っています。日本語の文字を途中で分割しないように表示し、句読点で間を取る。素朴な文字出力でも、少し手を加えると物語の導入になります。

  • 紹介しているもの:世界観、訓練場、道中マップ、20ステージの練習、セーブ
  • 読みどころ:タイピングの仕組みを、探索と物語のあるゲームへ組み直す考え方

v1.0.0の記事:道中マップを使うゲームへ再編成

v1.0.1:道中マップとバトル画面の遊びやすさを改善

マップを歩けるようになると、操作を繰り返すうちに表示の揺れが気になってきました。そこで、ヘッダやログの行数をそろえ、画面の位置が動きにくくなるようにしました。

HPや所持金などはマップ下部にまとめています。また、鍵 K で開けられる宝箱 C を追加し、探索中に拾ったものの使い道を分かりやすくしました。

戦闘開始時の表示も短くしています。移動から課題入力へ進むたびに長い説明を読むことになると、繰り返し遊ぶときのテンポが落ちるためです。

  • 変えたもの:マップ表示、鍵と宝箱、イベント配置、戦闘開始時のログ
  • 読みどころ:繰り返す操作を見直して、画面の落ち着きとゲームのテンポを整える過程

v1.0.1の記事:道中マップとバトル画面の遊びやすさを改善

更新記事の追記1:押しっぱなしのキーが、バトル入力にはみ出す問題

道中ではEnterなしでキーを受け付け、戦闘では文章を入力してEnterで確定します。この切り替えで問題になったのが、移動中に押し続けていたキーでした。

戦闘に切り替わった時点で入力を捨てても、キーを押したままだと、さらに文字が届きます。その文字が課題の入力欄へ入ってしまうことがありました。

そこで、切り替わり直後の入力を一度捨てるだけでなく、入力が落ち着くまで待つ処理を加えています。このガードは戦闘開始時の最初の入力に限り、通常の課題入力を毎回待たせない形にしました。

  • 変えたもの:道中から戦闘へ切り替わるときの入力処理
  • 読みどころ:表示上は切り替わっていても、入力がまだ届いている問題への対処

更新記事内の「追記1」を読む

更新記事の追記2:ステージ終了後に結果画面を一枚挟む

もうひとつ見直したのが、ステージを突破したあとの画面です。

前の道中や戦闘の表示が残ったままだと、成績が出ても、どこからが結果なのか分かりにくくなります。そこで、対話端末では画面を切り替え、成績を独立して表示するようにしました。

次へ進む操作も整理しています。進行を確認するEnterのあと、さらにEnterを求める流れをなくし、そのまま次のステージの短い物語へ進めるようにしました。

  • 変えたもの:結果画面、ステージ間のEnter待ち、画面を消す条件
  • 読みどころ:ひとつのステージが終わったことを、表示と操作の両方で伝える工夫

更新記事内の「追記2」を読む

C言語とターミナルで作ってみて、見えてきたこと

タイピング判定の基本は、fgets() で受け取った文字列を、strcmp() で課題と比較することです。プレイヤーや敵、ステージの情報は構造体で管理しています。

そこにマップや演出が加わると、文字列の比較だけでは済まなくなってきます。どの画面を残すか、いつ消すか。Enterなしの操作から、文章を打つ操作へどう切り替えるか。入力が届くタイミングまで考える必要が出てきました。

今回の改善で繰り返し扱ったのは、そうした画面と操作のつなぎ目でした。

マップの表示位置をそろえると、画面のチラつきが無くなります。戦闘開始時の文章を短くすると、課題へ意識を向けやすくなります。結果画面を分けると、ひとつのステージが終わったことが伝わります。

新しい機能を増やすことと同じくらい、すでにある機能を気持ちよく使えるようにすることも、ゲーム作りの面白いところだと思います。

手元のターミナルで遊んでみたい方へ

必要な環境と起動方法

取得にはGit、ビルドにはCコンパイラと make を使います。macOSではCommand Line Toolsが入っていればビルドできます。

課題の記号や指使いの説明は、US配列相当のキーボードを前提にしています。JIS配列では記号の位置などが一致しません。

git clone https://github.com/k1117n-cmyk/kumdor-chronicle.git
cd kumdor-chronicle
make
make run

ビルド後は、./kumdor_01 でも直接起動できます。

初めて遊ぶ場合は、最初のメニューで遊び方を確認し、ビッグハンド訓練場へ進んでみてください。キーと指の対応を確かめてから、本編を始められます。

セーブして、少しずつ続ける

ステージ突破時には自動セーブします。途中で保存して終了したい場合は、入力欄で :savequit と入力します。

保存だけ行う場合は :save です。データは kumdor_save.txt に記録されます。

再開は保存対象ステージの入口からです。道中マップ上の位置や、そのステージで倒した敵の数、途中の状態異常は保存されません。

音や色を調整する

ターミナル版のBGM再生はmacOS向けの機能です。BGMとプロローグのタイプ音を止めて起動する場合は、次のようにします。

KUMDOR_NO_BGM=1 KUMDOR_NO_TYPE_SOUND=1 ./kumdor_01

ゲーム中は :bgm または :mute でBGMを切り替えられます。ただし、KUMDOR_NO_BGM=1 で起動した場合は、ゲーム中の切り替えも無効になります。

カラー表示を使わない場合は、次のように起動できます。

NO_COLOR=1 ./kumdor_01

詳しい操作や設定は、GitHubのREADMEにまとめています。

よくある疑問

タイピングに慣れていなくても遊べますか?

本編は f、j、スペースから始まります。タッチタイピングに慣れていない場合は、先にビッグハンド訓練場を使ってみてください。後半になると数字や記号も出てくるので、少しずつ練習する形で構いません。

Webお試し版で、全20ステージを遊べますか?

Webお試し版の収録範囲は、第1章序盤5ステージまでです。全20ステージの本編は、ターミナル版で遊べます。

C言語の学習としても読めますか?

構造体、文字列の比較、ファイル入出力に加え、端末の入力や画面表示の扱いが出てきます。C言語の基本を少し触ったことがあり、動くものを作ってみたい方には、それぞれの処理がゲームの中でどう使われるかを見ながら読める内容です。

「クムドールの試練」とは、どのような関係ですか?

「クムドールの試練」で作ってきたタイピングRPGをもとに、道中探索や物語を組み直して進めているゲームです。名前を変え、v1.0.0として区切り直しました。

小さな戦闘プログラムから始まった経緯に興味がある方は、「クムドールの試練」の開発記録第1回から読むと、クロニクルにつながる土台を追えます。

おわりに:マップを歩きながら、遊びやすさも育てる

「クムドール・クロニクル」では、タイピングの戦闘に道中マップを組み合わせ、王国をめぐる旅として遊べる形にしました。

その後の更新では、画面の揺れや入力のはみ出し、ステージ間の余分な操作を修正しています。どれも小さな変更ですが、何度も繰り返す操作だからこそ、遊んだときに違いを感じる部分でした。

文字を表示する、キーを受け取る、音を鳴らす。ひとつひとつは素朴な仕組みでも、組み合わせ方を考えると、ターミナル上に体験を作れます。

ゲームの雰囲気が気になった方はWebお試し版から、実装に興味がある方は紹介記事やソースコードから、のぞいてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

目次