Skip to content
Tanaka Daiki edited this page Nov 19, 2020 · 8 revisions

rogue_game とは

コンピューターRPG 黎明期に誕生した、テキストユーザーインターフェースの探索型RPG。
下の文章は Wikipedia からの引用

UNIXのキャラクター端末用に開発されたCursesライブラリを利用しMichael ToyとGlenn Wichmanの2人により最初のバージョンが開発される。Michael Toyがカリフォルニア大学バークレー校に編入の後、Ken Arnoldと開発を進め、BSD UNIX上で拡張され、1983年にBSD UNIX 4.2に入れられて配付されることで広まった。

それまでの、状況を全て文章で表示するテキストアドベンチャーとは異なり、Cursesライブラリを採用することでダンジョンなどの視覚的表現を実現した(テキストユーザインタフェース)。

ゲーム自体は比較的簡素であるが、プレイを繰り返しても飽きがこないよう工夫されており、また様々な戦術を考える余地があるなど奥の深いものになっている。こういったことから数多くの熱狂的ファンが生まれることになった[2]。

後に、ローグを基に新たなアイデアやルールを盛り込んだゲームも多数作られ、現在もその流れは続いている。これらのゲームはローグライクゲーム(ローグ的ゲーム)と総称される。しかし今もなお、各種のローグライクゲームと並んでローグをプレイする愛好者も少なくない。

VAX・PDP-11用のBSD UNIXに(ソースコード非公開で)収録されて広まり、後にクローン(リリース時にポストされたメッセージには「パブリックドメイン」とあったが、ソースコード中で主張されているライセンスの文面はそのように解することができず、現在Debianではnon-freeとカテゴライズしている)やPC用の製品も開発された。また、アスキーネット上でプレイできた時期があり、日本における普及の一助となった。

開発目標

  • C++ の言語知識の習得(言語機能、STL)
  • オブジェクト指向に則ったシステムの構築技術の獲得
  • コーディング・デバッグ技術の向上
  • 以下を満足する品質の高いコードおよびゲームの作成
    • 可読性 (コードの読みやすさ)
    • 保守性 (デバッグのしやすさ等)
    • 拡張性 (アイテムやキャラクター、その他機能の追加の簡易さ)
    • 操作性 (簡単キーボード入力)
    • 整合性 (マップの生成など)
    • 効率性 (処理速度, リソース管理)
    • 中毒性 (飽きずに利用してもらえる)

要するに作者の自己満足です。

バージョン

バージョン番号は ${MAJOR}.${MINOR}.${PATCH} の表記で、以下の規則に従います。

Number Description
MAJOR Release Planに基づき作者が手動で決定する。
MINOR 開発を進めていく中で、ユーザー目線での使用感に変化が感じられると判断されたタイミングで更新する。
PATCH 気分。master ブランチにマージされたタイミング。

ゲーム画面解説

書くの面倒なのでとりあえず Wiki 見てください。

操作方法

操作方法は、コマンド式のオリジナルより
はるかに簡単にしているつもりです。

ダンジョンモード

Key Action
(矢印キー) キャラクター移動
スペース アイテム選択画面へ

アイテム選択モード

Key Action
(矢印キー) カーソル移動
Enter アイテム決定
スペース アイテム選択モードを出る
BackSpace アイテム選択モードを出る

特徴

  • 簡単操作で完結
  • 拡張性の高い設計(Action)
  • Windows サポート
  • テキストから JSON 生成
  • JSONでマップ記述(拡張性)
  • デバッグツール(ロガー)
  • Continuous Integration
  • バージョン自動設定
  • README 自動更新 (プロダクト,ライブラリバージョン)
  • 環境依存ファイル自動生成
  • レイヤ状のマップ表現
  • キー入力の抽象化
  • 最新ログへのシンボリックリンク

ご意見・要望

Issues か Pull Request にて受け付けております。