ネットワークゲーム [ 編集 ]

ネットワーク機能は110.0以降で使用できます。

更新履歴
サーバーのアナウンスについて追記 2019/08/01
現在行われているゲームへの誘導などを更新 2011/08/13
r4200用に内容を更新。言語ファイルも更新 2011/01/20
r4069用に内容を更新。言語ファイルも更新 2010/12/18
新規作成 2010/12/03

現在行われているゲーム [ 編集 ]

現在、日本語でのゲームはBattle Simutrans(BS)のフォーラムで行われています。
参加を希望する方は、BSwikiの説明などを読んでください。

ゲームへの参加 [ 編集 ]

ネットワークゲームに参加するためには、あらかじめホストサーバーのIPアドレス/ホスト名を知っておく必要があります。
また、simutransのバージョン(リビジョン)とpakセットの種類、バージョンが一致する必要がありますので、これも事前に確認します。

pakフォルダにアドオンなどの余分なpakがあってもいけません。
通常のpakフォルダとは別に、ネットワークゲーム専用のpakフォルダを作っておくとよいかもしれません。

以下の説明では、日本語化ファイルにある翻訳ファイルを使用しています。

サーバーに接続し、ゲームの情報を取得する [ 編集 ]

  1. 起動時に次のような画面が表示されますので、「ネットゲームに参加」(join game)をクリックします。
    net_01.png
  2. 「ゲームの情報」(Game info)ウィンドウが開きます。
    net_11_2.png
    左下にゲームエンジン本体とpakセットのリビジョン情報が表示されています。現在あなたが起動しているゲームの情報です。
    • 上段はゲームエンジン本体のリビジョン番号です。「リビジョン: 0」(Revision: 0)と表示されている場合には情報がありません。
      現在ナイトリーサイトで配布されているゲーム本体には、ここで使用されるリビジョン番号が付加されていませんが、タイトルバーでリビジョン番号を確認できます。
      net_25.png
    • 下段はpakセットのリビジョン情報です。pakセットによって、数字以外の一意の名前が付けられている場合もあります。現在ナイトリーサイトで配布されているpak64,pak128にはこの情報がありますが、空白の場合には情報がありません。
  3. それでは、IPアドレス/ホスト名を入力または選択して、ホストサーバーのゲームの情報を取得しましょう。

この「ゲームの情報」ウィンドウは、pak64では「n」キーに割り当てられています。「n」キーを押せば、いつでも表示できます。
表示できない場合には「(pakセット)\config\menuconf.tab」に以下の1行を追加してください。

dialog_tool[28]=,n

ゲームの情報を確認する [ 編集 ]

  1. サーバーが動作している場合、ゲームの情報が表示されます。
    net_26_2.png
    • 「現在利用できません」(Server did not respond!)と表示された場合はサーバーが動作していません。
      net_21_2.png
  2. pakセットのチェックに成功すると、「ネットゲームに参加」(join game)ボタンが操作できるようになります。ボタンをクリックする前に左下に表示されているsimutrans本体のリビジョンが一致するか。もう一度確認しておきましょう。
    • 上でも書きましたが、現在ナイトリーサイトで配布されているsimutrans本体には、リビジョンチェックのための情報がありません。このためsimutrans本体のリビジョンの確認が行われず、実際には一致していなくても、「ネットゲームに参加」(join game)ボタンが有効になってしまいます。
    • 「リビジョン: 0」(Revision: 0)と表示されている場合はサーバー側にもリビジョンチェックのための情報がありません。わからない場合にはゲームサーバーの設置者に確認してください。
    • simutrans本体のリビジョンが異なると、ログインに成功しても時間とともに同期が取れなくなり、強制切断される原因にもなります。
  3. 問題がなければ、「ネットゲームに参加」(join game)をクリックして、ゲームにログインします。
  4. ゲームの転送が始まりますので、しばらく待ちます。
    転送されたゲームは、ユーザーディレクトリのルートに「client1-network.sve」という名前で保存されます。
    これ以降、新しく誰かがゲームにログインすると、再度ゲームが転送し直されます。
  5. 無事に転送が終わりゲームが始まると、現在のログイン人数を表示するメッセージが表示されます。人数はクライアントの数で、ゲームサーバーから操作している人がいたとしても、それは含まれません。
    net_28.png
    このメッセージは、誰かが入退場する度にログインプレイヤー全員に送られます。メッセージの言語は、サーバー側のゲームの言語設定によって異なりますので、日本語ではないかもしれません。
    いまのところログイン人数以外を知る方法はありません。現在どのプレイヤーがログインしているのかや、誰が入退場したのかはわかりませんので、後述するメッセージ機能などをうまく使うといいでしょう。

