TrueSight2019

1/29(水)

Dota2最大の世界大会、The International(TI)。8月に行われたTI9の決勝戦の舞台裏を描いたドキュメンタリー『True Sight』が今年も公開された(去年の記事はこちら)。

期待を裏切らない素晴らしいドキュメンタリーだった。決勝戦ではTI7優勝のLiquidとTI8優勝のOGが戦い、OGが2連覇を達成した。特にOGのサポートであるJerAxの活躍は凄まじく、神出鬼没。いきなり現れたかと思うと敵ヒーローを味方に向かって投げ込み楽々とキルを量産した。なおJerAxは引退を表明している

I love being creative and have a huge urge to bring ideas to life. I’ve found video games to be an amazing platform for this, as there are truly no limits and you are able to share the experiences with others. I find myself often questioning how things are in their current form and I seek for alternative ways to change the standardized models.(上記リンク先より引用)

「クリエイティブであること、アイデアを人生に反映させること」という哲学が先にあり、ゲームをそれを実現するプラットフォームとして解釈しているのは興味深い。

TrueSightと同時にLiquidとOGのメンバーがTrueSightを見るリアクション動画も投稿された。

OGとLiquidはどちらも英語圏のチームなので、チームの垣根なく冗談を飛ばし合っていて感動した。

カレーうどん界の動向

1/25(土)

同僚と外出。昼に千吉のカレーうどんを食べた。カレーうどんの専門店が存在するとは思っていなかった。

Dota2のプレイ履歴が見られるOpenDotaというサービスにちょっとしたバグがあり、OSSだったのでPRを出しマージされた。intの0が入りうる箇所で !hoge という書き方でvalidationをしているので0がinvalid扱いされていた。生のJSは辛い。

Dota2は調子がいい。7.23の環境にようやく体が慣れてきた。8連勝中。今は大規模な大会も行われていてアツい。

鈍麻

1/18(土)

最近いろいろな刺激が以前ほど新鮮に感じられなくなった。加齢だろうか。あるいは会社員としての生活に慣れつつあるのだろうか。僕が大学で学んだ重要な教訓は「大抵の2択の問いの答えは『両方』である」ということだ。

明日外出の予定があるので今日はほぼ在宅でDota2をしていた。会社員になってプレイ頻度が落ちたので負け続けた。勝率は正直に僕の技術の衰えを示している。

鍋キューブ+鶏もも肉+白菜の自炊は一食180円程度。しかしこの組み合わせだと炭水化物がない(厳密には緑黄色野菜も)。おにぎりを買って足すのもよいが、そうするとおにぎりが1つ110円程度かかってしまう。米を炊くのは手間だ。鍋と組み合わせることを考えると1玉30円程度のラーメンがよいのではないか。

Dota2サポートのアイテムタイミング/はてブ部

11/9(土)

土曜だが体調不良なので外出の予定なし。ランチに近所のジョナサンに初めて行ってみたが特筆すべき点はなし。普通のファミレスだった。

Dota2サポートのアイテムタイミング

Dota2をたくさんして感覚を取り戻した。相変わらずDazzleスパム。最近この動画を見て自分の動きを見直していた。なんとなくでやっていたことを言語化して評価するのは大事。

アイテム選択は難しい。マナ靴か緑靴か。Dazzleはクールダウン減少を持つのでマナ靴の有用性が高い。Guardian Greavesに進化させられると非常に強いが、これに直行するかどうかは稼ぎ次第だ。相手にSkywrath MageやClockwerk, RikiがいるときはForce Staffの方が優先度が高い。稼げなくて厳しかったり早めに有効なアイテムが欲しいときはGlimmer Capeが強い。相手のピックによってはLotus OrbやSpirit Vesselも選択肢に入る。

結局Dota2の本質的な問いである「いつ勝つか」の話になる。長期戦を見越すならGuardian Greavesを目指すべきだが、早めにピークを作りたいなら安くて強いアイテムを買うべきだ。それは味方のピックにも依存する。

はてブ部

これまでニュースサイトとしてYahooジャパンを利用していたが、コメント欄があまりに辛いのではてブに切り替えた。ニュース記事とコメントが分離されているのが辛いがこれは仕組み上仕方ない。

カテゴリやタグの運用について

