sail(6) マルチユーザ版ゲーム「帆船の戦い」

書式

sail [ -s [ -l ] ] [ -x ] [ -b ] [ num ]

解説

sail は、もともとは、S. Craig Taylor によって開発された、アバロンヒル社の戦闘帆船 ボードゲームのコンピュータ版です。

sail のプレイヤは、旧式の戦艦の指揮をとり他のプレイヤやコンピュータと 戦います。 プレイヤは、ゲームの中に記録された数多くの歴史上の海戦の中の 1 つを再現しても よいし、空想上の戦闘を選ぶこともできます。

sail 海軍の艦長として、プレイヤは自分の艦の活動については完全な管理ができます。 プレイヤは全ての操作を命令し、帆装を変更し、そして片舷斉射の恐ろしい破壊力 を解き放つ正しい瞬間を判断しなければなりません。 更に、敵と戦うことに加えて、プレイヤは、風と海の力を味方につけて 自分のために働かせなければなりません。 帆船時代の多くの海戦の勝敗は、ある 1 人の艦長の '風上' をとる能力により 決せられました。

フラグは:

-s
上位 10 位までの船員の名前と艦を表示します。
-l
ログイン名を表示します。-s とともに指定したときだけ有効です。
-x
どの艦にするかという選択を求められるかわりに、 最初に利用できる艦でプレイします。
-b
ベルを鳴らしません。

実装

sail は実は 2 つのプログラムを 1 つにまとめたものです。 各プレイヤは彼自身の船を動作させるプロセスを起動します。 それに加えて、(最初のプレイヤによって) 起動された ドライバ[driver] プロセスが、コンピュータ船を動作させ、 さらに全体にわたる記録計算を引き受けて処理します。

ドライバ プロセスは、それが制御している全ての船の動きを計算しなければならないので、 より多くの船をコンピュータがプレイすればするほど、ゲームはよりゆっくり進行 しているように見えるでしょう。

もし、あるプレイヤが現在進行中のゲームに参加したとすると、 他のプレイヤと同期して同じ速度になるでしょう (皆にすれば 幾分か遅くなります)。 そして、その後、彼は他のプレイヤと同じ速度でプレイするでしょう。

マルチユーザゲームを Version 7 UNIX --- これは sail がその上で最初に書かれたオペレーティングシステムでした --- に実装するためには、 通信しているプロセスがメッセージを読み書きする場所として共通の一時ファイル を使う必要がありました。 それに加えて、共有ファイルへの排他的アクセスを保証するため、 ロック機構が供給されなければなりませんでした。 例えば、 sail はシナリオ 21 については、 /tmp/#sailsink.21 という名前の一時ファイルを使います。 そして、他のシナリオに対してはそれに類するファイル名を使用します。 一時ファイルへの排他的アクセスを供給するために、 sail は Jeff Cohen 作の "pubcaves" と呼ばれる古いゲームから盗んだテクニックを 使っています。 "/tmp/#saillock.??" という名前のファイル ("??" はゲームのシナリオ番号に対応しています) への リンクを作成できるまでの間、プロセスが次のようなループ

       for (n = 0; link(sync_file, sync_lock) < 0 && n < 30; n++)
              sleep(2);

でビジーウェイトをしています。
UNIX はリンクが唯一つのファイル をポイントするものであることを保証しているので、リンクに成功したプロセスは 一時ファイルへの排他的アクセスを獲得します。

この仕組みが実際に機能するかどうかについては、さらなる考察が必要でしょう。 それというのも、マシン ucbmiro (=miro.berkeley.edu の BITNET アドレス) が 暴走してリブートしたとき、ファイルシステム検査プログラムによって、 sail の一時ファイルとそれがリンクしているファイルの間に、3 個のリンクが発見され ましたから。

プレイヤプロセスとドライバプロセスとを分離した結果

プレイヤ達が移動や発砲などの全体の興味に関わる重要な行動をするときには、 ドライバプロセスはゲーム中の他の船の行動とその行動とを 調整しなければなりません。 例えば、もしあるプレイヤがある方向に移動したい場合には、彼の 船を移動させることをドライバプロセスに要求するメッセージを、 一時ファイルに書き込まなければ なりません。 ターンのたびに、ドライバプロセスはプレイヤ達から送られたメッセージを 全て読んで、起こったことを決定します。 それから、ドライバプロセスは変数の新しい値などを一時ファイル に書き戻します。

この通信がゲームに及ぼす最も顕著な効果は移動の遅れです。 もしもプレイヤが彼の船の移動をタイプして、リターンキーを叩いたとしましょう。 次に何が起こるでしょうか? プレイヤプロセスは一時ファイルに書き込むべきメッセージをバッファに 溜込みます。 およそ 7 秒おきに、プレイヤプロセスは一時ファイルへの排他的アクセス を獲得して、そのバッファを一時ファイルに書き出します。 ドライバプロセスは非同期的に動作しています。これは、移動コマンドを 読み込み、そのコマンドを処理し、そしてその結果を書き出さなければなりません。 これには、一時ファイルへの 2 回の排他的アクセスを必要とします。 最後に、プレイヤプロセスがもう 1 回の更新にやっと取り掛かる頃、 移動の結果がスクリーン上に表示されます。 それゆえ、プレイヤが自分が行なった移動結果を知るまでに、 移動それぞれにつき、一時ファイルへ排他的アクセス 4 回 (1 回の排他的アクセスに 7 秒から 21 秒の間のどれくらいの時間を要するかは、 非同期性に依存しています) が要求されます。

