どこかのだれかへ

ボク、プログラマ。

ゲームデザインバイブルが読み終わらない

ゲームデザインバイブル、というゲームデザインのポイントをまとめた本があります。

この本、とにかく読むの時間がかかっています。 ページぎっちりに文字があってそれが700ページ、休日にがっつり読んでもせいぜい、100~150ページくらいしか読めません。

実はこの本は図書館から借りてて7月中旬に借りてたんですが7月17日からはGhost of Tsuhimaにつきっきりでなかなか読みつつめられませんでした。Ghost of Tsushimaは神ゲーでしたね。軽くレビュー記事書きたいです。

最初は読みながらブログに要点をまとめていこうかと思ってたんですが、正直そんな時間ない。まとめるのは最後の最後にします。

正直、5000円くらいの本で良書なので見直すことも考えて買ってもいいとは思っていますが・・・・・・なんか負けた気もします。

やっと400ページ読んだので、あと半分頑張って読みたいと思います。

3x3行列を3x2行列にするこによって逆行列の計算がすっきりした

二次元ベクトルにアフィン変換行列を適用するには、3x3行列使うのが通常です。

しかし古来よりゲーム開発ではメモリ節約のために単純に3x3行列を持たず、固定値である最右列を省略した3x2行列(float a[3][2])を使う場面があります。

僕はずっとメモリの節約のためだと思っていて、今の時代では単純に3x3行列や4x4行列を使えばいいと思っていましたが、先日3x2行列の逆行列を実装したところ、最右列が固定値(0, 0, 1)になっていることによって計算が非常にすっきりすることに気づき、感動しました。

3x3行列の逆行列の計算式は以下のようになります。

f:id:Tepp:20200717012912p:plain

これを3x2行列、つまりa13 = 0、a23 = 0、a33 = 1としした場合は以下のように変換できます。

f:id:Tepp:20200717012921p:plain

かなり数式がシンプルになったのが分かると思います。逆行列でも結果的に最右列が(0, 0, 1)になるため、省略して3x2行列で表せるのがいいですね。

数学Cがもうない、でも復活するらしい

最近、逆行列のために暇なときに行列を復習しています。

ベクトル、行列は僕が高校の時は数学Cで習う項目でした。選択授業で物理を選んで数学Cは受けなかったのはちょっと後悔しました。

そんなことを思ってなんとなく数学Cをググったらなんと2012年に数学Cがなくなってるという事実を知りました。ベクトルは数学Bへ。行列は消えたらしいです。なんということだ!

しかし、残念だなぁ(別にそこまで思ってない)とWiki見てたら、2022年にはまた数学Cが復活するらしくベクトル、行列がまた高校で習えるみたいです。

最近はエンジンやライブラリに数学ライブラリがあるのは当たり前ですが、ここは基礎中の基礎なのでゲームプログラマなら押さえておきたいですよね。別に公式を暗記しろとかいう話ではないです。

ちなみに復習には大学向けの線形代数の参考書を使っているんですけど、アフィン変換とか全然出てこないんですよね。ゲーム系の数学本なら行列の頭くらいに出てくる項目なのに。なのでゲーム作るために数学を勉強するならゲーム向けの数学本を書くべきですね。

在宅業務の昼飯にマッスルデリを試してみた

4月中旬から在宅業務に移行しリモートワーク生活を満喫していますが、これによって平日の昼飯事情も変わりました。 出社時は社食で食べていたんですが、在宅業務では外食が基本になります(昼に自炊する気は一切ない)

お財布や時間のことも考えると家の周りで外食ってローテーションがワンパターンになりがちだし栄養バランスも良いとは言えないので、なんかいい方法ないかなぁと思っていました。

そんなときに榎宮祐さん(ノーゲーム・ノーライフ作者)がTwitterで時間がない時は「マッスルデリ」が良いという話が出ていました。

マッスルデリはボディメイク向けのお弁当宅配サービスなんですが、数十種類ある栄養バランスの取れたメニューからランダムでお弁当を届けてくれるサービスです。 これなら栄養バランスもカロリーもいいし、弁当暖めるだけだし、飽きもしない、すごいいいじゃん!ということでまずは5食分だけ注文して試しました。

結論から言えば、その5食分だけで止めました。理由は2つ。

