Vapor Trail

明るく楽しく元気よく

プログラミングができなくてもUnityを使ってゲームを作りあげた開発者が『The First Tree』を生み出すまでの話

f:id:kyamashiro:20200531100329p:plain


Xbox OnePS4Nintendo Switchのコンシューマ向けにも販売されている『The First Tree』の開発者David Wehle氏がフルタイムのインディゲーム開発者になるまでの動画です。

 

「正直、人生が変わるなんて思いませんでした。自分がゲーム開発者だとも思っていませんでした。僕はちょうど映画学校を卒業したばかりでユタ州のど田舎に住んでいました。プログラミングのやり方も知らなかったし。正直、今でもよくわかっていません。」

f:id:kyamashiro:20200531100156p:plain

 

10代の頃からゲームが好きでMODを作って遊んでいたDavidさん。
「宇宙ホテル、幽霊の出るキャンプ場、廃墟の街などを作っていました。
本格的なゲームを作ることができるのは大規模なスタジオや天才プログラマーだけだと思っていました。」

f:id:kyamashiro:20200531100539p:plain

 
映画学校を出て映画編集の仕事をしていましたが、生活のために建築設計の仕事をすることにしました。

f:id:kyamashiro:20200531100622p:plain

 
ゲームを作るきっかけは「Unityって知ってる?」という同僚の一言。
「コードを覚える必要ある?」
「そりゃまあね」
スペイン語の初級クラスで落第するくらい文法を覚えるのが苦手だったDavidさん。

「芸術系の自分にはプログラミングは無理だと思っていました。」

f:id:kyamashiro:20200531100601p:plain


同僚が「Unityのビジュアルスクリプトプラグインがあるかも調べてみたら」と進めてくれました。
PlayMakerはノンコーディングでゲームを作ることができるツール。
PlayMakerを使うべきではないというレビューもありましたが、とりあえずやってみることにしたという。

「ネット上のコードマニアがそう言ったからって真実はどうかわからないと思ったんです。」

f:id:kyamashiro:20200531100712p:plain

 

Unityのチュートリアルはすべてやってみたそうですが、「百万回ぐらいググりました。ゆっくりでしたが着実に理解することができました。」と苦労して少しずつゲームづくりを覚えたそうです。

f:id:kyamashiro:20200531100732p:plain

  

『Dear Esther』や『Gone Home』をプレイしてアイデアをひらめいたDavidさん。

18ヶ月を費やして最初から最後まで30分でクリアできるゲーム『Home is Where One Starts』を作り上げました。

「僕はまだ家族を養うためにフルタイムで仕事をしていたので夜や週末に時間を取って作業していました。」

Home is Where One Starts』は壊れた家から出てきた少女が過去を克服する一人称視点の探索ゲームです。

ゲーム内容が少ないため仕方ないですが今日のインディゲームでは重要なマーケティングを怠ったという失敗もありました。でもそんなことは問題ではなく「ゲームを完成させ自分自身のゲームが作れて幸せでした」と語る。

「将来性のないフルタイムの仕事を続けていましたが、人に見せられる素晴らしいプロジェクトができました」

f:id:kyamashiro:20200531100856p:plain


またDavidさんは『Home is Where One Starts』のおかげで、VRスタートアップ企業のThe Voidで働くことにつながりました。

『Home is Where One Starts』はOculus Riftのサポートもしておりチーフエンジニアが興味を持ってくれたとのこと。

f:id:kyamashiro:20200531100918p:plain

  

「すべてはUnityをいじったりPlayMakerを探したり自制心を身に着けてプロジェクトを完成させSteamで公開したおかげです。」

「The Voidで働いていたとき、最初のゲームで犯した間違いを修正してインディゲームを正しくローンチしたいと思いました。」

さらに18ヶ月後の2017年9月に『The First Tree』がSteamでローンチされ1年で15万ドルの利益を得ました。

2018年にはXbox OnePS4Nintendo Switchでも発売されました。

そして2019年にはThe Voidでの仕事を辞めてフルタイムのインディゲーム開発者になりました。

f:id:kyamashiro:20200531100936p:plain

 

DavidさんはGame Dev Unlockedを始めました。

