2019年 10月の投稿を表示しています

DetroitBecome Human を一周やった(ネタバレなし)

ネタバレなしを頑張って書くが、このゲームはあなたの物語であって、初プレイはレビューはもちろん、攻略や噂とかいったネタバレな情報を一切なしに、とりあえず最後までプレイするのが一番楽しいと思う。
つまり、この記事を見るまえに遊び始めることをおすすめする

生存するにせよ死亡するにせよ、世界は進んでいくんだ。
遊んでいるうちにもう一つの分岐を見たい!などとチャプターをバックすることもせず、まっすぐ最後までやったほうがいい。最後までやってからアナザーの結果として見るべき。

自分は、主要キャラ全員生存せず、何人か死んでしまった。それもまたひとつの物語。
なんならコナーは冒頭の任務でしんでしまった。それでも綺麗に丁寧に物語がつながるようになっていて、場合によっては後の話に影響を及ぼしていると思えるシーンもあった。


よかった

  • 豊富な選択肢とストーリー
    • ゲームの制約は一定あるものの、割と明確に A か B か C か、さて?みたいに選択肢を与えられる
    • 順番に話を聞こう、みたいなことができるパターンもあるにはあるが、多くはないので、会話一つとってもどれについて話そうか結構考える
    • 何を選んだかで、物語は大きく変わる、それが良いものかもしれないし悪いものかもしれない
      • さらに言えば、ここで選んだ選択肢や行動が、後々のストーリーにも絡んでくる。
      • 例えば aaa を選択することによって xxx と不仲になり bbb を余儀なくされる、みたいなことがありえる。
    • その選択を、世界中の人たちはどれくらいの割合で選んだのか表示されるのもなかなか面白い
      • おれの最高の選択が 10%しかいない!みんなこのイベントみれてないのか!みたいな
    • デトロイトの台本は映画のそれよりも相当多いらしい。
  • ありえそうな未来感
    • 舞台が 2038 年、シンギュラリティを超えた世界。
    • このデトロイトの日常であるアンドロイドが様々なお仕事も一定できるような、世界にはまだまだ遠い
    • しかし昨今 AI やディープラーニング AR/VR といった xR ドローンなど、新たな技術とそれを利活用できる世界になりつつある
      • ざっくりあと 20 年後の世界、どうなっているかなんてわからない。
      • イライジャ・カムスキーやサイバーライフ社のような存在が出てきても何も不思議ではない
    • なんとなく、ありえそうな未来の姿が描かれていると思う。
    • そういえば余談だけれど、このありえそうな未来 WatchDogs でも同じような感想をもった。

ビミョー

  • 基本見るゲー
    • コナーの捜査シーンがもうちょっと深くなったりして、そういうゲームになってもいいなあとか思った
      • そうするともはや別ゲー
    • もうちょっとアクションシーンが強くてもいいと思った
      • そうするともはや別ゲー
    • 突然のボタン表示(QTE)が出てきて、ミスると死んでしまう場合がある
      • カットシーンになってもコントローラーから手放さず集中。
  • 全エンディングみるのが大変(?)
    • 2 週目はしなくていいかなあと思ってしまったのでやっていないのだけど、途中のチャプターからやっても前のチャプターの選択が変わることはないだろうので、全部みるには毎回最初からやる必要がある…???
    • 途中の分岐点からだけやってもいいけど、前チャプターから影響していることも多いのでむずかしそう

プレイした何人かで集まって 1 週目プレイした感想戦や振り返りをしながらの 2 週目プレイをしたりすると楽しいんじゃないかなと思った。というか選択が多いだけに語りあいポイントがおおそう。
忘れたころにもう一度やりたいと思う。

Detroit: Become Human オフィシャルサイト | プレイステーション

前後の記事

Next:
Prev:

WordPressのメタデータをつか

WordPress にはお手軽便利に関連データを出し入れできる、メタデータとよばれる仕組みがある。
メタデータ API - WordPress Codex 日本語版

これを使うと、例えば、投稿に対するリアクションをつけるようにしたり WordPress の標準にはないデータを乗せることができるようになる。

