月曜日, 11月 16, 2009

アグリコラその4 三人プレー


 アグリコラをネタにした4回目です。昨日の3回目は友人のKさんと二人で対戦しましたが、今日はさらに友人のOさんも加わってもらって三人で対戦。三人になると使ったことのないアクションや職業が加わるので、さらにバリエーションの多いプレイが楽しめます。
 まず1回目は、私が三人プレーで始めて登場の「ほら吹き」・「ギルド長」・「自由農民」の3枚セットをうまく組み合わせて、畜産も耕作も半ば放棄して資源確保と大小技術進歩にのみ焦点を合わせて得点を荒稼ぎし、45点を確保して勝利。
 私は「ギルド長」を出しておいて家具製作所・製陶所・かご製作所をつくるとさらに木材・粘土・葦がもらえるので、これを使って食料に換えてたり小さい進歩を作ったりして、9枚の進歩を出して、「ほら吹き」で9点を稼いで、さらにまったく手をつけてなかった耕作地・牛・野菜の分のマイナス点を「自由農民」で打ち消すというかなりの荒業でした。Oさんは初回だったんでなすすべもなく終わってしまいました。
 2回目はこのときの副作用からみんな資材の確保でけん制しあってしまって、終盤に入るまでまったく小麦を栽培しない展開。結局私は15点という記録的な敗北。Oさんも点がまったく伸びず、Kさんが「ほら吹き」が炸裂させ、Kさんの勝利。
 3回目は2回目の反省から、私はちゃんと序盤から耕作しようと思ってプレーしたのですが、畑を必要としない「マメ畑」や「レタス畑」、そしてまたもや「自由農民」と「ほら吹き」を手にした私は、結局、耕作地を拡大せずに、番外で耕作する展開。これに対して、Kさんは序盤に「季節労働者」と「石運び」で小麦を確保しつつ「井戸」つくって、中盤に「折り返し鋤」で一気に耕作地を拡大して種まきして大規模に農業を始め、その後は畜産もバランスよく点をとる正攻法で点をかせぎます。Oさんは畜産を中心に点を稼ぎますが点がのびず、最後は私とKさんの勝負。Kさんはバランスよく点を稼いで45点に達したのですが、私は職業で大量得点したにもかかわらず、未使用な土地が多かったのが響いて40点どまり。Kさんの勝利に終わりました。
 結局、今日はKさんの2勝、私の1勝。Oさんは初めてだったので、まだうまく点が稼げてなかったようです。
 少なくとも、私は一人プレーで溜め込んだ経験値を早くもすべて吐き出してしまったようです。それに3人プレーは3人プレーしかないアクション「別の種類の2つの資材」などで序盤から石材が取れるのでこれをうまく利用したKさんは早い段階から「井戸」を取るというプレーをしてましたが、私は3人プレー用のアクションへの対応が後手に回って負けていたように思えます。
 あと、3人プレーで登場する職業にもうまく使えば強力なやつがいます。代表例が「ほら吹き」。うまくやればなんと9点もの大量得点がとれますが、なかなかそこまでやるのは難しいですね。手札によってはそこまで取るのは絶対無理なばあいもあるんで、その辺の見極めも重要なようです。

 このゲームやればやるほど、新たな発見があります。人数が少なくても面白いし、多くても面白いし、しかも人数が違うと使えるカードも違ってくるので、その人数ごとの発見があって、その度に楽しめる。ホントにやりがいのあるゲームです。

 そういえば、今回、最後の点の数え方で、紙に点を書くのはもったいないので、動物をつかう方法でやってみました。各自、点数を計算するときに盤外に動物を置いて点数の代わりにしてみました。羊は1匹1点、猪は1匹5点、牛は1匹10点をあらわす駒として、点の計算用に盤外に置いて計算に使うという方法です。動物って、結構途中で食料に変えちゃうので、ゲーム終了時にあまった駒が多いし、動物の価値は牛>猪>羊とハッキリしているので、数える際に混乱せず、間違いにくくて良いようです。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

土曜日, 11月 14, 2009

アグリコラその3 二人プレー


 前々回、前回にひきつづき、アグリコラの3回目。
 今度は友人と二人で遊んでみました。
 まず最初は、エントリーカードでやってみましたが、ボードゲーム慣れしている友人は私から引き離されることなく最後までプレーしてきて、結局私は49点、友人は47点で私の辛勝。
 その後は、インターラクティブカードとコンプレックスカードでプレイしてみましたが、インターラクティブは別荘カードのおかげでかろうじて39対37で私の勝利。別荘カードって8点も入るかなり強力なカードなので、これがなければ私はぼろ負けしてました。最後はコンプレックスカードで37対37で引き分け。
 プレイした感想ですが、友人に木を抑えられてかなり苦労しました。2人プレイだと、木は2ラウンドで6本になるわけですが、この段階ですぐに抑えておかないとどうしようもなさそうです。代わりに私は序盤は葦を重視したプレイに走るのですが、これは結果的にうまく言った面もありそうです。木を抑えられてても、葦さえもってれば、レンガを集めて対抗できますもんね。
 どっちにしろ、2人プレイだと資源が全然たまらない。2・3ラウンドですぐに取られちゃうので、どうしても欲しいときには前のラウンドに手番を自分からに変えてでも確保すべきのようです。
 それから初体験のインターラクティブとコンプレックス・カードが、内容が複雑でうまくいけば強力なのだけど、使いこなせないとショボイカードが多いようです。二人ともあまり使いこなせなかったのか、難易度が上がるたびに点数が下がっていきます。もっとも逆に後になればなるほど、お互いの牽制が厳しくなったせいで点が伸びなかったのかもしれません。

 一人用ゲームとはまったく別の戦略が必要になるようです。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

金曜日, 11月 13, 2009