実際は、遅れはそう見えるほどには厄介なものではありません。 移動には、パイプライン処理の余地があります。 プレイヤは 1 番めの移動メッセージを書き込んだあと、2 番目の移動コマンドを 入力できます。 1 番目のメッセージは、一時ファイルの中でドライバプロセスの読み込みを 待ちます。そして、 2 番目のメッセージは、ファイルバッファにあってファイルに書き出されるのを待って います。 そういうわけで、常に 1 回だけターンを先行して移動コマンドを打ち込むことで、 プレイヤは十分素早く帆走することができます。

もしプレイヤが 7 秒間隔の更新 2 回の間に数個の移動コマンドを 打ち込んだとすると、ドライバプロセスに見えるのは最後の移動コマンドだけです。 同じ更新期間中の複数の移動コマンドは、ある意味で互いに上書きし合います。

SAILの歴史

筆者は sail の最初のバージョンを 1980 年の秋に PDP 11/70 の上で書きました。 言うまでもなく、コードは恐ろしいもので、 移植可能とはとうてい言えるものでもなく、そして動きもしませんでした。 プログラムは、全くモジュール化されていない上に、数行おきに fseek() や fwrite() がありました。 トップダウン手法による徹底的な書き換えによって、1981 年までに筆者は最初の 機能するバージョンを仕上げました。 片舷斉射の発射や方角の発見に関していくつかのやっかいなバグがありました。 ところで、 sail は浮動小数点を使っていません。それで、方角についてのルーチンは、すこし 手が込んだものになっています。 Ed Wang は、1981 年に angle() ルーチンをより間違いのないものに書き換えました。 (しかしながら、それは、まだ完全には機能していません)。 そして、彼はゲームの始めで (最初に利用可能な船の代わりに) プレイヤが 自分の望む船を選べるようなコードを加えました。

ハッピィ艦長 (Craig Leres) が、 sail を移植可能にすることに初めて責任をもちました。 ちなみに、これはとても難しい仕事でした。2 や 10 といった定数が コードにはとても頻繁に現れます。また、 sail の中で「Riggle 記念構造体 ("Dave Riggle":筆者)」を使ってしまった ということでも名前を売ってしまったぐらいですし。 筆者の構造体参照の多くはとても長いので、ラインプリンタの印字ページを はみ出してしまいます。もし、笑わないと約束して下さるなら、ここに一例を お見せしましょう。

specs[scene[flog.fgamenum].ship[flog.fshipnum].shipnum].pts

sail には、1983 年の夏と秋に最も徹底的な 4 回目の書き換えがなされました。 Ed Wang はコードを殆ど何もない状態から書き換えモジュール化しました (記念碑的な偉業です)。 彼は、多くの新しいバグを導入したにもかかわらず、最終的な結果は とても奇麗で、(?) より速いものになりました。彼は、ウィンドウ移動コマンド と艦船発見コマンドを加えました。

歴史的情報

古い横帆船 [Square Rigger] は、複雑な帆走が可能で、とても操作しやすい船です。 これら横帆船の唯一つの弱点は、風上にぎりぎりに間切って帆走できない ことです。 木造船の設計は大砲を左舷と右舷の方向に向けることだけを考慮していました。 少数の小さな大砲 (通常 6 ポンド砲か 9 ポンド砲) だけが前方に狙いをつける ことができました。しかし、それらの砲は、68 門の 24 ポンド砲か 32 ポンド砲 からなる舷側砲の片舷斉射に比べれば、その効果は小さいものでした。 大砲は大体つぎのような方向に向けられます。
       \
        b----------------
    ---0
        \
         \
          \     10の範囲まで (砲丸 [round shot] の場合)
           \
            \
             \
片舷斉射が敵艦の縦方向に打ち抜かれたときには、興味深い現象が起きました。 砲弾は甲板 [こうはん] に沿ってはねまわり数倍の損害を加えがちでした。 この現象は縦射 [rake] と呼ばれました。船の船首 [bow] は非常に強固で船尾 [stern] より小さな標的だったので、船尾縦射 [stern rake](船尾より船首の方向の着弾) は船首縦射 [bow rake] によるよりも大きな損害を与えました。
                        b
                       00   ----  船尾縦射 [stern rake]!
                         a
大抵の船は、カロネード砲 [carronade] を装備していました。この大砲は、 非常に大きく、射程距離の短いものでした。 アメリカの艦船にはフランス革命から 1812 年の戦争 (米英戦争) まで、 ほぼすべての艦船に カロネード砲が装備されていました。

sail で扱っている時代は、ほぼ 1770 年代から 1815 年にナポレオンのフランス支配が 終るまでです。 帆船時代に関しては、素晴らしい本が多くあります。筆者の好きな作家は Captain Frederick Marryat です。 もっと現代の作家達の中では、C.S. Forester や Alexander Kent です。

艦船には、装備された兵器で区別される分類があります。 どの艦隊でもメインマストをなす艦船は、戦列艦 [Ship of the Line]、即ち、 戦列をなす戦艦 [Line of Battle Ship] です。 これらの艦船がこのように名付けられた理由は、これらが大きな列 を作って交戦するからです。 彼らは、互いに助け合えるぐらい近くに位置しますが、それでも、 どの艦もその両舷側の片舷斉射 [broadside] を 発射できるようにします。 現代の「遠洋定期船 [ocean liner]」とか「定期船 [liner]」、 そして「戦艦 [battleship]」という言葉は 「戦列艦 [Ship of the Line]」から派生したものです。 最もありふれた分類は、74 砲門で 2 層甲板の戦列艦です。 2 層の砲列甲板には普通 18 ポンド砲か 24 ポンド砲が搭載してありました。

