SINCE : 2001.05.29
MOVED INTO HERE : 2006.01.01
遊星ゲームズ
FrontPage | RSS


2007/02/14 23:33

オブジェクト指向とかテンプレートエンジンとかじゃ解決しない
 日記

 問題は

「大変なことになりはじめてるコードを急いで修正するとさらに大変なことになる」

 という負のループをなんとかしてほしいということで。
 まあ普通は工数が限られてるから、急いで修正する。早く終わらせるほど会社は得をするわけだから、そういうインセンティブがある。
 しかも「大変なことになりはじめてる」既存部分を修正するなんてもってのほかだ。無駄なリスクだし、無駄な工数だし、会社にとっては損以外の何者でもない。

 しかしエントロピーは手を入れるたびに増大するし、そんなわけで、プログラムはどんどん大変なことになっていく。
 テンプレートエンジンとかオブジェクト指向とか、フレームワークとか、そんなの問題を複雑にするだけだ。全員がうまく使えばいいのかもしれないけど、うまく使う人なんてそうそういない。しかもプログラムはいろんな会社を渡り歩くのだ。

 そこで考えた。もう新しい言語を流行らせるしかない。

  • マジックナンバー(定数と変数以外のあらゆる値?)を使ったらエラー
  • 1ファイル500行を超えたらエラー
  • 関数が50行を超えたらエラー
  • 一行が100バイトを超えたらエラー
  • あらゆるネストは4段階目でエラー
  • 引数が4個を超えたらエラー
  • 関数一覧や変数一覧みたいなドキュメントがないとエラー

 あと変数の数に制限とか。適切でない変数名やコメントは許さないってのもいいかも。
 うーん、流行らなさそう……。

 いやしかし、ほんとは、こういう方法は本質的でない。きれいに修正するためのインセンティブにはならないし、制限を増やせば増やすほど、どこにでもときどきいるハッカーがハックコードを書く動機を生んでしまう。
 とするとあれか。まずは小さなことから、ソースの冒頭にコメントで
「いつもきれいに使っていただきありがとうございます(ぺこり)」
 と書いてみるとか……。

 いやまあ、こんなこといいだすときというのは、仕事でそんな目にあってるわけですが。


[2007.02.18 21:09]なかた :
「変数一覧」は全ての変数をひとつの配列に押し込むという極悪なやりかたでより悪い方向に流れる気がするですよ。結局、ダメなコードを作りこむ最大の原因はダメなプログラマ、なんだよなあ。


[2007.02.20 23:09]てらしま :
>全ての変数をひとつの配列に押し込むという
 たしかに。多次元配列を安易に組めるPHPは現に、わりとそうなってるような気も。というか最近の仕事でもそんなの見た(笑) クラスメソッドが、いろんなものの入った配列を渡しあってるさまは泣けます。
 しかしこれはPHPがそういうアフォーダンスを持ってるともいえるわけで。というか持ってるに違いないと最近ほんとに思うけど。


2007/02/06 21:49

アウグスブルグ
 ボードゲーム