大惨事

 プラスチックのトレイの上に、土鍋を載せて運んでいたら、トレイが突然割れました。
 土鍋は床に落ちて割れ、中身を床にぶちまけてしまいました・・・

 ちょっと今日は立ち直れそうにないので寝ます。

HDDではなかった

 先日、「またまたハードディスククラッシュ」という題でLink Stationの故障をアップしましたが、その後の調査で壊れたのはハードディスクではなくって、Link Station本体ということが判明しました。
 なんでわかったかというと、手元に、160GBのHDDとS-ATAのHDDをUSBにつなげる箱があったので、これで160GBのHDDにLink Stationのファームウェアとかを入れて復旧を試みたのですが、確実に壊れていないはずのこのHDDを入れても、Link Stationのエラーはディスクが見つからないという状態。で、まさかと思って、Link Stationから取り出したHDDをさっきの箱に入れて、Ubuntuの入ったマシンにつないでみたらちゃんと中身が見える・・・。別に変な音もしない。先にこっちを試すべきでした(苦笑)
 前の日のHDDの変な音はインターフェースの不調から発生してたということなんでしょうか・・・よくわかりません。

 というわけで、我が家のLink Stationは完全に壊れてしまったので、アナログ放送のビデオ録画はUbuntuマシンでVMware Playerの上で動いている劇遅いXPのソフトのみということになってしまいました・・・

 家にも早くデジタル放送の電波が届かないかな・・・

木曜日, 11月 12, 2009

Tokyo Railways ユーザー報告用ページ

 Tokyo Railways のユーザーが投稿できるページを作成しました。
 ご感想・ご要望・障害報告等、なんでもご投稿ください。
 投稿方法については、向こうのページをご覧ください。

水曜日, 11月 11, 2009

開発:Tokyo Railways 2


 今月に入ってから、「Tokyo Railways コンピュータ版」の次期メジャーバージョンアップ版、「Tokyo Railways 2」の開発を進めています。とはいえ、まだなかなかテンションが上がらず、まだお見せできるような機能できてないので、オープニングの画像だけお見せします。
 「2」のリリースはまだまだ数ヶ月先の予定ですので、今月にリリースする次期バージョンは、現行のv1.xx系となります。次期バージョンはバグフィックスと新マップの追加が中心となります。
 「2」の方の新機能は以下の3つがメインとなる予定。
  1)ネットワーク対戦機能
     この機能の目的は、複数のパソコンをつなぐことで、同時に多人数で遊んでもらえる環境を作ることです。
     インターネット越しではなくって、LAN内での対戦を前提とした機能です。ルーターなどの設定をいじれば、インターネット越しに対戦することも不可能ではないですが、基本的にはLAN内での接続を前提とします。手軽にインターネット越しに対戦できる機能は将来の課題とします。

  2)地形グラフィックの大幅変更
     この機能の目的は、グラフックのインパクトを強めて、多くの方にこのゲームをアピールすることです。
     地形をもうちょっと立体感のあるグラフィックに差し替えます。今のグラフィックも設定変更すれば選べるようにします。追加のグラフィックセットを用意すれば、別の地形グラフィックに切り替えられるようにします。

  3)キャンペーンシナリオ機能の追加
     この機能の目的は、より多くのマップを遊んでもらって、多様なマップの面白さを知ってもらうことです。
     8つ程度のマップから構成されるキャンペーンシナリオを用意します。
     標準のキャンペーンは日本をテーマとしたものと世界をテーマにしたものの2つ。
     世界を舞台にしたマップはまだ4つしかないので、今後のリリースで更に4つ追加する予定です。
     追加マップの方もあと5つ追加して、2本のキャンペーンを用意する予定です。
     キャンペーンでは1つずつマップをプレイしていき、1位となったらそのマップをクリアして次のマップに挑戦するという形式で、すべてのマップのクリアまでに何回プレイしたかを競うものとなります。
     
 今は1)の開発を始めているのですが、まだ通信そのもののプログラミングまで進んでなくって、接続前のいろんな画面の作成をやってます。画面の作成は単純作業が多くって、ちょっとテンションが上がらないのですが、もうちょっと気合を入れて開発を進めていこうと思いますので、応援をよろしくお願いします。

 今後、開発が進んだら、随時情報をアップしていきます。

 でも、そろそろ「2」の開発を一時中断して、今月のリリースの準備を始めないといけないかな・・・