1つは値段の高さ。注文する時点で当然分かってましたが、一食1000円超えるんですよね。1食分としては出せない額ではないですが、自分としてはやっぱり弁当に1000円越えはコスパが悪いと判断しました。 とはいえ内容が良ければ毎日とは言わず忙しいときだけマッスルデリに置き換えるという手法もあるので、これだけでは完全に止めるという選択肢はなかったです。

もう1つ、致命的なのがブロッコリーが入っていたこと。僕はブロッコリーが大嫌いです。マッスリデリのInfomationには「 【苦手なメニューがあった時は…】 | Muscle Deli 」という記事があり、対応してくれそうな雰囲気があったので、注文時の注釈に「ブロッコリーが苦手なので、入っているメニューは避けてほしい」という書いておきましたが1食にブロッコリーが入っていました。

ブロッコリーの存在によってせっかくの食事休憩が苦痛になり、その苦痛に1000円出す気はしないです。

マッスルデリがメニューを選べて確実に嫌いな物をよけることが可能であれば、時間節約や栄養バランス等を考えてリピートもあり得たかもしれませんが、正直ブロッコリー問題はでかいので結局もうそれっきりです。

あと僕はあまり気にしなかったけど、やっぱりボディメイク用ということもあり鶏肉メインが結構多くてメニューたくさんあるから飽きない、とも言い切れないのもまた微妙でした。

新型コロナによりリモートワーク開始!

緊急事態宣言が都に出てから自宅待機(市場調査という名目でSEKIROとFF7Rやってました)していましたが、今週から自宅に会社の開発環境が整ったので今日初めてリモートワークを行ってみました。

とにかく、やる気スイッチを押すのにとても苦労しました。会社で作業することが気持ちの切り替えになっていた事を理解しました。最初寝間着のままやろうかと思ったんですが、どう頑張ってもだらけそうなのですぐに着替えました。

あと単純に眠かったです。FF7Rによってすっかり夜型になってしまった体で睡眠時間削って挑んだ今日でしたが、昼間の睡魔に勝てずちょっと横になろうと思ったらがっつり寝てしまいました。

作業環境にベッドあるのは良くない!すぐベッドに逃げたくなってしまいます。

開発環境が整ったと行っても、まだ課題があって万全ではないですが、恐らくしばらく続くこの環境に早くなれていきたいです。

意見は言える時に言っとかねばならぬ。

プログラムでAとBに意見が分かれて、僕はA派で話の流れからもしてもAに行きそうだったので何も言わなかったんだけど、なぜか最後はBになってて???となってしまいました。

Bになってしまったことはもうしょうがないんですが、自分がつ持つBのデメリットポイントが考察されておらずBになってしまった可能性がある、というのが結構な後悔ポイントでした。

とはいえ、昔は昔で自分が意見した結果、そっちの方向になったけどやってみたら良くなかったということもあったので難しいです。

新型コロナでGDCは延期、E3はキャンセル

今日(11日)の昼間くらいからE3のキャンセルの噂がTwitterで流れていましたが、ついに公式アナウンスで新型コロナの影響でE3キャンセルになったことを公表されました。 www.e3expo.com

新型コロナやばいですね。弊社でも時差出勤が推奨されており、人が集まらないように会議も大分減りました。

時差出勤はあれど、個人的にあまりコロナの影響は受けていなかったんですが・・・・・・。

一昨日仕事中に使っていたBoseノイズキャンセリングが断線によって故障しました。Boseは保証期間後は定価の半値くらいで有償交換してくれるのでBoseショップ言って有償交換の手続きをしました。

経験上1週間くらいかなぁと思っていたら「交換品は4月中旬頃になると思います」と言われてしまいました。1ヶ月以上かかるじゃん!

(恐らく)新型コロナの影響で中国から商品が来ていない、とのことでした。実は会社のほうでもPC納品が遅れてたりと中国が絡む物流にはかなりの影響が出ているようです。

マスクはもはや手に入りませんが、個人的には予防は圧倒的に手洗いうがいが重要だと思っているのでそこだけはきっちりとやっていきたいなと思います。消毒液ももう売っていなくて手に入らないんですけど、キレイキレイは普通に売ってるんですよね。手洗いしましょうよ。