moon Gamer - ボードゲームブログ

テーブルゲーム(ボードゲームやカードゲームなど、電気を使わないタイプのゲーム)と、その周辺の話題を中心にした記事や写真を広く公開している個人ブログです。

カテゴリ: デジタル

moon Gamer

中途半端に時間が空いたので、ゲーム倉庫に4時間ほど籠もって、以前から頭の隅にあったアイデアをまとめる作業をしてみた。簡単にいうと「18xx」や「Star Trader」のようにパラメータ管理の煩雑なゲームを、PC なり PDA なりケータイなり iPhone なり PSP なりでプレイヤーのサポートするシステムを構築するための技術的検討だ。

と書くと大げさに聞こえるけれども、実はそんなに大層なことではなく、出来る出来ないのレベルならすぐにでも出来る話だったりする。それを実現するためのデバイスに上記のような選択肢があって、どれも一長一短で悩ましい。SDK をいじくり回すのが面白くてなかなか先に進まないけれども、そのうち何とか形にしてみたい。

ところで、最近 Python がマイブームである。楽しすぎる。

あとはデジカメ撮影術と Photoshop のレタッチテクニックについてお勉強を少し。そろそろ新しいデジカメが欲しいなーとか思いつつも、長い間使っている FinePix F11 がすっかり手になじんでしまって迷い中。

    このエントリーをはてなブックマークに追加

moon Gamer

自分が仕事で主に使用しているデータベースは MySQL で、クセもコツもある程度は把握している。最初はこれを使おうとも考えたが、環境を変更するたびにデータベースの再インストールをするのは面倒だ。今後、ひょっとしたら公開する可能性もある(まさかユーザ全員に MySQL をインストールさせるわけにはいかない)。無償データベースには PostgreSQL や SQL Server 2005 Express Edition 等々いくつかあるが、上記と同じ理由によりこれも却下。

ではどうするかというと、以前から知識としてだけはあった小型・軽量の組み込みデータベースである SQLite を使ってみることにした。で、Visual C++ なら以下のページに詳しく書いてあるので、そのままやればよい。SQlite のバージョンが古く、さらに Express Edition だが、Professional Edition でもだいたい同じ手順で行える。

[SQLiteで組み込みDB体験(2007年版)]
http://codezine.jp/a/article/aid/1252.aspx

これでめでたしめでたし… ではつまらないので、個人的に小物ツール作成やホビー用途に使用している Borland C++ Builder 6(以下BCD6)でも SQLite を使ってみることにする。

SQLite は上記サイトの説明と同じように以下からダウンロードする。

[SQLite Download Page]
http://www.sqlite.org/download.html

ダウンロードするファイルは「Source Code」の「sqlite-amalgamation-3_5_1.zip」にする。これならソースファイルがひとつにまとめられていて扱いが簡単だからだ。これを解凍したらソースファイルとヘッダファイルは同じフォルダに入れておく。なお、SQLite サイトには、他にコマンドラインツール類もあるので、必要ならそちらも落としておくといいだろう(もちろん後でも構わない)

次は BCD6 の設定を行う。メニューから「ファイル」→「新規作成」→「その他」から「コンソールウィザード」を選択する。

moon Gamer

ソースの種類を C にして、プロジェクトソースはダウンロードした「sqlite.c」を指定する。ここまでやったらひとまず(メイクではなく)コンパイルしてエラーが出ないかを確認しておく。警告が山ほど出るのは気にしない(これは VC++ でも状況は同じ)。

※以前のバージョンでは 一部 struct 定義中にある const の変数が初期化されていない旨のエラーが発生していたが、現在のバージョンでは修正されたようである。

続いて以下のページのソースコードを sample.cpp として別途テキストエディタで作成する。
http://codezine.jp/a/article/aid/1252.aspx?p=2

上記で作成した sample.cpp を sqlite.c と同じプロジェクトに追加したら、おもむろにメイク。が、実はこのままメイクすると sample.cpp の36行目付近でエラーが出る。