アグリコラ その2 1人用ゲームの戦略


 ボードゲーム「アグリコラ」の話の2回目です。今日の話は、「アグリコラ」の1人用ゲームの戦略についてです。
 実は、この「アグリコラ」の1人用ゲームはよくできていて、私はすっかりハマリこんでしまっています。
 先日アップしたときには、まだ開封したばかりでルールをざっと読んで1人用プレイを2回くらいやってみただけだったんですが、あの後何回か1人用ゲームをやってみて、勝ったり負けたりしているうちに、ようやくコツをつかみました。50点とれば勝利のところで1回目に61点、続けて1枚の職業カードを残してプレイする2回目で70点を稼げるところまで上達しました。といってもまだエントリーカードしか使ったことがないんですけどね。

 何回か負けてるうちに気がついたのですが、アグリコラは基本的に職業カード・小さな進歩カードはデッキが3種類ある上に、毎回登場するカードは変わるし、ラウンドカードの出てくる順番によっても戦略は変わってくるのですが、1人用ゲームにはハッキリとした定石が存在します。今回はその定石を紹介します。

 まずは第1~4ラウンドの第1ステージですが、このステージ中に木と葦を確保しておく必要があります。なぜなら第2ステージにはやることがいっぱいあって、第1ステージ中にできることはさっさとやっておかないと、間に合わないからです。
 また、第1ステージに麦を植えておくと、第4ステージで野菜を植えることで、最後の第6ステージに3回目の種まきをするチャンスがあるので、ここでできるか限り麦の種をまいておければ、だいぶ楽になります。
 セオリーとしては、第1ラウンドのアクションは「職業」と「日雇い労働者」、第2は「小麦1を取る」と「畑1を耕す」、第3は「葦」と「種を播く」(ここで「種を播く」が出ていなければ「木」)、第4は「漁」と「木」(すでに木を取っていれば「種を播く」)。小さな進歩カードや職業カードの内容によっては、小麦を植えることをあきらめて、種付けまでの3アクションを別のアクションにまわすことも考えられます。

 第5~7ラウンドの第2ステージは、家族が2人のままだと6アクションしかないのですが、このステージ中に以下のことをやらなきゃなりません。「増築」、「家族を増やす」、「レンガ」、「大きな進歩」(かまどか調理場を確保)、「羊」(家の中に一匹だけ残してあとは全部食料にする)、ここまでで5アクション。できる限り早く家族を増やせれば、こなせるアクション数が多くなってだいぶ楽になりますが、もし「家族を増やす」の登場が第7ラウンドになった場合、第3ラウンド中の残りのアクション数は1つしかないので、注意が必要です。また、もし手順やカードの事情でレンガが十分にあまっていて、レンガの家に改築とかまどや調理場の確保が同時にできる状況なら一気にレンガの家に改築しまえば、「改築」ついでに「大きな進歩」も実行できるので、両方を一度に手に入れられます。

 第8ラウンド以降の第3~6ステージは、職業カードや小さな進歩カードの内容によって、かなり展開が変わってくるので、ステージごとの手順は書きませんが、以下のことに留意した方がいいです。
 1)家族を早く増やせるとそれだけ展開が楽になる。早めに増築して早く家族を増やすこと。
 2)作物は次に種まきするタイミングが重なるように種を播く。第3ステージは小麦を植え、第4ステージは野菜を植える。そうすると両方とも第5ステージの収穫ですべての収穫が終わり、第6ステージに一気に両方の畑に種を播ける。
 3)第5ステージに増築せずにできる「家族を増やす」アクションが登場するが、なるべくこれは使わないように早めに5部屋まで増築したほうがいい。
   なぜなら、最終的に増築したほうが点が高いし、第2ステージに登場する「家族を増やす」アクションなら、同時に「小さい進歩」も出せるので、手順がお得である。
 4)空き地を残すぐらいなら牧場にすべき。柵は一回で何本でもつくれるので、最後に大量に「木」をとってから「柵」をつくれば、空き地を一気に埋められる。さらに「猪」と「牛」をとれれば、一気に高得点が狙える。最後ラウンドにはこれ以外に種まきもやりたいはずなので、これを考えて、最終ラウンドには十分なアクションが残っているように注意する。可能なら前のラウンドで木を取っておくとよい。
 5)後でもう一回とるつもりの資源なら、1回目は必要以上にたまるまで待つ必要はない。早く取れば、次のときにより多く取れるだけのことである。
 6)効果が薄い職業や小さい進歩カードを無理して使う必要はない。たとえば木が余計に1本とれる「きこり」などは、どうせ木を取る回数なんて、1ゲーム中に2~3回くらいなんだから、1アクションと食料1個を木2・3本と取り替えることが本当に必要なのか考えたほうがいい。効果の高い小さい進歩カードの中には職業の枚数が条件になっているものがあるので、そういうカードがある時には多少効果が薄い職業カードも積極的に使うべき。

 長々と書いてしまいましたが、実際にプレイするときに参考にしてください。
 ちなみにこの戦略はあくまで1人用ゲーム用です。2人以上は相手がいるので、ぜんぜん通用しません。
 さて、まだ私はこのゲームを買って数日なので、1人用しかしたことがないのだが、2人以上で遊べるのはいつになることやら。今月中には1・2回くらい遊ぶ予定なので、その時には感想をアップします。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

日曜日, 11月 08, 2009

アグリコラ


 ボードゲーム「アグリコラ」の日本語版を買いました。このゲーム1人から5人まででプレイ可能で、中世ヨーロッパの農家を題材にしたゲームで、ファン投票で選ばれるドイツゲーム賞の2008年1位を獲得した作品です。
ゲームの内容としては、いろんな仕事をこなしながらいろんな資源や職業などを獲得し、だんだんと畑・家畜を増やし、家を増築して家族を増やし、いろんな職業や技術を憶え、家の設備や家そのものを豪華にして豊かな生活を築こうというゲームのようです。
 十数種類・300個以上の木の駒と、100枚くらいの厚紙の駒、9枚のゲームボード、360枚のカードと、とんでもない量のコンポーネントが出てきて、ルールも沢山あるヘビーなゲームです。
 ゲームはルールが簡単で「仕事カード」と「小さい進歩カード」を使わないファミリーゲームと、「仕事カード」と「小さい進歩カード」を使うメインゲームの2種類に分かれています。さらにメインゲームでは複雑さの異なる3種類のカードのどれかを選んでゲームします。また人数によって使うカードが異なるため、かなりのバリエーションがあります。
 これだけヘビーなゲームなのでプレイ時間がかかりそうですが、一応、ゲームブックには1人につき30分と書いてあります。つまり5人なら2時間半ということらしいです。でも最初はそんなに早くは行かないと思います。さっき1人プレイルールで1ゲームだけ遊んでみたら1時間以上かかりました。ちなみに1人プレイルールではだんだんとハードルが高くなる条件で8ゲームをクリアしてやっと勝利だそうです。そうすると1人プレイは慣れても4時間かかることになりますねえ(苦笑)。
 ちょっとルールが多くって憶えるのが大変そうなゲームですが、その対策として1人プレイのルールとか、初心者用ルールのファミリーゲームとか、難易度別のカードセットとかいろんな工夫がしてあって、無理なく憶えられるように工夫してあるようです。

 今度、仲間と遊んでみたら、その感想を加えてまた紹介します。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