第 1 に来る分類は、艦隊の誇りとなる船です。 これらの艦船は、80 砲門から 136 砲門の大砲を搭載した巨大な 3 層甲板戦列艦です。 3 層の大砲は、普通 18 ポンド砲、24 ポンド砲、そして 32 ポンド砲でした。 これらの大砲は、この順番で上から下に搭載されていました。

他のさまざまな船が次の分類になります。 これらの戦艦は殆んど全て「レイジー[razee]」、すなわち、甲板を 1 層切り落とした 戦列艦です。 これらの戦列艦は、40-64 砲門の大砲を搭載した、 フリゲート艦 [frigate] と戦列艦 の貧弱なあいのこです。 レイジーには、フリゲート艦のスピードもなければ、戦列艦の火力も ありませんでした。

その次に来る分類が、「艦隊の目」です。 フリゲート艦 [frigate] は 32 砲門から 44 砲門の大砲をどこにでも搭載していて 大きさはさまざまです。 これらは、大変便利な船です。 フリゲート艦は、より大きな船に対しては航行速度でまさり、より小さな船に 対しては火力でまさります。 フリゲート艦は、ずっと大きな 74 砲門の戦列艦がやるように戦列を組んで 戦ったりはしませんでした。 その代わり、これらの船は、敵の背後をおびやかし、傷ついて戦えなくなった船を だ捕しました。 これらの船は、艦隊から離れて行なう任務で、はるかに効果を発揮しました。 例えば、長い航海を短縮するとか、ボートによる戦闘を切り開くとかの任務です。 これらは、強力な一撃のあと、ずばやく引くことができました。

最後に来る分類には、コルベット艦 [corvette](平甲板 1 段砲装の帆装戦艦)、 スループ帆船 [sloop](1 本マストの縦帆船)、そして ブリッグ帆船 [brig](2 本マストの横帆船) があります。 これらは、一般的には 20 砲門以下の大砲を搭載しているより小さな船です。 コルベット艦は、フリゲート艦よりほんのちょっと小さいだけなので 30 砲門までの 大砲を載せられたでしょう。 スループ帆船は急送公文書や船客を搬送するのに使われました。 ブリッグ帆船は陸地で囲まれた湖のために建造されたものです。

SAIL 固有の詳細

sail では、船は 2 文字で表されます。 1 番目の文字は、船首 [bow] を表します。もう一方の文字は、 船尾 [stern] を表します。 船には、船籍と番号があります。 ある船籍の最初の船は番号 0 です。2 番目の船は番号 1、などなど。 したがって、ゲームの最初の英国船は「b0」と印字されます。 2番目の英国野郎は「b1」、そして、5 番目のスペイン紳士は 「s4」となります。

船は、戦闘帆 [Battle Sail] と呼ばれている通常の帆装をつけられます。 また、それに加えて総帆 [Full Sail] と呼ばれる全帆を結びつけられます。 総帆の船は本当に美しい眺めです。 そして、総帆の船は戦闘帆装の船よりずっと速く航行できます。 総帆装についての唯一の問題は、帆と索具に非常に大きな応力がかかるので、 狙い澄ました砲丸は、帆をちりじりに引き裂いてしまうことができるということです。 これにひきかえ、ゆるんだ帆には、砲丸は小さな穴しか開けられません。 この理由で、総帆装をつけた船では、索具への損傷は 2 倍になります。 このことで、総帆を使うことを思いとどまらないで下さい。 筆者は、総帆を戦闘たけなわとなるまで維持するのが好きです。 総帆装の船には船籍として大文字を設定します。 例えば、蛙食いのフランス野郎「f0」が総帆であれば、「F0」と印字されます。

船が、傾いた廃船 [listing hulk] になるまで叩き潰されたときは、 最後まで残っていた者が 「旗を下ろして降伏」します。 この儀式は、船の正式な降伏です。 降伏した船の船籍文字は、「!」として印字されます。 例えば、最後の例のフランス野郎は、すぐに「!0」になるでしょう。

船が傾いた廃船の段階に至ったときには、 船が出火したり沈没したりする可能性が確率的に生じます。 沈みつつある船は、その船籍として「~」が印字されます。 出火していて、今にも爆発しそうなときには、「#」が印字されます。

だ捕された船はだ捕船回航員の船籍になります。 それゆえ、もしアメリカ船が英国船をだ捕したならば、英国船の船籍として、「a」 が印字されます。 更に、船の番号は最初の番号しだいで「&」,「'」, 「(」, ,「)」, 「*」, 及び 「+」 につけかえられます。 例えば、アメリカ船にだ捕された「b0」は、「a&」となります。 フランス野郎にだ捕された「s4」は「f*」となります。

究極の例は、もちろん、アメリカ船に捕獲された爆発しそうな イギリス野郎です:「#&」

移動

多くの人にとって、移動は sail の最も困惑させられる部分でしょう。 艦船は 8 方向を向くことができます:
                                 0      0      0
        b       b       b0      b       b       b       0b      b
        0        0                                             0
