ブラウザでワンナイト人狼 最近の更新変更

最近、なかなかブログを更新できてませんね。
多少時間があるときに、「プログラム開発」か「ブログ更新」か?
となったときに、「プログラム更新」を優先してしまっている感じです。
まぁ、私が文章を書くのが苦手なだけかもしれませんが。。。

最近、何点か「プラウザでワンナイト人狼」のプログラムを改良(変更)しました。

まず1点目は、2013年07月23日に「狂人」の勝利条件を変えました。

今までは「狂人」がサポートする「人狼」がメンバーにいなかったら、プログラムがそれを検知してカードの配り直しをしていました。
これで、「自分が吊られても人狼を助ける」といった、より本家(?)人狼ゲームに近い行動が取れるようにしたのですが、
この場合、人狼2、狂人1とすると、平和な村が存在しなくなります (´・ω・`)

これに対して何通かご意見メールをいただきました。
まったくの盲点でしたし、頂いたメールは非常に参考になるものばかりでした。
この場をお借りしてお礼申し上げます。

私も、「平和な村」なのにプレイヤーが疑心暗鬼になるのは、ワンナイト人狼の素晴らしいシチュエーションの一つだと思います。
ですので、まずは配り直しを廃止しました。

そうなると問題になるのは、狂人がいるのに村に人狼プレイヤーがいない場合です。
その場合は、狂人を人狼として扱う等のアイディアや、いろいろご意見いただいたんですが、
「一致団結して平和な村を勝ち取るスチュエーション」や「ルールが複雑化するのでは?」といったことを考え、

村に人狼プレイヤーがいない場合、狂人は「人間チーム」にしました!(村人と一緒)

※「狂人」として村に生まれたけど、「人狼」がいないので「狂人化」しなかった。というストーリーです(こじつけですがw)

(※ゲームバランスによっては今後また勝利条件が変更される可能性があります)

詳しくは、狂人について を見てください。


2点目ですが、2013年07月28日に「ゲームマスター鑑賞モード」を追加しました。

これは何かというと、「ゲームマスターがプレイヤーとしてゲームに参加しないオプション」です。

( ゚Д゚)ハァ?

と、聞こえてきそうですが、このモードをONにすると、ゲームマスター画面では全てのカードが最初から最後までオープンになっています(ゲームマスターはゲームに参加出来ません)
ゲーム見学者がゲームマスターの画面を覗きこんで、ゲーム進行を楽しむものです。。。

「何に使うの?」とか言われると微妙ですが、私の知人のリクエストで

ゲームに参加しない人が、すべてカードオープンされたゲーム画面を見ながら、ゲーム進行をニヤニヤ見られるようにしたい!

というリクエストがあったので対応しました。
ものすごーーーーーく、需要は少ないと思いますwww

「ゲーム実況用」や「ゲーム非参加者向けにゲーム画面が見られる画面が欲しい」というメールも数通頂いてたので、いい機会だと思い実装しました。

そろそろ「ブラウザ 爆弾ゲーム Bakuretu Bomb」もバージョンアップしたいので、次はそっちに取り掛かりたいと思ってます。
(`・ω・´)ゞ

【注意】
このバージョンアップは「ブラウザでワンナイト人狼」というWEBブラウザで動作するゲームの話です。
オオカミさん氏作成の「オリジナルゲームルール」とは、関係ありませんのでご注意ください。

node.jsの自動再起動

先日、WebSocket通信 で使用している node.js が停止してしまい、「ブラウザでワンナイト人狼」ゲームが動かなくなっていました。ご迷惑をお掛けしました。

【関連記事】 node.js 止まってたわ(´・ω・`)

原因は解らなかったのですが、node.js をあまり長い間動かすとメモリリーク等で固まるのかもしれません。そこで、定期的に node.js を自動で再起動させることにしました。

こんな数行のシェルを組んでみました。

[bash]
#!/bin/sh

pid=`ps -elf | grep “app.js” | grep -v grep | awk ‘{print $4}’`
if [ “${pid}” != “” ]; then
kill ${pid}
echo “kill ${pid}”
fi
sleep 2
nohup /XXXXXX/node /XXXXXX/app.js > /dev/null &
[/bash]

このシェルを実行すると、今動いている node.js を kill して、新しい node.js を2秒後に起動します。後はこのシェルを自動実行するべく、cron設定を行いました。

[text]
# Node.js 定期リスタート処理
0 6 1 * * /XXXXXX/restartNodeJs.sh >/dev/null 2>&1
[/text]

これで、毎月1日 早朝6時に node.js が再起動するはずです。
標準エラー出力(STDERR) を /dev/null に流しているので、シェルの実行に失敗した時に気が付かないというツッコミがあると思いますが、このcron処理とは別に定期的なサービス監視が動いているので、node.jsが立ち上がらなかった場合はそちらで障害検知します。

さて、最初の自動再起動は 2013年8月1日 早朝6時ですね。
うまくいきますように!( ・`ω・´)/

[2013.09.13 追記]
現在は週に一回、月曜日の早朝 6:00 に再起動するようにしています。

[2016.02.23 追記]
現在は毎日一回、早朝 6:00 に再起動するようにしています。

最近趣味で料理してます

今年(2013年)のゴールデンウィークがあまりに暇だったんで、趣味を増やすべく「料理」を始めました。
まだ全然大したものは作れないのですが、つい Amazon で「フードプロセッサー」を買ったりして、地味にはまってますwww

