何もやってない。今週何もやってないよ。
土日に時間決まってるような何かがあるとそれが解決するまで頭がいっぱいになってしまうんだけど、この土日は日曜夜にそんなことがありまして土日は特に何をするでもなく終わた。
まあ土曜日は部屋を片付けてゲームやってたら一日終わったので何もしてないわけでもない。部屋は本をまとめてどけるだけで片付くんだけど、さてこのどかした本はどうしたものやら……。
最近やってるゲームはPSPのロストヒーローズ。
SDのガンダムとかウルトラマンとか仮面ライダーが戦うコンパチヒーロー?の3DダンジョンRPG。3Dダンジョンやりたかった(けどエルミナージュがDL版出ない)のと評判がよさそうだったので買ってみた。
やってみてまあまあ面白いんだけど、正直3Dダンジョンの意味さっぱりねーよなこれ。 いや3Dダンジョンの意味とか言い出すとそりゃどのゲームもそれほど無いような気はするんだけどさ。
常にミニマップが表示されてるのでべつにミニマップだけ見て進んでても困らんし(最初の一回だけはマップ無しで歩かないといけないが)、全体マップはいくらでも見放題だし、ドアとかトラップやらの位置も自動で全部マッピングしてくれる親切仕様だし、べつに2Dでもよかったんじゃないかなぁと。トラップとかも全然無いんだよねぇ。今中盤っぽいけどダメージ床しか出てきてない。
メニューからいつでもペナルティ無しで拠点に帰れちゃうので、帰れなくなるかもという緊張感が無いのが残念。一方通行ドアとか無いしね。一回反対側から開けないと通れないショートカット用のドアはあるけど、それってショートカット用だし。エルミナージュ2とか2番目のダンジョン入ったところで後にも先にも進めなくなって詰んだぞ。
それでもサクサク進むのでまあまあ面白い。キャラ作成は当然無いんだけど、仲間になるキャラがたくさんいてそれぞれが固有のスキルツリーを持ってて技を増やせるのが楽しい。中盤くらいになるとめぼしい技も覚えなくなってくるんだが、序盤ではほとんど意味がなかった素材を使った武器強化が使えるようになってきたのでこれまたいい感じだ。
そんな感じでいいところ悪いところはあるんだけど、やっぱりなんか惰性でプレイしてる感じだなぁ。ストーリーに面白いところはなんらないし、親切すぎて謎解きなんかも無いし、武器強化も各キャラ一個しか装備できないうえに誰でも何でも装備できるし、一武器につき5回までしか強化できないので強い素材5個くっつけたらしばらくずっとそれ使う。ちょっといろいろ親切すぎてやりがいが無いのが残念な感じか。
ボスとかは強いんだけど負けてもペナルティ無いしな……。 ボスの強さもどうしようもない感じなのが気になる。 死ぬとHP100で復活のアイテム使うくらいしかないんだけど、100だと全体攻撃一撃で死んでしまう。 さらに回復指定が死んでる人相手にできないので、復活→回復は1ターン内で出来なくてその間に攻撃をくらわないことを祈るばかりになる。 復活しつつHPもっと回復するアイテムはまだ売ってない。
全体回復も今のところないおかげで、ボスの全体攻撃はとても痛い。 全体攻撃くらいまくるとジリ貧で全員回復にまわるか死なないことを祈ってゆっくり回復するしかなくなる。 誰か死ぬとさらに復活に人手をかけることになるが、パーティ4人なのでもう完全にジリ貧だよ。
属性防御みたいなので凌げってことなんだろうか。 でも装備一個しかできないし、装備強化も5回までしかできないからあんまり防御系の強化入れる余地が無いんだよねぇ。 まあそれでもだいたい何回かやれば倒せるくらいのバランスなんだけど。
しかしこのゲーム続けたものかどうか悩むなぁ。面白くないわけでもないが、特別面白いってこともなく、買っちゃったし普通に遊べてるから続けてる程度なんだよな。その時間で他のゲームやった方がいい気もしてきたなぁ。
ちょっと前だけど哭牙も買ったので書いておこう。3DSのシューティング。
一人プレイしかやってないが、正直な感想を書くと、これ何が面白いのかわからん。 俺は何か遊び方を間違ってるのかもしれない、というくらいにわからん。
まあ普通にSTGとして遊べばいいんだけれども。
任意スクロールの360度シューで、通常弾は一発ずつしか撃てないが、ステージ中20枚だか使えるカードを使うと一時的にパワーアップしていろいろ撃てたりする。という感じのゲーム。一発ずつしか撃てないといっても弾速は速いので気にならない。
360度なんだが撃つ方向はLRを押しつづけると砲塔がそっちに旋回して……という感じで決めるので一発ずつしか撃てないことよりこっちのほうがきつい。まあその辺でいろいろと駆け引きがあるようなゲームのようだ。
あと最大4人まで同時プレイできて、カードの中には死んだ仲間を復活させたりとか、自爆して画面全体に大ダメージという強力プレイ専用のアイテムもある。 旋回が遅いのも複数人でカバーしあって動けということなんだろうね。
これはCOOP前提なんじゃないか?
一人でプレイすると、まず一部のカードが死にカードになる。仲間復活は自分で使っても意味ないし、自爆は使うとただ死ぬし。カードが来る順番はランダムで一度に4枚までしか表示されないのでそれらを引くと邪魔にしかならない。復活は即座に無駄撃ちすればいいんだけど、自爆は使いもできないし……。
砲塔の旋回が遅いので一人で敵のど真ん中につっこむと終わる。しかし時間制限もないので、ゆっくりとじりじり進みながら敵の索敵範囲外からぺちぺちと通常弾を当てていくのが楽だ。通常弾は画面外まで届くようだが、敵の索敵範囲はおおむね画面内だ。
そんなプレイをしてるので1ステージがめちゃくちゃ時間かかる。さらにそんなに面白くない。じゃあつっこめばいいんだろうけど、つっこむことにメリットもなくてさてはてどうしたものやら。
スコアシステムは武器毎にx3とか倍率がついてて、それを使ってる間に沢山あてると大量スコアって話なんだろうと思う。だがこのゲーム、残機もなくて、死んだらステージ選択に戻るだけなのでスコアにゲーム的な意味はなさげ。一応ハイスコア記録はされるんだけどネットランキングとかあるわけでもないしなー。 COOPやってる時はハイスコア取った人に勲章がつくっていうのでみんなで協力しつつ勲章を狙いに行くってプレイを想定してるのかな? 一人ではクリアしたら勲章つくのでスコアに意味はない。
ステージ選択制も意味わからん。最初はどのステージからでも始められて、どこかクリアするとその隣接するステージしか選べなくなる。それで3つあるどこかの最終ステージをクリアすればエンディング。最初から最終ステージの隣から始めることもできるし、同じステージをなんども行けるので最終ステージ以外をうろうろしてることも可能。だが、それに何の意味があるんだ?
ストーリー的に各ステージは訓練で、最終ステージのみ実戦ということになってるのでストーリーは最終ステージにしかない。自分の好きな長さでプレイできますって言ってるんだが、3DSなのでべつにパタンと閉じれば中断、開けば再開できるので1プレイの長さなんぞ自分で勝手に調整できる。1プレイといっても残機があるわけでもスコアが連続するわけでもなく、ステージの連続にはなんら意味はない。最終面に行ってエンディングを見るのが1プレイの終わりなだけ。あと最初は好きなステージ選べるだけ。うーん、最初以外隣接するステージのみ選べるという必然性は無さそうな気がするが……。
各ステージは難易度が選べるんだけど、まあ好きに選べるので好きなのを選べばいい。高難易度だと敵が硬くなって長くなるのでしんどいけど。ただボスモードという難易度があって、そのステージのボスだけ最高難易度で遊べる難易度なんだけど、これは楽しい。ゆっくり進むステージ部分が無くて後先考えずにアイテム連打でボスと戦えるのは楽しかった。必要な時にアイテムが引けるかという運ゲーになる部分はあったけど、まあ。
結局のところ俺が遊び方を何か間違えてるんじゃないかというくらいよくわからなかった。間違えてる可能性があるとすれば一人で遊んでるところだろうが、3DSを持ち寄ってこんなマイナーなゲームを遊ぼうと言える素敵な環境が無いのが残念だ。ソフト1本で4人みんな遊べるのでそこは安心だが。
あ、音楽はすごくよかったのでサントラが欲しい。Amazonではうってなかったのでまだ買ってないけど、そのうち買いたい。
哭牙といっしょに3DSLLを買って初めての3DSだったんだが、立体視有効にしてたら酔った。めちゃくちゃ酔った。 何故かしらんが最近立体視のゲームですごく酔うんだよ。まあ最近つってもほとんど遊んだことないけど。
映画とかは大丈夫だったり昔立体視の研究をしてたときも大丈夫だったんだけど、ちょっと前に立体視でPS3のソニックをやってみた時に即酔ってしんどかった。そして今回3DSでも酔った。最近になってゲームの立体視で酔うようになったんだろうか。謎だ。
映画が大丈夫なのは画面サイズがでかいのとゲーム程集中しないからじゃないかと思う。 3DSは画面小さくて二眼式の視差バリアだから丁度いい場所がすげー狭くて疲れるのも原因なのかな。 でもPS3のソニックやって酔った時はでかい液晶テレビに偏光眼鏡だったんだよなぁ。 やっぱり集中度の問題なんだろうか。
3DSやってて酔いまくったおかげか、最近は立体視切ってても3DSいじってるだけで気持ち悪くなってきてしまう。 条件反射みたいなもんなんだろうか、慣れれば大丈夫だろう。 慣れればと言ってしまうと、酔うのは慣れるのでそりゃ慣れれば大丈夫なのは当然なんだよ。
PeerCastStationを外部プロセスからいじるのにHTTP経由のJSON-RPCが既にあるんだけど、これは指定したTCPのポートにbindできないと使えなくて、しかしポート指定の設定はGUIかRPC経由じゃないとできないという状況になってた。
この問題を解決するのにローカルマシン内なら別口のRPCを使えるようにしたいと思って兼ねてから検討していたのであった。
実現方法として名前付きパイプを検討してみたんだけど、クラスの使い方を見るになんか思ったのと違う気がする……?
よく調べてみると、どうもWindowsの名前付きパイプはUnix系のそれとはだいぶ違うようだ。
Unix系の名前付きパイプは、その名の通りパイプに名前をつけたような物で、ファイルシステム上にパイプを作って開くともう一方が開かれるまで待ち、もう一方が開かれると通信開始。片方は読み取り専用、もう一方は書き込み専用にしないといけないようだ。
Windowsの名前付きパイプは専用の名前空間に作られる。サーバが指定した名前で開くともう一方の接続待ちになり、クライアントが接続されると接続開始。読み書き指定は双方向にもできる。さらに一つの名前で複数の接続待ちをしたりとか、別なマシンの名前付きパイプの接続しちゃったりもできるらしい。読み書きの単位もバイトストリーム単位じゃなくてメッセージ単位にすることができる。
どうもWindowsの名前付きパイプは、名前付きパイプというよりUnixドメインソケットに近い感じ。別マシンにも出せちゃうけど。
NamedPipeServerStreamとかのMonoでの実装はどうなってるのか確認してみたが、Unix系でも律儀に名前付きパイプで実装してた。確かに名前的に想像する動作としては間違ってないんだけど、Windowsとは動作がだいぶ違っちゃうよな。複数待ち受けができないし、双方向通信もできないし。
仕方ないのでWindowsでは名前付きパイプ、それ以外ではMono.Unixを使ってUnixドメインソケットで通信するようにしたい。
だがMono.Unixのクラスを使うにはMonoのアセンブリを参照する必要がある。Monoでビルドする場合はいいんだけど、VisualStudioでビルドする時にもMonoがインストールされてないとビルドできなくなっちゃうってことですかー。やだー。
どうにかならんかとMonoのソースを見ていたが、Unixドメインソケットを使う辺りは特にMonoに深く依存してるわけでもなさそうだ。この辺のクラスをコピってきて使っても.NETで普通にビルドできそう。実行時にはMonoじゃないと上手く動かんだろうけど、それは問題ないので。
そんなわけでMono.Posix内からUnixEndPoint、UnixListener、UnixClientをコピってきてみた。あとは実際通信する部分を書くだけだなー。