moon Gamer

解決方法はいろいろだが、ひとまずこの行の前後にある文字列リテラルを単に1行にしてしまうのがよい。

これでメイク完了となるはず(相変わらず警告だらけだけど)。出来上がった実行ファイル(Project.exe とかなんとか)をコマンドプロンプトから実行して、以下のような結果が表示されたらOK。

moon Gamer

この下準備は何をしているのかというと、メモリ上にデータベースを作成する実験だ。これによって、高速かつ高機能なデータベースを簡単に利用することができるようになる。軽量データベースとはいえ、以下のように扱える SQL 言語は豊富に揃っているのでものすごく便利だ。

[SQLite が認識できる SQL]
http://www.net-newbie.com/sqlite/lang.html

これで開発の下準備は出来た。
今後、ヒマな時間を見つくろって、総合的な「18xx」管理ツールの作成を進めてみたいと思う。

    このエントリーをはてなブックマークに追加

moon Gamer

「1846」の資産管理システムもどきを Excel のマクロ(VBA)を使って開発した話は少し前に書いた。以前から「18xx」の管理システムのアイデアは頭の中にもやもやと持っていて、機会があればまとめようとは思っていたので、今回、「1846」のおかげでこれを形することが出来たのたのは大きな前進と言って良い。ひとまず目標は達成したとも言える。

ところで、こいつの開発中にあることに気がついた。

「18xx」では、資金の扱い方が、他でありそうで実はあまり例のないルールによって構成されている。銀行が中立の資金プールとなっているのはよくあるルールだが、総資金額が定められており、資金が銀行から枯渇するとゲーム終了条件を満たす(ただし枯渇した後は資金量に上限がなくなる)。つまりプレイヤーは、有限の資金を取り合うゼロサムゲームを行っているようなものだ。

何が言いたいのかというと、「18xx」において資金とは、何かに付随するプロパティではなくオブジェクトそのものではないかということだ。

具体的には、ゲームで扱うすべての $1 札は個別にオブジェクトとし、各々の「$1 札オブジェクト」の所有名義を参照/更新することで、それら所有者の財産を管理したり計測する処理が簡単に実現する。すなわち「18xx」において収入や支払とは、各 $1 札の所有権を、現在の所有者から別の所有者へ移行することを純粋に意味しているのである。

ただこの方法では、$1 札単位でオブジェクトを管理することになるので、その数(つまりお札の枚数)が多くなるとオブジェクト数(というかインスタンス数)も増大する。総資金量の多い「18xx」だと、初期の銀行資金は2万ドルくらいのオーダーとなるだろう。資金が少しでも動くたびに、平凡に2万回のループを行うというのは、安全ではあるけれども技術者感覚ではあまり美しい実装には思えない。

もっとも、実際のところ総オブジェクト数(インスタンス数)が万のオーダーくらいなら、アルゴリズムを工夫して高速化を図る手法を模索する考え方は決して非現実的でもない。しかしここはもう少し楽をする(あるいは拡張性に柔軟性を持たせる)という意味で、データベースのお世話になれないものか考えることにした。

(つづく)

    このエントリーをはてなブックマークに追加

moon Gamer

先日プレイした「1846」が面白かったので、右のような資産管理システムを Excel で組んでいる。実を言うと、先月から 18xx の汎用管理システムを Visual Studio で C++ を使い、勢いに任せてバリバリ組んでいたのだけれども、きちんと設計していなかったこともあり、仕様が膨らむだけ膨らんだあげく、なんか全然まとまりが無くなって頓挫していた moon Gamer

で、一度それを破棄し、今度は改めて Excel を使って、これまでの試行錯誤を整理整頓する形で、まずは単一のタイトルに絞ってまとめる方針を立ててみた。「18xx」は、それぞれに細かくルールが異なり、例外処理も多くある。それらをすべて包括したトータルなシステムをいきなり作り上げるのはやっぱり難しいので、ひとまず出来るところからやってみようと軌道修正した訳だ。「1846」は、ルールのボリューム的にはちょうどいい感じだったので好都合だったということももある。

