人狼プレイ目録

人狼物語~月狼国~に関しての記事や、長期人狼をプレイした中で思ったことを纏めてます。

サイト運営の話①

2021-02-28 12:24:50 | 人狼物語~月狼国~について
人狼物語のソースをお借りして長期人狼のサイトを設置した当初の話は全て人狼SNSに書いていたのですが、今となっては閉鎖され、その内容も見ることが出来なくなってしまいました。
短い期間ではありますが私が運営していた間のこと、設置した経験談などを書き残しておこうかと思います。
同じ道を辿ろうという方がいらっしゃるかはわかりませんが、もしいた時にはなにかの参考になれば幸いです。



1、サーバーの設置

人狼物語システムは、あず様が開発してくださった長期人狼用のシステムです。
http://asbntby.sakura.ne.jp/
perlというプログラムで書かれていて、cgiとHTMLの基礎知識があれば、それほど難しくなくサイト上に設置が可能です。

当然そこから改良しようと思えば、プログラム言語を覚えて書き換える必要は出てきます。
そこはまた置いておいて、ひとまず設置の段階までは、それほどハードルは高くはありません。

最近のレンタルサーバーってコントロールパネルからファイルのアップロードが可能になっていますよね。
正直、私はよくわかっていません。
今も昔ながらのFFFTPというソフトを使ってやっています。
アップロードする際には、ファイルのパーミッションだけお気をつけください。

なお、このブログでは詳細な解説は特にする予定はありません。
レッツ検索。



2、テスト環境

設置自体は出来たとしても、改良しようと思うと大変です。
何度もテストプレイや試行錯誤を重ねることでしょう。
しかし、その度にサーバー上にあるデータを書き換えていたのでは、おちおち村を遊べません。
進行中の村に影響を及ぼすかもと考えたら、実験なんて出来ないですよね。
そういう時のために、テスト用の環境を作ることを推奨します。

テスト用の環境といっても、わざわざ別にサーバーを用意する必要はありません。
自分のPC内に設置するのです。

perlを実行させるためのシステムをPC内にインストールすることで、自分のPC内でも人狼物語を動かすことが出来るようになります。
主に必要な物は以下。

①perl本体
②HTTPD

①のperl本体。
プログラムを実行させる部分。
お使いのPCにもよりますが、有名どころとして
・ActivePerl
・Strawberry Perl
などがあります。

私も最初はActivePerlから入りましたが、現在はStrawberry Perlを使わせていただいてます。
お好みでどうぞ。

②HTTPD
馴染みのない方には「なんだそれ?」と思われるかもしれません。
HPPTデーモンと言われる、自分のPC内にサーバーのような環境を構築するシステムです。

ちなみに、私はAN HTTPDという開発終了したソフトを今でも使っています。
使いやすいんだ……。

これら二つを正しく設定すると、自分のPC内でサイトを動かすことが可能となります。
これでサーバーにも負荷をかけず、ユーザーの邪魔することもなく、システム改良の実験ができますね。

ちなみに、私が運営していた国(月狼国)は魔改造ばかりしていました。
元々プログラム知識などないが故に、その大半がトライ&エラーによって成り立っています。
あって良かった、ローカルサーバー。



3、プログラムの話

先ほど人狼物語の開発者あず様のサイトを紹介しましたが、あず様のブログもあります。

http://asbntby.blog56.fc2.com/
https://asbntby.exblog.jp/

この中から一つ記事を紹介させていただきます。

Q: 人狼物語は人狼審問の後継スクリプトですか?
https://asbntby.exblog.jp/4839247/

この中に、人狼物語を設置するにあたって大事なことが書かれています。

> また実用面ですが、人狼物語は負荷面でぞんざいな作りになっているため、一度に多数の村を稼働するのはおそらく厳しいと思われます。