艦艇が舵を切ると、その船の「船尾 [stern]」が動きます。 「船首 [bow]」は、動きません。 (風が凪いでさえいなければ)、風には関係なく船はいつでも舵を切ることができます。 すべての船は、船足を失ったときには漂流してしまいます。 もし、船が 2 ターンの間に全く前進しなければ、 その船は漂流し始めます。 もし船が漂流し始めた場合、もし「面舵 [right turn]」を切るか、 「取舵 [left turn]」を切る以外のことをしようとしているなら、 舵を切る前にまず前進しなければなりません。 ちなみに、面舵や取舵を切ることはいつでも可能です。

sail の移動コマンドは、いくつかの前進と旋回からなる文字列です。 例としては、「l3」があります。これは、船に取舵を切らせて、 3 スペース分 前進させます。 上図では、「b0」は 7 回連続して取舵を切っています。 sail が移動入力を催促するときには、データ取り込みのための 3 文字を印字します。 例えば、

        move (7, 4):
最初の数字は、旋回を含めて、移動できる最大数です。 2 番めの数字は、可能な旋回の最大数です。 時々、数字の間に引用符号の「'」が印字されます。 もし引用符号があれば、それは、船が漂流していることを意味しています。 このとき、舵を切る前に船足を取り戻すため前進しなければなりません (上の説明を参照のこと)。 上述の例で可能な移動のいくつかは、次のようなものです:
        move (7, 4): 7
        move (7, 4): 1
        move (7, 4): d          /* 漂流、または 何もしない */
        move (7, 4): 6r
        move (7, 4): 5r1
        move (7, 4): 4r1r
        move (7, 4): l1r1r2
        move (7, 4): 1r1r1r1
横帆船は、風上に向かって帆走することには全く惨めなほど 機能を果たしませんでした。 そのため、移動コマンド列のどこかで風上を向いてしまったら、 移動はそこで止まってしまいます。例えば、
        move (7, 4): l1l4
        Movement Error;
        Helm: l1l        ------ (Helm = 舵輪、舵の動き)
そのうえ、旋回を行なうときにはいつでも、移動の許容限度は最小に まで低下します (残っているものといえば、新しい態勢で持てるはずのものです)。 要するに、もし風上によりぎりぎりに間切って舵を切れば、 「move」プロンプトに表示される全許容量を帆走することは、 全くできそうにありません。

昔の帆船の船長たちは、風について常に気を配っていなければなりませんでした。 sail の艦長達も、全く同じです。 船の移動する能力は、風に対する態勢に依存しています。 可能な角度のうち最善のものは、船尾から 45 度の方角から風を受けることです。 即ち、船尾からちょっとずれた方角からです。 スクリーンの脇に現れる指示によって、風に対する方位全てに対する、その船に 可能な移動を知ることができます。 これは、まず、戦闘帆での速度を示し、 次に、総帆での速度を括弧内に示します。

                                 0 1(2)
                                \|/
                                -^-3(6)
                                /|\
                                 | 4(7)
                                3(6)
船の船首(「^」で表します)が上を向いており、風がページの下から上へ 吹いているとしましょう。 1 番下の「3(6)」という数字は、その状況での戦闘帆と総帆での速度を表すでしょう。 もし、風が (後方) 45 度から吹いていれば、は「4(7)」移動できます。 もし、風が帆桁方向から (横風) であれば、「3(6)」です。 もし、風が船首からちょっとずれた方向からであれば、 「1(2)」だけしか移動できません。 風に対面してしまったら、全く移動できません。 風に対面してしまった船は、「枷をかけられた」と言われていました。

風速と風向き

風速と風向きは画面の脇に小さな風信器として表示されます。 風信器の真中の数字は、風速を表します。 そして、+ から - への向きは、風向きを示します。 風は+符号 (高気圧) から - 符号 (低気圧) への向きに吹きます。 例えば、
                                |
                                3
                                +

風速は、 0 = 静穏 [becalmed]、 1 = 軽風 [light breeze]、 2 = 和風 [moderate breeze]、 3 = 疾風 [fresh breeze]、 4 = 雄風 [strong breeze]、 5 = 疾強風 [gale]、 6 = 全強風 [full gale]、 7 = ぐ風 [hurricane]。 ぐ風があらわれたら、全艦船が壊滅してしまいます。

鈎錨による引っかけと絡まり

もし、2隻の船が衝突したら、彼らは互いに絡まってしまう危険を冒しています。 これは、「絡まり [fouling]」と呼ばれています。 絡まった船は、一緒にくっついてしまい、どちらも動けません。 双方が望む場合、彼らは絡まりを解除することもできます。 乗船乱入団を他の船に送り出せるのは、敵艦を絡めたか鈎錨で引っかけたときに 限られます。

船は四つ爪錨 [grapnel] を他の船の索具 [rigging] に投げつけることにより 引っかけることができます。

船が保持している絡まりと鈎錨の引っかけの数は画面の右上に表示されます。

乗船乱入

乗船乱入は、人命の点からすると非常に費用のかかる冒険でした。 sail では、乗船乱入団が作られるのは次の場合です。 つまり、敵艦に乗船乱入するためか、攻撃に対抗して自分自身の艦を守るため かのいずれかです。 防衛のための乗船乱入団として組織された人々は組織されぬままの人々より2倍も 激しく自艦を守って戦います。

乗船乱入団の乗船乱入攻撃の強さは、送られる乗員の質と数により決まります。

乗員の質

英国の船乗りは、彼らの航行能力の優秀さで世界中に盛名を馳せました。 しかし、実は、世界一の船員は、アメリカの船員だったのです。 何故かといえば、アメリカ海軍は、王立海軍の賃金の 2 倍を支払ったので、 海の好きな英国の船員は数千の単位でアメリカへ逃亡したからです。