まだ開発途中もいいところだけれども、上の画像をクリックすると大きな画像が表示されるから、わかる人には何をしようとしているのかがわかるはず。「1846」に特化した部分もあるし、後のことを考えて拡張しやすくした部分もある(例えば 1846 には PAR の概念がない)。デバッグやらテストの時間が十分に取れないので、実際のゲームに投入するのは当面先になりそうだけれども、個人的な研究ツールとしてはこれでも十分だ。

ただ、使い慣れていないこともあってやっぱり VBA を駆使するのは面倒なので、ある程度これで組み上がったら、いよいよ普通に Windows アプリとして作り直すつもり。さてそれはいったいいつになるやら…。

    このエントリーをはてなブックマークに追加

tambourine_dcさんが、Yahoo! が提供する地図情報共有サービスである「ワイワイマップ」を利用して、全国の輸入ゲームショップとゲームサークルのマップを公開しています。

[輸入ボードゲーム販売店]
http://waiwai.map.yahoo.co.jp/map?mid=RTxBn27Em92zrwSvgRXALCuon4DLEHzgyrRKRus-

[ボードゲーム・サークル]
http://waiwai.map.yahoo.co.jp/map?mid=RgQS6h_Em92k3E8YJ6TCzGo0VBxgR0..euY6RZ0-

[ワイワイマップ]
http://waiwai.map.yahoo.co.jp/

Yahoo! アカウントがあれば、上記のマップへ「参加」することで、該当するスポット情報を自由に投稿することが出来るようになります。スポット情報の投稿には、文章だけではなく画像や動画も掲載することが出来ます。なお、上記の2マップとも公開マップなので、スポット情報を閲覧するだけなら誰でも(アカウントを持っていなくても)可能です。

これは大変に意欲的かつ有意義な試みではないでしょうか。
興味のある方はぜひご参加ください。

    このエントリーをはてなブックマークに追加

moon Gamer

現在でも評価の高い「Puerto Rico (プエルトリコ) / Alea」のPC版ソフト「Puerto Rico the PC Game」を先日購入しました。少し前まで、BoardGameGeek でこいつの宣伝バナーがたくさん貼られていたので、このソフトの存在をご存じの方も多いかと思います。数ゲームをプレイしてみたので、ちょっとだけレポートをば。

インストールしたのは WindowsXP(SP2) のマシンへで、もちろん日本語環境下です。PC版プエルトリコは全てフル画面モードで動作します(設定で解像度を変更することも可能ですが、1画面中の情報量は変わりません)。僕の環境で動作自体に特に問題はありませんでしたが、ゲーム起動時に日本語入力がオンになっているとゲーム中にIMEが誤動作を起こすことがありました(他のフル画面ゲームでもたまにあります)。

プレイヤー数はオリジナルと同じで3~5人で遊びます。もちろん人間が不足していてもコンピュータプレイヤーが相手をしてくれます。コンピュータプレイヤーの「強さ」の調整も可能で「Biginner」「Amateur」「Professional」の3段階があります。ネットワークを介してオンライン対戦も可能なようです。このあたりはまだ試していないので詳細は不明。

設定を変えることで、拡張セットの建物を入れることも出来ます。この場合、ルール通りにセットアップする(各プレイヤーが順番に1種ずつ使用する建物を決める)ことも、使用する建物をランダムに決めさせることも可能です。なお、建物名はドイツ語ではなく英語です。ちなみに「Hospitz(宿屋)」は「Hospital(病院)」となっています。初期の日本語ルールにもあった誤訳なのですが、訂正されていないところを見ると、英語圏であれはもう「病院」ということになってしまっているようですね…。

moon Gamer