Pakセットの差異(Pakset differences) [ 編集 ]

net_15_2.png
pakファイルが一致しなかった場合には、「ネットゲームに参加」(join game)ボタンは有効になりません。「差異を表示」(find mismatch)をクリックして、違いを表示します。
条件によって非常に長い時間がかかる場合があります。

net_12.png

pakの変更はsimutransの再起動後に有効になります。

プレイヤーとして参加する [ 編集 ]

接続に成功し、無事にゲームがスタートしたら「ライバル会社一覧」ウィンドウを開いてみましょう。
net_14.png

  1. 新規プレイヤーを作る
    プレイヤーとして参加するには通常のプレイの場合と同じように、空きスロットを選び、リストから「プレイヤー(人間)」を選択し、左端の■ボタンをクリックして有効にします。
    net_27.png
  2. 会社名とパスワードを設定する
    新規プレイヤーを有効にしたらすぐに右側の緑の四角ボタンをクリックします。
    開いたウィンドウで会社名とパスワードを一緒に設定し、最後に[Enter/Return]を入力します。
    net_19.png

    パスワードはプレイヤーのロックが解除されている状態であれば、あとからいつでも変更できます。上の場合と同様に緑の四角ボタンをクリックし、パスワードウィンドウで新しいパスワードを入力し、[Enter/Return]を押します。

    公共事業プレイヤーとパスワード
    公共事業プレイヤーは万能プレイヤーです。公共事業プレイヤーは、他のプレイヤーがロックされていても、赤い四角ボタンをクリックし、パスワードウィンドウからパスワードを変更することができます。

    パスワードを変更する意図がない場合には、一般プレイヤーに変更してから操作するほうが安全です。

  3. ログアウトする
    特にログアウトする方法はないようです。普通にsimutransを終了して大丈夫です。
  4. 再ログインする
    再ログイン後は、ライバル会社一覧で自分のプレイヤーに切り替え、赤い四角ボタンをクリックし、パスワードウィンドウからパスワードを入力します。
    net_30.png

メッセージの送信 [ 編集 ]

「メッセージ表」からログイン中の参加者全員(傍観者を含む)にメッセージを送信することができます。特定の個人のみに送信することはできません。
net_16_2.png

net_17_2.png

メッセージは「【会社名】メッセージ本文」のように表示されますが、会社名の表示/非表示は、simuconf.tabまたは「高度な設定」の「add_player_name_to_message」で設定を変更することができます。

メッセージの表示設定
このメッセージは「メッセージ設定」では「チャット」に分類されます。表示しない設定にしているとメッセージを受け取ることができません。「メッセージ設定」を適切に変更しておくといいでしょう。
net_18_2.png
翻訳ファイルが古い場合には、「名所旧跡」と表示されています。


別途IMやチャットを用意し、それを併用したほうが、円滑なコミュニケーションが取れるかもしれません。

エラー [ 編集 ]

net_32.png
何らかの原因で通信エラーが出ると、ゲームサーバーから切断されてしまいます。
切断されるとステータスバーのオンラインアイコンは消えます。
net_31.png
再接続できない場合は、時間をおいてみるとできるかもしれません。

ネットワークゲームの制限事項 [ 編集 ]

言語の制限 [ 編集 ]

ユーザーインターフェイスは日本語を選択できますが、一部の機能はサーバー側の言語設定によって制限を受けます。日本語以外のゲームサーバーに参加する場合には注意が必要です。(以下の説明の例はサーバー側が英語、クライアント側が日本語の場合です)

その他の制限 [ 編集 ]

サーバーを立てる [ 編集 ]

本家フォーラム参照先: https://forum.simutrans.com/index.php/topic,8230.0.html

