uirouのひとりごと

不定期に何か書こうと思います。

node.js 使ってみた

ながいながいまえふり(読み飛ばし推奨)

(関数型言語使ってないけれど)最近、プログラムを書くときには関数型言語で書く、もしくは関数型っぽく書くといろいろ考えることが減っていいんじゃないかと思っていて、それと関連して Erlang とかのアクターモデルが私の望んでいるスタイルにぴったりなんじゃないかと思っているわけです。

というのは、thread とか使ってる時に mutex lock とかしなくちゃいけないとかもうね。考えたくないわけですよ。これって関数型言語でよく言われる「副作用が無い」という状態にしておけば、そもそも mutex lock なんて概念は使わなくていいわけです。たとえば、五月雨式にやってくる要求に対して個別に thread を立てて対応をする、ってな事はよくやるわけですが、この時作る thread を副作用の無いものにしておくと mutex lock とかしなくて済んでいいですよね == 考える事減るよね、となるわけです。
といっても、それだけではうまく動かなくて、副作用のある事が書きたくなったりするわけです。例えば、複数のアクセスが同時に来るときに、そのうち一つだけに何か特別な値を返したい時です。この例だと「特別な値を返した事があるかどうかを記憶している部分」を共有して、書き換えないといけない、ということで、副作用を伴う事になります。ここで、アクターモデルだとアクター間でのメッセージパッシングという仕組みでこの副作用をある程度解消できているんじゃないかなぁと思っています。
というのは、アクターモデルだとアクターごとに状態がある事になる……のかな、たぶん。……のですが、とりあえず副作用の無い部分は関数の形で実装して、副作用が発生する所で他のアクターに対してメッセージを投げる、という動作にしてしまえば、個々の関数に関しては副作用の無いものが書けるのかなぁ、という気がしています。例えば、前の例だと複数のリクエストを受けた時にそのリクエストの数分だけアクター A, B, C を作って、それらのアクター A, B, C がある一つのアクター α にメッセージを投げると、そのアクター α が持っている内部状態を更新しつつ、アクター A, B, C それぞれに別のメッセージを投げ返す(うち、一つは特別な値を返す)、という事で実装すればいい、という事になります(蛇足: この場合はアクター α は副作用がある関数を実装していることになります。実際の所、Erlang の分散DB Mnesia はそういう感じで動いているっぽいです)。
ということで、「副作用がない関数を書こう」というのと、「アクターモデルってイイカモ?」というのが最近私がかぶれている概念なわけです。

あ、Erlang というか関数型言語自体、全然使っていないため、ここまで書いてきた事は全部私の理解したつもりになっているにわか知識からの想像です。ということで嘘八百が書いてあるかもしれないので鵜呑みにすると大変なことになるかもわかりません。というかよくわかってる人はコメント欄ででも間違いを指摘して晒しあげておいて頂けると嬉しいです。もちろん、こっそり教えていただくのでも構いません。:D

で、です。Erlang すごいじゃん Mnesia は真の分散DBだぜ(CodeZineの記事の冒頭による)、凄いぜすごいぜ最強なんじゃね?と思って Erlang を使ってみようかなぁと思ったのだけれど、いろいろと覚えなければならないことが多くて大変だなぁ、と感じていじれていなかった所に、「node.js ってなのがあってー」という話題を聞きつけたり、node.js についての Erlang のコミュニティの反応 みたいな例を見たりして、案外 node.js もいいかもわからんね?なんか勢いあるみたいって所とか手続き型っぽい書き方とかそれでもクロージャが書けるのでメッセージパッシングっぽい何かとして非同期I/Oを隠蔽してるし、私としては JavaScript なら Erlang より書きやすいし。とか考えて、node.js が気になっていたわけです。

ということで、node.js をとりあえず使ってみようとしてみましたよ、というお話です。

node.js とは