またまたハードディスククラッシュ

 先月後半にMac miniのHDDクラッシュで交換作業を強いられたばかりだというのに、昨日にもまた別のHDDクラッシュが発生。今度壊れたのはBuffaloのLink Stationというネットワークハードディスク。この機械はただのディスクではなくって、チューナーとつなぐとテレビの録画をできるという機能があって、私は普段はこれでテレビ番組を録画して、LAN越しにPCから見ているのですが、おとといから妙な音がするようになり、昨日になってコピー作業中にディスクが認識しなくなっちゃいました。
 仕方がないから代わりを探しにいきましたが、いまどきアナログチューナーと連携できるモデルはすでに家電量販店の店頭からは姿を消しているようです。かといって、我が家は東京タワーを背後にした斜面にあるので、地デジ未対応の中継局から電波を受けていて、代わりの中継局ができる来年3月くらいまではTVK以外は地デジが映らない。しかたがないので、後で自分の手でなんとかハードディスクを交換してファームウェアをインストールして、Link Stationを復活させることにして、当面はUbuntuが動いているMac miniでVMware Playerを使ってWin XPを動かして、これで録画するという急場しのぎの策で乗り切ることにしました。
 で、毎日Link Stationのデータをバックアップしていた外付けHDDをオリジナルに変えて、あまってた別のディスクのデータを消してこっちをバックアップに回すということになり、データ消去作業だの、コピー作業だの面倒で時間のかかる作業が目白押し。

 ・・・なんか最近こんなことばっかりやっているけど、なにかの呪いでしょうか。

FC町田ゼルビア 対 ソニー仙台戦


 今年のゼルビアの試合も残すところ、あと4試合、ホーム試合は2試合だけです。
 今日のゼルビアのホームゲームは、現在6位のゼルビアから勝ち点3差の5位に位置するソニー仙台との直接対決です。もちろん観戦してきました。今日、5位に浮上するためには3点差以上で勝つ必要があります。
 試合の方は立ち上がり1分くらいで、ゼルビアがソニーゴールに殺到、怒涛の攻撃の末に御給選手のゴールで先制!しかし、ソニー仙台は徐々に調子をつかんできて、やがて一方的にゼルビアゴールに攻めかかってきますが、ゼルビアの守護神・修業選手の好セーブを連発してなんとかリードを守り続けます。
 しかし、前半終了間際、ソニーは波状攻撃でとうとう修業選手をかわしてゴール。1-1の同点で前半終了。

 後半は両チームとも相手ゴールを激しく攻める展開となりますが、互いに決定的なチャンスを逃し続け、結局1-1のまま試合終了で引き分け。

 今日のゼルビアは、いつものようなサイドから突破する機会が少なくって、センターに打ち込んで一気にゴールを狙う展開が多かった気がします。むしろ、ソニー仙台の方が両サイドを突破してくる攻撃が目立ちました。また、今日のゼルビアはいつものようなパス回しでの攻撃があまり見られず、これもソニー仙台の方が多かった気がします。
 両チームとも似たような攻撃パターンのチームということもあるのかもしれませんが、今日は津田選手のサイド突破があまり見られず、後半早々に森川選手と交代してしまったのをみて、津田選手のコンディションが悪かったのではないかとちょっと心配しました。

 次のホームゲームはホーム最終戦です。最後はスカッと勝ってほしいものです。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

木曜日, 11月 05, 2009

アップデート:相模原追加マップ

 Tokyo Railwaysコンピュータ版の追加マップ・相模原をアップデートしました。
 修正点はこのコメントでpumpCurryさんからご指摘を受けた盤外接続・青山の矢印の方向が逆になっている点です。
 見た目以外はゲーム上関係ないですが、気になる方はダウンロードして入れ替えてください。

水曜日, 11月 04, 2009