Simutransをサーバーモードで起動するには、コマンドラインに「-server」をつけて起動します。(メモ/ショートカットの作り方

書式

-server [TCPポート番号]

ポート番号は省略できます。省略した場合のデフォルトは13353です。

起動後は新規マップを作成するか、既存のゲームを読み込みます。
なお「server13353-network.sve」というファイルがすでに存在する場合は、このゲームファイルが自動的に読み込まれます。
(13353はポート番号です。使用しているポートごとに名前が異なります。)

ゲームは新規マップの作成時とプレイヤーのログイン時のみに自動保存されます。(ユーザーディレクトリのルートに「server13353-network.sve」というような名前で保存されます。13353はポート番号です。)

新規ゲーム作成前の注意

ゲーム開始直後にすること

ゲームは一人もプレイヤーがログインしていない状態でも常に進行しています。OpenTTDのように一時停止状態で待機させることはできません。
111.0以降でできるようになりました。simuconf.tabで「pause_server_no_clients=1」と指定します。

ゲームの情報ウィンドウでリビジョン情報を表示させるには [ 編集 ]

ゲームの情報ウィンドウでサーバー側のリビジョン情報を表示させるためには、ソースコードのコンパイル時に指定する必要があります。
リビジョン情報はサーバーを立てる場合に必ずしも必要なものではありません。参加プレイヤーがサーバーと同じリビジョンのゲームエンジン本体とpakセットが入手できれば、それで問題ありません。

ゲームエンジン本体 [ 編集 ]

svnのリビジョン番号(数値のみ)です。gitのハッシュなどは利用できません。

フラグにREVISIONをつけて、コンパイルします。

FLAGS =  -DREVISION="3991"

svnを使用している場合は

WITH_REVISION = 1

で自動的に付加してくれるらしいです。
詳しくは「config.template」ファイル内に記述されています。

pakセット [ 編集 ]

pakセットの場合は、.datファイルで「ground.Outside.pak」のcopyrightに、識別するための文字列を設定します。

obj=ground
name=Outside
copyright=pak64 r333M
# hangtyp * animation
image[0][0]=outside.0.0

サーバーをアナウンスする [ 編集 ]

ネットワークゲームの情報は http://servers.simutrans.org/list でアナウンスすることができます.サーバーをアナウンスすると,世界中のSimutransプレイヤーにサーバーの存在を知らせることができます.

ネットワークゲームをアナウンスする方法はいくつかあります.アナウンスされたサーバー情報は日本国外の人々も参照することを考え,アナウンスする情報は英語で設定すると良いでしょう.

起動時に指定するコマンドでアナウンスする [ 編集 ]

以下のコマンドで起動すると,servers.simutrans.org にネットワークゲームをアナウンスできます.(my.domain.comにMy Server Nameという名前のサーバーが建ったという意味)

simutrans -server -announce -server_dns my.domain.com -server_name "My Server Name"

server_dns は接続先アドレスを表すので,IPアドレスでもOKです.server_nameの設定は任意です(が,名前ぐらいはつけたほうがよいでしょう).

simuconf.tabで設定する [ 編集 ]

サーバーアナウンスに関する項目は,simuconf.tabから設定できます.各項目についてはsimuconf.tabのページを参照してください.サーバーアナウンスについて以下の項目を設定できます.なお,接続先およびON/OFF以外の設定は任意です.

サーバーを建てる(linux版) [ 編集 ]

※Ubuntuの使用を想定、本体バージョンは編集時点の最新(124.2.2)を使用

サーバー向けのビルド方法はLinuxでのビルド方法(posix版/サーバー用)をご参照いただきたい。

サーバーとして使用する場合の追加手順 [ 編集 ]

  1. nettoolのビルド
    • simutrans-master/src/nettoolに移動しmakeする
  2. 足りないファイルを持ってくる
    • クライアント側でpak・sveファイルを用意し、サーバー側にコピー
      • pakはsimutrans-master/toolsのget_pak.shからも入手できる
      • 124.2.2のソースコードにはlangフォルダやsimuconf.tabは同梱されているようです
  3. ファイルをまとめる
    • この時点で、フォルダ構造は次のようになっているはずである(一部省略)
      simutrans-master
      ┣ build
      ┃┗ default
      ┃   ┣ nettool
      ┃   ┃ ┗ nettool
      ┃   ┗ sim
      ┣ simutrans
      ┃┣ text
      ┃┗ config
      ┣ Makefile
      ┗ config.default
    • 実行ファイルsimは同じディレクトリ以下にlangファイル・simuconf.tabを必要とする
    • そのためbuild/default/以下をsimutransフォルダに移動させると良い
      simutrans-master
      ┣ simutrans
      ┃┣ text
      ┃┣ config
      ┃┣ nettool
      ┃┃ ┗ nettool
      ┃┗ sim
      ┣ Makefile
      ┗ config.default
    • 以降はユーザーディレクトリを使うかどうかで、手順が2通りに分かれる

バックグラウンドで動くようにする(デーモン化) [ 編集 ]

上記の方法で起動したSimutransサーバーは、クライアント側のSSH接続を切ると一緒にサーバーも落ちてしまうので、systemdに登録しバックグラウンドで常時稼働するようにします。

  1. 起動スクリプトの作成
    • vimなどのテキストエディタで次のような内容の start.sh を作成
      (実行ファイルへのフルパス)/sim -server (ポート番号) -objects (pakフォルダ名) -lang ja -load server(ポート番号)-network.sve -server_admin_pw XXXX
  2. systemdに登録
    • /etc/systemd/system/に移動し、次のような内容の sim.service を作成
      [Unit]
      Description=Simutrans
      [Service]
      User=(ユーザー名)
      ExecStart=/bin/bash (start.shへのフルパス)/start.sh
    • これで sudo systemctl start sim すればバックグラウンドでサーバーを立ち上げられるようになった
    • サーバーの状態は systemctl status sim で確認できる

定期的にセーブする(nettool/cron) [ 編集 ]

上述の通り、Simutransサーバーはユーザーが参加/退出する度にゲームが保存されますが、ゲームがクラッシュすると場合によってはセーブデータが破損し、読み込めなくなる恐れがあります(それでも参加者からclient(ポート番号)-network.sveを貰ってくれば済む話ですが)。

そこで、nettoolとcronを使い定期的にサーバー側でゲームを保存することで万一のクラッシュに備えます。

  1. 保存スクリプトの作成
    • vimなどのテキストエディタで次のような内容の autosave.sh を作成
      #!/bin/sh
      (nettoolへのフルパス)nettool -p XXXX force-sync
      wait
      sleep 10
      cp -f /home/(ユーザー名)/simutrans/server(ポート番号)-network.sve (任意のフォルダ)/`date '+%Y%m%d-%H%M'`.sve
  2. cronに登録
    crontab -e
    • cronの編集画面が開くので次のように入力
      0 */2 * * * bash (autosave.shへのフルパス)autosave.sh
    • cronは左から 分 時 日 月 曜日 実行するコマンド の順に並んでいる
      • 例では2時間に1回0分のときに実行する
      • 15分に1回実行したいときは */15 * * * * などと設定する

参考リンク

(参考)gift.physik.tu-berlin.deについて [ 編集 ]

サーバーリストに表示されているgift.physik.tu-berlin.deは、simutransの開発者がデバッグ目的に公開しているテストサーバーです。pak64を使用しています。

デバッグ目的ですので、定期的にリセットされたり、本体やpakセットのリビジョンが最新のものに変更されたりする可能性がありますが、本体やpakセットはナイトリーサイトで入手できる可能性が高いです。
ただし言語にドイツ語が設定されていますので、車庫ウィンドウや乗り物の名前などで、ちょっと戸惑うかもしれません。
このサーバーの最新情報は、英語フォーラム:5877にあります。

2011/05/06追記
gift.physik.tu-berlin.deでのゲーム提供は終了したそうです。


添付ファイル: fileja_20110120.zip 6件 [詳細] filenet_21_2.png 5件 [詳細] filenet_26_2.png 3件 [詳細] filenet_15_2.png 6件 [詳細] filenet_11_2.png 6件 [詳細] filenet_16_2.png 6件 [詳細] filenet_17_2.png 6件 [詳細] filenet_18_2.png 6件 [詳細] fileja_20101218.zip 4件 [詳細] filenet_28.png 8件 [詳細] filenet_16.png 6件 [詳細] filenet_26.png 6件 [詳細] filenet_10.png 6件 [詳細] filenet_27.png 5件 [詳細] filenet_19.png 6件 [詳細] filenet_21.png 5件 [詳細] filenet_22.png 6件 [詳細] filenet_14.png 9件 [詳細] filenet_18.png 5件 [詳細] filenet_32.png 3件 [詳細] filenet_25.png 6件 [詳細] filenet_04.png 6件 [詳細] filenet_30.png 6件 [詳細] filenet_15.png 5件 [詳細] filenet_07.png 6件 [詳細] filenet_23.png 7件 [詳細] filenet_06.png 5件 [詳細] filenet_12.png 3件 [詳細] fileja_20101203.zip 4件 [詳細] filenet_13.png 6件 [詳細] filenet_31.png 5件 [詳細] filenet_01.png 5件 [詳細] filenet_09.png 5件 [詳細] filenet_08.png 4件 [詳細] filenet_29.png 4件 [詳細] filenet_11.png 4件 [詳細] filenet_05.png 5件 [詳細] filenet_02.png 5件 [詳細] filenet_20.png 5件 [詳細] filenet_17.png 5件 [詳細] filenet_24.png 5件 [詳細] filenet_03.png 5件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-12-29 (日) 00:31:44