2007.02.06 21:49 てらしま
アウグスブルグ
Augsburg 1520
2006年
alea
K.Hartwig
2-5人(4-5人)
90分
thx to play:game

 じつはいけてる街系ゲーム。
 資金と勝利点を天秤にかけながらゲームを進めていく。最近では見慣れたスタイルだ。わりとめずらしいタイプのオークションがあったりと、多少複雑になってはいるものの、基本的はサンクトペテルブルグだと思えばいい。
 最終的には勝利点を目的とするわけだが、その過程で、発展のために金がいる。だから序盤は金を稼ぐ手段を確保することに力を注ぐのだが、それが過剰になってはいけなくて、いいタイミングで勝利点のほうにシフトしていかなければならない。

 余談になるが。
 こうした街系スタイルを完成させたのが、サンクトペテルブルグというゲーム。と思っている。むろん珍しいシステムではないのだが、意識的に「リソースと得点」にテーマを絞ってシンプルにデザインされたという意味で、ゲームデザインにおける一つの思想を作り出したのではないか。実際、のちの作品に大きな影響を与えているように思う。
 サンクトペテルブルグは非常にシンプルなゲームだった。また、非常に整然とまとめられたシステムがすばらしかった。
 わたしはあれをこそ「オブジェクト指向」と呼びたいのだが、これまた例によって逆にわかりにくい言葉だ……。これまでの「手続き型」システムとは一線を画す。オブジェクトを定義し、そのオブジェクトの集合としてシステムが構成されている。のである。
 たとえばサンクトペテルブルグから「建物」をとりのぞこうと思えば、これは比較的簡単に実現できるだろう。逆に、たとえば「株券」というオブジェクトを導入してみてもいい。これも簡単にできるのである。
 じつに大きな拡張性を秘めたゲームだったのである。それなのに拡張セットなどが作られていないあたりは潔いというべきだろう。
 そう考えてみると、サンクトペテルブルグはただのゲームではなかった。「ある種のゲームシステムのフレームワーク」そのものとでもいうべきものだった。
 そんなサンクトペテルブルグ・フレームワークを素直に使って、オークションを導入したシステムを作ってみたらどうだろう。
 それが、アウグスブルグである。
 そういう見方ができる。

 基本はサンクトペテルブルグだ。毎ターン、金と勝利得点が、自分の場にあるリソースにしたがって産出される。この場のリソースは、サンクトペテルブルグでは「職人」「建物」「貴族」という3種のカードだったが、アウグスブルグでは「階級タイル」というもので示される。
 この階級タイルが「財力」「身分」「役職」と3種ある。「財力」が高いほど毎ターンの収入が高く「身分」が高いほど毎ターンの得点が大きい。
 このあたりはまさにサンクトペテルブルグだ。実際、そう思っていたほうがわかりやすいだろう。
 しかし、ちょっとルールにわかりづらいところがある。それは、リソース変換の過程が一段階増えているため。
 サンクトペテルブルグでは、金で直接、建物や職人を買った。
 だがアウグスブルグでは、金で買えるのは「貸付証」と呼ばれるカード。これは5人いる貴族に金を貸したことを意味するカードで、それぞれの貴族に対する影響力の証でもある。
「貸付証」を手に入れることのできる枚数、つまり「金貸してくれ」といいよってくる貴族の人数は、3番目の階級「役職」で決まる。
 この「貸付証」を使って、オークションをする。つまり