130707140602

まぁ、TVで「料理ができる男性はモテる」と聞いて始めただけなんですよwww
中学生がモテようとしてギターを始めるのと一緒ですねwww

そんな訳で、作った料理や失敗談などをこのブログに載せると面白いかなーと思ったりしたんですが、料理の話を載せると、何を目的としているのか解らないブログになりそうです (´・ω・`)

もともと 大昔のホームーページ のように、プログラムの紹介などをやろうと始めたブログなので、「プログラムの紹介」と「料理の話題」が混在するブログはカオス化しそうです \(^o^)/

でも、せっかくハマっているので、たまには料理ネタを書きたいと思います。ご容赦くださいw

ブラウザでワンナイト人狼「狂人」勝利条件変更のお知らせ

本日(7/15)、「ブラウザでワンナイト人狼」を大幅(?)バージョンアップしました。

【注意】
このバージョンアップは「ブラウザでワンナイト人狼」というWEBブラウザで動作するゲームの話です。
オオカミさん氏作成の「オリジナルゲームルール」とは、関係ありませんのでご注意ください。

今回ポイントは2つで、1つめは「狂人」の勝利条件を変えました

[2013.07.23]  この投稿後、「狂人」の勝利条件を変更しました。この「狂人」の内容は古くなっています。最新情報は下記のリンク先を見てください。

→ ブラウザ ワンナイト人狼「上級者向けオプション」について

c5

いままで「狂人」は狼チームで、「狂人」が吊られると人間チームの勝ちでした。
元祖(?)人狼ゲームの「狂人」とは、かなり役割が違いました。
本来は人間チームのふりをして、人狼を勝利に導く役職です。

「狂人」に違和感を感じていた方がいらっしゃったようで、ブラウザでワンナイト人狼の「狂人」については何通かご意見を頂き、大変参考になりました。この場を借りて御礼申し上げます。

そこで、「狂人」が吊られても人狼チームが勝利した場合、狂人も勝利としました。
これで「狂人」は、元祖(?)人狼ゲームのように、「人狼を庇って自分が犠牲になる戦略」が取れます。

で、問題になるのはプレイヤーに人狼がいない場合、狂人が吊られた場合です。
元祖(?)人狼ゲームは必ず「狂人」がサポートするべき「人狼」がプレイヤーに存在します。

ですので、それを真似することにしました。
ゲーム開始時にプログラムがカードを配るときに、狂人プレイヤーがいた場合、必ず人狼プレイヤーが1人以上いるようにしています。
ですので、あなたにもし「狂人」カードが配られた場合は、他のプレイヤーの誰か1人以上が人狼です。

あと、現在は占い師に占われると「狂人」であることがバレてしまいます。
これはこれで面白いと思っているのですが、今後「上級者向けオプション」で「狂人が占われても村人になるオプション機能」をつけようかと思っています。

「狂人」カードをゲームで使用する場合は、8名プレイを行うか、「上級者向けオプション」でカード構成に「狂人」を含めてください(狂人のカード番号は 5 です)

2つ目は新役職「てるてる」の追加です。

jinrou3003

こちらも何名かの方々からリクエストメールをいただきました。
メールを頂くまで「てるてる」という役職をまったく知りませんでした。
メールをくださった方、ありがとうございます。

メールを頂いてググったんですが、こんな面白い役職があるのですね (^◇^)

「てるてる」は吊られるのを目的としている役職です。人間チームでも、人狼チームでもありません。
「てるてる」が吊られると、「てるてる」の一人勝ちになります。

「てるてる」カードをゲームで使用する場合は、「上級者向けオプション」でカード構成に「てるてる」を含めてください(てるてるのカード番号は 6 です)

※「てるてる」のカードデザインは現在イラスト担当の友人に依頼中です。そのうちちゃんとしたカードに置き換えます。

あと、細かい所では最大プレイ人数を8名に変更しました。
7名、8名プレイのカード構成は、オリジナルカード構成となっています(ゲームバランスによっては今後変えるかもしれません)

詳しくは、ブラウザ「ワンナイト人狼」遊び方 をご確認ください。

node.js 止まってたわ(´・ω・`)

何通メールをもらってで気がついたのですが、2013年7月6日(月)に「ブラウザでワンナイト人狼」が動かなかったようです。

2013年7月6日(月)夜に復旧しました。
ユーザーの皆さんにはご迷惑をおかけしました。

原因は WebSocket 通信に使用していた node.js サーバの停止です (´・ω・`)
この node.js は何をしているかというと、ゲーム中に「各プレイヤーのブラウザ」と「ゲームマスターのブラウザ」間の通信を中継してくれています。

node.jsは、まだあまり安定していないとかメモリーリークがあるとかは聞いていたので、定期的にプロセス監視(node.js、ちゃんとサーバ上に居るかな?)を入れてたんですが、プロセスは存在しているのにサービスが動かなくなっていました(ちゃんとサーバ上にいるのに働いていない状態)

そこで、今は定期的なサービス監視(node.js、ちゃんと働いているかな?)を行うようにしました。
ですので、今後同様の問題が発生した場合は、発見が早くなると思います ( ー`дー´)

これからも「爆裂健ホームページ」と「ブラウザでワンナイト人狼」をよろしくお願いします。