sail では、乗員の質は、5 つのエネルギーレベルに量子化されます。 「精鋭 [Elite]」な乗員は、他の全ての船乗りに対して、 射撃能力においても格闘能力においても凌駕できます。 「一流 [Crack]」な乗員が、次に来ます。 「普通 [Mandane]」な乗員は平均的です。 「未熟 [Green]」な乗員と「反抗的 [Mutinous]」な乗員は、平均以下です。 上手な目の子勘定としては、「一流」と「精鋭」な乗員は 「普通」な乗員に比して片舷斉射あたり 1 発余分に命中させます。 「未熟」な乗員にはあまり多くを期待しないことです。

舷側砲[broadsides]

各舷側砲 [broadsides] には、次の 4 種類の砲弾を装填できます: ぶどう弾 [grape]、鎖弾 [chain]、砲丸 [round]、2 連発 [double]。 大砲 [gun] とカロネード砲 [carronade] を、 左舷 [port] と右舷 [starboard] の両砲郭に 搭載できます。 カロネード砲 [carronade] は 2 の射程距離しかありません。 そのため、カロネード砲を発射できるほど近付かなければなりません。 他の船の船殻 [hull] を砲撃するか、索具 [rigging] を砲撃するかを 選択することができます。 もし船の距離が 6 よりも遠ければ、読者は索具を砲撃できるだけです。

砲弾の型とその長所は:

砲丸[round]

10 の射程距離。船殻と索具のいずれの砲撃にも適しています。

2 連発[double]

1 の射程距離。船殻と索具のいずれの砲撃にも非常に適しています。 2 連発は、装填するのに 2 ターンが必要です。

鎖弾[chain]

3 の射程距離。 索具を粉砕してしまうのに特に優れています。 しかし、船殻や大砲に損害を加えることはできません。

ぶどう弾[grape]

1 の射程距離。 たまに、敵乗員に圧倒的な効果を示します。

スクリーンの脇には、自分の船に関する極めて重要な情報が表示されます:

                        Load  D! R!
                        Hull  9
                        Crew  4  4  2
                        Guns  4  4
                        Carr  2  2
                        Rigg  5 5 5 5
「Load (装填)」は、左舷と右舷それぞれの砲に どのような砲弾が装填されているかを示します。 砲弾の後の「!」はそれが最初の片舷斉射であることを示します。 最初の片舷斉射は、戦闘の前に、そして甲板が血で真っ赤に染まる前に、 注意深く装填されています。 その結果、最初の片舷斉射は、後で装填したときの片舷斉射より若干効果的です。 砲弾の型のあとの「*」は、砲側員がまだその砲弾を装填中で、 まだ発砲できないことを示します。 「Hull (船殻)」は、どれくらいの船殻が残されているかを示します。 「Crew (乗員)」は、3 つの区画ごとの乗員を示します。 乗員が死ぬにつれて、読者は砲撃力を失なっていきます。 「Guns (大砲)」と「Carr (カロネード砲)」は、左舷と右舷の 大砲を示します。 大砲を失うと、それだけ砲撃力を失います。 「Rigg (索具)」は、3 本マストや 4 本マストにどれくらいの索具が残って いるかを示します。 索具が打ち払われるにつれて、機動力が失われてゆきます。

砲撃の効果

船が雷のような大音響をとどろかせて片舷の砲を発射するときは、とても 劇的です。 しかし、ただ行き当たりばったりに片舷斉射を行なっても、 命中は全く保証されません。 片舷斉射の破壊力には、多くの要素が影響します。 まず第 1 の、そして、主要な要因は、距離です。 10 の距離にある船を砲撃する方が、すぐ横に並んで波を蹴立てて進んでいる 船を砲撃するより困難です。 次は、縦射 [rake] です。 以前に記述した通り、縦射砲撃は、10 の距離にある船の帆柱 をときには折り倒すことができます。 その次には、乗員の数と質が片舷斉射による損害に影響します。 発砲する大砲の数もまた、いわば、実を結んで得点になると言えます。 最後に、天候が片舷斉射の正確さに影響します。 もしも、波が高ければ (5 または 6)、戦列艦は下側の砲門を開くことさえできず、 大砲を出せません。 このことにより、嵐の中では、フリゲート艦や他の平甲板の船は有利になります。 シナリオの Pellew vs. The Droits de L'Homme (ペルー艦長対人権号) は、この特殊な状況を利用しています。

修理

船殻、大砲、索具に対して修理を行なうことができます。3 ターンにつき 2 ポイントの遅い割合で修理が進みます。 それ以上の修理ができなくなったときには、「修理完了 [Repair Completed]」の メッセージが表示されます。

コンピュータ船の特性

sail におけるコンピュータ船は、上述の全ての規則に従いますが、しかし少数の 例外があります。 コンピュータ船は、決して損害を修理しません。 もし、コンピュータ船が修理をしたら、プレイヤ達はコンピュータ船に決して 勝てないでしょう。 しかし、今のままでも既に彼らは、十分良くやっています。 慰めとして、コンピュータ船はターンごとに 2 連発の砲撃を行なえます。 まぐれ当たりもあるので、プレイヤの船は 近付かないのが、合理的というものでしょう。 ドライバプロセス が、コンピュータ船の動きを計算します。 ドライバプロセス は、典型的な A.I. の距離関数と縦型検索によってコンピュータ船の動きを 計算することで、 最高「得点」を発見します。 これは、かなりうまく機能しているように見えます。 しかしながら、この A.I. が完璧でないことは筆者が真っ先に認めましょう。