JLayerとUbuntu 9.10のOpenJDK+PulseAudioの相性問題

 相変わらず「Tokyo Railwaysコンピュータ版」の障害対応をやってます。
 今日片付けた問題は、先日リリースされたばかりのUbuntu 9.10上で「Tokyo Railwaysコンピュータ版」の音がならなくなるという問題。先日アップした「Ubuntu 9.10にアップグレード」という記事の中でちょっとだけ触れた話です。
 この問題は実は調査した結果、私の環境では起きるけど、「Tokyo Railways コンピュータ版」をダウンロードしてそのままUbuntu 9.10で使っている分にはおそらく起きないだろうという結論になってます。私の環境とダウンロードしてそのままの環境で何が違うのかというと、私のUbuntu環境ではBGMにMP3ファイルを使っているが、ダウンロードしてそのままの環境ならBGMはMIDIファイルを使っているはずという点です。この障害はBGMにMP3を使って、Ubuntu 9.10の環境で「Tokyo Railways コンピュータ版」を実行しない限り発生しないと思います。なぜなら、この現象はMP3ファイルの再生に使っているオープンソースの「JLayer」というライブラリーの内部でBGMの切り替え時に発生してるからです。また、Ubuntu 9.04まではこの現象は発生していなかったので、Ubuntu 9.10とJLayerの相性に起因しているようです。
 調査した結果、問題の現象は以下の2つに分かれます。

 (1)MP3のBGMの切り替えが数秒間遅れることがある。
 (2)MP3のBGMの切り替え時に以後ずっと音がならなくなることがある。

 まず(1)を調べてみると、JLayerフレームワークに含まれているjavazoom.jl.player.Playerというクラスの、isComplete()というメソッドが通常の環境では即時復帰してくれるのに、Ubntu 9.10環境では10秒程度復帰しない場合があるというものでした。実は「Tokyo Railways コンピュータ版」のBGM再生処理では、isComplete()と500ミリ秒のスリープを繰り返しながらループしていて、BGMが完了したかどうかをisComplete()でチェックし、もし完了していたら再度再生することで、エンドレス再生を行ってます。また、isComplete()の直後のタイミングでBGMの停止や切り替えもチェックしています。だからisComplete()で待たされると、BGMの停止や切り替えも遅れるわけです。
 これの対策は比較的容易で、isComplete()を使用せずに自前でフラグを用意して曲の終了をチェックすれば解決です。なぜこれが容易かというと、実はPlayerクラスのplay()というメソッドでMP3を再生しているのですが、このメソッドが演奏が完了するまで復帰してくれないので、その対策として自前でスレッドを作って管理しているので、このスレッドの処理内でplay()の前後でフラグを制御すれば、演奏中かどうかは容易にチェックできるわけです。

 さて、残るは(2)だけなんですが、これの回避策を見つけるのはかなり面倒でした。(2)の問題はエラー出力に出てくるログを見て判断すると、BGMの演奏が終了するタイミングでPlayerクラスのclose()メソッドを使ってBGMを停止しようとすると、Ubuntu 9.10環境ではJLayerがOpenJDK経由でPulseAudioというLinux環境で使われてるサウンドサーバーにサウンドを停止させにいくようなんですが、Ubuntu 9.10環境のPulseAudioではこのタイミングで例外が発生するケースがあるようです。しかもその例外に対するJLayerの処理になにか問題がある様で、なんとまあclose()メソッドが永遠に復帰せずに、以降JLayer内部でなにか排他が開放されなくなる状態となり、結局ハングアップしてしまうようです。
 これは明らかにJLayerのPlayerクラスのclose()メソッドのバグなわけで、問題を回避するにはPlayerクラスのclose()を使わずにBGMを停止する必要があります。で、いろいろと試したのですが、結局うまく言った方法は、Playerクラスのインスタンスを生成する時に、コンストラクターに渡しているMP3ファイルのInputStreamを別途保存しておいて、BGMを止めたいときにはこのInputStreamのclose()を呼んで、MP3ファイルの読み込みを停止してしまえばよいみたいです。この方法で試してみたら、PulseAudioの例外は発生しなくなって、JLayerはハングアップしなくなりました。

 さて、この方法、確かにUbuntu 9.10では有効のようですが、他の環境では何か副作用は出ないのかと言う点がちょっと心配です。たぶん大丈夫だと思うのですが、原因が環境の相性問題だったんで、いろんな環境で一通りテストしてみる必要がありますねえ。
 ただ、いろんなの環境って言っても、いくつあるのだろうか。OSの種類とJavaの種類の組み合わせで考えると、簡単に10種類を越えちゃいますねえ。私が用意できる環境で数えると、11種類もある。うーん、まだまだ完全解決までにはちょっとかかりそうですねえ・・・

月曜日, 11月 02, 2009

Tokyo Railways コンピュータ版のバグ修正

 昨日と今日は「Tokyo Railways コンピュータ版」の障害修正を集中的にやってます。特に今日は、先日にpumpCurryさんがたくさん報告してくれた件をまとめて直していて、コメントにあった2、3、4、8、9をつぶしました。
 この中で一番苦労したのが3番。コメントにあった「保存後読み込み直した時「プレイヤーさんの番です」と出たあと、なにかのはずみでフェイズが1つ進む時があります」というやつです。これは最初は「プレイヤーさんの番です」というダイアログの閉じるボタンのクリックイベントが2回以上入っておきているのだと思ったが、実は違っていた。ダイアログボタンの閉じるボタンのクリックイベントでは、ダイアログを閉じる以上のことは何一つやってなかった。連打はこの問題を引き起こす状態を作り出しやすいが、かならずしもボタンの連打とは関係ない現象だった。
 データをロードしたときの処理は、実は通常のセーブデータと自動セーブデータではちょっとだけ違っている。
 通常のセーブは移動フェイズか建設フェイズで行われるが、自動セーブデータはターン終了フェイズというタイミングでやっている。通常セーブしたデータをロードすると、セーブしたときのフェイズの初期処理をやってから、途中の状態の操作を再実行している。だが自動セーブデータの場合、通常セーブの処理の前にターン終了フェイズを完了させてターンを進行させている。問題の核心は、フェイズの初期処理とフェイズの終了処理はいずれもロード処理とは別のスレッドを作成して実行している点にあった。
 つまり、自動セーブデータのロード処理では以下の2つのスレッドを順番に実行している。
  (1)ターン終了フェイズの終了処理スレッドの生成・実行
  (2)現在のフェイズの初期処理スレッドの生成・実行
 この中で(1)のスレッドは非常に処理が短く終わり、(1)と(2)の間の処理は少しだけ重たい処理なので、通常ならば(2)が始まる前に(1)が終わる。つまり(1)のターン終了処理で次のターンに進んで、次のターンプレイヤーの移動処理の初期処理が走る。
 ところが、何らかの理由で(1)で生成されたスレッドが実行される前に(2)が始まってしまう場合がある。その場合には、(2)の現在のフェイズがまだターン終了フェイズのままだったりする。このとき、ターン終了フェイズの初期処理はもう一度データの自動セーブを行った後、そのまま現在のフェイズの終了処理を行ってしまう。そうすると、フェイズ終了処理が2回行われ、2度目の処理の時にはすでに移動フェイズに進んでいて、移動フェイズの終了処理が走ってしまっていた。
 この現象を起こす何らかの理由としては、沢山のスレッドを生成・実行している時というのが一番考えられるが、実はマウスクリック処理は、仕組上、クリックのたびにスレッドを生成・実行している。だからマウスクリックを連打すると沢山のスレッドが生成されてその順番待ちが発生し、(1)で生成されたスレッドの実行が遅れて、(2)に先に到達してしまうのだと思う。
 この現象はCPUコア数が少なければ発生しやすく、シングルコアのPCが一番発生しやすいと思うのだが、実は開発やテスト環境のPCはすべて2つ以上のコアをつんでたりする。だから私が発見できなかったのだと思う。
 で、対策なのだが、実は自動セーブデータのロードの際には(1)の処理は必要なのだが、(2)はいらなかったのだ。だから(2)をスキップすればそれで解決。要するに自動セーブデータと通常セーブデータで条件をきりか分けて処理を分けていたのだが、ちゃんと切り分けきれてなかったというだけの問題だった。それが、こんなスレッドがらみの面倒な不具合につながっていたとはちょっと最初はわからなかった。

 なにはともあれ、解決できてよかった。この問題を報告してくれたpumpCurry様に改めて感謝します。

 

