kidoOooOoooOOom

ゲーム開発やってます

「ORIGINALS」による、究極の風通しが作る強い組織

評判の高い「ORIGINALS」を読み始めたら、めちゃくちゃ面白くて一気に最後まで読んでしまった。

著者のAdam Grant氏によるTED動画がこの本の概要を話している。

www.ted.com

TED動画では語られていない、7章の「ダメになる組織、飛躍する組織」が印象的だった。

ここで登場する「ブリッジウォーター・アソシエイツ」という会社がかなり強烈な組織文化を持っていて、これはある意味、強烈な心理的安全性だなとも思った。

心理的安全性とは

心理的安全性については、こちらのスライドや

心理的安全性の構造 デブサミ2019夏 structure of psychological safety

提唱者であるエイミー・エドモンドソン教授のTED動画や本を読むのがおすすめ

www.ted.com

心理的安全性は、自分もチーム開発においてとても重要視している考え方で、忖度しないこと・コンフォートゾーンに入らないこと をなるべく気をつけている。

ブリッジウォーターの強烈な文化

ブリッジウォーターは金融業界で長年業績を上げている企業で、2010年の収益は「グーグル」「eBay」「ヤフー」「アマゾン」の利益の総額を超えている。

独創的なアイデアを歓迎する社風としていて、一般的な投資ファンドに比べ、投資先をより多様化することでリスクを減らすというのも特徴的な戦略の1つとしている。

同社の創業者であり億万長者のレイ・ダリオは「投資の世界のスティーブ・ジョブズ」と呼ばれているが、なんと、部下たちは彼を特別あつかいしない

レイ・ダリオ - Wikipedia

次の文章は、投資アドバイザーである一般社員が、新規受注の可能性のある大切なクライアントとの会議を終えてから、ダリオに送ったメールらしい。

ダリオ様。今日の会議でのあなたのパフォーマンスは、正直に申し上げて、Dマイナス、最悪でした……五〇分間しゃべりっ放し……まったく準備なさっていなかったことが、私たちにははっきりわかりました

アダム・グラント. ORIGINALS 誰もが「人と違うこと」ができる時代 (Japanese Edition) (Kindle の位置No.3706-3708). Kindle 版.

一般社員が創業者にこんなダメ出しメールを送るなんてとても考えられないが・・・ブリッジウォーターでは当たり前のことらしい。

しかもダリオは、このメールのやりとりをコピーし、みんながこのやりとりから学べるよう会社全体に送信もしているとのことだ。

否定的な感想をいうとき、多くの組織ではひっそりと行なわれる。

ブリッジウォーターでは、問題や意見があれば当人と直接話し合う。

「忠誠心より、真実を語ることや柔軟であることを優先せよ」

「批判的な意見を口に出していえないのなら、批判的意見をもつ権利はない」

と、ダリオはルール集に記している。

典型的な組織では、異論を唱える者は罰を受けるが、ブリッジウォーターでは、意見が出せるかどうかで決まる

アダム・グラント. ORIGINALS 誰もが「人と違うこと」ができる時代 (Japanese Edition) (Kindle の位置No.3711-3719). Kindle 版.

これは強烈な組織文化だと思った。

この会社では、現状に迎合する従業員は解雇されることすらあるらしく、「忖度」なんてしてられないことが分かる。

また、以下の引用箇所も印象的だった。

世界を「創造する者」は、自主的に考える人であり、「好奇心が強い」「まわりに同調しない」「反抗的」という三つの特質があるという。

こういった人たちは地位や階層などを気にせず、残酷なまでに率直だ。

そしてリスクを顧みず行動を起こす。彼らにとっては、失敗することの恐れより、成功しないことへの恐れのほうが強いからだ。

アダム・グラント. ORIGINALS 誰もが「人と違うこと」ができる時代 (Japanese Edition) (Kindle の位置No.4046-4049). Kindle 版.

世間一般では、「まわりに同調する」や「反抗的にならない」ことが良い人の条件として挙げられたりするけど、創造性の観点で見るとあまりよろしくない行動になる。

とはいえ、とにかく嫌なヤツになれば創造性が高まるってわけではなくて、あくまで「自分の本当の考えを黙って周りに同調する」とか「改善の余地があるのに反抗しない」など、外面だけ良い人になろうとするなってことなので、今後意識していきたいなぁと思った。

若さのマスターホルモン、ヒト成長ホルモンについて