ちなみに、似たような…というか大体同じ認識のカスタムフィールドなるものもある。これもメタデータ。こっちは登録時?に設定できるようなもの、と思っている。管理画面で入れると、テンプレート側でもその値に合わせて何か表示できる、みたいな。
カスタムフィールドの使い方 - WordPress Codex 日本語版

メタデータにいれるものは serialize に通せるものならなんでもよいようで、配列はもちろん、__sleep()と__wakeup()メソッドを実装していればクラスでも問題なくいけるっぽい。たぶん。
add_metadata() | Function | WordPress Developer Resources
PHP: serialize - Manual

で、この post_meta 系の関数、それそのままだとちょっと大変になる場合があったので簡単にラッパークラスを作った。
wputil/PostMeta.php at master · sters/wputil

こんな感じでつかえる。

$reaction = new PostMeta(get_the_ID(), 'reaction');
echo 'Smile! ' . $reaction->get()['smile'] . ' times';

オクトパストラベラーをひととおりやった(ネタバレなし)

オクトパストラベラーをやった。

ネタバレしない程度をがんばって感想文などなどを書いてみる。


プレイ状況

  • 全員のシナリオはクリアした、裏ボス?にたどり着いたけれどちょっと苦しすぎてあきらめてしまったので、全クリアはしていない(もはやネタバレ感)
    • 裏ボスだけ急にめっちゃつよい…
  • 総プレイ時間は 120 時間くらいかなあ Switch の具体的なプレイ時間ってどうやってみるの Steam みたいにみれるそれがほしいなあ、とかおもった。
  • サブストーリーもだいぶ残っている 6-70%くらいはやったと思う。
  • 最初に選んだのはオフィーリア。最後にシナリオを終わらそうと思ってたのでずっと固定。
    • ナッツも全部投入したのでムキムキ神官になった。
    • そのほか最初に一緒になったのが、テリオン、サイラス、ハンイット。彼らで組むパーティが一番強くなってた。

よかった

  • 戦闘システム
    • 毎ターン 1 ポイントずつたまる上限 5 保持できるブースト 1 度に最大 3 まで使用して攻撃やスキルの威力を上げることができる
    • 弱点つくとブレイクできる 1 ターン飛ばせる + ダメージ増加
    • ボスによっては弱点が切り替わったり、ブロックされたりする
  • ドット
    • 2.5D 立体ドット。
    • 戦闘終了後の背景の階段の向きが変わっていく様子や、マップでの前後感がすごい。
    • ボスのドット絵の壮大さもすごい。ロマサガとかもこんなんだっけ、ボス戦になるとクソデカドット絵になって圧倒的感を出すやつ。
  • マルチシナリオ(個別)
    • 笑いあり、涙あり、熱さあり。
  • マルチシナリオ(個別)
    • 赤目の正体とその背景、登場人物。そして 8 人へのつながり
  • キャラ固有能力
    • 4 種類のフィールアクションを 2 キャラずつできる。
    • キャラの育ち具合やシナリオ進行度、ジョブのバランスをなどをみながら、パーティー組むべし。
    • スタッフロール見るにこれ生音か…!壮大。