遊び方

sail にコマンドを与えるには、文字を 1 文字タイプします。 そのとき、更に入力するよう催促されます。 コマンドの短い要約を次に示します。

コマンドの要約

    'f'  可能なら、片舷斉射を行ないます
    'l'  再装填
    'L'  舷側砲から弾を抜きます (弾薬を交換するため)
    'm'  移動
    'i'  最寄りの船を表示
    'I'  全艦船を表示
    'F'  特定パターンの船を 1 隻または数隻探します (例えば全アメリカ船は「a?」)
    's'  艦隊全体にメッセージを送信
    'b'  敵艦への乗船乱入の試み
    'B'  乗船乱入隊を呼び返します
    'c'  帆装を交換
    'r'  修理
    'u'  絡んだ索具をほどく試み
    'g'  鈎錨を引っかける/はずす
    'v'  ゲームのバージョンナンバの表示
   '^L'  画面の再描画
    'Q'  終了
    'C'     読者の船をウィンドウの真中にします
    'U'     ウィンドウを上へ移動
    'D','N' ウィンドウを下へ移動
    'H'     ウィンドウを左へ移動
    'J'     ウィンドウを右へ移動
    'S'     ウィンドウを自分の船についていかせるか今の位置を保つかを反転

シナリオ

以下に、 sail のシナリオの要約を示します:

Ranger vs. Drake:

北からの風、疾風。
(a) Ranger            19 砲門 スループ帆船 (一流の乗員) (7 点)
(b) Drake             17 砲門 スループ帆船 (一流の乗員) (6 点)

The Battle of Flamborough Head:

南からの風、疾風。
これは、ジョン・ポール・ジョーンズの最初の有名な海戦です。 ボノム・リシャールに乗り組んだ彼は、素早くセラピスに乗船乱入したおかげで、 セラピスの優勢な火力を克服できました。
(a) Bonhomme Rich     42 砲門 コルベット艦 (一流の乗員) (11 点)
(b) Serapis           44 砲門 フリゲート艦 (一流の乗員) (12 点)

Arbuthnot and Des Touches:

北からの風、疾強風。
(b) America           64 砲門 戦列艦 (一流の乗員) (20 点)
(b) Befford           74 砲門 戦列艦 (一流の乗員) (26 点)
(b) Adamant           50 砲門 戦列艦 (一流の乗員) (17 点)
(b) London            98 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点)
(b) Royal Oak         74 砲門 戦列艦 (一流の乗員) (26 点)
(f) Neptune           74 砲門 戦列艦 (平均の乗員) (24 点)
(f) Duc de Bourgogne  80 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点)
(f) Conquerant        74 砲門 戦列艦 (平均の乗員) (24 点)
(f) Provence          64 砲門 戦列艦 (平均の乗員) (18 点)
(f) Romulus           44 砲門 戦列艦 (平均の乗員) (10 点)

Suffren and Hughes:

南からの風、疾風。
(b) Monmouth          74 砲門 戦列艦 (平均の乗員) (24 点)
(b) Hero              74 砲門 戦列艦 (一流の乗員) (26 点)
(b) Isis              50 砲門 戦列艦 (一流の乗員) (17 点)
(b) Superb            74 砲門 戦列艦 (一流の乗員) (27 点)
(b) Burford           74 砲門 戦列艦 (平均の乗員) (24 点)
(f) Flamband          50 砲門 戦列艦 (平均の乗員) (14 点)
(f) Annibal           74 砲門 戦列艦 (平均の乗員) (24 点)
(f) Severe            64 砲門 戦列艦 (平均の乗員) (18 点)
(f) Brilliant         80 砲門 戦列艦 (一流の乗員) (31 点)
(f) Sphinx            80 砲門 戦列艦 (平均の乗員) (27 点)

Nymphe vs. Cleopatre:

南よりの風、疾風。
(b) Nymphe            36 砲門 フリゲート艦 (一流の乗員) (11 点)
(f) Cleopatre         36 砲門 フリゲート艦 (平均の乗員) (10 点)

Mars vs. Hercule:

南からの風、疾風。

(b) Mars              74 砲門 戦列艦 (一流の乗員) (26 点)
(f) Hercule           74 砲門 戦列艦 (平均の乗員) (23 点)

Ambuscade vs. Baionnaise:

北からの風、疾風。
(b) Ambuscade         32 砲門 フリゲート艦 (平均の乗員) (9 点)
(f) Baionnaise        24 砲門 コルベット艦 (平均の乗員) (9 点)

Constellation vs. Insurgent:

南からの風、疾強風。
(a) Constellation     38 砲門 コルベット艦 (精鋭な乗員) (17 点)
(f) Insurgent         36 砲門 コルベット艦 (平均の乗員) (11 点)

Constellation vs. Vengeance:

南からの風、疾風。
(a) Constellation     38 砲門 コルベット艦 (精鋭な乗員) (17 点)
(f) Vengeance         40 砲門 フリゲート艦 (平均の乗員) (15 点)

The Battle of Lissa:

南からの風、疾風。
(b) Amphion           32 砲門 フリゲート艦 (精鋭な乗員) (13 点)
(b) Active            38 砲門 フリゲート艦 (精鋭な乗員) (18 点)
(b) Volage            22 砲門 フリゲート艦 (精鋭な乗員) (11 点)
(b) Cerberus          32 砲門 フリゲート艦 (精鋭な乗員) (13 点)
(f) Favorite          40 砲門 フリゲート艦 (平均の乗員) (15 点)
(f) Flore             40 砲門 フリゲート艦 (平均の乗員) (15 点)
(f) Danae             40 砲門 フリゲート艦 (一流の乗員) (17 点)
(f) Bellona           32 砲門 フリゲート艦 (未熟な乗員) (9 点)
(f) Corona            40 砲門 フリゲート艦 (未熟な乗員) (12 点)
(f) Carolina          32 砲門 フリゲート艦 (未熟な乗員) (7 点)

Constitution vs. Guerriere:

南西からの風、疾強風。
(a) Constitution      44 砲門 コルベット艦 (精鋭な乗員) (24 点)
(b) Guerriere         38 砲門 フリゲート艦 (一流の乗員) (15 点)

United States vs. Macedonian:

南からの風、疾風。
(a) United States     44 砲門 フリゲート艦 (精鋭な乗員) (24 点)
(b) Macedonian        38 砲門 フリゲート艦 (一流の乗員) (16 点)

Constitution vs. Java:

南からの風、疾風。
(a) Constitution      44 砲門 コルベット艦 (精鋭な乗員) (24 点)
(b) Java              38 砲門 コルベット艦 (一流の乗員) (19 点)

Chesapeake vs. Shannon:

南からの風、疾風。
(a) Chesapeake        38 砲門 フリゲート艦 (平均の乗員) (14 点)
(b) Shannon           38 砲門 フリゲート艦 (精鋭な乗員) (17 点)

The Battle of Lake Erie:

南からの風、軽風。
(a) Lawrence          20 砲門 スループ帆船 (一流の乗員) (9 点)
(a) Niagara           20 砲門 スループ帆船 (精鋭な乗員) (12 点)
(b) Lady Prevost      13 砲門 ブリッグ帆船 (一流の乗員) (5 点)
(b) Detroit           19 砲門 スループ帆船 (一流の乗員) (7 点)
(b) Q. Charlotte      17 砲門 スループ帆船 (一流の乗員) (6 点)

Wasp vs. Reindeer:

南からの風、軽風。
(a) Wasp              20 砲門 スループ帆船 (精鋭な乗員) (12 点)
(b) Reindeer          18 砲門 スループ帆船 (精鋭な乗員) (9 点)

Constitution vs. Cyane and Levant:


南からの風、和風。
(a) Constitution      44 砲門 コルベット艦 (精鋭な乗員) (24 点)
(b) Cyane             24 砲門 スループ帆船 (一流の乗員) (11 点)
(b) Levant            20 砲門 スループ帆船 (一流の乗員) (10 点)

Pellew vs. Droits de L'Homme:

北からの風、疾強風。
(b) Indefatigable     44 砲門 フリゲート艦 (精鋭な乗員) (14 点)
(b) Amazon            36 砲門 フリゲート艦 (一流の乗員) (14 点)
(f) Droits L'Hom      74 砲門 戦列艦 (平均の乗員) (24 点)

Algeciras:

南西からの風、和風。
(b) Caesar             80 砲門 戦列艦 (一流の乗員) (31 点)
(b) Pompee             74 砲門 戦列艦 (一流の乗員) (27 点)
(b) Spencer            74 砲門 戦列艦 (一流の乗員) (26 点)
(b) Hannibal           98 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点)
(s) Real-Carlos       112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点)
(s) San Fernando       96 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点)
(s) Argonauta          80 砲門 戦列艦 (未熟な乗員) (23 点)
(s) San Augustine      74 砲門 戦列艦 (未熟な乗員) (20 点)
(f) Indomptable        80 砲門 戦列艦 (平均の乗員) (27 点)
(f) Desaix             74 砲門 戦列艦 (平均の乗員) (24 点)

Lake Champlain:

北からの風、疾風。
(a) Saratoga          26 砲門 スループ帆船 (一流の乗員) (12 点)
(a) Eagle             20 砲門 スループ帆船 (一流の乗員) (11 点)
(a) Ticonderoga       17 砲門 スループ帆船 (一流の乗員) (9 点)
(a) Preble             7 砲門 ブリッグ帆船 (一流の乗員) (4 点)
(b) Confiance         37 砲門 フリゲート艦 (一流の乗員) (14 点)
(b) Linnet            16 砲門 スループ帆船 (精鋭な乗員) (10 点)
(b) Chubb             11 砲門 ブリッグ帆船 (一流の乗員) (5 点)

Last Voyage of the USS President:

北からの風、疾風。
(a) President         44 砲門 フリゲート艦 (精鋭な乗員) (24 点)
(b) Endymion          40 砲門 フリゲート艦 (一流の乗員) (17 点)
(b) Pomone            44 砲門 フリゲート艦 (一流の乗員) (20 点)
(b) Tenedos           38 砲門 フリゲート艦 (一流の乗員) (15 点)

Hornblower and the Natividad:

東からの風、疾強風。
ホーニィ・ファンの読者のためのシナリオです。 思い起こしていただきたい事は、 ホーンブロワーは、大きな不利と風に抗してナティビダッドを沈めたことです。 ヒント:ナティビダッドに乗船乱入しようとしないで下さい。 この船の乗員は、未熟ではありますが、ずっと多いのです。
(b) Lydia             36 砲門 フリゲート艦 (精鋭な乗員) (13 点)
(s) Natividad         50 砲門 戦列艦 (未熟な乗員) (14 点)

Curse of the Flying Dutchman(さまよえるオランダ人の呪い):