「貴族への借金をチャラにしてあげるかわりに市長にしてもらう」
 とか、そんなことをやるゲームなのだが。
 つまりそこで、一段階余計にリソース変換をおこなわなければならないのだ。しかも間にオークションを挟んで。
 この流れが、はじめはわかりづらい。

 プレイヤーは貴族ではなく金貸しなので、まず貴族に金を貸さなければ社会的地位も名誉も手に入れることはできない。舞台設定的にはそういう意味になる。
 ゲームとしてはそれが、直接金を支払うのではなく一度カードに変換してから使う、というプロセスで表現される。
 リソース変換の過程が増えたといっても、ただ増えたわけではない。このゲームに特有の変則オークション(というかビッディングといったほうが近いだろう)に「貸付証」カードを使うからだ。
 このビッドシステム、意外とテンポよく、しかし悩ましい。これこそ、アウグスブルグのおもしろさの中核をなしている。
 ……ていうか、そうじゃないとサンクトペテルブルグそのものだし。
 とりあえず、貸付証の枚数でビッドをおこなう。
 このビッド、普通のオークションとは違い「ドロップしていない全員がフォロー(コール)するまで」続けられる。ポーカーと同じだ。一人になるまで回すのではなく、ビッドの段階では複数人が残る。
 そして、残ったプレイヤー全員で、ビッドした枚数の貸付証を公開する。ここで、もっとも金額の高い(実際にはカードに書かれた数値の高い)カードを公開したプレイヤーが勝者となる。(「数値の合計」ではなく「もっとも強いカード」のみを見る)
 そのプレイヤーは貸付証カードを破棄して、つまりそれだけの借金をチャラにする代わりに、貴族に口をきいてもらい社会的地位を高める。
 ビッドを導入することでインタラクションを高め、サンクトペテルブルグ以上に「もりあがる」多様な展開を実現した。
 というか、このビッドが、実に楽しいのだ。

 むろん、ビッド以外の部分も練りこまれている。「教会を建てないと25点までしかいけない」などというルールは、強引にも見えるが秀逸だ。
 プレイしていても、あらゆる面で「作りこまれている」という感覚がある。傑作である。
 問題点は、やはりはじめは流れが掴みづらいことと、加えてルールブックがわかりづらいこと。それに、文字しか書かれていないさまざまなタイルのわかりづらさ。
 ドキュメントの整備されていないオブジェクト指向プログラムほど迷惑なものはないのだが……、というのはわたしの仕事の話だが……。
 逆にいえば、これがサンクトペテルブルグ・フレームワークの欠点といえる。
 システム自体はオブジェクト単位で切り分けられ、一見整然として見える。だが、オブジェクトはそれぞれが(ほとんど)独立して存在できるわけで、ということは、このゲームでいえば、階級タイルの種類分、3つのゲームを同時に進行しているようなものということができる。所有者は3ゲーム分のルールの解析をしなければならず、、またそれを流れに沿って整理しつつインストする必要がある。
 ……なんか、大聖堂でも同じことを書いた気がする。こういうつくりかたをされたゲームが増えているんだろうか。
 でも、やってみればぜんぜんすぐにわかる、というあたりもいつものことなのだ。

 見た目は地味だけど、確実におもしろいのです。たぶんはじめの印象より簡単だし、ゲーマーも充分満足できるだけのものを持ってるし。独特のビッドの独特の楽しさもあるし。傑作。

cut4.jpg

2007/01/29 02:43

大聖堂
 ボードゲーム

2007.01.29 02:43 てらしま
大聖堂
Die Daulen der Erde
2006年
Kosmos
Stadler
2-4人(4人?)
2時間
thx to play:game

 まあ多少、コンポーネントなどに不満はあるが、ゲーム自体はたしかに傑作だと思う。次の年間ゲーム大賞?などとちまたでは囁かれていたりもするゲーム。
 まあなんというか、デザイナーの乾坤一擲の気迫が伝わってくるゲームだ。

 見てのとおり、とても凝ったつくりのゲームだ。7800円である。
 写真に写すのを忘れたけど(あと撮りかたがヘタクソだけど)、6個のパーツからなる木製の大聖堂があって、これが1ラウンドに一つずつ組み立てられていく。これが完成したら、つまり6ラウンドで終了というわけだ。
 そこまでビジュアルにこだわっておきながら、なぜカードにはドイツ語の文章しか書かれていないのか、というあたりが激しく疑問。せっかくだからこのへんもアイコンにしてくれればよかったじゃないか。