革命アンチエイジング」を読んでみたら、知らないことが多くとても面白かった。

特に、内分泌系から産生されるヒト成長ホルモンがとても重要であることを知らなかったのでメモっておく。

ヒト成長ホルモンとは

アンチエイジングの本で紹介されているだけあって、老化に大きく関係しているホルモンで、「若さのマスターホルモン」とも呼ばれている。

骨や筋肉の成長に関わっていて、幼児期に骨細胞の分裂・増殖を促し骨を伸張させたり、特定のアミノ酸の取り込みを促しタンパク質合成を促進する。

また、成長だけでなく代謝にも関わっていて、下記の作用がある。

  • 代謝促進

    • 炭水化物、タンパク質、脂質の代謝を促進する。
  • 血糖値上昇

    • 肝臓でのグリコーゲン分解を促し、また抗インスリン作用(インスリンを抑制し、血糖値を上昇させる)を持つため、血糖値を一定に保つ。
  • 恒常性の維持

    • カルシウム濃度などを一定に保ち、体内の恒常性を維持する。
  • 体脂肪動員の促進

    • エネルギー不足の状態の時、脂肪組織から遊離脂肪酸の形で放出させる。

こちらのサイトがとても分かりやすく書いている。

ghw.pfizer.co.jp

あと、wikipedia

ja.wikipedia.org

年齢で分泌量が変わる

思春期の頃が分泌のピークになっていて、20歳を超えた頃から急激に下がり始める。

30~40歳台ではピークの50%程度に、60歳では30%程度にまで下がる。

つまり、年をとるにつれて体の成長が止まり、代謝が悪くなって病気や肥満になりやすいのは、ホルモン分泌量が減ることによる老化が原因の1つとも言える。

どうやって作られるか

ヒト成長ホルモンは脳の下垂体から分泌されて、肝臓で成長因子へと変換される。

分泌されるのは、主に睡眠時と運動時で、睡眠は入眠後の2〜3時間に分泌が集中しており、運動は高強度のトレーニング時に多く分泌される。

睡眠と運動がただ単に健康に良いだけじゃなく、老化対策にも重要ということがよく分かる。

kidooom.hatenadiary.jp

kidooom.hatenadiary.jp

外部からの投与

年をとったらもうヒト成長ホルモンが分泌されなくなったら終わりかと思ってしまうけど、皮下注射などで外部から取得することはできる。

ただし、結構高いし、注射なので怖い。

まあ、今のところは、将来お金に余裕ができたら考えてみてもいいのかなぁと思う程度。

まとめ

まだ自分は30歳台だから老化もそんなに進んでないだろうという甘い考えがあったが、実は既に老化は始まっていると知れて良かった。

運動と睡眠からしっかりヒト成長ホルモンを産生されるように気をつけようと思った。

Witcher3のContent-Optimization-Pipelineについて

GDCの資料を見て英語とゲーム開発について勉強するシリーズ.

f:id:gidooom:20190728092144j:plain

今回は、GDC 2015 で発表された、CD Projekt Red の technical artist である Martin Thorzen 氏による、「best practices for managing artistic content optimization in open world games like The Witcher 3」の資料と発表動画を見た。

www.gdcvault.com

www.youtube.com

Content Pipeline の最適化がなぜ必要か?

近年のOpen World のゲームは、管理するコンテンツの量がとにかく莫大になってきている。

前回の記事にも書いたように、Witcher3のマップの1つであるスケリッジ諸島だけで 8km * 8km のワールドを構築しており、その中に実寸大のオブジェクトを色々配置してゲーム世界を構築する。

kidooom.hatenadiary.jp

例えばその広大の世界の一部の箇所で、下の図のような20cm程度の桶の中に大量のヒヨコが何故か配置されてしまって 150万Triangle使っているなんてことが起きてしまうと、デバッグで見つかる可能性が低く、出荷後のバグなどにつながってしまう。

f:id:gidooom:20190728091553p:plain
150万tri

そこでWitcher3では、広大なワールドに配置されているコンテンツを管理するためのPipelineシステムが作られている。

コンテンツのメタデータを管理

Witcher3のPipelineシステムでは、全てのコンテンツのメタデータがデータベース管理されており、下記のようなSQLのクエリを実行すると、

f:id:gidooom:20190728091908p:plain
SQL

ワールドに対応した地図にグラフィカルに結果が表示され、詳細なデータも確認することができる。

f:id:gidooom:20190728091929p:plain