ビミョー

  • マルチシナリオ(全体)
    • 個別キャラのお互いのストーリーにもうちょっと入ってくるかと思ったけどあんまりなかった。。
    • イベントごとにパーティーチャットなるものが開けるけど、そのときにいるメンバーが該当して初めて開けるのでうーん…
    • 最後に集まってラストバトル!かと思ったら違った。
    • 裏ボスはあるけど話が全体的にキレイにつながってない、個別シナリオで出てきた〇〇が△△と繋がってて〜とか後付けされて?こじつけっぽい()謎は残された…的な伏線感はあるけどそれつなげるのは無理では…。と思った。
  • ワクワク感
    • 商人のスキル BP パサーを使って、育ってるキャラの奥義を初手にすることで 9 割くらいの戦闘が済んでしまうことに気づいてずっとそれ。
    • それでレベル上げするのはちょっとしんどかった。
    • 序盤はワクワクして捕獲もしてたけど後半はもう捕獲諦めてた
    • 狩人スキルねんちゃく糸、同じく狩人アビリティのラストアクトあたりが便利すぎ、狩人/盗賊/学者あたりの多段ヒットできる系と組んでブレイク推しできるので、ボスもぬるくなりがち。
    • 序盤のまま便利〜と選んだキャラのまま進んだ。なので Lv40 くらいになるころには装備も整っていたのでアップデートも少なく、目新しさや新しい装備をしてみるワクワク感は少なかった。
      • 本当にまんべんなくやっていかないと、一方的に強いキャラ、装備が整ってしまうので、低レベルのシナリオ/土地を余裕で突破できてしまう。
  • 裏ボス
    • メインシナリオと関係ないところからつながっていくので、あるんかい!となる(たまたま見つけた)
    • ちょっと強すぎでは感…。
    • やるべきことをすべてやらないといけなさそうな印象
      • 全員のレベルをしっかりあげる、装備を整える、便利アビリティを覚えるなど。

結構たのしかったので、ぜひ!

OCTOPATH TRAVELER(オクトパス トラベラー) | SQUARE ENIX

PHPのクラスをたどって図で出すツール

あまり知らないクラスのコードを読んでいると、あっちのクラスにいったり、こっちのクラスに行ったり、コレ何だったっけ?、がたくさんでて大変。で、それを説明するのも大変。
というわけで、サクッと簡単にクラスの繋がり方を可視化するような何かを書いた。

GitHub - sters/php-class-graph

書いたはいいんだけど、あんまり考えずにえいやーで作ったのでこれ以上拡張出来ない感じになってしまった…
テストもちょっと書き方な〜〜〜となってしまったのでリファクタ余地は大いにあり…。

PHP のコードをパースするために nikic/PhpParser を使っている。
GitHub - nikic/PHP-Parser: A PHP parser written in PHP

それを使ってクラス呼び出しっぽいのを辿っている。このあたり。

php-class-graph/Visitor.php at master · sters/php-class-graph · GitHub

これで、あるクラスから、どのクラスを呼ぼうとしているかを記録。その記録を整理して図形データとして出力できるようになっている。

クラスっぽいのを辿る際に、クラス名からファイル名を解決するために、プロジェクトルートディレクトリを指定し、その composer autoloader を読み込んでいるのがひとつ工夫したポイント。このあたり。
php-class-graph/SourceList.php at master · sters/php-class-graph · GitHub

おしごとコードや自分のいくつかで試したけど、ちゃんとできてそう…?
たとえば sters/cakephp3-aws-s3-datasource: AWS S3 datasource in CakePHP3 でやるとこういう。いやでもどこからともなく親ノードが発生するのはちょっと違う気がするなあ…、間違ってそう…。

このまま使うと、開始地点から永遠に深ぼってしまうので、どこまで辿るのが指定したほうがいい vendor 下は無視するとか。といったのも example ディレクトリに作ってみたのでお試しどうぞ。

CREATE TABLE 文から Markdown のテーブル表記をつくる

ドキュメントにテーブルの説明を書くのがちょっと苦しかったので CREATE TABLE 文から Markdown のテーブル表記を作れるようにした。

GitHub - sters/createtable2Markdown

CREATE TABLE 文をパースできれば勝てるので別に MySQL 限定とかではない。特殊すぎる記載じゃなければ動くと思う。

GitHub - xwb1989/sqlparser: SQL Parser implemented in Go

これがすごくて、若干の挙動が怪しい不要な要素をスルーするようにしてるけれども、あとはパース結果を組み立てる以外なにもしてない。

標準入力で SQL な文字列を受け取って、標準出力で Markdown が出せるようにしているので、ダンプしたものをそのまま流したり、クリップボードを活用したり、コマンドラインでサクサク使うのにめちゃいい。
Readme にも書いたけどこういうことができる。

mysqldump -u database_user -p -d -n --compact database_name | createtable2Markdown