Windows XP Mode

Windows 7に乗り換えてから3日目ですが、なかなか快調です。今日はWindows 7の目玉の一つ、Windows XP Modeを入れてみたので、これについて書いてみます。
まずは、Windows XP Mode(以下はXP Modeと略します)っていうのは何かというと、仮想PCソフトであるVirtual PC用のXP環境です。通常は、Virtual PCやVMwareのような仮想PC上でWindows XPを動作させる場合、その仮想PC用のライセンスを別途用意してインストールする必要があります。ところがWindows 7のProfessional/Ultimate/Enterprise版では、追加のライセンスなしでVirtual PC上でXPを動作させることができる専用のXP環境が用意されてまして、これがXP Modeというわけです。
なぜ、XP Modeが用意されているかというと、Vistaよりはマシになったとはいえ、Windows 7にも互換性の問題があり、Windows XPでしか動かないソフトが存在していて、こうしたソフトをWindows 7のPCで共存できるようにするためです。
このXP Modeは、インストールCDとは別にダウンロードしてからインストールする必要があります。また、XP ModeはVirtual PC上で動くので、Virtual PCもダウンロードしてインストールする必要があります。ダウンロードや機能の説明はここから行ってください。ちなみにWindows XP Modeは約600MB、Virtual PCの64bit版は約10MBほどのサイズがありました。

さて、前置きはこの辺までにして、それでダウンロードとインストールを終わらせて、XP Modeを動かした後の話に移ります。インストール時にユーザーのパスワードを入力しましたが、ユーザー名はXPMUserで固定されているようでした。
XPのバージョンは以下の画像のとおり。Professional版のSP3です。

仮想PCのメモリは512MBに設定されています。この辺は、Virtual PCの設定画面で変更可能です。
起動したらまず最初に出てきたので、セキュリティ警告。ウィルス対策ソフトがインストールされていないとうの警告です。XP Modeのためにウィルス対策ソフトのライセンスを別途用意するのはもったいないので、無料提供されているMicrosoft Security Essentialsをインストールしました。
それからWindows Updateを実施すると、Microsoft Updateのインストールをはじめとしてたくさんのアップデートが引っかかってきました(下記画像)。この辺は最新になってないみたいです。面倒なので全部適用済みのを用意してほしいのですけどねえ。

Internet Explorerのバージョンは6が入ってました。Microsoft Updateを実施するとIE8のインストールが表示されてきましたが、互換性のためにこの環境を用意しているのなら、IE6のままがいいかなと思い、そのままにしておきました。
タスクマネージャーを開いてみると、CPUのグラフが1つだけ(下の画像)。このPCは8スレッド同時実行可能で、親環境ではCPUグラフが8つ出てきるのですが、XP Modeでは1コア分しか使えないみたいです。ちょっと残念。



さて、これでXP Mode環境ができたものの、とりあえず特に動かしたいソフトもなかったので、私の開発している「Tokyo Railways コンピュータ版」をダウンロードして動かしてみました。もちろん問題なく動きました。

もう特にすることものないので、シャットダウンしよう思ったのですが・・・

なぜか「ログオフ」しかない。
しかしVirtual PCのメニューを見てみると、操作のところに「再起動」とか「閉じる」とかある(下の画像)。で、閉じるを選んでみたのですが、シャットダウンされずに休止状態になってしまいました。

シャットダウンする方法はないのかと調べてみると、ちゃんとありました。まずはメニューのCtrl+Alt+Delを選択すると、おなじみの下の画像のメニューが出てくる。ここからシャットダウンを選択すれば、ちゃんとシャットダウンできる。なんかわかりにくいですねえ。

というわけで、とりあえずXP Modeをインストールして環境を整備しただけでしたが、きょうの話はここまでです。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

日曜日, 11月 01, 2009

Tokyo Railways コンピュータ版で画面が乱れる障害



「Tokyo Railways コンピュータ版」のv1.75をリリースする直前にユーザーから寄せられた障害で、この図のように画面が乱れるというものがあります。
発生する環境はかなり限られていて、WindowsやLinuxでは発生しないようで、Macの場合でもMac OS Xの最新バージョン10.6(Snow Leopard)では発生しないようです。つまりMac OS X 10.5に限られてきます。また、図のようにひどい状態になる環境やマップはかなり限られていて、発生しやすいマップは北陸のような横長のマップのようで、さらに画面の解像度が縦800以下では発生しにくいようです。
これだけの条件を並べてわかるように、どうもこれはMac OS X 10.5に付属するJava側の障害という気がするのですが、そうは言ってもなんとか回避しないとユーザーに不便をかける訳で、回避策を調べてみました。
どうもこの問題はイメージの上に別のイメージを上書きする際に、その範囲が重ならない部分があるときにMac OS X 10.5のJava環境が正しく処理できない問題に起因するようです。
仕方がないので次期バージョンでは、上書きするイメージから、上書きされるイメージと重なる範囲を抜き出し、その範囲内だけ上書きするように対処します。
それで申し訳ないのですが、次のバージョンをリリーするまでの間、上記現象を避けるために、Mac OS X 10.5 環境をお使いの人はメニューを出す場所をなるべく真ん中あたりにして、回避していただくようお願いしたいと思います。