南からの風、疾風。
ちょっとした戯れです。Piece of Cake の側を取って下さい。
(s) Piece of Cake      24 砲門 コルベット艦 (平均の乗員) (9 点)
(f) Flying Dutchy     120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点)

The South Pacific:

南からの風、雄風。
(a) USS Scurvy        136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点)
(b) HMS Tahiti        120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点)
(s) Australian         32 砲門 フリゲート艦 (平均の乗員) (9 点)
(f) Bikini Atoll        7 砲門 ブリッグ帆船 (一流の乗員) (4 点)

Hornblower and the battle of Rosas bay:

東からの風、疾風。
ホーンブロワーが負けた唯一の海戦です。
しかし、彼は1隻の船のマストを折り、他の船達に船尾縦射を撃ちました。
あなたも同じだけの戦果が挙げられるでしょうか。
(b) Sutherland         74 砲門 戦列艦 (一流の乗員) (26 点)
(f) Turenne            80 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点)
(f) Nightmare          74 砲門 戦列艦 (平均の乗員) (24 点)
(f) Paris             112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点)
(f) Napoleon           74 砲門 戦列艦 (未熟な乗員) (20 点)

Cape Horn:

北東からの風、雄風。
(a) Concord            80 砲門 戦列艦 (平均の乗員) (27 点)
(a) Berkeley           98 砲門 3 層甲板 戦列艦 (一流の乗員) (28 点)
(b) Thames            120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点)
(s) Madrid            112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点)
(f) Musket             80 砲門 3 層甲板 戦列艦 (平均の乗員) (27 点)

New Orleans:

南東からの風、疾風。
小さな Cypress が行ってしまうのに気をつけて下さい!
(a) Alligator         120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点)
(b) Firefly            74 砲門 戦列艦 (一流の乗員) (27 点)
(b) Cypress            44 砲門 フリゲート艦 (精鋭な乗員) (14 点)

Botany Bay:

北からの風、疾風。
(b) Shark             64 砲門 戦列艦 (平均の乗員) (18 点)
(f) Coral Snake       44 砲門 コルベット艦 (精鋭な乗員) (24 点)
(f) Sea Lion          44 砲門 フリゲート艦 (精鋭な乗員) (24 点)

Voyage to the Bottom of the Sea:

北西からの風、疾風。
このシナリオは、Richard BasehartとDavid Hedisonに捧げるものです。
(a) Seaview           120 砲門 3 層甲板 戦列艦 (精鋭な乗員) (43 点)
(a) Flying Sub         40 砲門 フリゲート艦 (一流の乗員) (17 点)
(b) Mermaid           136 砲門 3 層甲板 戦列艦 (反抗的乗員) (27 点)
(s) Giant Squid       112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点)

Frigate Action:

東からの風、疾風。
(a) Killdeer          40 砲門 フリゲート艦 (平均の乗員) (15 点)
(b) Sandpiper         40 砲門 フリゲート艦 (平均の乗員) (15 点)
(s) Curlew            38 砲門 フリゲート艦 (一流の乗員) (16 点)

The Battle of Midway:

東からの風、和風。
(a) Enterprise         80 砲門 戦列艦 (一流の乗員) (31 点)
(a) Yorktown           80 砲門 戦列艦 (平均の乗員) (27 点)
(a) Hornet             74 砲門 戦列艦 (平均の乗員) (24 点)
(j) Akagi             112 砲門 3 層甲板 戦列艦 (未熟な乗員) (27 点)
(j) Kaga               96 砲門 3 層甲板 戦列艦 (未熟な乗員) (24 点)
(j) Soryu              80 砲門 戦列艦 (未熟な乗員) (23 点)

Star Trek:

南からの風、疾風。
(a) Enterprise        450 砲門 戦列艦 (精鋭な乗員) (75 点)
(a) Yorktown          450 砲門 戦列艦 (精鋭な乗員) (75 点)
(a) Reliant           450 砲門 戦列艦 (精鋭な乗員) (75 点)
(a) Galileo           450 砲門 戦列艦 (精鋭な乗員) (75 点)
(k) Kobayashi Maru    450 砲門 戦列艦 (精鋭な乗員) (75 点)
(k) Klingon II        450 砲門 戦列艦 (精鋭な乗員) (75 点)
(o) Red Orion         450 砲門 戦列艦 (精鋭な乗員) (75 点)
(o) Blue Orion        450 砲門 戦列艦 (精鋭な乗員) (75 点)

結語

sail は共同作業の成果です。

作者

Dave Riggle

共作者

Ed Wang

改訂

Craig Leres

顧問

Chris Guthrie
Captain Happy
Horatio Nelson
        そして他の多くの優れた人々...

参考文献

Wooden Ships & Iron Men, by Avalon Hill Game Co. (ボードゲーム)
Captain Horatio Hornblower Novels, (13 of them) by C.S. Forester
「海の男/ホーンブロワー・シリーズ」
  早川書房、セシル・スコット・フォレスター
Captain Richard Bolitho Novels, (12 of them) by Alexander Kent
「海の勇士/ボライソー・シリーズ」
 早川書房、アレグザンダー・ケント
The Complete Works of Captain Frederick Marryat, (about 20)
Captain Frederick Marryat全集, (約20)特に
Mr. Midshipman Easy
Peter Simple
Jacob Faithful
Japhet in Search of a Father
Snarleyyow, or The Dog Fiend
Frank Mildmay, or The Naval Officer

バグ

多分、少しはあると思います。 もし、バグを見つけたらどうか "[email protected]" と "[email protected]" にお知らせ下さい。