毎週同じSQLクエリを実行してレポートを保存し、状況がよくなっているかどうかを確認できるツールも開発されている。

f:id:gidooom:20190728091947p:plain
Weekly report

こういうのがあると日々の進捗が終えるし、どこかに異常データが配置されてもすぐに気付けるので非常に有用だと感じた。

まとめ

自分も1年ほどTechnical Artist としてツール開発等をしていた経験があるので、今回の話はよく分かった。

ちなみにWitcher3では、で下図のようなテスト用アセットがワールドに置きっぱなしになっていたのを、納品の数週間前にツールで見つけてヒヤッとしたというエピソードも紹介していた。

f:id:gidooom:20190728092008p:plain

3D技術を使う大規模ゲーム開発では、ツールが充実してないと非効率でバグりまくる環境になってしまうことは確実なので、Technical Artistの重要性は今後もアピールしていきたい。

脳のワーキングメモリを鍛える

脳科学好きなので、「脳のワーキングメモリを鍛える」を読んだ。

健康のためにしている行動の多くが、脳のワーキングメモリを鍛えることにもつながっていることを知れて面白かった。

ワーキングメモリとは

Wikipediaの内容が分かりやすい。

ワーキングメモリWikipedia

ワーキングメモリ(Working Memory)とは認知心理学において、情報を一時的に保ちながら操作するための構造や過程を指す構成概念である。作業記憶、作動記憶とも呼ばれる。

また、パレオさんのブログでもワーキングメモリについては多くの記事が書かれていて、鍛えておいて損なしであることが分かる。

yuchrszk.blogspot.com

関連する脳の部位

前頭前皮質がワーキングメモリの基盤をなす部位。

脳の前部にあり、関連するほかの部位から電気信号を受け取り、その情報を活用し、ほかの部位と強調しながら機能する。

前頭前野 - 脳科学辞典

前頭前野はヒトをヒトたらしめ,思考や創造性を担う脳の最高中枢であると考えられている。

前頭前野は系統発生的にヒトで最もよく発達した脳部位であるとともに,個体発生的には最も遅く成熟する脳部位である。

この脳部位はワーキングメモリー、反応抑制、行動の切り替え、プラニング、推論などの認知・実行機能を担っている。

うまく機能しなくなる原因

ワーキングメモリの機能が低下・衰弱する原因としては、老化の他に下記のようなものが挙げられる。

  • 情報の波に呑まれる

  • 「すぐに得られる満足感」の誘惑

  • 時間に追われること

  • ストレス

  • 退職(引退)

  • 痛み

  • 恋愛

  • コンピュータゲーム、喫煙、過食などの依存

チャンキング

チャンキングとは、ワーキングメモリを有効に使うテクニックの1つであり、情報を細かい部分、つまり「チャンク」に分け、長期記憶に保存する記憶法。

長期記憶に保存した情報のかたまりに、ワーキングメモリが優先順位をつけ、有効にデータを管理することができる、

この本の中でチャンキングのスペシャリストとして紹介されているのがプログラマーの「フェロス・アブーカディジェ」で、Youtube Instantというのを短時間で作り上げたスーパープログラマーと言われている。

courrier.jp

ここ10年、プログラミングの世界で起きた最も重要な変化は、「抽象化」が進んだということだろう。

プログラミングにおいても、1行1行どんなコードを書くかを覚えておくよりも、コードの塊をチャンクとして抽象化して管理できるようになれば作業効率が良くなる。

自分もゲームエンジニアとしてプログラミングをやっているので、ワーキングメモリを鍛えることは仕事の能率アップにも繋がるなぁと思った。

燃料となる食べ物

ワーキングメモリは脳の一部なので、脳に良い食べ物がワーキングメモリに良い影響を及ぼす。

運動がワーキングメモリを鍛える

この本でも、「脳を鍛えるには運動しかない」が参考本として上げられていた。

運動はとにかく費用対効果の高い行動。

kidooom.hatenadiary.jp

国語学習がワーキングメモリを鍛える

これも今期の目標とした「英語学習」のモチベーションを上げるトピック。

英語学習も運動と並ぶくらい費用対効果の高い学習なんだなぁと感じてきた。

kidooom.hatenadiary.jp

休憩でワーキングメモリを回復する

ワーキングメモリを回復させるという意味でも休憩は大事。

