mattak's blog

人生を1ミリ進める

GDC 2018 1日目

カンファレンスが始まった!

場所はmoscone centerというところで、WWDCとかでも使っている会場です。

west, north, south buildingと幾つかのビル群に分かれていて、中はかなり広いところでした。

f:id:mattaclj:20180322171202j:plain

受付を済ませるとバッジとトートバックをもらえます。 専用の販売所がwest buildingにあって、そこで書籍やらGDCグッツ (T-shortを含む)が購入できました.

f:id:mattaclj:20180322171412p:plain

自分が来た場所を赤丸のシールを貼るボードがあったんですが、日本の開発者結構多い!

f:id:mattaclj:20180322171553j:plain

セッション

Splatoon, 350,000人のゲーマー分析, NieR:Automata, Accessibilityのセッションなどを聞いてきました。 普通にどれも面白かったです。 特にNieR:Automataのセッションが印象的で、熱狂的なGDCのYokoTaroファンが多数いた感じがします。 (自分の目の前だけど、コスプレして聞きに来る人までいた!) 内容もものすごく面白かったので、公開されたらぜひ見てみてください。

なんというか、世界中のゲーム好きな関係者が性別・国籍問わずに一同に介するって言う光景は圧巻です。 すげぇなぁという漠然とした感動みたいなものを色んな場面で感じました。

ランチ

プルコギポテチ

f:id:mattaclj:20180322172128j:plain

GDC2018 にまだいってない編

とりあえず、SFについて落ち着いたー。。

色々トラブった!

  1. 韓国での乗り継ぎ! (羽田 => 金浦 (韓国) => 仁川 (韓国) => サンフランシスコ) をしらなかった!
  2. 両替しすぎ! wonの貨幣基準がわからず、適当に多めに両替してしまった..
  3. ハングル読めない! 金浦 (韓国) => 仁川 (韓国) の電車移動がめっちゃドキドキした。ネットがなければ即死だった。
  4. 乗り継ぎ待ちすぎ! 9時間はキツイ.... ある意味余裕ある移動だったけれど、checkinも早すぎて微妙だし、transit hotelとか探せばよかったんだろうか... なんだかんだ緊張してベンチやら食事やらで過ごす...
  5. SIMカード使えない! 事前にamazonで買ったのだけど、smsが届かず登録できない... 結局現地で再購入した。再購入したSIMのブランドが一緒だったので、どうゆうこと!ってなった.
  6. 11時間長すぎ! flightが仁川 => SFOでそんくらいかかった。食事2回分あるので、乗る前に要トイレ

f:id:mattaclj:20180321221748p:plain

よかったこと

  1. Airbnb便利!同じくエンジニア系の仕事をしている人だったので設備まわりも非常に充実してた。日本語の本もいっぱい!(村上春樹とか)
  2. ホストさん優しい!すごい居心地がよい。本当にいいホストさんだった。

関係ないけれど、最近ことのはアムリラートを初めた。

ことのはアムリラート

ことのはアムリラート

  • HUBLOTS CO., Ltd
  • ゲーム
  • ¥2,800

韓国で乗り継ぎをしたとき、言語がわからない読めないリアル恐怖を久々に感じつつ、隣のおじさんにバレないようにプレイしてた。

f:id:mattaclj:20180321221802p:plain

明日から頑張っていくぞい!

GDC 2018 いってくるぞい! 準備編

GDC ✅リスト

  • [x] パスポート
  • [x] チケット印刷 (航空)
  • [x] チケット印刷 (ホテル)
  • [x] チケット印刷 (GDC)
  • [x] モバイルバッテリー
  • [x] スマホ
  • [x] PC
  • [x] ケーブル (usb-c, thunderbolt)
  • [x] ボールペン (入国審査書類てきなもので書く)
  • [x] 名刺
  • [x] ルーター
  • [x] クレカ
  • [x] 現金
  • [x] CLIPPER
  • [x] 歯磨き
  • [x] 着替え

f:id:mattaclj:20180320001426p:plain

