✅ ROOT権限なしでFreeBSD13にrogue(5.4.5)をインストールする方法

ソースコードからインストール
環境変数の設定
  • PATHに$HOME/local/binを追加。
  • コンパイル用の環境変数(LDFLAGS、LD_LIBRARY_PATH)の設定。

% cd

% vi .cshrc
% cat .cshrc
...
...
set path = ($HOME/bin $HOME/local/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin)
...
...
setenv  LDFLAGS          "-L. -L$HOME/local/lib"
setenv  LD_LIBRARY_PATH  .:$HOME/local/lib
...
...
%

% source ~/.cshrc
                
必要となるプログラム

rogue5.4.5は以下のプログラムが必要です。

autoconfはインストール済みでした。

  1. autoconf
  2. automake
  3. ncurses
autoconfインストール

autoconfはLOCAL側に最新をインストールしておきます。


% cd $HOME/local/src
% wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.gz
% tar xzf autoconf-2.72.tar.gz
% cd autoconf-2.72
% ./configure --prefix=$HOME/local
% make
% make install
% source ~/.cshrc
% autoconf --version
% cd $HOME/local/src
% rm -rf autoconf-2.72*
                
autoconf-archiveインストール

% cd $HOME/local/src
% wget https://ftp.gnu.org/gnu/autoconf-archive/autoconf-archive-2014.02.28.tar.gz
% tar xzf autoconf-archive-2014.02.28.tar.gz
% cd autoconf-archive-2014.02.28
% ./configure --prefix=$HOME/local
% make
% make install
% source ~/.cshrc
% autoconf --version
% cd $HOME/local/src
% rm -rf autoconf-archive-2014.02.28*
                
automakeインストール

% cd $HOME/local/src
% wget https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.xz
% tar xzf automake-1.16.5.tar.xz
% cd automake-1.16.5
% ./configure --prefix=$HOME/local
% make
% make install
% source ~/.cshrc
% wihch automake
% cd $HOME/local/src
% rm -rf automake-1.16.5*
                
ncursesインストール

% cd $HOME/local/src
% wget https://ftp.gnu.org/gnu/ncurses/ncurses-6.6.tar.gz
% tar xzf ncurses-6.6.tar.gz
% cd ncurses-6.6
% ./configure --prefix=$HOME/local --enable-widec --with-shared
% make
% make install
% source ~/.cshrc
% cd $HOME/local/src
% rm -rf ncurses-6.6*
                
rogueインストール

rogue5src.tgz(rogue5.4.5-src)を使用します。

これはGitHubのRogue_Archive.Official-masterのrogue54内のアーカイブを持ってきたものです。


% cd $HOME/local/src

rogue5src.tgzを$HOME/local/srcに配置しておきます。

% tar xzf rogue5src.tgz
% cd rogue5.4.5-src
% ./configure --prefix=$HOME/local
% emacs extern.h

% diff extern.h~ extern.h
20a21
> #include 

% grep -1n 'sys/types.h' extern.h
20-#endif
21:#include 
22-#include "config.h"

% emacs Makefile

% diff Makefile~ Makefile
29c29
< CFLAGS= -g -O0
---
> CFLAGS= -g -O0 -DMASTER -DNCURSES_INTERNALS

% make
% make install
% cd $HOME/local/src
% rm -rf rogue5*
% cd $HOME/local/bin
% ln -s rogue5 rogue
% source ~/.cshrc

ゲームの結果はカレントディレクトリにできます。
  ログ: rogue5.log
スコア: rogue5.scr
                

📖 rogueゲームの説明