前に記事で書いた内容は学習の吸収を助ける効果をメインに書いたけど、休憩によってワーキングメモリが回復してその後の作業効率が良くなることを考えても休憩は大切だと感じる。

kidooom.hatenadiary.jp

睡眠大事

これももう書かなくても良いレベルの常識だけど、睡眠は脳に取って非常に大事。

睡眠不足になるとワーキングメモリの機能が低下し、集中力がなくなって記憶力も落ちていく。

特に就寝してすぐに現れる深い睡眠(ノンレム睡眠)がワーキングメモリの回復に繋がるので、良い就寝環境を整えておきたい。

kidooom.hatenadiary.jp

まとめ

結局は、「睡眠」「食事」「運動」の3大基本要素を気をつけておくことが脳に良い影響を及ぼし、パフォーマンスを上げてくれるというシンプルな結論に繋がるので、意識高くしていけば良いと分かる。

いかに平均から外れるか

最近いくつかの記事を読んで、自分も「いかに平均から外れるか」を重要に考えるようになった。

scrapbox.io

つまり

過半数の人が報酬を受け取る場合は平均志向を取った方が有利

・そうでないなら平均から離れる方向に動いた方が有利

・[学校教育]では過半数の人が進級し、少数の人が落第するので[平均志向]が有利

・社会に出てから[競争的状況]では過半数の人が勝てず少数の人が勝つので[反平均志向]が有利

下のツイートにもあるように、学校教育では周りと合わせないとバカにされがちなので平均志向をみんな目指してしまう。

でも、社会に出たら、途端に手のひらを返して、差別化を求められる。

差別化を諦めて、居心地の良さを人生の中心に求めてしまうと、下の記事のような気持ちになってくる。

jp.quora.com

居心地の良さと人生のつまらなさは両立します。

なぜなら、楽だから。何も起こらないつまらない人生は、色んな刺激にいちいち反応しなくても済むから、楽。

自分も、今まで人の目を気にしてやらなかったこと、抑えていたことはとても多くあったが、尊敬するプロゲーマーウメハラDAIGOさんの生き方・考え方を知ってからは、他人の目をいかに気にせずに自分の人生を楽しめるかを大事にできるようになった気がする。

必死な姿を見られるのが格好悪いとか、失敗したときのみんなの視線が怖いと考えて取り組んでいる人は、なかなか結果が出せないし、そもそも人の目を気にして、人に合わせているのは楽しくないと僕は思っている

長い人生、人の目ばかり気にしているのは窮屈だし、息苦しい

というわけで、狂気を持って自分の道をどんどん進んでいきたい。

Witcher3の開発で使われているSimplygonとUmbra3について

GDCの資料を見て英語とゲーム開発について勉強するシリーズ。

自分がとても好きなゲーム「Witcher3」に関する講演資料を読んでみる。

f:id:gidooom:20190720213318j:plain

今回は、GDC2014で発表された資料2つを読んだ。

まず1つ目の資料は、

GDC Vault - Speed Up Your Game Using Simplygon (Presented by Simplygon)

Withcer3ではLODの生成に、Simplygonを採用している。

LODとは

Level Of Detail の略で、カメラからの距離に応じて3Dモデルのディテールを切り替え、シーンの計算負荷を軽減する方法。

カメラから離れた位置にある3Dモデルのポリゴン数やテクスチャ容量を減らすことで、シーンの見た目を大きく損なうことなく、描画を高速化できる。

Unityでも標準でサポートされていて、設定自体は割と簡単にできる。

LOD グループ - Unity マニュアル

Simplygonとは

ハイポリゴンのモデルを自動的にリダクションしてローポリゴンのモデルを生成してくれるツール。(2017年にMicrosoftに買収されている)

www.gamebusiness.jp

自分も前に使おうとしたけど、Windowsじゃないと動かなかったので諦めた。

実績も多く、性能は優秀っぽい。

Withcer3で Simplygonを採用した結果

GDC2014の発表資料によると、前作のWitcher2ではLODを主に3段階用意しており、Artistが手作業で作っていた。

しかし、この手作業でLODを作るのは数ヶ月単位の作業になるし、何よりArtistにとっては苦痛な作業になっていた。

とはいえ、LODのローポリゴンモデルを生成するツールを自作するのは非常にHardである。

f:id:gidooom:20190720211511p:plain

そこでSimplygonを採用したところ、LODを作るコストが99%削減され、クオリティもArtistが手動で作ったものと同等かそれ以上のものが出来たとのこと