楽しんでくるぞい!

フリーランスになりました!

前職は主にスマホ向けのアプリ・ゲーム開発をしていました。

会社に入ったときに20代のうちに誇れるようなモノ(アプリ・サービス・ライブラリなんでもよい)を創るぞ!というのが目標でした。 20代が終了して、30代に突入したので新しいことを試していきたい!というのが今の心境です。 環境変えることで、自分を変えていこうという所です。

前職、とてもよい同僚と環境に恵まれました。 本当にありがとうございました!

f:id:mattaclj:20180316004422p:plain

働いて負けないようにばんがります

gamejam 2018/03

雑に書いていく運動

今回のテーマ

「声」

GoogleHomeで遊べるアプリを作ろうと思った。

企画

f:id:mattaclj:20180313001032p:plain

GoogleHomeで簡単な時間あてゲーム。 イメージは、10歩歩いて振り返って撃ち抜く荒野のガンマンのイメージ。

「10秒で勝負!」

...10秒後

「バン!」

でもって指定時間誤差であれば、勝利するという簡単なゲーム.

スケジュール感

3/10

  • 12:30-13:00 企画決定
  • 13:00-18:00 GoogleHome勉強&試行錯誤

3/11

  • 16:00-18:00 GoogleHome試行錯誤

作業時間7時間程度確保。 少なめなのは、歯医者とTOEICが要因。。

結果

完全に作り切ることはできなかった。 終了後にちょっと調整して一通り遊べる感じには出来上がった。

作ってみての感じた問題点

  1. 時間遅延がひどい (3-5秒くらいずれる。ゲームとして致命的)
  2. 開始タイミングがわかりづらい

1の要因

  • 音声認識時間 (発話してから認識してくれるまでの時間ずれ、GoogleHome -> DialogFlowの通信時間も含む)
  • 通信時間 (DialogFlowから用意したFirebase Cloud Functionsへの通信時間)
  • 関数実行時間 (Cloud Functionにリクエストが来てから、関数実行してレスポンスを返すまでの時間)

2の要因

  • 言葉でタイミングを伝えるというのが難しかった。
  • 例えば、「よーい、ドン! 」で開始するとする。実際には「よ」の音声再生開始から「ドン」のタイミングまでを考慮して時間を計算して引かなければならない。
  • 実際には1の要因もくわわるので、ローカルで実行完結する環境でないと難しいゲームだった.

ハマリポイント

Dialog FlowのIntentからUser saysが消えている問題

f:id:mattaclj:20180313003635p:plain

かわりにTraining phrasesのところに、入力してあげれば認識してくれた。 ぐぐるとUser saysに入力するって記述が多いので要注意

Fillfullmentでnot handled問題

Fillfullmentでイベントをフックするには、FillfullmentでWebHook用のURLの設定と、IntentでのFillfullmentセクションのトグルが必要。 さらに重要なのは、Actionのところにきちんと値を指定すること。

f:id:mattaclj:20180313004350p:plain

github.com

こんな感じでactionMapに対応するactionを指定するのだけど、対応actionが見つからないと not handledなerrorが出る。 初めintent名がactionMapのkeyと対応していると考えていたのだけど、そうでなくてハマってしまった。

tellとask

github.com

DialogFlowのレスポンス関数として、tellとaskが用意されている。 tellは会話終了. askは会話継続。tellでなんとかしようとしてハマってしまった。

感想とか

sayコマンドで実機検証するのよかった。 発話するのが恥ずかしい人にオススメ。

say "オッケーグーグル。テスト用アプリにつないで"

ただ共同作業スペースなどでやると周りの人がびっくりするので注意.

GoogleHomeおもしろい。 DialogFlowの賢さにも感心した。 「10秒で勝負」って入力するだけで、勝手に「5秒で勝負」といった数字部分の変更抜き出し対応ができるのがすごい。 あと「10秒でスタート」「10秒で勝負」といった曖昧な単語バリエーションにも反応してくれる。 ただ、擬音系が弱いようで、「バン」「パン」「バキュン」などどれが認知しやすい擬音かどうか何度も試行錯誤した。