daiseidou.jpg

 いろいろな要素があって紹介が(おそらくインストも)面倒なのだが、はじめてしまえば、見た目よりは理解しやすい。
 サンクトペテルブルグ風の金/得点トレードオフを基本とした街系ロジックと、簡易オークション的な?と、モルゲンランドのような「アクションに人を配置していく」要素と、電力会社の発電所みたいな職人カードとか、みたいないろいろを力いっぱい組み合わせた……、みたいなゲーム。
 ってなにいってるかわかりませんが。
 細かく説明はしないけど、とりあえずラウンドの進行を書いてみる。

  1. 資源カード、職人カードの獲得
     手元の労働者(毎ターン12人に補充される)を支払って資源カードを入手するか、金で新たな職人を雇う。
  2. 建築家の配置
     建築家コマ(一人3つ)を、盤上のエリアのいずれかに配置していく。ここでおいた場所にしたがって、次のフェイズでおこなえるアクションが決まる。
     ちなみに、建築家を置く順序は時計回りでも勝利得点順でもなく、巾着袋からランダムに引いて決める。ただし、早くでた人はお金を払わなければ配置できない。(このへんが簡易オークション的な)
  3. 建築家アクションの実行
     得点が入るとか、実力者とのコネを作るとか、資材を市場で買うとか売るとか。

 で、この第3フェイズのアクションが全部で14(!)ある。全部書いちゃおうかな。

  1. イベントカード
  2. イベント防御
     ここに建築家を置くと悪いイベントを回避できる
  3. 羊毛工場
     第1フェイズで余った労働者はここにくる。人数分の金をもらえる。
  4. 特権カード
     特殊能力カードをもらえる
  5. 勝利ポイント獲得
     ここに建築家を置くと直接勝利得点がもらえる。
  6. 建築資材/木
  7. 建築資材/石
  8. 建築資材/砂
     第1フェイズでとったカードにしたがってそれぞれの資材をゲット
  9. 税金
     税金をとられる。ただしここに建築家を置くと払わなくていい。
  10. 職人の獲得
     職人カードを無料でゲット
  11. 追加労働者
     日雇い(次のラウンドだけつかえる労働者)を2人ゲット
  12. 市場
     資材を売ったり買ったり
  13. 大聖堂
     ここで、手元の職人カードにしたがって資材を得点に変換。
  14. スタートプレイヤー
     ここに建築家を置くと次のラウンドのスタートプレイヤーになる。

 いやー大変です。なんかもう、思いつくかぎりのものをできるだけつめこんだぜーみたいなゲームです。
 ひとつひとつは簡単だけど、やはり多い。
 でも、これが意外と、見た目よりずっとわかりやすくプレイできるんである。
 ラウンドを計画フェイズと実行フェイズに分けたことが効を奏している。このゲームでは、ほとんどあらゆる行動をラウンド前半に予約し後半で実行というプロセスをとる。これがいい。
 そのへんがこのゲーム最大の特徴ということになるだろう。いろいろあるのに整理されていて、1ラウンドやればだいたいわかるようになってるのである。

 上にも書いたけど、このシステムはモルゲンランドによく似ている。「インストはめんどくさいけどはじめてしまえばすぐわかる系」だというのも共通している。
 それはたぶんこういうことだ。

  • デザイナーは「ゲームに多様性を持たせる」ために「ロジック数を増やす」ことを選んだ。
  • しかし、これはゲームを煩雑にする。
  • それを解決する方法として「このラウンドに実行する予定のアクションをあらかじめ宣言しておく」というシステムを作った。
  • 「アクションにあらかじめチットを配置する」ことでそのアクションを「選択」したのだということが明確になり、プレイヤーが自分の行動を把握できるようになった。

「インターフェースと実装の関係」みたいな(←かえってわかりにくい)。

 逆にいえば、ほかのプレイヤーは自分が選択していないアクションを把握する必要がないわけで、初プレイでも一つ一つ段階的に習熟していくことができる。だからこれほどの数のロジックを並立させることができている。
 個人的に、モルゲンランドは非常に好きなゲーム。あのシステムのいいところがこうして陽の目をみたことがうれしい。

 ただ、欠点もある。それは「例外処理」だ。
 なにしろロジックが多く存在することは間違いないわけで、それはけっきょく処理しなければならない。ロジック一つ一つについて「こういうときはどうなんだろう」みたいな話は必ず出てくる。
 いかに把握しやすいといっても、ルールブック中で解読しなければならないページが多いことに変わりはない。このゲームでも、あちこちでルールの誤解が多発しているようだ。

 という感じで、実は欠点もけっこうあったりする。でも見た目どおりの傑作なのはたしか。おもしろいです。
 しかしさて。どうなんでしょう。賞とるかなあ。なーんか、意外と評価低くてゲーマーから「なんで〜」といわれそうな予感もあるなあ。
 個人的には、大聖堂モルゲンランドを比較すればモルゲンランドに軍配を上げる。個人的には、もしも大聖堂が賞をとるのなら、モルゲンランドはそれ以上のゲームだったことになると思っている。
 実際は、モルゲンランドの評価は「ドイツ年間ゲーム大賞非ノミネート」「ドイツゲーム賞9位」というものだったわけだが……。