基本的なインターフェイスは、BrettspielWelt(BSW) にあるプエルトリコを参考にしているようです。特に、画面の右に集中している役割カード・プランテーションタイル・貨物船などの状況や、VPマーカー・入植者などの残量などの情報管理のレイアウトはとてもよく似ています。ただし、プランテーションタイルを配置する島と建物を配置する場所のレイアウトは異なっています。BSW の方は、全プレイヤーの状況を一覧出来るようになっていますが、こちらは他のプレイヤーのボードはクリックして切り替えることで見られるようになっています。

moon Gamer

※上はゲーム終了時の画像なので他プレイヤーのVPが表示されていますが、ゲーム中はもちろん見えません。

進行は実にてきぱきと進みます。他のプレイヤーが何を行ったのかは、左下の小さなエリアにテキストで表示されます。ルールに慣れていればこれでも問題ないのですが、ややぶっきらぼうな印象はあります。例えば「監督」は一瞬で終わりますので、ぼんやり画面を眺めていると、いつの間にか商品が増えていて「あれ?」と思うこともありました。

他にも、プレイヤーが選択しようがない必然的な処理は自動的に行われます。例えば、商品を1種しか持っていない状態で「船長」が選択された場合に、その商品を乗せることが可能な船と十分なスペースがあれば、自動的に積載処理が行われます。なので「監督」→「船長」のコンボ(?)が起こると、いつの間にか商品が増えたな、と思ったら即時出荷されてVPだけ増えている… なんてことになります。

※設定を行えば、何かあるたびに停止してユーザのクリック待ちにしたり、進行速度を遅くすることは可能です。

moon Gamer

ゲーム中にプランテーションと建物を3D表示するモードに切り替えることも可能です。もちろんマウスでぐりんぐりん回ります。でもゲーム的には何の意味もありません。moon Gamer というか見づらいだけなので使えません… ちなみにこの3Dモードでゲームを進行することも可能です。

さてさて、肝心のコンピュータプレイヤーの強さですが… 数ゲームプレイした限りはかなりイケます。少なくとも「Professional」なら十分な歯ごたえがある相手として楽しめるでしょう。特に終盤は確実に最善手となる手を打ってきて決して間違えないので、詰め将棋的な展開になったらもう勝てる気がしないです。

序盤に関しては「Professional」プレイヤーの初手は100%「建築家」しか選びません。それも「インディゴ工場(大小どちらか)か「小さい市場」のどちらかだけを買います。「宿屋(病院)」に走るとか絶対にないです。moon Gamer ゲームを通しての戦略は、出荷型も建物型も両方ともありましたので、「インディゴ工場」か「小さい市場」を手に入れることを起点にして思考処理が作られているようです。

PC版「プエルトリコ」は、無駄な演出がなくリアクションも地味ですが、オリジナルの面白さをそのままの形で忠実に引き出そうとしている意図は十分に感じます。時間と相手の都合を気にしないでいつでも「プエルトリコ」を楽しめるというのはなかなか贅沢なことで、しばらくはこれで退屈しないで済みそうですね。

moon Gamer

ところで上の画像は僕が初勝利した時のスコアボードです。なんと同点トップで、お金と商品数の合計判定で勝ちとなりました。いや、危なかった~ moon Gamer

・ドイツ語版の販売元(Dartmoor Softworks)
 http://www.dartmoorsoft.com/pn/html/index.php
・英語版移植の販売元(Eagle Games)
 http://www.eaglegames.net/

    このエントリーをはてなブックマークに追加

この週末は久しぶりにゲーム会の予定はゼロ。お誘いもありましたが、たまった仕事の片づけと別の趣味に専念したいということで、残念ながらキャンセルさせていただきました。申し訳ないっす。

moon Gamer

これも久しぶりでプログラムのお話しなど。このところ妙に傾倒している ActiveBasic が昨日バージョンアップしました。フリーの64ビットコンパイラってだけでもすごい話ですが、個人的には単項演算子や代入演算子に対応してもらえたのがものすごく嬉しい。それだけで生産性というかモチベーションがかなり上がります(おおげさ?)。