これとあわせて、Windows Vistaや7で、ウィンドウサイズが少し小さめになってしまって、よけいなスクロールバーが出てしまう件も抜本的な対応策を見つけたので、次のバージョンで対処される予定です。

次のバージョンは11月下旬リリースを予定しています。

土曜日, 10月 31, 2009

Windows 7 Ultimate 64bit版

売り切れてて買い逃していた Windows 7 Ultimate 64bit版ですが、ようやく今日になって家に届いたんで、さっそく我が家最強のPCにインストールしてみました。
マシンのスペックはIntel Core i7 2.67GHz、メモリは12GB、HDDは1TB×2というかなり強力なPCです。
クワッドコアでハイパースレッジングもサポートしているので同時に8スレッドが実行可能、ちょっと普通のPCと次元が違う感覚なので、速度とかの感想は当てにならないかも知れない。

さて、まずはWindows 7のインストールですが、このPCにはすでにWindows XP 64bit版とWindos 7 RC 64bit版がインストール済みだったのですが、今回はWindows 7 RC版のインストールされているパーティションをフォーマットしてインストールしてみました。
フォーマットは一瞬で終了し、インストール開始。インストールの所要時間は30分くらいだったので、かなり早い気がしました。で、早速ログインしてみると、壁紙がなんかセンス悪い(笑)。真ん中に画像のようなマークが出てくる。

まずはなにかよさそうな壁紙に変えたほうがよいですね、こりゃ。

で、それからはいつものようにインストール大会。
まずはウィルス対策ソフトということで、ESET NOD32を実行しようとしたら、「互換性の問題があります」とか言われてしまいました。そんで、ESET NOD32の公式サイトに行ってみたら、バージョン3.0から4.0にアップする必要があるらしい。
バージョンアップしたらちゃんと動作しました。

今のところ動作確認のとれたアプリは以下のとおり。
まずは64bitアプリ
・Sun Java SDK 6.0    - Javaの開発キット
・Eclipse 3.4       - Javaの開発環境
・Gimp 2.6        - フォトレタッチソフト
・Sakura Editor 1.5.8 - テキストエディター
・ESET NOD32 4.0 - ウィルス対策ソフト
・7Zip 4.6.4 - 圧縮解答ソフト
・CopyExt Ver 3.01.2 - 拡張コピーソフト

次に32bitアプリ
・Google Chrome 3.0 - ブラウザ
・OpenOffice.org 3.1.1 - オフィスソフト
・キャプラ 4.4 - 画面キャプチャー
・VMPlayer 2.5.1 - 仮想マシン
・Picasa 3.0 - 写真管理
・nero 7.11 - CD/DVDライティング
・VLC 1.0.1 - ビデオプレイヤー
・muse 5.45 - 音楽製作ソフト
・Tokyo Railways 1.75 - 自作ソフト(ただしJavaは64bit版で動作)

今のところ、これで普段使っているソフトはほぼクリアしていると思うが、動かなかったソフトはなかった。
ただし短時間しか使ってないから何か問題を見逃しているのかもしれない。
これだけちゃんと動いてくれれば、明日からWindowsの開発環境はXPから7に変えてしまって問題なさそう。

さて、そんで今日半日使ってみた感想だが、なかなか使いやすいです。
Mac OS XとWindows XPを比較したときに気に入らなかった点がWindows 7になってだいぶ解消されている気がします。

まず一番の改善点は、マルチタスク性能の改善でしょう。
XP 64bit版だと、何かのインストール中や巨大ファイルのコピー中など、DVDやHDDへのアクセスが極端に重い場合、しばらくだんまりになってしまって、せっかくの8スレッド同時実行なのが生かせずにイライラしたのですが、これがWindows 7だと完全に解消してます。ファイルのI/Oが重いときも、たとえばブラウザでネットを見るとか、快適にできます。これだけでもXPから7に乗り換える価値はありそうです。

次に気にいった改善点はタスクバーの機能改善ですね。これがちょうどMac OS XのDockと同じように使用できる。
まず、アプリを起動すると、タスクバーにアイコンが表示されます。で、このアイコンの上で右クリックしてメニューから「タスクバーにこのプログラムを表示する」を選択すると、プログラムを終了してもタスクバーにアプリが登録されて表示されるようになる。実行中はアイコンの周りに枠と白い影みたいなのが表示されるので、ちゃんと動いているのがわかる。さらに同じアプリを複数起動していると、アイコンにカーソルを合わせると、ウィンドウのイメージが表示されて、ここからすぐに目的のウィンドウが表示できる。(下の画像)


これって、Macユーザーには親しみのあるDockの操作そのものですねえ。

さて、操作に関する感想はここまでにして、最後に私の開発している「Tokyo Railways コンピュータ版」がちゃんと動作したかという点ですが、ちゃんと動作してます。まあ、もともとOSに依存しないJavaで作っているわけだし、Windows 7 RC版でもちゃんと動作してたんだから動いて当然ですが。

ただ、まったく改善点がないわけではなく、たぶん、これってVistaでも同じだと思うのですが、ウィンドウの枠がXP・Mac・Ubuntuなんかよりも太いせいで、余計なスクロールバーが出てますねえ。
これってちょっとかっこ悪いから、次のバージョンでは少しだけウィンドウのサイズを大きくした方がよさそうですねえ。