簡単なゲームをサクッと作りたい

雑に記事を書いていこう運動

ゲームジャムなどでできるだけさくっといつもやっている作業を行えるようにしたい. 一人で作業するときはだいたい時間切れで悔しい思いをする. 大事なことに注力できる時間をさきたいと思ったので振り返り.

普段どんな作業に時間を使っているか考える

  1. 企画素案作成
  2. デザイン作成
  3. シーン配置
  4. コーディング
  5. レベルデザイン
  6. 音 / 演出

大体いつも作り終えられなかったり、遊びごたえのない完成形で終わる感じがする.

失敗から考える

  • 企画作成 1-2h
  • デザイン 4-8h
  • コーディング 2h - 12h
  • シーン配置 1-3h
  • レベルデザイン 2-10h
  • 音/演出 1-4h

何も根拠ないけど、自分の中の肌感としてはこんな感じの作業時間感覚. 8h x 2 = 16hで仕上げると考えるとかなり厳しい.

企画の部分は大体こんな感じで、あまり訓練しても変わらない感じがする. 早くてクオリティが高い人を見ていると、企画/デザインを並行で作業しつつ、デザイン自体の作業時間もかなりコンパクトな印象がある.

失敗1. デザインに時間かけすぎ

  • 特に2d系のゲームを作るときに画面イメージを頑張って作ろうとすると時間がかかる
  • アイコン系、素材系でオリジナルなものを頑張ろうとするとこだわりだして4h-8hくらい消費する

失敗2. 定番のコーディングに時間かけすぎ

  • いつも使うライブラリ系のsetup (30 min). (UniRx, DOTween)
  • 定番の処理 (ゲームシーン遷移, 得点反映, 結果表示, ダイアログ, ...)に3-4hかけている
  • ゲームオリジナルの独自処理にしっかり時間を掛けていきたい

失敗3. スピード << 堅実なコーディングになりがち

  • いい感じにメンテしやすい結合関係にせねばとか考えたり、冗長でも健全なコーディングにしがち
  • スピードが出て、あとで拡張に困らないコーディングパターンを見つけたい
  • StateMachineをつかうとか、できるだけコーディングしなくてよくて、さくっと作れる世界観が良さそうな気がする

よりよい成功を目指す

レベルデザインに時間を書けたい

しっかり遊びながらさわり心地の調整部分に時間がかけられるようにしたい. リスク <=> リターン のバランスを意識した制作ができるようにしたい

音/演出にこだわりたい

アニメーションや音によって、説明が不要ですっと入ってくるようなデザインや気持ちよさを実現したい

シンプルだけど心に響くデザインをしたい

ごてごてしていなくてよい. 情報は少なく、動きによって感情が動くようなものを作りたい

どうActionしていく?

よいAssetをつかう

自分でできる能力には限界がある. 効率よく必要な素材や機能を取り入れる行為は必要だ.

でも自分が実現したいものが、AssetStoreで購入したものの組み合わせだけで作りたいのか?と考えるとそうではないと感じる. 適切に重要かつ必要な部分を自分で作る見極めと、作ろうと思ったときに作れるだけの技量や準備があると捗りそうだ.

デザイン力をアップさせる

たいていつくりたいもののデザインは購入できない.

ツールをきちんと理解して何回か反復して練習すれば、身につきそうな気がする.

似たようなパターンを作ってみる

いいゲームのデザインや機能を模写して作ってみる訓練をすると良さそうな気がする. まずは作りたいものに近いものを真似て練習することで色々と制作能力のベースアップが図れそう.

毎回やる定番行為を効率化する

スコア反映だとか、ゲーム状態管理とか、AssetDownloadとか、もろもろ 10本くらいサンプルを作ってみて共通行為の洗い出しとライブラリ化などできれば、スピードが出そうな気がする

というようなことを雑に考えたので練習していこう