Game Dev Unlockedはインディーゲームの立ち上げ、完成、マーケティングに焦点を当てたオンラインコースです。
「Game Dev Unlockedを始めた理由は、毎日どうやって成功したのかメールでいろいろな人に訊かれるからです。僕は数年にわたって得た経験、Google検索、失敗、そして最終的な成功まですべてを伝えたいと思っています。」 f:id:kyamashiro:20200531104140p:plain

 
Davidさんの動画からは、ゲーム開発で一攫千金というよりもプログラミングができないからゲームは作ることができないと諦めずに、とにかくやってみる、そして作りきって公開するということが大事というメッセージを学びました。

『不可能を可能にせよ! NETFLIX 成功の流儀』がめっちゃ面白かった

 

不可能を可能にせよ!  NETFLIX 成功の流儀

不可能を可能にせよ! NETFLIX 成功の流儀

 

 

創業者マークランドルフNETFLIXの立ち上げから取締役を辞任するまでのストーリー。ちなみにDVDによる郵送レンタルサービス時代の話が主でストリーミングについての話は出てこない。

 NETFLIXがはじめから順風満帆でうまく行ったわけではなく、ドットコムバブルの崩壊・資金調達・事業の選択と集中・採用・企業文化・社員のリストラと泥臭い話が出てきておもしろい。

ひらめきは簡単に起こらない

優れたアイデアひとつの裏にはろくでもない千のアイデアがある、それが真実だ。しかも両者の違いを見分けるのはとても難しい。

 ある日突然アイデアがひらめていて成功した!という話は単純化されていて、実はその裏ではダメなアイデアがたくさんボツになっている。

 マークランドルフは、一人ひとりにカスタマイズできるバット、専用に調合できるペットフード、パーソナライズド・シャンプーなどのアイデアを出したが共同創業者のリードヘイスティングスにすべて却下された。

 結局ビデオを返し忘れて延滞金が請求されたことがきっかけで、ビデオの郵送レンタルのサービスを思いつくが当初は採算がとれそうになかった。ちょうどその時DVDが普及し始めるときだったので、分厚いビデオではなく薄いDVDを利用した郵送レンタルでサービスを始めることができた。

 また起業するとなると自分で借金をして事業につぎ込むイメージがあるが、自分で身銭を切るべきではないと言っている。

「夢に資金を投じるなら、使うのは他人の金だけにしておけ」である。起業はリスキーだ。賭けるのは自分の身一つにするべきである。あなたはアイデアに人生を注ぎ込む。財布の中身を注ぎ込むのは他人にやってもらおう。

 スタートアップは綱渡りである。数カ月後には資金がショートしてしまう。そんな胃がキリキリするような状況で、自分のすべての時間とお金を注ぎ込んでしまうと、冷静な判断ができなくなるのだろう。

 仕事に熱中しつつも家族と共に過ごす時間を設けていたというのは印象的である。

人を大人として扱うこと

 シリコンバレーのIT企業というと、無料の豪華な社食やペットを連れて来ることができるオフィス、充実した福利厚生がクローズアップされるが、そういったものは企業文化でもなんでもない。

私たちのオフィスは明確なメッセージを発していた。主役は自分たちじゃない、お客様だと。個々で働く理由は目先の変わった特典や無料の社食があるからではない。仲間意識とやりがい、優秀な人々と難しくて面白い問題を解く時間を過ごすチャンスのためだ。

エンジニアはお金だけではなく、

  • 一緒に働く人達を尊敬できるか
  • 面白い課題に取り組めるか

この2点を求めているのだという。

 人は大人として扱われたいのだ。自分が信じるミッション、解決すべき問題、それを解決するための裁量を求めているのだ。尊敬できる能力を持った他の大人の中に身を置きたいのだ。

リーダーの役割は行き方ではなく行き先を伝えること

従業員に自由と責任そして裁量を与えることで、子供扱いせずにやりがいをもって働くことができる。

リーダーとしてのあなたの仕事は彼らにルートを判断させることである。道のない困難な旅の同行者としてこの顔ぶれを選んだのは、あなたが彼らの判断力を信頼し、彼らが自分のやるべき仕事わきまえているからであるはずだ。だからリーダーとして、全員を野営地に必ず到着させるための最善の方法行き方ではなく行き先を伝えることである。明確な座標を示したら、あとは自分で判断させよ。

 絶対うまくいかない

夢を現実に変えるために取れる最強の手段は簡単、とにかく始めてみればいい。アイデアがいけるかどうか本当に分かる唯一の方法は実行することだ。一生かけて考えるより、1時間やってみるほうが多くを学べる。だからこの一歩を踏み出してほしい。何かを創造し、形にし、テストし、売ってみよう。自分のアイデアが行けるかどうか実地に学ぼう。

 