ActiveBasic は現在も精力的に開発が進んでおり、その意味でも頼もしい限り。次期バージョンではデータベースやネットワーク回りの開発環境強化がアナウンスされており、これが完備されたら仕事にも使えそうなので大いに期待しております。すでにいくつかの小物ツールを書いていますが、そろそろ大きなアプリでも作ろうかな。ゲームもそのうち。

moon Gamer

ところでプログラム言語で注目しているのがもうひとつあって、それがこの「なでしこ」。プログラムに関わる命令が全て全角の日本語で記述出来るということで、登場時には話題騒然となりました。もっとも僕は最初「なんだこりゃ?」と相手にもしてなかったのですけれども、1年ほど前にふとしたきっかけで使ってみたら意外と強力&便利だったのでびっくり仰天。以来、愛用させてもらっております(とは言うものの、今のところ簡単なバッチ処理にしか使っていませんけれども)。

「なでしこ」のコードは日本語なのでわかりやすく、これが想像以上に素晴らしいのですよ。例えば、"「あいうえお」で「う」が何文字目かを表示" という記述が何をやっているのかプログラマではなくてもわかりますよね?

Webプログラミングの世界では Ruby on Rails がまた面白そうなネタだし、実際に仕事に応用出来そうなフレームワークなのですが、調べたり覚えたりする時間が果たして取れるかどうか… これから花粉症とも闘わなければならないというのにmoon Gamer

    このエントリーをはてなブックマークに追加

moon Gamer

なんとまたコンパクトデジカメを買ってしまいました。
今年3台目 orz
購入したのは「FinePix F11」です
http://fujifilm.jp/personal/digitalcamera/finepixf11/

Caplio GX8 を購入して2ヶ月も経っていないわけですが、これを使い続けていくうちにまた別の機種が気になり始めてしまいまして…

実はもともとデジカメは趣味のひとつではあったのですけれども、どうもそれに拍車がかかってしまったみたいです。ということで、発売されたばかりながら評判の良い F11 を購入しました。

余談ですが、個人的には FinePix はこれで3台目だったりします。1台目は98年ごろに購入した FinePix700 で、99年には FinePix1200 を買っています。久しぶりの FinePix ですが、当然ながらその時代の機種とはとても比較にはならないくらい高機能です。

F11 を試し撮りをしてみてわかったのは「素直」だということ。オートモードでのホワイトバランスは良好で、大きな崩れは今のところほとんどありません。僕はほとんど使いませんが、高解像度&高感度時の画像はとてもきれいで、感動的ですらあります。使わないのがもったいないくらい。このクラスのデジカメとしはトップクラスの画質じゃないでしょうか。

そして何と言っても手ぶれ補正が強力なことは特筆すべきでしょう。これはゲームプレイ時の撮影には強力な武器になります。高感度時の手ぶれ補正がきちんと働いていることもうれしいですね。

背面ボタン類のレイアウトが良く、解像度や感度(ISO)の設定が素早く行えるのは素晴らしいです。液晶画面上のメニュー操作性にはややクセがありますが、それほど悪くはありません。

まだ使い始めたばかりで細かなクセをつかむのはこれからですが、使い倒すのが楽しそうなカメラです。

    このエントリーをはてなブックマークに追加

moon Gamer

またデジカメを買いました orz
「Caplio GX8」(リコー)です。
http://www.ricoh.co.jp/dc/caplio/gx8/

先日購入した LUMIX FX9 でも、普通の撮影するにはほとんど問題ないのですけれども、細かいところで自分のニーズ(被写体がゲームプレイ中の光景)とのズレが気になってしまいまして… いやほんとに些細なことですし、そんなの気にする人はいないと言われたらそれまでなんですけど。

で、「Caplio GX8」なんですが、これがなかなか良いのです。まず本体が大きめでどっしりとした重量感がありグリップしやすいのが○。僕は手が大きいので、小型の FX9 はかなり扱いずらかったのですけれども、こいつなら問題ありません。GX8 には手ぶれ補正機能が付いていませんが、このグリップ感のおかげで、数百枚の試写(オート)ではほとんどブレませんでした。