設定するのが面倒になってろくに活用できていない。辛い。

中国映画

9/22(日)

午前中から映画館で『羅小黒戦記』を見た。中国のアニメ映画だ。とても良かった。松屋で昼食を取って帰宅。睡眠不足だったのでたっぷり昼寝。

Dota2の新シーズンが始まったので10戦してレートを出した。3784だった。あまり調子は良くない。中盤以降の動き方がわからなくなっている。

サウナでホラー/Dota2覚醒/依存性注入

いつもは日曜日にやることだが、3連休なので今日銭湯に行った。サウナは磨りガラスで仕切られていて、そこに中でタオルを振り回す人間の影が映っていてちょっとしたホラーだった。

この3連休で割と熱心にDota2をプレイした。最近は上達の感覚がある。行動とその効果の関係を以前よりも鋭く捉えられるようになった気がする。ちょっとした移動や位置取りでより貪欲にアドバンテージを取っていけるようになった。現在のMMRは4051だ。

Scalaはなかなか進まない。GETリクエストを受けてDBからデータを取り出して返すメソッドのテストをどう書くべきか思案している。DBという外部システムへの依存はユニットテストには持ち込まないのが原則だ。つまりDBからデータを取り出す部分を別の関数に切り出し、本番とテストで別の関数を呼び出すようにする。逆に言えば2種類の実装を本番とテストでそれぞれ注入するということになり、このテクニックを依存性注入(Dependency Injection)と呼ぶ。たぶん合ってるはず。

ガチで知りたい人はこの辺読んでください。僕も今読んでます。

前倒し勤務

今日は10時に出勤して19時に帰ってみた(帰れてはいない)。

夜に空腹になる前に帰宅できるので間食を削減する効果は確かにありそうだ。午前10時は午前11時に比べて涼しいというのもいい。

逆に世の一般的な通勤時間に近づくので電車は混む。難しいところだ。多数派と違うことをすることでメリットが生じる場合もあるが、それ以前に多数派というのはメリットがあって多数になっているのだ。

帰宅してScalaを書いていた。PlayのFormではmodelのunapplyメソッドが必要になる。フォームのデフォルト値としてmodelの情報を入れておくような機能のためだ。

unapplyはcase classだと勝手に作ってくれるのだが、そうでなければ自分で実装する必要がある。コップ本の26章を読むといろいろわかる。Scalaの武器であるパターンマッチの一種、コンストラクターパターンに使われているとか。

Dota2のSoloMMR(サポート)が4051になり過去最高になった。最近はDazzleスパムをやめてAncient ApparitionやWarlockを使っている。どちらもダメージを出せるサポートヒーローで楽しい。だが両者の操作感は全く違う。前者はスキルのクールダウンが短く、アイテムとのコンボも必要になるアクション要素の高いヒーローだ。一方で後者はスキルのクールダウンが長く、タイミングや立ち回りが求められる。

爆速帰宅無為ゲーム/ScalaのEvolutionsを捨てた

8/29

月末なので労働時間調整のために早く退勤した。時間が出来たのでDota2を3ゲームやったが全部負けた。自分一人の力ではどうしようもないと感じる負け方だったので辛い。

Scala+Play FrameWorkで作っているアプリケーションでDBの初期化のためにEvolutionsを使おうとしていたのだが

Unexpected exception[JdbcSQLSyntaxErrorException: Table "PLAY_EVOLUTIONS" not found;

というエラーがでてどうやっても解決できなかったので諦めた。情報がなさすぎる。

Evolutionsを使わなくても、適当なクラスのコンストラクタでcreate tableすれば済む話だった。ちゃんと公開するときはDBは別で作ればいいし。

Dota2 TI9終幕

Dota2の世界大会TI9はOGの優勝で幕を閉じた。OGはTI史上初の2連覇だ。

第3ゲームのJeraxのRavage回避がえげつなかった。RavageはTideHunterのスキルで、広範囲の敵をスタンさせる。非常に強力なスキルで当て方次第でチームファイトの戦局を大きく変えることができる。

JeraxはRavageがギリギリ当たらない位置で待ち、Ravageを見てからカウンターを仕掛けている。以前もサポートは位置取りが大事と書いたが、これが世界最強のサポートプレイヤーの位置取りの上手さだ。震える。