『作って学ぶAndroidアプリ開発[Kotlin対応] 』を読んでAndroid入門した

自分のレベル

Gradle・Android・Kotlinなにもわからん業務歴2年のPHPer。

本を読む前にUdemyでKotlinの基本について学びました。
www.udemy.com 

本の感想

作って学ぶAndroidアプリ開発[Kotlin対応]

作って学ぶAndroidアプリ開発[Kotlin対応]

  • 作者:有山 圭二
  • 発売日: 2020/04/17
  • メディア: 単行本(ソフトカバー)

 Android + Kotlinのアプリ開発系の技術書で一番新しくて、ちょうど出版されたばかりなので読むことにしました。技術書って鮮度があるので時間がたつほど動かなくなる可能性も高くなるし、変な部分で詰まって時間浪費しないようにこういう変化が速い技術の本は早めに買うことをおすすめします。

 Mastodonのクライアントアプリを開発しながら学んでいく内容の本でRepositoryパターン、MVVMアーキテクチャを使用したり、Credentialの扱いなど「実際の業務ではどのように作るべきなんだ?」という疑問に答えてくれている実践的な内容がよかったです。またGlide・Moshi・OkHttpなどのライブラリも使用するのでAndroidアプリ開発で有名なライブラリ群も知れたのでよかった。

 Amazonのレビュー評価が低めですが、Android開発未経験の自分にとっては難易度が高かったです。ライブラリを多用したり発展的な内容が多いのでAndroid開発の経験をもつ人がKotlinで開発したいとか、少なくとも2~3年他の言語で開発経験のある人が最低ラインのように感じました。

 Android開発って環境構築が鬼畜なので本と同じ通りにやってもおそらく動かない人もいるし、自分もGradleのビルドでちょこちょこエラーが出たので各々の環境で発生したエラーを自力で解決する力が求められます。

 Recyclerview、コルーチン、データバインディングアノテーションを多用してきたあたりでよくわからないなと思いました(汗。

 自分は細かい部分がよくわからなくても「こういうものなんだな」と思って先に進めていくほうなのであまり気にならなかったけど、ちゃんと理解してから進めていきたい人はめっちゃ時間かかると思います。

Android開発の感想

 2020年にもなってAndroid開発に入門した感想としては一言で言うとムズいです。 

 根本的にAndroidの知識が欠けているというのもあるが、AndroidManifest・レイアウトファイル・ViewModel・Fragmentなどの複数のファイルが連携して動くので、いまいちどう連関して動いているのか理解できず余計難しく感じました。

 PHPを始めたときもそうだけど最初はドキュメントを読んでもどう使えばいいのかわからないので、自分のやりたいことをググってコピー&ペーストして少しずつ動かしながらこう動くのかと試行錯誤して開発している現状です。

 IntelliJ IDEAだとJavaのコードを自動でKotlinに変換してくれるのでまじでありがたい。

 あとドキュメントのガイドは日本語化されているのでとりあえず隅々まで読むつもりです。
developer.android.com

 

Android開発のスキルを身に着けたい

 Android開発が予想以上に難しかったのでAndroidのスキル身につけたら他の人と差別化できるかなと感じました。

 もし業務でAndroidのプロジェクトを引き継いだりした場合、KotlinだけではなくJavaの書き方やAndroidのバージョンごとの違いも知っている必要があり最新の変化に追従しながら過去の知識もキャッチアップするのが大変そうではあります。

 モバイルアプリはクロスプラットフォーム開発ならReact Native、Flutter、単体で開発するならiOSはSwift、AndroidはKotlinを使用するという流れだと認識しています。過去にはXamarin、Cordova、Titanium Mobileなどがあったものの淘汰された印象で、どの技術が今後メインストリームになるのか正直わからないです。

 今は業務でCordovaを使用していて凝ったことをやろうとするとネイティブ層に手を入れるため結局AndroidiOSの両方の知識が求められる(汗。

 そういう理由もあって(MaciPhoneを持ってないからiOSの開発ができないということもありますが)流行りに左右されるようなReact Native、Flutterよりもネイティブに近い+サーバサイドもいけるKotlinを選びました。

 とりあえず作りたいアプリの構想はあるので、完成させてPlayストアまで出すのが今の目標といったところです。