マップ表示に使われる文字一覧
  • 迷宮
    
    -   壁
    |   壁
    +   扉
    #   通路
    .   床
    ^   罠
    %   階段
                            
  • キャラクタ
    
    A B ... Z  モンスター
    @          主人公
                            
  • アイテム
    
    *   金塊     (gold pieces)
    :   食料     (food)
    )   武器     (weapon)
    [   鎧       (armor/mail)
    !   飲み薬   (potion)
    ?   巻物     (scroll)
    /   魔法の杖 (wand/staff)
    =   指輪     (ring)
    ,   魔除け   (amulet)
                        
コマンド

?       ヘルプが表示されます
/       オブジェクトを識別
h       左
j       下
k       上
l       右
y       上左
u       上右
b       下左
n       下右
        <SHIFT><dir>: その方向に走る
        <CTRL><dir>: 隣接するまで走る
f<dir>  死ぬか瀕死になるまで戦う
t<dir>  何かを投げる
m<dir>  拾わずに移動する
z<dir>  杖を特定の方向に振る
^<dir>  罠の種類を識別する
s       罠/秘密の扉を探す
>       階段を下りる
<       階段を上る
.       1ターン休憩
,       何かを拾う
i       持ち物の一覧表示
I       アイテムを1つ確認
q       ポーションを飲む
r       巻物を読む
e       食べ物を食べる
w       武器を振るう
W       鎧を着る
T       鎧を脱ぐ
P       指輪をはめる
R       指輪を外す
d       物を落とす
c       物を呼び出す
a       最後のコマンドを繰り返す
)       現在の武器を表示する
]       現在の防具を表示する
]       現在の防具を表示する
=       現在の指輪を表示する
@       現在のステータスを表示する
D       発見したものを思い出す
o       オプションを確認/設定する
^R      画面を再描画する
^P      最後のメッセージを繰り返す
^[      コマンドをキャンセルする
S       ゲームを保存する
Q       終了する
!       シェルからエスケープする
F<dir>  どちらかが死ぬまで戦う
v       バージョン番号を表示する
                
その他
  • オプション
    
    Terse output ("terse"): False                        簡潔な出力 ("terse"): False
    Flush typeahead during battle ("flush"): False       戦闘中に入力内容をフラッシュする ("flush"): False
    Show position only at end of run ("jump"): False     走行終了時にのみ位置を表示する ("jump"): False
    Show the lamp-illuminated floor ("seefloor"): True   ランプで照らされた床を表示する ("seefloor"): True
    Follow turnings in passageways ("passgo"): False     通路の曲がり角をたどる ("passgo"): False
    Print out tombstone when killed ("tombstone"): True  倒された時に墓石を表示する ("tombstone"): True
    Inventory style ("inven"): Clear                     インベントリのスタイル ("inven"): Clear
    Name ("name"): user                                  名前 ("name"): user
    Fruit ("fruit"): slime-mold                          フルーツ ("fruit"): slime-mold
    Save file ("file"): rogue.save                       セーブファイル ("file"): rogue.save
                            
  • モンスター(Creature: クリエーチャー)
    
    - -------------- ------ -------------- ---------------------------------- ----------------------------
      名前           所持率 特徴           ---------- モンスター能力値------- 備考                        
                                           筋力 経験  練度 防具 dmg
    - -------------- ------ -------------- ---- ----- ---- ---- ------------- ----------------------------
    
    A Aquator,          0,  目覚,           10,    20,  5,    2, 0x0/0x0      鎧を錆びさせる
    B Bat,              0,  飛行,           10,     1,  1,    3, 1x2          ランダムに飛ぶ
    C Centaur,         15,  -,              10,    17,  4,    4, 1x2/1x5/1x5
    D Dragon,         100,  目覚,           10,  5000, 10,   -1, 1x8/1x8/3x10 遠距離火炎放射
    E Emu,              0,  目覚,           10,     2,  1,    7, 1x2
    F venus Flytrap,    0,  目覚,           10,    80,  8,    3, 0x0          トラッププレイヤー
    G Griffin,         20,  目覚|飛行|再生, 10,  2000, 13,    2, 4x3/3x5
    H Hobgoblin,        0,  目覚,           10,     3,  1,    5, 1x8
    I Ice monster,      0,  -,              10,     5,  1,    9, 0x0          プレイヤーをフリーズさせる
    J Jabberwock,      70,  -,              10,  3000, 15,    6, 2x12/2x4
    K Kestrel,          0,  目覚|飛行,      10,     1,  1,    7, 1x4
    L Leprechaun,       0,  -,              10,    10,  3,    8, 1x1          金を盗む
    M Medusa,          40,  目覚,           10,   200,  8,    2, 3x4/3x4/2x5  ヒーローを混乱させる
    N Nymph,          100,  -,              10,    37,  3,    9, 0x0          魔法のアイテムを盗む
    O Orc,             15,  守金,           10,     5,  1,    6, 1x8          貪欲 - 金に向かって走る
    P Phantom,          0,  透明,           10,   120,  8,    3, 4x4          見えない
    Q Quagga,           0,  目覚,           10,    15,  3,    3, 1x5/1x5
    R Rattlesnake,      0,  目覚,           10,     9,  2,    3, 1x6          筋力を低下させる
    S Snake,            0,  目覚,           10,     2,  1,    5, 1x3
    T Troll,           50,  目覚|再生,      10,   120,  6,    4, 1x8/1x8/2x6
    U black Unicorn,    0,  目覚,           10,   190,  7,   -2, 1x9/1x9/2x9
    V Vampire,         20,  目覚|再生,      10,   350,  8,    1, 1x10
    W Wraith,           0,  -,              10,    55,  5,    4, 1x6          経験値を消費する
    X Xeroc,           30,  -,              10,   100,  7,    7, 4x4          物体を模倣する
    Y Yeti,            30,  -,              10,    50,  4,    6, 1x6/1x6
    Z Zombie,           0,  目覚,           10,     6,  2,    8, 1x8
    
    所持率: モンスターが宝物を所持している確率
    
    特徴
      目覚: プレイヤーが部屋に入るとモンスターは目覚める
      再生: モンスターは再生できる
      飛行: モンスターは飛行できる
      守金: モンスターはゴールドを守るために走る
      透明: モンスターは不可視です
    
    筋力: 強さ
    経験: 経験値(ステータスExp: 熟練度/経験値)モンスター出現条件
    練度: 熟練度(ステータスExp: 熟練度/経験値)モンスター出現条件
    防具: アーマークラス(AC)です。ACが低いモンスターからは攻撃されにくくなります。
     dmg:与えたダメージを表す文字列
                            
  • ゲーム画面最下部に表示されるステータス

    「Level: 1 Gold: 0 Hp: 12(12) Str: 16(16) Arm: 4 Exp: 1/0」の意味

    • Level: 1
      地下1階(最初の階層)にいる。
    • Gold: 0
      現在持っている金塊は0。
    • Hp: 12(12)
      現在のヘルスポイント(HP)が12、最大値も12。
    • Str: 16(16)
      現在の強さ(Strength)が16、最大値が16。通常、強さは3〜31で、高いほど攻撃力が上がる。
    • Arm: 4
      アーマークラス(AC: 防御力)。数値が高いほど防御効果が高い。
    • Exp: 1/0
      熟練度/経験値。熟練度1、経験値0。
  • アイテム一覧(持ち物の一覧表示)
    
    a) Some food
    b) +1 ring mail [protection 4] (being worn)
    c) A +1,+1 mace (weapon in hand)
    d) A +1,+0 short bow
    e) 29 +0,+0 arrows
                        
    • a) Some food
      Some food があるので、当面は空腹死の心配はありません。
    • b) +1 ring mail [protection 4] (being worn)
      リングメイル(Ring mail)は、革や布のベースに金属製の輪を多数縫い付けた鎧です。
      初期状態よりもprotection(AC:アーマークラス)が1改善されています。
      攻撃されると+1が-1になり[protection 2]になる場合があります。
    • c) A +1,+1 mace (weapon in hand)
      mace(鎚矛: つちほこ)は、接近戦で使用されます。
      +1,+1 mace は命中率とダメージの両方に魔法の強化があり、序盤の敵には十分強力です。
    • d) A +1,+0 short bow
      short bow(短弓: たんきゅう)は、M字型に湾曲した小型の弓の総称です。
      命中率+1とダメージ+0、遠距離用の武器。
      short bow とarrows のセットがあるため、Emu (エミュー) などの厄介な敵を近づけずに処理できます。
    • e) 29 +0,+0 arrows
      bow(弓)とarrow(矢)で遠距離の敵を攻撃できます。
      命中率+0とダメージ+0は、両方とも魔法の強化加点なしです。
  • モンスターの注意点と弱点
    序盤から中盤にかけて特に注意すべきモンスターとその対策です。
    • R(Rattlesnake / ガラガラ蛇)
      脅威: 攻撃を受けるとStr(筋力)が減少します。筋力が下がると攻撃力が激減するため、非常に危険です。
      対策: 隣接される前に弓矢(d, e)で仕留めるのが最善です。
    • A(Aquator / アクエイター)
      脅威: 攻撃を受けると、装備している鎧のACを下げて(劣化させて)きます。
      対策: 防具を傷つけられたくない場合は、危険ですが、戦う前に鎧を脱ぐという技もあります。
    • I(Ice Monster / アイスモンスター)
      脅威: プレイヤーを凍らせて数ターン動けなくします。その間に他の敵に囲まれると致命的です。
    • 弱点の基本
      基本的には「遠距離から削る」のが共通の弱点です。弓矢は危険な敵には迷わず使いましょう。
  • 未識別のポーション(!)の使い方
    ポーションは飲むまで効果がわかりませんが、リスクを抑える「識別術」があります。
    • 基本は「安全な場所で飲む」
      毒や混乱、盲目の可能性があるため、敵がいない部屋で、かつ階段の近くで飲みましょう。
    • 空腹時を避ける
      混乱して動けなくなっている間に餓死するのを防ぐためです。
    • 名前から推測は不可能
      名前や色はゲームごとにランダムに割り振られるため、色で効果を判断することはできません。
    • 「識別の巻物(Scroll of Identify)」を使う
      「?」で表示される巻物の中に、アイテムを確実に識別できるものがあります。
      貴重なポーション(見たことがない高層階で拾ったものなど)はこれで鑑定します。
    • 能力値回復の期待
      蛇に筋力を下げられた後は、筋力(Str)回復のポーションを期待して未識別を試す価値があります。
  • 巻物の識別テクニック
    巻物は読むまで効果が不明ですが、読んだ瞬間に効果を発揮して識別済みになります。
    • 「識別の巻物 (Identify)」を最優先で特定する
      他の強力なアイテム(指輪、杖、強力そうな武器)を鑑定するために必須です。
      未識別の巻物を読んだ際、どのアイテムを鑑定するか選択画面が出たら、それが「識別の巻物」です。
    • 安全な場所で読む
      「テレポート (Teleportation)」でモンスターの群れのど真ん中に飛ばされたり、
      「眠り (Sleep)」で数ターン無防備になるリスクがあります。
      必ず、周囲に敵がいない探索済みの部屋や通路で試しましょう。
    • 「何も起きない」巻物に注意
      「モンスターを縛る (Hold Monster)」などの巻物は、
      部屋にモンスターがいない時に読むと「何も起きない」ため、正体が判明しません。
      効果がなかった場合も、どの名前の巻物だったか覚えておく(またはメモする)のが上級者のコツです。
  • 強力な巻物の活用法
    特に生存率を大きく左右する巻物の使いどころです。
    • 鎧/武器の強化 (Enchant Armor / Weapon)
      初期装備に使うのも手ですが、
      より強力な「プレートメイル」や「ロングソード」を手に入れるまで温存するのが理想です。
      呪われた装備(Cursed)を解呪して外せるようにする効果もあります。
    • 魔物除けの巻物 (Scare Monster)
      地面に置くことで、そのマスにモンスターが侵入できなくなります。
      通路に置いて盾にしたり、上に乗って一方的に攻撃する使い方が極めて強力です。
      ただし、一度置いた後に拾い直すと消滅(またはただの紙になる)することが多いので注意が必要です。
    • 地図の巻物 (Magic Mapping)
      その階層の全ての部屋と通路が表示されます。
      食料が尽きそうな時や、早急に階段を見つけたい緊急時に使いましょう。
    • 呪いを除去する巻物 (Remove Curse)
      「呪われて外せない指輪」や「性能の下がった鎧」を元に戻せます。
      これがあるまで、未識別の指輪や防具を装備するのは控えるのが定石です。
  • 全滅を避ける「逃げ」のテクニック
    Rogueでは、戦うことと同じくらい「戦わないこと」が重要です。
    • 通路に誘い込む (1対1の状況を作る)
      部屋で複数の敵に囲まれるのは死を意味します。
      敵を見つけたら、すぐに狭い通路(#)へ後退してください。
      通路ならどんなに敵がいても、1対1で戦うことができます。
    • 「待ち」のテクニック
      敵が1マス離れた場所にいるとき、自分から近づくと先制攻撃を受けてしまいます。
      その場で.キー(または何もせず1ターン待機)を押し、
      敵が隣接してくるのを待ってから、
      こちらが先制攻撃を仕掛けましょう。
    • HP回復の休息
      HPが減ったら、無理せず足踏み(sキーや.キーの連打)で回復を待ちます。
      ただし、満腹度を消費するため、
      必ず「安全な部屋の隅」や「通路の行き止まり」で行いましょう。
    • 階段へのダッシュ
      どうしても勝てない敵(Strを下げてくる蛇など)が部屋にいたら、
      アイテムを諦めて階段(%)へ直行する判断も必要です。
  • 空腹度の管理術
    食料(Some food)は有限であり、常に餓死の危険がつきまといます。
    • 「お腹が空いた (Hungry)」と出るまで食べない
      メッセージが出る前に食べるのは無駄です。
      「Hungry」からさらに時間が経過すると「Weak(衰弱)」になり、
      最終的に「Fainting(失神)」して敵の前で無防備になります。
      「Weak」が出る直前か直後に食べるのが最も効率的です。
    • 無駄な歩き回りを避ける
      歩く(または足踏みする)ごとに満腹度は減ります。
      探索済みの場所を何度も往復するのは避け、効率的にマップを埋めましょう。
    • 隠し扉探しに注意
      行き止まりで「検索(sキー)」を連打すると、一気に満腹度が減ります。
      怪しい場所(部屋の角や、通路が途切れている場所)に絞って検索しましょう。
 
🔝