人狼物語は発言だけでなくキャラチップも表示され、長期人狼を遊ぶにはとても使いやすいシステムです。
ただ、機能が多ければ多いだけ、当然負荷も大きくなります。
多くの村を同時に稼働させる用の作りには元々なっていないことを、覚えておいていただけたらと思います。

私が運営していたサイトでは、負荷を分散させるためにいくつかサーバーを別に用意していました。
ユーザーの皆さんにはご負担をおかけしましたが、そのような理由であることをご理解いただけたらと思います。



4、負荷の話

改良して機能をつければつけるだけ、重くなります。
これも当たり前の話ですね。
便利な機能ほど負荷も高いことはままあります。

当国で設置した「単語検索」は、一日分の発言の中から該当するワードを含むものだけを表示するシステムです。
それを開くためには、該当日の全発言を精査して「そのワードが含まれているか否か」の検索をかけなければなりません。
開くのはごく一瞬ですが、裏ではプログラムが動いています。
新着レス機能(自分宛のアンカーが含まれている発言のみ表示する)にいたっては、アンカーがある度にそのアンカー先の発言を調べてまわる必要が出てきます。

あまりに重い機能はログの多くなる雑談村では使えなくしたりと色々対策は取っていますが、それでもやっぱり重いんですよね。
なので、月狼国は村数をかなり少なめの設定にしています。
サーバーの状態とプログラムの改造具合等も加味して判断してください。

村枠を絞る以外では、地上人数と見物の人数も絞っています。
地上はとりあえず20人いればいいかな~?なんて適当な理由です。
あまりに人数が多くなると、編成を考えるのも大変。
見物は元々見物人システムが好きではないという理由もあって、かなり少なめに設定していました。



5、霧の話

今では「霧ってなんぞ?」と思う方もいるかもしれませんね。
いわゆるサーバーエラー、サーバーに接続できない状態です。
RPや世界観を大事にする村では、システム的な用語を避けてサーバーが重いことを「霧が濃い」などと表現しておりました。

サーバー上に設置したゲームですから、サーバーエラーはそりゃもう起こります。
天敵です。
プログラムエラーも起こりえますが、負荷が高い時にも発生します。
今回はその高負荷状態のエラーについて話します。

当国でも度々503が発生しました。
(503がわからない人は、調べてみようね。サーバーエラーの一種だよ!)
サーバーの状態を調べても、転送量自体はレンタル元の定めた範囲内に収まっている。
ではなぜ?

どうやら「同時に多くの接続が集中する」と503が起きやすいようです。
トータルで見た時に転送量が規定値以下に収まっていても、波があってその波が一定ラインを超えてしまったら、サーバー側で規制がかかってしまう。
そのようなケースが度々発生していました。

人狼ゲームをやっていると、多くの日に処刑と襲撃が発生します。
村側は今日誰が襲撃されたか、気になることでしょう。
人狼だってひょっとしたら護衛されているかもしれない、ちゃんと襲撃は通ったかと心配になることも多い。
そう、一番同時に接続されることが多いのが「更新前後」の時間です。
この時に負荷が一定ラインを超えてしまいやすい。

負荷を軽減させようと思えば、なるべく「更新時間が被らないような村を建てる」ことをおすすめします。
おっと、これは村建てさん宛のお願いですね。
村枠を余裕のある数字に絞っても、建っている村が全て同じ時間に更新される場合は、その時間に全村の参加者、閲覧者が多く殺到することになります。
なるべく避けてもらえると嬉しいな~なんて、今更ですがお願いをしておきます。

話が横道に逸れてしまいました。
サイトの転送量自体はレンタル元の設定した数字を下回っていても、同時接続によってエラーが生じたり、規制がかかることがあり得ます。
これは覚えておいてください。

また夜のコアタイムは議論も活発となり、更新時間前後のような大きな盛り上がりではなくとも、全体的に高くなりやすい。
村を快適に遊ぶためには、村数を絞って余裕のある状態にしておくことをおすすめします。




続きというか他の話は、また気が向いた時にでも。
向くかはわかりませんが。あしからず。