f:id:gidooom:20190720212139p:plain

f:id:gidooom:20190720212230p:plain

これが自動で生成されるんだったら、確かに便利。

参考サイト: doope.jp


次に、2つ目のGDC2014での講演資料は、

GDC Vault - Solving Visibility and Streaming in the The Witcher 3: Wild Hunt with Umbra 3 (Presented by Umbra Software)

Withcer3では、Occlusion culling に Umbra3というミドルウェアを採用しているとのこと。

Occlusion culling とは

あるオブジェクトが他のオブジェクトに隠されていて現在カメラに映らないときに、オブジェクトのレンダリングを無効にする機能。

Witcherのような広大なマップがあるゲームにおいては、処理の節約のためにもほぼ必須の機能になる。

Unityにも標準で搭載されている。

docs.unity3d.com

Umbra3とは

Umbra3は、Occlusion culling に特化したミドルウェア

資料によると Call of Duty, Destiny, KILLZONEなどのトップクラスのタイトルでも採用されている。

描画処理の無駄を削減するミドルウェア「Umbra」、スタッフインタビュー - GAME Watch

Umbraの特徴は、上の記事によると

「『Umbra』は、三次元空間の中で、カメラから見てどのオブジェクトが見え、どのオブジェクトが見えないのかを優れたアルゴリズムで判定し、レンダリングエンジンにかかるオーバーヘッドを最小化する技術です」

Umbra Softwareのスタッフは、会社の設立よりずっと前となる1997年頃よりこの技術を専門的に研究してきており、製品となったミドルウェアには非常に高度なアルゴリズムが実装されている。

という感じで、Occlusion Cullingにとにかく特化している製品だと分かる。

そして以下の記事を見ると、実はUnityのOcclusion Culling も内部で Umbraのライブラリを使っているっぽい?

tsubakit1.hateblo.jp

ちなみにこのOcclusion Cullingは Umbra Softwareの提供するライブラリを使ってるとか何とか。

SlideShareに、Umbra社が公開している資料も挙がっていたので、詳しくアルゴリズムを知りたくなった場合はこれを見てみるとよさそう。

Visibility Optimization for Games

Withcer3で Umbra3を採用した結果

Withcer3では自社製のゲームエンジンであるREDEngine3が使われており、Engine teamのメンバーは16人と限られている。

また、Witcher3の世界は前作のWitcher2の世界と比べて、35倍以上の大きさになっている。

この広大な世界を効率よく表示するために、高度なOcclusion Cullingのアルゴリズムを持っている Umbra3をミドルウェアとして採用したとのこと。

f:id:gidooom:20190721081840p:plain

また資料の中で、Witcher3におけるマップのスケリッジが8km8km, ノヴィグラドが8.5km8.5kmのサイズのマップであることが公開されている。

f:id:gidooom:20190721085435p:plain

実寸台のサイズで世界が作られているとして、8km * 8kmもの広大な土地を原作の雰囲気やレベルデザインを考慮しながら作っていくのはめちゃくちゃ大変だろうなぁ・・・と思った。

参考サイト: doope.jp

まとめ

自分がメインで触っているUnityでもこの辺の知識は必要になるので、仕事の制作や自作ゲームでもパフォーマンス改善を考慮したい場面があったらすぐに思い出せるようにしておきたい。

ステッパーと観葉植物で作業環境をアップグレード

欲しいけれども、かなり高価なので購入を思いとどまっていたステッパー。

自分の誕生日プレゼントということで、思い切って購入!

このブログ記事も、念願のステッパーを踏みながら書いている。

なんでステッパーが欲しいのかという理由を書こうとしたら、丁度良いタイミングで、自分と似た考え方の人の記事が上がっていた。 logmi.jp

運動が、脳や体のパフォーマンスを改善することは明らかになっているので、上の記事の三木さんの考え方には色々同意できる。

自分も、職場や自宅では基本的にスタンディングデスクにしていて、ポモドーロで適度に休憩をはさむようにしている(そして遂に自宅ではステッパーで常に動ける!) kidooom.hatenadiary.jp kidooom.hatenadiary.jp kidooom.hatenadiary.jp

また、観葉植物もパフォーマンス向上に役立つらしいので、卓上サボテンを買ってデスクに飾るようにしてみた。 forbesjapan.com

パフォーマンスが向上する環境をどんどん作れてきているので、アウトプット・アウトカムもどんどん出していかないと!