オートでのホワイトバランスもかなり安定しており、色の再現具合がなかなか良いです。FX9 はこのあたりが今ひとつ好みではなかったんですね。画像そのものは全体的にノイジーな印象ですが、ブログに掲載する時にはレタッチ&縮小しますので無問題。レタッチの手間を考えれば、ノイズよりも色味の方がずっと重要だったりします。

PCへの転送ツールが今ひとつとか、液晶が小さいとか、背面のボタンが押しずらいとか、まぁ気になる点がないわけじゃありませんが、とにかくしばらく使い続けてみようかと思います。

ところでリコーからはさらに上位の高級機種の発表が先日ありましたが、サンプル画像を見てもそんなにそそられなかったし、値段もかなり高いので、すぐに入手可能な GX8 を選択しました。といっても、GX8 だって今年の5月に発売されたばかりなんですけどね。

ちなみに FX9 については、これはこれで今後も使い続けます。使用頻度は下がるでしょうが、このコンパクトさと強力な手ぶれ補正は捨てがたいものがありますから。適材適所で使い分けようかと思います。

    このエントリーをはてなブックマークに追加

moon Gamer

デジカメを買い換えまして。
LUMIX DMC-FX9 という機種です。
http://panasonic.jp/dc/fx9/

LUMIX といえば、少し前のモデルで浜崎あゆみをCMに使い、かなり派手に宣伝していたので、ご存じの方も多いかと思いますし、売れている機種ですのでお持ちの方もいらっしゃるでしょう。薄くて軽くてとてもコンパクトなサイズのデジカメで、強力な手ぶれ防止機能がウリの優れものです。

僕の手には少し小さめではありますが、何にしろ持ち運びにはとても便利です。購入してすぐに、まずはメニューを開いてみて、いろいろな機能を試しながら試験的に300枚ほど撮影し、細かなクセを把握するところから始めてみました。まだ完全には感覚的に使えるようにはなっていませんが、それは時間と撮影実績が解決してくれることでしょう。

ところでこれまで使っていたのは SONY DSC-V1 という機種です。
http://www.sony.jp/products/Consumer/DSC/DSC-V1/

moon Gamer

これは決して悪いカメラではなく、それどころか優れた機能を多数持っている優秀なモデルです。設定項目は FX9 より多いくらいですので、実に遊び倒しがいのあるデジカメだと言えましょう。

このカメラを2年ほど使いこなし、ブログに公開しただけでも1400枚近く、トータルの撮影枚数では数万枚にも及びます。こいつはどこに行くにも持ち歩いていましたから、正直なところまだ強い愛着を持っています。

そう、いかにデジタルとはいえ、カメラは自分の分身であり、そして良きパートナーなのです。自分の見たことや体験したことをしっかり記憶してくれるこの機械は、僕にとって共有体験をした仲間とも言うべき存在でした。

ではなぜ FX9 に乗り換えたかといえば、オート撮影モードの具合がどうも悪くなってしまってきてしまったことに尽きます。ゲームセッション中の撮影は、一瞬のタイミングを逃さずに素早く行わなければなりません。ゲーム中に長々と撮影していてはプレイ進行に支障をきたし、他のプレイヤーに迷惑をかけることになってしまいます。なので、どうしてもオート撮影に頼らざるを得ません。

昨年の末くらいから、DSC-V1 のオート撮影モードでなぜかホワイトバランスが大きく崩れることが多発し始めました。設定を見直して調整したり、Photoshop で強い修正をかけてごまかしていたりしたのですが、どうにも限界になってしまいました。DSC-V1 側でマニュアル撮影モードにすれば問題ないのですが、上に書いた理由でそれは難しいのです。DSC-V1 の調子が悪くなったおかげで、崩れたカラーバランスを画像修正する数多くのテクニックを知ることになったという皮肉な副産物を僕に与えてはくれましたけれども…

ということで、今は FX9 を持ち歩きながら、体に馴染ませているところです。

    このエントリーをはてなブックマークに追加

このページのトップヘ