とりあえず、今日のところはこんな感じでした。
今後もなにか見つけたら、日誌にアップします。

しかしまあ、先週のMac miniのディスク故障から始まって、今週はOSのセットアップばっかりやってるねえ。これで1週間で4回目のOSインストールだよ・・・

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

名松線 一部廃止へ

 先日の台風18号で被害を受け、一部区間での運休が続く名松線が、一部区間で廃止になるそうです。

 名松線というのは、三重県の旧伊賀国南部にある名張市と旧伊勢国の中心部にある松阪市の間を鈴鹿山地を越えて結ぶ目的で計画された路線で、計画当時は三重県北部を東西に結んでいた関西本線の伊賀上野から私鉄が名張まで通っていたので、これと名松線をつなぐことで、三重県の伊賀地方と三重県の中心部を直接接続しようと意図されたものだと思います。
 名松線はまず松阪側から建設が始まって、山間部の伊勢奥津まで開通したのですが、ここでその存在意義を失わせる事件がおきます。後の近鉄となる大阪電気軌道(大軌)が大阪と伊勢神宮や名古屋との接続を目指して、奈良盆地から一気に西進し、子会社の参宮急行電鉄(参急)によって名張-松坂間を青山トンネル経由で開通させてしまったのです。
 これにより名松線はその名の目的を奪われ、現在の松阪-伊勢奥津間で細々と運行する盲腸路線として放置されることになりました。しかも需要の多い平野部は参急->近鉄の路線と完全に平行しており、あまりにも険しくて道路整備が進んでいない山間部区間だけがその存在意義となったのです。
 当然のことながら名松線は採算が合うはずがなく、一度は国鉄再建により廃止対象となりました。ところが名松線は結局廃止を免れました。それは名松線の走っている山間部があまりに険しくて、並行道路が整備されておらず、バスが運行できないという理由です。この理由で廃止を免れたのは全国でも岩手県の岩泉線とこの名松線だけです。

 さて、名松線の歴史について簡単に説明しましたが、2・3年前、私はいったいバスも走れないところとはどんなところなのか見てみたくて、名松線に乗りにいったことがあります。その時は名松線で松阪から伊勢奥津までいって、伊勢奥津からバスに乗りかえて名張まで行きました。で、行ってみると、これがなるほどという険しいところでした。狭くて急な渓谷の上の方を鉄道が走っており、眼下に平行する道路が見えるのですが、これが細い。たしかにバスがすれ違えるところは限られていると思います。
 でもねえ、伊勢奥津でバスに乗り換えてみたら、その先はもっとすごい。集落の中の狭い道は軒にぶつかりそうだし、山道は崖が迫ってきていて、カーブにあるすれ違うための場所で、毎回停車して反対側の車を通してから次のすれ違う場所まで進むって言う感じで、おそらく表定速度は15キロくらいしかでてないんじゃないかって感じです。こんなところにバスが走れるなら、名松線を平行する道路なんて楽勝なんじゃないかって気がしました。

 ずいぶんと長い話になっちゃいましたが、この話の結論に入ります。
 私は鉄道が好きで、鉄道がどんどん廃止されていくことには非常に寂しく思っています。今でももしこの路線が残ってたらと思う廃線がたくさんあります。そんな思いが私に「Tokyo Railways」を作らせたといっても過言じゃないでしょう。でもねえ、沿線の方々には悪いが、名松線はちょっといくらなんでもその存在意義がなさすぎる。はっきりいって今まで残っていたのが間違いな気がする。近鉄が青山トンネルを開通させた時点で、廃止にしてしまって問題なかったはずです。そんな名松線が廃止を免れたのは、山間部の不便さのためですよねえ。なのに山間部だけ廃止してどうするの?山間部をバス代行にするなら、全線廃止して、平野部の輸送は並行する近鉄線に任せりゃいいじゃない。代行バスは大阪方面から直通でこれる近鉄の榊原温泉口駅あたりから発着させた方が、観光客には便利だと思うよ。それよりも、名松線の並行区間とその先の山間部の道をちゃんと整備して、せめてバスがすれ違える広さにすべきだと思うよ。このままじゃ観光バスも入れないから観光どころじゃないでしょう。年間5億円以上の赤字を存在意義の薄い路線に突っ込んでいるほど、今の鉄道の状況は楽じゃない。そんな金があるならもっと存在意義の高い路線の存続に使ってほしい。
 名松線を維持する金を回せたら、のと鉄道の輪島-穴水間だって、島原鉄道の島原外港の先だって廃止されないですんだかもしれないと思う。

 最後に、名松線の区間に線路を引いてみたい方は、私の作っている「Tokyo Railways」の東海マップでカバーしているので遊んで見てください。
 それから、近鉄の青山トンネル開通の話は、「東への鉄路」(上巻・下巻)という小説に出てきます。この小説はホントにおもしろいので、興味のある方は是非とも読んで見てください。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い

金曜日, 10月 30, 2009

Tokyo Railways コンピュータ版のソースフォーク

 「Tokyo Railwaysコンピュータ版」のソースからv2.0をフォークさせ、現在リリース済みのv1.x系統のソースコードはメンテナンスモードに移行しました。
 今後数ヶ月間のリリースではv1.x系列のソースコードの修正はバグ修正にとどめる予定です。また、v2.0のリリースは来年の早い時期を目標にしているため、少なくとも年内のリリースでは機能の追加は行わない予定です。ただ、マップの追加と不具合対策は従来どおりに行う予定で、今後も月1回程度のリリースを予定しています。
 v2.0ではちょっと大きめの機能追加を予定していて、数ヶ月の開発期間が必要と見積もっています。v2.0での追加機能の詳細は開発が進んでから発表させていただきます。

↓の評価ボタンを押してランキングをチェック!
素晴らしい すごい とても良い 良い