cut4.jpg

[2007.02.26 11:49]nasika :
はじめまして。
大聖堂については仰るとおりの印象を私も持っていて、読んでいて非常に共感しました。確かに「なんで~」と言ってしまう予感はしますね。
モルゲンランドを遊んでみたくなりました。


[2007.02.28 23:06]てらしま :
 はじめまして。コメントありがとうございます。
 レス遅くなりました。大聖堂いいですよね。
 ただ、モルゲンランドについてはあまり期待しないほうがいいかもしれません。評価が分かれてるゲームのようなので(^^;


2007/01/28 04:26

カタン戦略の誤解
 日記

 けっきょくのところ、カタンをやる機会はいまでもけっこうあるんである。なので、戦略についてはやるたびにいろいろ考えてしまったりする。
 カタンは超超定番で、戦略や戦術についての解説サイトもわりとある。これはもう、ボードゲームとしては異例といっていい。
 最近は気軽に遊べるゲームが増えた。それは個人的にはいいことと思うけど、そのいっぽう、ゲームはすごい速さで消費されていくようになってしまった。ひとつひとつのゲームをじっくり研究する機会がまったくなくなってしまったのである。たとえカタン以上の傑作が現れたとしても(残念ながらわたしは見たことがないが)、カタンのように深く研究されることはもうないだろう。そう思うとちょっとさびしいのです。

 でなにを話したいかというと、上に書いたことはあまり関係なくて(ぉ、カタンの戦略に関する誤解のことだ。
 いや、誰が誤解してるのかは知らないが、わたしの認識と世間の認識がずれていると感じる瞬間が多いのでそれを書いとこうかと思った。
 要は、わりとアクセスのあるカタンの開拓者たち 戦略に書いたことも環境が変われば嘘かもよと。逆にわたしとやるときは通用しない理屈があるわけで、そういうこともあるよと。
 下敷きはこちらのサイトの戦術論。ちなみにこちら、いいことがいろいろ書いてあるサイトです。

  • できる限り交渉をする
     たぶんこれが一番違う(笑)。初期配置がちゃんとやれてれば、交渉で手に入れなければならない資源はそれほどない。あっても数枚だし、それを手に入れれば伸びるのが明白だから出してもらえない(あでも、一応いってはみる)。他人を伸ばすのもヤダ。がわたしの考えかたなんだが、これがまた一般にはだいぶ違う。
  • 目立ちすぎない
     わたしも以前はそう思ってたし、たしかにそうだけど。でも勝つときは目立ってしまう瞬間はあるわけで、ということはむしろ、大事なときに目立っていないことのほうが重要なんじゃないかと最近は思う。そこから逆算すると「序盤に目立って叩かれたよーorz」という展開をあえて作っておくと終盤動きやすいなと。
  • 「泥木戦略」
     一般によく使われる言葉。「開拓地戦略」とか「最長交易路作戦」などともいわれる。しかしわたしはこういう作戦で勝ったことがあまりない。勝てないなら戦略じゃないじゃんと思うんだけど、やる人はたくさんいるからそうでもないのかも。わたしのやりかたが悪いのかも。
     余談だけどわたし、プエルトリコでも、出荷する作戦で勝った経験がほとんどない。けっこう戦略が偏るほうです。ていうかたいていは「最速の計画」を捜してる気がする。
  • 港は最終手段
     またこれ。他人と交換できるなら港は使わないほうがいいという人がいる。わたしは「他人との1:1交換は3:1港交換と同程度の価値」と思ってるわけですねー。
     そういうメンバーと卓を囲んだときはしかたないから積極的に交換しようとするわけだけど、やはり付け焼刃ではうまくいかない。ときどき交換の頻度が想像を超えてて、そういうときは勝てない。
     だからといって、普段から勝ちつづけてる交渉主義の人がいるとはどうしても思えないのだが……。
  • 序盤はカードを引かない
     序盤から引かなきゃ足りないですよ。生産力よりカード優先だったりしますよ。
     あと「ボーナスでトップに立ってしまうと叩かれる」というのもあるけど、これも最大騎士力に関しては問題ナシ。単独トップにならないから。なぜなら、騎士は開拓地を犠牲にして引いてるから〜♪

 あと、たぶんわたしがもっとも重視してることなのに知人以外の口から聞いたことがない話。

  • 島の広さ
     対角線に置く。3辺離れた場所に置く。基本的に多少目が劣っても狭くするほうを選びます。もちろんこれはわたしがカード信者だからだけど(きれいに狭くなってると、いわゆる「泥木」の人が伸びなくなる)。
     理想の初期配置ってのがありましてね……。

     ,木,羊,泥, 
    鉄,麦(家p1 2),羊(家p3 4),木, 
    木,麦(家p4 12),羊,木(家p1 6),泥
    羊,鉄(家p2 10),泥(家p2 8),麦, 
     ,砂,鉄,麦, 

(資源の色はデタラメ)

 うーん美しい。まだ初期配置も終わってないのに海際しか残ってません。数百回プレイしてるけど、現実に見たのは1度だけです。

 むろんカタンはマルチゲームだから、プレイヤーによってゲームが変わる。おそらく、わたしの周囲のプレイヤーにある種の偏りがあるんだろう、というのはよく感じる。たぶん誰でもそれなりに偏った環境にいて、それぞれの環境に最適戦略があるのだ。


2007/01/27 13:44

キル・ドクターラッキー デラックス版
 日記

 チーパスゲームズキル・ドクターラッキー』のデラックス版なぞというものが発売されてた。ちなみに5000円だったと思う。
amazonamazon
 →のパッケージは旧版ね。
 デラックス版では、ボードはこれまでの鬱憤を晴らすかのようなフルカラーで、なんとコマも付属してるから自分で用意しなくていいらしい。
 いやあ、ぜんぜん悪いゲームじゃないんだけど、っていうかチーパスのゲームって実は作りこんであると思うんだけど、5000円といわれるとどうなんだそれ(笑)。

 コンポーネントに金をかけず、ボードは紙に白黒印刷、コマは自分で用意しましょうというのがチーパスゲームズ。
 しかし、One False Step for Mankindの前後あたりからだろうか(しっかり追っていたわけじゃないからくわしく知らないけど)、少しずつ様子が変わってきた。

You Need: 400 poker chips (100 each of red, green, yellow, gray), 40 counters for each player, two 6-sided dice, 3 paperclips and 1 master token

 うん、それゲーム本体より高いね、っていう(笑) もうこのへんになると、コンポーネント作ったほうがいいんじゃない?という感じになっている。
 コンポーネントに金をかけないということはシステムだけで勝負ということで、コンポーネントに失敗してゲーム性が破壊される(ドラゴンライダーとか)心配はないかわりにすばらしいコンポーネントがゲーム性を補完することもできない。
 それはそれでひとつの方法だなと思ってたんだけど、やっぱりだんだんとそれじゃものたりなくなってきたのか(笑)

Kill Doctor Lucky(play:game)
Kill Doctor Lucky(Nagoya EJF)
Kill Doctor Lucky(BoardGameGeek)


FrontPageを



Copyright © 2001-2024 てらしま(terrasima @gmail.com)