node.js は「JavaScript で書けるサーバをつくるための何かのうちの一つ」のようです。以下のような特徴を持ちます。

  • 非同期I/O の塊なので、基本的にクロージャを使っての関数呼び出しの連鎖でアプリケーションを記述する(たぶん、このあたりは jQuery を使ってた人たちとかは馴染みやすい気がする)
  • V8 JavaScript Engine を使っているので JavaScript といっても遅いわけではない
  • libev を使って 非同期I/O を実現している(多分 C10K問題 への対応はOKな気がする)
  • JavaScript というだけあって、Web屋さん方面の人々とかが押し寄せてきているらしく、活気があるっぽい?
  • npm というモジュールマネージャがあって、なにやら便利なモジュールがいっぱいある(sudo curl http://... | sh ってするとインストール完了ってどうなのよ…… とかいうのはちょっと気になるケド)

開発環境を手に入れる

node.js 本体を手に入れる

http://nodejs.org/ から先日リリースされた v0.4.0(stable release は 0.(n*2).* (n は 0, 1, 2, ...)らしいです)を download してきて

% ./configure; make; sudo make install

で install は完了です。
あ、make するのに python とか libopenssl とかがあるといいです(python は必須)。
何故か手元の Windows7 64bit版 では configure の時点で python が変なエラーを吐いて駄目でした。まぁ localhost で動く必要はなくなったのでいいですけれども。

npm を手に入れる

npm は node.js のモジュールをインストールしやすくするためのものです。

% curl http://npmjs.org/install.sh | sudo sh

で、install は終了なんですが…… ネットワークの先の sh script をそのまま sudo した sh に食わせるのって…… と思いますた。
でも、その後で

% sudo npm install express

とかしちゃってるのでもうイイですよねたぶん。

node-inspector をインストールする

node-inspector は node.js のデバッグをできるようにする何かです。
すにぺっとさんの node.js でのデバッグ方法 という記事が分かりやすかったのでそこを読んでおくといい気がします。

すにぺっとさんの所でも書かれているのですが、このデバッガは Google Chrome等 の Webkitを使ったブラウザが必要です。

すにぺっとさんの記事の時点では 0.4.* は出ていなかったので少しトリッキーな事をしているようですが、もう 0.4.* が出ているので何も考えずに

% sudo npm install node-inspector

とするだけで良いです。

その他、使いそうなモジュールをいくつか入れる

今回の記事部分では使いませんでしたが、google先生 にいろいろ聞いていた所、express というフレームワークejs というテンプレートエンジン、socket.io が便利そうなので、npm で入れておきました。

% sudo npm install express
% sudo npm install ejs
% sudo npm install socket.io

socket.io については、クライアント側のものも必要っぽいです。

とりあえずデバッグ実行してみる

デバッグ環境の node-inspector の使い方が少しトリッキーでした。というのは、

  • node-inspector は node とは別に起動しておく必要がある
  • node-inspector は localhost からの接続しか受け付けないので、chrome の動いている host と別の host から使うには ssh の port forward のような事をする必要がある

という点でした。

私の場合、

localhost% ssh -L 8080:localhost:8080 node-inspectorの動いているホスト

という形で ssh で port forward させて、http://localhost:8080デバッグ用にひらいて解決しました。

ということで、起動する順番としては、

% node-inspector &
% node --debug hoge.js

というような感じで node-inspector と node.js を実行して、chromehttp://localhost:8080/debug?port=5858 とか(default なら http://localhost:8080 で ok)を開くとデバッガの画面が表示されました。

ブレークポイントで止めたあと、変数の中身とかも詳しくみられます。

いいかんじです!

ちなみに、複数人で同時に同じホストで開発する時とかではポート番号がかぶってしまいそうですが、その場合は node --debug への引数としてデバッグ用のポート番号を指定して、node-inspector には URL の後ろに /debug?port=... の形式でそのデバッグのポート番号を指定すれば良いようです。
具体的には、

% node-inspector &
% node --debug=15858 hoge.js

としたのなら、http://localhost:8080/debug?port=15858 へとアクセスすれば、デバッガへと接続できます。

とりあえず、これで初期設定としてはいい感じでしょうか。うまく何かが作れたら続くかもわかりません。

ここ最近遊んでみたソーシャルゲーについて

とりあえずよくわからないのでソーシャルゲーを遊んでみよう、ってことで、

トラビアンっぽい奴 → 戦国IXA
怪盗ロワイヤルっぽい奴 → ガンダムブラウザウォーズ
FarmVille っぽい奴 → CityVille

をそれぞれやってみて、前よりはわかったつもりになってきたので備忘録的な何かを書いてみる。

とりあえずやってみたものの経歴っぽい何か

  • 戦国IXA
    • オープンβテストあたりからなので多分6ヶ月位。そろそろワールドリセットの時期で、今度の2月7日に参加しているワールド1がクリアされて新しいワールド1+2として生まれ変わるとかそういう状態
  • ガンダムブラウザウォーズ
  • CityVille
    • 1月16日に誘われたので少しやってみた。3日も経たないうちに秋田

という所。上から順にやりこんでる、あんまりやってない、全然やってない、の順な感じ。

それぞれの自分から見た偏見に満ちたゲームの説明

戦国IXA

自分の土地を与えられるので、その土地で資源を生産させつつ、兵士を作って他の人を攻める。
資源は資源の生産量を増やすためとか兵士を作るためとかに割り当てられるので、基本的には生産量を増やしつつ、余裕があったら兵士を作ったりする感じ。
初期だと一回何かの行動を起こす(資源の生産施設をアップグレードするとかの行動を起こす)と1分とか待たされるのが、2分、4分という感じで増えていって終盤になると48時間待たされたりする。分単位の時は張り付いてないと駄目なのがしんどくて、1時間〜4時間位のだと指示するのがめんどい。超めんどい。8時間を超えると会社に行っている間も無駄な時間ができなくなって効率厨な俺ニヤニヤ。24時間超えるとスゲェ気が楽になる。
戦闘でのペナルティはほとんどが兵士を失うだけ。兵士自体は生産量に何の寄与もしないので、生産量を増やす事が目的なら戦闘自体する必要が無いけれど、そうするとゲームの目的がイマイチになるのでまぁ戦闘は参加するよね。
で、戦闘での特典は相手を打ち破った快感かなぁ。どちらかというといかに相手の留守を狙えるかという空き巣ゲーな気もする。ただ、他の人と同盟を組んで集団行動ができるようになるとそれはそれで世界が変わって蹂躙ゲーになる。これはこれで楽しいけれども最後のほうは作業っぽさがある。まぁ、戦闘が兵力の削りあいでしかないので、如何に自分の兵力を削らせずに相手を削るか、という話になって、そうすると敵兵力に対して何倍の兵力をぶつけられるか、という話になるので、一人で攻めるなら空き巣がいいし、多人数で攻められるなら蹂躙できるよね的な。
内政以外の要素として、武将カード(以下武将)という概念がある。武将は主に戦闘で用いられる。個々の武将は能力がいろいろ違うのと、イラストがいろいろなのでまぁ好きに集めたまえ!という感じ。当然レア武将という概念もあって、現実のお金を払うとレア武将が手に入りやすかったりする。

ソーシャルっぽい所は同盟を組んで遊ぶあたり。
前述のとおり多人数で蹂躙するとほぼ敵なしなので、徒党を組むのが良い。同盟は内部に掲示板などがあって交流はまぁ普通にできる。ただ、チャットは30秒に一回しか書けないので、本気な同盟の場合は外部のチャットルームを用意しているところが多いような気がする。

現実のお金を使う部分はまんべんなくいろんな要素に入っている。
武将を手に入れる時とか、施設をアップグレードするときとか、戦闘時に素早く相手に対応するときとか。といってもお金を払えば必ず勝てるとか必ず負けない、というような物でもない。

ガンダムブラウザウォーズ

ゲームの目的はモビルスーツの設計図を完成させること(のはず。多分そう。きっとそう。そうなんじゃないかな)。
設計図は10個とか20個とか集めると完成なのだけれど、完成するまでの間は敵対勢力からの攻撃で一個づつ奪われていってしまう。逆にこちらから攻撃すれば奪うこともできる。攻撃しないでミッションを遂行するともらえるという事もある。
基本的にはミッションを遂行したことによってゲーム内に設計図が生成され、攻撃することでそれを奪い合うという構図。
初期値が10の行動ポイント、攻撃ポイント、防御ポイントってのがあって、レベルが上がったり戦友(後述)が増えたりしたときにもらえるポイントをこれらに振り分けることで最大値が上がる。
敵対勢力から攻撃を受けたときには防御ポイントが、攻撃するときには攻撃ポイントが用いられる。ミッションを遂行するには行動ポイントが使われる。なので自分がどのようなプレイスタイルにするかによってポイントの割り振りが重要となる。
これらのポイントは使うと減る。(攻撃したら攻撃ポイントが減るし、防御したら防御ポイントが減るし、ミッションを遂行すれば行動ポイントが減る)減ったポイントは時間が経つと回復する。攻撃と防御ポイントは1ポイント1分で回復。行動ポイントは1ポイント3分で回復なので、行動ポイントは減るとあんまり回復しない(例えば100ポイント回復するのには5時間かかる)。
で、とりあえず行動ポイントだけに振って設計図ガッポガッポだぜいぇーい!とかやろうとしたら、確かにミッションで設計図は出るのだけれどあんまり出ないので、行動ポイントの回復速度の遅さも相まってあんまり設計図が集まらない。設計図はコンプリートしないと攻撃されることによって奪われてしまう可能性があるので、防御ポイントに割り振っていないと面白いように敵方に奪われていってしまう。なので防御ポイントにもある程度は割り振る必要がある。また、攻撃で敵の設計図を奪いまくるんだぜ、というのなら攻撃ポイントを多めにしておくと、一時期に複数回攻撃できるようになったりしてイイカンジかもしれない。というあたりがポイントの割り振りの悩みどころ。

ソーシャルっぽい要素として、敬礼というのと戦友というのがある。
敬礼は敵にも味方にもできて、敬礼された側は行動ポイント、攻撃ポイント、防御ポイントが増えて(敵方の場合は増えないかも)、敬礼した側は絆ポイントというのが増える。絆ポイントを100ポイントを使うと減った行動ポイント等を満タンにすることができる。なので一気にミッションができたりして嬉しい。敬礼によってもらえるポイントは同じ相手には一日一回しかもらえないが、敬礼はコメントを残す機能も兼ねているため、一日何回やっても良い。というかコミュニケーションはこの方法でしか取れない。
戦友を作ると行動ポイントの上限値等を上げられるポイントが3ポイントつく。レベルが上がったときは1ポイントなのに比べると破格なので、基本的には戦友は上限値まで作る事になるだろう。また、戦友には設計図をプレゼントできる。プレゼントはあくまでもプレゼントなので、プレゼントを与えた側にはあまりメリットは無い。ただ、設計図は完成していないと奪われてしまうため、既に完成した人にプレゼントしておいて、後で溜まったら返してもらう、という戦術も無いわけではない。もちろん、相手が信頼できる相手で、かつ、自分の望んだ時間に溜まった設計図を返すことができる相手である必要がある(完成していない設計図のプレゼントは、完成まであと2枚、という所までしかプレゼントできないため、残りの2枚を自力で貯めている間に奪われてしまう可能性がある。多分他人に預かってもらうような人の場合、簡単に奪われてしまう可能性が高いと思われるので、受け取ってから行動するまでの間が長いと、恐らくは設計図は無くなっているだろう)。
戦友に敬礼をすると絆ポイントが3倍の3ポイント手に入れることができる。なので、効率厨な私としては毎日全員の戦友に敬礼したくなるので危険。特に0時を回った直後とかは重すぎて一人あたり30秒とかかかるので酷い。気づいたら30分とか経ってる。ヤバイ。

現実のお金を使う部分はこれもまたまんべんなくある。
モビルスーツを強化するときであるとか、行動ポイントを回復するときであるとか、どんな攻撃でも一回は必ず守ってくれる無敵シールド(ミノフスキー粒子)を買うであるとかいった感じ。

CityVille

ゲームの目的は自分の街を大きくすること、のはず。
パラメータとしてお金とエネルギーと資材、等がある。お金とエネルギーに関しては時間が経つと増える。資材に関しては自分で畑を世話すると増える。
何かをするのにはだいたいエネルギーが居る。エネルギーは貯まる上限値があるので、一日ほったらかしてさぁやるぞ、というとたまったエネルギー分だけ何かやって終わり、という感じになる。
街を大きくしようとしたりする時に必要な施設に、他人を巻き込まないと駄目なものがあったりする。そういう場合は Facebook をやっている友達に頼むことになる。友達がいない寂しい人は現実のお金を払うとNPCが代わりにその役をやってくれるというオプションもある。
また、Facebook の友達に助けを求めたり、助けたりするといいことがある。基本的には助けたり助けられたりするのにデメリットは無いけれど、Facebook でのその人のボードに何かが書かれる事になるのでウザいといえばウザい。というか、他人に助けを求めるインタフェースは同じ CityVille をやっている人だけでなく、CityVille をやっていない他の人も同じように表示されるため、誤爆が容易になっているところは意図的だよなぁこれ。

ソーシャルっぽい部分が全面に押し出されている印象。
何か新しいことをしたとき、たいてい「Facebook で bloadcast しますかー?」と聞いてくる。ここで OK を押すと「〜が CityVille で 〜 をしました!」とかいうのが bloadcast される。
何かをしようとするときに、同じ CityVille をやっている人がいると便利になることが多い。そういう場合には大体「助けを求めますか?」みたいなのが出てきて、助けを求めると相手の board に「〜ちゃんが CityVille で助けを求めています」というのを書きこんでくれる。こうして相互に依存しあう事になる。

現実のお金を使うシーンはこれもまたいろいろある。
施設は現実のお金を使うと効率がいいのが建てられるし、エネルギーも買えるし、友達がいなくてもゲームを進めることができるし、といった感じ。

まとめるというか全体的な感想

それぞれのゲームのルールはかなり簡単(もしくは洗練されている)。であるので基本を理解した後はどうやってこのルールの上で目的を果たすか、という事になる。これは良いゲームの特徴な気もする。ただ、だいたいにおいて友達関係を結ぶと有利になる、というのが入るため、見ず知らずの人とでも友達関係を結びやすくなったり、身近な友達を引き込んだりする動線となるようだ。
ここで、Facebook と結びついた CityVille の場合はゲームをやっていない他人へもメッセージを送ることができるところが違う。これがあるために個人的には CityVille はねずみ講にみえてしまってワンワンワワン。多分 mixiアプリ も同じような何かなんじゃないかなぁ。

また、ほぼすべてのもので時間がかかるようになっている部分がある。これはだいたいは「一回指示した後規定された時間ほったらかす」というもの。そして大体はこの指示を queue に貯めておいて動作する、というサービスは無いか、あっても2回までとか3回まで程度しか無い。なので間を開けないためには毎日とか毎時間とか世話すると良い、という事になる。これはいろいろと弊害があって、効率厨な私としては何時に〜をセットしないと駄目だから云々、といった感じで考えてしまうことで、日常の行動が制限されてしまうことになった。(昔、ビデオデッキが存在しなかった頃にテレビの放映時間に左右されて生きていたのと同じ事が今起きているのだ。なんという退化か)
そしてこれは面白かったのだけれども、この時間をかけるというのが作業自体は1分もかからずに行って、数分〜何時間も待つ、というだけなのに、「俺の一ヶ月がここに詰まっているからNA!」というような感覚を持ったというあたりがすごく面白い。この概念は確か影響力の武器という本で語られていた何かのような気がする。この感覚が発生すると、「これゲームとしては全然面白くないのに、『今までかけた時間が無駄になっちゃうから』辞めたくない」という状態が発生する。なんという求心力よ。びっくりだね。

それぞれの個別の感想

戦国IXA

なんだかんだでこれらの中では一番頑張ったもの。最初は内政で自分の世話したものが成長するだけで楽しかったのが、だんだんそれだけではどうにもつまらなくなってきたあたりで大きな同盟さんに入ったのが良かったような気がする。同盟には必要最低限のコミュニケーション機能であるところのチャットと掲示板がついていたため、どんな人がどんなことを考えながらこれを遊んでいるのか、というのがわかった(この人は平日昼間でも戦えるのかー、いいなー、みたいな)り、戦闘時に連携するとかいったことができて楽しいという気はした。
また、戦国IXAは戦闘によるペナルティがほとんど無いのがブラウザ三国志とかと違うらしくって、そういう所は主に土日しかマトモに遊べない私のような人にはよかったようだ。ただ、戦闘によるペナルティが大きいほうが、同盟間の政治闘争的な何かが起こりやすくなってそのほうが楽しかったかもしれない。
後半になって内政に関しては1日に一回だけ構ってやればいい、という状態になってからはかなり楽になったため、これくらいの負荷であれば続けててもいいかなぁという気はしている。ただ、2月7日にリセットされるため、続けるのであればまた忙しい事になってしまうのは決まっているのが難点。
といっても、手塩にかけていろいろやってきたものの一部が残るらしくって、かつ、思ったよりも終了時の報酬が大きかったので、「これが最初からあれば『強くてニューゲーム』じゃないか、ということはスタートダッシュであれしてこれして……」とか考えてしまう自分を否定できない。
あ、もし誰かが2月8日から始まる新ワールド(1+2)で遊ぶってんなら一緒の国にするので「どの国のどの方角」ってのを教えてくれると嬉しいです<結局やる気まんまんじゃないか俺

ガンダムブラウザウォーズ

とりあえず自分がガノタだったのが問題なのか、ガンダムでなければ続けていない気がする。戦友は数は作ったけれど対話ができるような掲示板があるわけではなく敬礼で "上書き" されてしまう通信手段があるだけなので、多くて一日数回、それも一回40文字まで、という制約条件での対話はかなり厳しく、見ず知らずの人とだけの戦友関係ではあまりいれこむような要素がなかった。とすると、設計図を集めるという本来の目的が目的となるはずなのだけれど、特にその設計図も集まるわけでもなく、集めて楽しいわけでもない。で、やっていることといえば戦闘はせずに戦友への敬礼とそれで得た絆ポイントを使って任務を遂行するだけ。それで戦友の数が50人を越えたりしてきてもういい加減全員へ敬礼するのが大変でしょうがない。ということでここ最近はかなり義務感で遊んでいる。そろそろ辞め時なのではないだろうか。

CityVille

3日もたなかったのでこれはイイヤ。特に自分の街を大きくする事に意味を見出せない位、引き込まれなかったので。

まとめ的なソーシャルゲー全体への妄想

今回遊んでみたソーシャルゲーはだいたいは個人間の繋がりがクローズアップされている感じで、それがあるとゲーム的に有利になりますよというフレーバーのものだった。たぶん、ソーシャルゲーというとそういうものなのだろうという気がする。
で、今回遊んだ物ではあまりそういう要素は無かったのだけれど、100人規模の集団同士での攻防、といったような何かがあると、多人数で遊んでいるんだなぁというか多人数だからこその難しい話ができたりして、そういうのも楽しんでみたいなぁという気はする。とすると、今遊んでみたものではそういう大規模な人数に対する何かというのはシステム的に提供されていない(せいぜい掲示板程度)ので、はてなアイディアみたいなイカした投票システムであるとか、外部ツールとの連携用の Web API のサポートであるとかいった感じの拡張があるといいなぁとか思ったりする。なんていうかね、スパイを送り込んで云々とかソーシャルハックされてアライアンスのパスワードバレて権限を全部もぎとられたとかそういうね<じゃぁ EVE Online に帰れよ>俺

<A HREF="http://game.watch.impress.co.jp/docs/news/20110124_422440.html">ゲームオン、ファンタジー小説「ロードス島戦記」をオンラインゲーム化 水野良氏をスーパーバイザーに起用し、全世界に展開</A>@impress.co.jp

  • うぁー。ロードスなつかしー。
  • 最近こんな版権オンラインゲー増えたよねー。

以上。単なる感想でした。

<A HREF="http://www.4gamer.net/games/095/G009575/20110114058/">【鈴木謙介】「『魔法』が使える〈ゲーム〉の世界」</A>@4gamer

ゲームってのはルールが大事なんですよのおはなし。
アイテム課金はこれに一石を投じているのだよねぇ。RMTが嫌われる原因のうちの一つもコレと思う。
要はそのルールっての(記事の中では魔法だけれども)が、人によって変わってしまっているのだよね。アイテム課金は買いませんという人やRMTはやりませんって人はそういうルールだし、アイテム課金バンザイとかRMTやるやるーって人はそういうルール。
残念なのはそういうルールの違う人が同じ土俵で遊んでることなので、そこをなんとかしたいんだけれども…… 同じ土俵で違うルールだからいいんじゃないかとかいう向きが居たりしてそれはそれで扱いに困ったちゃん。

<A HREF="http://bizmakoto.jp/makoto/articles/1012/21/news002.html">ユーザーがお金を払いやすくなる仕掛け――アイテム課金が優れている理由 (1/3)</A>@bizmakoto

アイテム課金は元々タダのデータなので価値なんて無いように見えるのになんで払うのか、という事を

誰も、最初から仮想アイテムが欲しくてゲームを始めることはない。バーチャル高級肥料が欲しくて、農園アプリを始める人はいないのである。

といった感じで説明していて「なるほどよくわかった」と思った。
課金するための価値を作り出しているわけだ。

<A HREF="http://www.4gamer.net/games/046/G004603/20101217002/">3D立体視に対応しないとマイナスになる時代が来る――池尻大作氏や稲船敬二氏らが出演した,立体Expo 2010セミナー「3Dゲーム/各ゲーム会社の現状の取り組み,今後の展開」聴講レポート</A>@4gamer

これのタイトルだけ読んで、ガキの頃に「未来になったらテレビとかもスターウォーズで出てきた空中に投影するようなのに全部変わってるんだ」と思ってたというのを思い出した。うん。いいね。3Dはコンテンツが無いから云々とかはまぁいいとして、3Dが普及してしまえばそれを使うのが当たり前になったりするんだよたぶん。