🌊

最速で最も自分が遊びたいゲームを開発する方法(の妄想)

2023/02/20に公開約18,600字

この記事について

タイトルの通りです。

前から考えてたことを先日ガーッと書いたので、ほぼそのまままとめます。
考えが変わったり具体的な方法が見えた段階で、随時修正していきます。

それぞれの方法論について、この記事が具体的に書いてるよってのあったら記事のコメントとか以下のツイートのリプとかで教えてください。

https://twitter.com/_mathken/status/1627584821009715201?s=20

また、私は Unity でゲーム開発を行っているので Unity が前提の記事となっています。

自分が遊びたいゲームを掴む

まずここを掴まないと始まりません。
大きく求めるゲーム体験とストーリーの要素に分かれると思っています。
自分の場合であれば死闘を体感したいので、死にゲーになり、ストーリー面では分かり合えない同士が理解し合うストーリーが刺さります。
その組み合わせが作りたいゲームの基準になります。

私は、求めるゲーム体験を掴む一歩として、これまでプレイしたゲームを一覧にして、その中でもバイブルと呼べると感じるゲームを洗い出しました。その中の共通点が見つかれば、求めるゲーム体験が分かるはずです。

https://docs.google.com/document/d/1LDV4TCmMBsJ6WxO1itjrUyF4VJ4pvlzKuCz5jxAYRjQ/edit?usp=sharing

求めるストーリーについては、どのようなストーリーで心を打たれたかを整理します。
上述のように過去に見た映像作品や読んだ本などを洗い出して、どのような点に心を打たれたかの共通点を探すのも良いでしょう。

飽きに対応する

まず注意したいのは、自分が遊びたいゲームを繰り返しデバッグする中で、感動が薄れるのではという点です。
まず、繰り返しプレイしても完成して通しで遊べる際の感動はあると想定します。
その上で、デバッグプレイを少なくする方法を考えます。一つは、初期の段階からデバッグプレイを外注することで自分がプレイする回数を減らすことです。こちらの方法は費用もかかり、個人開発では厳しい可能性が高いです。

もう一つは難易度が高いがプログラムによる自動プレイテストやモンキーテストを都度実装することでコンピュータに代替させることです。こちらであれば、手間はありますが費用はかかりません。テストについては後述します。

最速で開発する方法を考える

作りたいものを定義した後は、いかに最速で作り上げるかを考えます。これは現状の人類の寿命が有限である以上、何本作れるかというタイムアタックであるということが大きいです。

そこでまず考えたいのは、規模が大きい必要はあるかということです。個人的な意見としては、自分が遊びたい内容を実現するのに大きな規模は必要ありません。

プレイ時間をいたずらに伸ばすほど体験やストーリーの純度が薄まると考えます。もちろん、叙事詩のように伝えたいストーリーに対して長い時間が必要となるものはあります。そのようなものは、長いプレイ時間であっても体験やストーリーへの感動が持続します。

まず、短く純度を絞って遊びたいプレイ体験やストーリーが実現できないかを考えます。
現代においては娯楽の可処分時間の貴重性は増していく一方であり、個人の 1 娯楽あたりの可処分時間を超えてしまうと、検討の土台に登れません。価格よりも可処分時間に収まるかを意識します。

最速で作り上げるということを考える上で、必要な作業を以下に分類し、それぞれの速度を上げる方法を簡易に記します。
粒度の大小・や抜け漏れはあろうが特に時間のかかるものについて優先的に述べます。

なぜ作り上げるという命題において、販売やサポートを取り上げるかというと、売上が重要であるからです。
これは、売上を上げることで開発をするスピードを向上するための投資資金が増えることになるからです。
なお、全ての作業のノウハウについては一定水準の教育や指導を有償で受けていることを前提とします。

企画

プレイ体験の設計

逆説的ですがプレイ体験を作るには、実際にプレイしてみるしかありません。
磨き上げは別途とし、欲しいプレイ体験を最小限で実現したゲームを作ります。
面白いと感じなければ、大胆に方向性を変えます。
また、以下は Amazon の例ですがプレスリリースをまず書くことで企画の方向性を具体化して手戻りを無くす手法も取れます。

https://forbesjapan.com/articles/detail/38145

ゲームのプレスリリースについては、以下の形式が参考になります。

https://note.com/gamecast/n/nae90d756bf04

上達の流れ

以下でプレイ体験を設計するための考え方を学びます。

『ゲームデザインバイブル』
https://www.oreilly.co.jp/books/9784873118017/

『インディーゲーム・サバイバルガイド』に書かれたポイントを以下に記載します。

  • はじめてゲーム作りにチャレンジする人は、まずはプレイヤーが入力できる要素がひとつだけで完結する「ワンボタン・ワンアクションゲーム」を個人で作ります

  • なにか箱をよけたり、ジャンプで穴をよけたりするようなゲームで、ゲームのスタートからエンド、リトライまでが入った作品です

  • 次に、もう少しそのゲームを発展させて、「難易度が上がっていく」「ステージ制にする」「途中から操作できることが増える」など、ゲームの進行によって内容を変化させてみましょう

  • たくさんの小さなゲーム作りを重ねていき、ユニークなものができたと感じたら、次は有料で販売するか、アプリストアなら広告をつけて無料で公開するなどで「マネタイズ」を意識します。

  • 少しでもお金が入るようになったら、もっとプレイ時間が長いゲームを作ってみましょう。ストーリー要素ややり込み要素の追加など、徐々にゲームのサイズを大きくします。

脚本(ストーリー)の執筆

ここについては、速度を上げる方法が見当がつかないのが正直なところです。
『SAVE THE CAT の法則 本当に売れる脚本術』に則り、考えたプロットを他人に話した反応が芳しくなければ、思い切って捨てて次のプロットを書くという方法はあります。

https://amzn.asia/d/hX6KAHx

しかし、あくまで売れる脚本を書くための方法です。本文章における命題は、最速で自分が最も遊びたいゲームを開発することです。ここにおいては、自分が読んで刺さるものがなければ、次のものを書くしか無いのかもしれません。

また、外部のアドバイスを有償でもらうのが早いかもしれません。
MENTA というサービスで、色々な分野のメンターを探すことができます。以下は MENTA で「脚本」で調べた場合の結果です。

https://menta.work/plan?q=脚本

AI に脚本のレビューをしてもらうのも有効そうです。

https://bunshun.jp/articles/-/61115?page=3

上達の流れ

上述の『SAVE THE CAT の法則 本当に売れる脚本術』については既に読みました。
また、具体的な脚本の書き方を学ぶために以下も追加で読みました。訳者が日本語での脚本の書き方を解説してくれています。

https://amzn.asia/d/cTYRKx5

以降は、実際に脚本を描いていきながら MENTA で脚本のメンターを探してアドバイスを受けます。

開発

以下においてコーディングは、C#のコードを書くだけでなく Unity 自体の操作方法を含みます。
そのため、設計より前に来ています。

コーディング

Rider のような高機能な IDE の活用によるスピードアップや、有償での有識者とのペアプログラミングによる気づきが効果があると考えます。
Rider のことを知りたい場合は以下の書籍がおすすめです。

https://nextpublishing.jp/book/16131.html

AI を活用したコード生成も有効ですが、ライセンスの問題や間違った内容に注意します。

https://qiita.com/tanikura/items/c652dcd12b6ee35a027c

なお、開発するゲームはオープンソースで開発するものします。
これは外部からの機能強化やバグ修正に期待してのものではなく、自分が遊びたいゲームのソースコードを公開することで類似のゲームが開発されて自分が楽しめることを期待するものです。

オープンソースとするのは、効率化のために作成したエディタ拡張なども同様です。
オープンソースで販売もしているゲームの例として以下があります。

https://mindustrygame.github.io/

また、一般的なオープンソースのライセンスを適用しつつも我々が販売する製品と同名または値段以下の値段で販売しないようにする条項を追加します。そうすることで、オープンソースとしつつも次の開発を効率化するための売上を確保します。
ただし、上記の Mindustry は GPL でライセンスされており、それでどのように販売を成立しているかは要確認です。

https://github.com/Anuken/Mindustry/blob/master/LICENSE

オープンソースとする場合に、有料アセットを使用することができない点が最も大きなデメリットです。
可能な限り内部で開発してオープンソースとすることで、今後の開発効率化に繋げたいです。
ただ、本デメリットについては相当に大きいため再考の余地があります。

例外として Unity 公式の無料アセットは再配布が認められているためオープンソースとして組み込むことが可能です。

https://assetstore.unity.com/browse/faq-jp-p1?locale=ja-JP

Q17: アセットを組み込んだ状態でビルドなどはせずにプロジェクトごと配布しても良いですか?

(抜粋)弊社がパブリッシャーとして配布しているアセットで商用利用を禁じていないアセットに限り、その内容物を改変の有無を問わずプロジェクトに同梱して配布しても結構です。弊社がパブリッシャーとして配布しているアセットを改変せずに同梱して配布する場合には、meta データが更新されていないようにお気を付けください。弊社側で将来的に各アセットをアップデートした場合に上書きアップデートされるようにしてください。改変した場合には、別のアセットとして認識されるようにすることでユーザーの利便性を向上させるために、ファイルネーム / meta データ / シェーダーネームの全てを変えることをお勧めします。

また、エディタ拡張の開発はコーディング全般の効率化に有効です。

上達の流れ

私は以下の入門書をこなしたあとに、上記の MENTA でメンターを探しわからないことを都度相談しながら開発を始めました。
両方とも、新しいバージョンの本が出ている可能性があるのでご注意ください。
2 冊実施したのは、それぞれでカバーしている機能が異なったためです。

https://amzn.asia/d/6jBEmUh

https://amzn.asia/d/4pFxVFY

また、C#の理解が足りていなかったので以下を追加で今読んでいます。

『Unity 3D ゲーム開発ではじめる C#プログラミング』
https://amzn.asia/d/169t4zw

以下は MENTA で「Unity」で検索した場合の結果を以下に貼ります。
後述の設計関連のメンターを探すのにも有効でしょう。

https://menta.work/plan?q=Unity

エディタ拡張の上達方については、知見がありません。

『インディーゲーム・サバイバルガイド』に書かれたポイントを以下に記載します。

  • Unity Cloud Build や Jenkins などのビルド自動化ツールを積極的に使いましょう。コードをバージョン管理ツールにコミットしたことをトリガーに、各プラットフォーム向けのビルドを自動で作成するフローがあれば、開発スピードは大幅に向上します。

  • Git LFS などの大容量データも扱えるホスティングサービスを利用していれば、コードとともに画像や音声データもバージョン管理できます。

  • ポーズ機能について、プレイヤーの操作やゲーム内のシチュエーションごとに、ポーズ処理が不具合の原因になっていないかを確かめながら開発していきましょう。

  • セーブ時にはすでに存在するセーブデータを直接上書きせず、「新規ファイルとしてデータを保存したうえで、データの保存が無事完了したら古いほうを消す」という処理にしておきます

  • オートセーブのためのセーブスロットと、プレイヤーが能動的にセーブを行うためのスロットを別扱いにしておくと安心です。

  • Steam などのセーブデータのクラウド保存はできるかぎり実装したほうがよいでしょう。

  • DLC のデータがいつ失われてもセーブデータが異常な状態にならないよう設計しておく必要があります。

設計

設計開始前の有償での有識者との壁打ち及び設計中のレビューが最も有効と考えます。
設計の自動生成については有効な技術が乏しく、いかに手戻りを無くすかが重要です。

Unity での設計については以下の記事が参考になります。

https://learning.unity3d.jp/6159/

上達の流れ

まず動かしながら具体的なデザインパターンを試すために以下をダウンロードして実行しました。
自分の現時点の理解では Factory パターンが何をしているかを理解するのが精一杯でした。

https://blog.unity.com/ja/games/level-up-your-code-with-game-programming-patterns

現在は、前述の「Unity における設計のパターン」内で勧められていた以下の本を読もうとしています。

『Adaptive Code  ~  C#実践開発手法 第 2 版』
https://amzn.asia/d/1lyI4dB

『Clean Architecture  達人に学ぶソフトウェアの構造と設計』
https://amzn.asia/d/2aTVysn

テスト

テストにおいて重要なのは、いかに早期にバグを発見して対処できるかです。
有効な方法としてテスト駆動開発を行うことです。

また、ユニットテストレベルだけでなくシナリオテストレベルについても自動化を図ります。
一般にシナリオテストは変更が多く、いわゆる壊れやすいテストと言われます。
一度自動化することで他のゲームを開発する際に基礎の流用ができ、長期的には効率化につながると考えるため自動化を図ります。

自動テストだけでなく自動化全般の考え方については、以下の講演がとても参考になります。

https://learning.unity3d.jp/8848/

上達の流れ

テスト駆動開発については、以下の書籍が良書とのことですがまだ読めていません。

『テスト駆動開発』
https://amzn.asia/d/h1Osvrf

シナリオテストの自動化については、知見がありません。

パフォーマンス・チューニング

知見がありません。

上達の流れ

知見がありません。

アート(モデル)制作

2D モデルについては、賛否両論あるかと思いますがラフを書ける画力を有償で
身につけて AI の image to image で生成することが現時点においては効率的と考えます。
以下の記事が参考になります。

https://note.com/kudoshusak/n/n9700e8139e18

3D モデルについては、以下で再配布可能な 3D モデルを探すことが可能です。
ステージも探せます。
検索時にライセンスでフィルタリングする事ができるので、再配布可能なライセンスで検索を行うことで探せます。
https://sketchfab.com/

また、ベースとなる物体を何らかの方法で取り込むことができれば効率化につながると考えますが知見がありません。
調べてみたところ、AI による 3D モデル作成はまだこれからのようですが進んではいるようです。
https://techcrunch.com/2022/12/20/openai-releases-point-e-an-ai-that-generates-3d-models/

上達の流れ

私のゲームにおいては 3D モデリングが重要なため、3D モデリングについて記載します。
また、現在はオリジナルの武器を作ることに関心が深いためそちらについて特に記載します。

武器のデザインについては、まず作りたい武器のデザインを具体化するためにデザインスケッチから
始めることが良いかと考えています。
デザインスケッチについては、以下の書籍で学ぶようにします。

https://www.amazon.co.jp/gp/product/4568320054/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

作りたい武器のデザインが表現できるようになったあとは、Blender のスキルを上げて 3D モデルを作成していきます。
Blender での 3D モデリングについて学ぶ場合、以下の講座を活用します。
https://www.udemy.com/share/104ovs3@putrgarqNrnRLIr4HnRUy2rUjiRWOJh6QH80r_ggsu6OirlsjkLOn_1C7aa2tVy6VQ==/

以下のような Sci-Fi な武器をモデリングできるようになるのが目指すところです。

https://www.youtube.com/watch?v=xcrw7ViLRQM

また、上記とは別にイラストを学ぶ際は以下のサービスがあります。
https://www.palmie.jp/

アート(ステージ)制作

スキルとしてはモデル制作と共通する部分もありますが、最終的に必要となるスキルは異なるはずですので別立てにします。
3D モデルを探せるサイトで、ステージが配布されていることもあります。

上達の流れ

ダンジョンの作り方という観点ですが、以下をまず読みます。

https://note.com/daraneko_games/n/nb01e5d943f5f#9a135cd8-cafa-4ba7-85d5-9936a328f5cb

アート(アニメーション)制作

アニメーションはキャラクターの動きを指します。
アニメーションについては、どのような動きをするかを設計することとその動きを撮影することでフェーズが分かれます。
また、動きはイベントシーンの際の動きとアクションシーンの動きで分かれます。

イベントシーンでは以下のように動きとしての演技が求められます。
https://www.youtube.com/watch?v=aDVSnaWc5HU

動きの設計については、映画などからどのような演技や動きを実現したいかを研究するぐらいしか思いつきません。

撮影については、モーションキャプチャの活用により効率化できる余地があると考えます。
私は以下の mocopi というモーションキャプチャを利用しています。

https://www.sony.jp/mocopi/

上達の流れ

演技については、以下の本を読みます。
その後、映画を見て研究を行います。
https://www.amazon.co.jp/魂の演技レッスン22-ステラ・アドラー-ebook/dp/B074GQXTPM/ref=tmm_kin_swatch_0?_encoding=UTF8&qid=1678888639&sr=1-15

アクションの設計については、まず西洋剣術の本を読んで動きの設計の基礎を作ります。
その後に映画を見て実現したいアクションのイメージを掴みます。

アクションの撮影については自分が制作するのが VR 剣戟アクションであるため、そちらのアクションに習熟するのが上達につながると考えます。
思い通りの動きができるように、カメラで動きを撮影してトレーニングを行います。
西洋剣術を指導してくれる場所として、以下があり並行して指導を受けたいと考えます。

https://www.castletintagel.com/

カメラワーク・ライティング

カメラワーク・ライティングについては、効率化することは難しく上達してスキルを高めることになるのが近道と考えます。

上達の流れ

カメラワークやライティング以外の要素も含みますが、以下を読んでいます。
『映像クリエイターのための完全独学マニュアル 不可能を可能にするテクニック〈撮影・録音・照明・ 構図・脚本・編集〉』
https://amzn.asia/d/5x3p6nB

上記の本は映画撮影についての本ですが、Unity は現実を模倣可能なようにカメラや照明の設定パラメータが多いため、映画撮影の知見についてもメモしていきます。

  • カメラの露出オーバーを使うことで、気分の悪さや方向感覚を失ったような感じを作れます
  • 例としてはカジノロワイヤルの毒を盛られるシーンがあります
  • シャッタースピードを早くすることで細かい雨の粒やほこりなどを拾う事が出来てリアリティのある絵を作れます
  • 被写体の大きさを変えずに背景を拡大して手前に持ってくるためには後ろに下がってフレーム内でズームします
  • レンズの絞り値を小さくすることで、背景のボケを大きくして人物が目立つ映画的な雰囲気を作り出すことができます
  • 広角レンズを使うことでカメラが役者に近づいたり遠ざかったりする時に強い効果を発揮します
  • 広角レンズを使うことで顔が外側に伸びる傾向があり、顔が丸く見えます
  • 望遠レンズでロングフォーカスで撮影することで、 二人の距離が親密に見えます

その次に構図の理解のために以下を読みます。
『filmmaker's eye 第 2 版:映画のシーンに学ぶ構図と撮影術:原則とその破り方』
https://www.amazon.co.jp/filmmakers-eye-第2版-映画のシーンに学ぶ構図と撮影術-原則とその破り方-ebook/dp/B0BXRLTZG2/

その後、VR は 1 人称なので、1 人称のグレイブエンカウンターズのような映画を見て参考になる構図を集めます。

サウンド(BGM・効果音)制作

BGM・効果音については、オープンソースの場合でも再配布可能な素材で代替できる可能性が高いです。
以下のサイトの音源は 23/02/20 時点で再配布が許可されています。条件変更になるかもしれないので、必要に応じてご確認ください。

https://otologic.jp/free/faq.html

また、AI 活用による作曲・効果音作成も考えられます。

https://gigazine.net/news/20221216-stable-diffusion-riffusion-music/

初期のうちはそのように乗り切り、長期的には重要な部分については自分でサウンドを制作できるようにするのがよいでしょう。
ここは外にお願いするのか自分で作るのかの判断が難しいところかと思います。

上達の流れ

BGM を制作する場合は、DTM を学ぶことになるので以下のいずれかを受講します。
機器を揃える前に、Mac の Garage Band などで間に合いそうかを確認するのも有効と考えます。

https://www.udemy.com/user/haruto5150/

https://www.udemy.com/user/shang-qi-zhou/

効果音については、当面は素材を活用する方針で考えますが自作する場合は以下を読むことから始めます。

https://amzn.asia/d/cvZ1a6b

サウンド(ボイス)制作

ボイスについては演技指導とボイスチェンジャーの活用により幅広いキャラクターの声を
自分で録音することができるようになることが、最も効率が良いと考えます。

異性の声を録音したい場合は、音声変換を活用することが有効です。

また、海外対応を行う場合は最低限ボイスは英語を含めたいと考えます。
文法などは後述の翻訳で取り上げるとして、ボイスの観点では発音が重要でしょう。

上達の流れ

以下の、オンラインで声の指導をしてくれるサービスで声の演技を学びます。
その際、声の高さは音声変換で対応するとして変換して異性と感じられる発声の仕方を合わせて学習します。

https://spot-pj.com/spot_html/index.html

男性が女性の声を出すための音声変換については、以下の教材で学びます。

https://www.udemy.com/share/1087Qc3@ouyQQ6XayhLXnjB_6gdwvb9n0WnkEqnNPujorHOqUroTB8R5sDDeTcPDrUt-XJDP0g==/

英語の発音の上達について、自分はまだ試せてないのですが以下のサービスは有料ですが AI が発音の改善を提案してくれるアプリのようです。

https://www.speak.com/jp

翻訳

早さでいうと DeepL のような翻訳サービスを頼ることになりますが、顧客に意味の通る内容にするのであればチェックが必要です。
ファイルを読み込ませて編集可能な状態で取り出すには、DeepL の有料プランが必要になります。

https://www.deepl.com/pro?cta=header-pro

また、以下のサービスに翻訳した文章を投入することで文法を修正してくれます。

https://www.grammarly.com/

可能であれば英語のスキルを長期的に積んでおいて、最低限自分でチェックができるとよいでしょう。
何かで読んだのですが、英語から他の言語に翻訳してもらう翻訳者は見つけやすいらしいです。
英語以外の精度を翻訳者に頼んで上げたい場合でも英語の精度を上げておくのが重要です。

上達の流れ

ここでは、AI の翻訳結果を読み解く力が求められます。
つまりは、単語の使い方や文法が不自然でないかのチェックです。
取り急ぎ必要なのは英語なので、英語について上達する必要があります。
今後のソースコードのコメントや技術的なアウトプットを全て英語にする方法を取れば、
普段のアウトプットの中で英語力を高められるのではないかと考えます。

『インディーゲーム・サバイバルガイド』に書かれたポイントを以下に記載します。

  • 「UI に表示される文字」と「シナリオ」は、多言語対応を見据えて表計算ソフト経由でのデータ読み込みフローを構築します

販売

リリース前の宣伝

SNS や Youtube チャンネルを開設し、開発の過程を公開することで追加の時間をかけずに宣伝につなげます。
前述の通りオープンソースで開発する場合は、成果物を全て見せて構いません。
また、自分がプレイしたいゲームを実況することで、見込み客がチャンネル登録してくれる可能性があります。

上達の流れ

特に Youtube チャンネル運営を行いたくさんの人に観てもらうという観点では、動画編集やサムネイル作成が重要です。
本格的に学ぶ際は、MENTA でメンターを探します。

リリース作業

Steam などのストアへの登録を含みます。スクレイピングなどによる自動化は考えられますが、登録内容は都度変わると想定され難しいです。登録のノウハウをまとめて対外向けの記事としてまとめるのが関の山かもしれません。

上達の流れ

上達ではないですが、ストアへのアップロードを行った際に方法をまとめて記事として公開しておくことで、時間を空けてアップロードする際に自分の記事に救われるでしょう。

『インディーゲーム・サバイバルガイド』に書かれたポイントを以下に記載します。

  • はじめての PC ゲーム公開にお勧めのサイトは「itch.io」です。これは、誰でも登録できるゲーム販売ストアで、PWYW(Pay What You Want)、すなわち購入者が価格を決める形式で公開できます。

リリース後の宣伝

プレスリリースについては、前述の企画で作成しておけばマイナーチェンジで良いため大きく時間はかからないです。
SNS や Youtube チャンネルが一定の基準を超えている場合で、宣伝を主目的としてクラウドファンディングを行うということが考えられます。その際、先行プレイ権や進捗の先行公開など追加作業が発生しない報酬を設定するとよいでしょう。

上達の流れ

プレスリリースについては、実施する際に以下を読んで実践します。

https://note.com/gamecast/n/nae90d756bf04

クラウドファンディングについては、実施する際に以下を読んで実践します。

https://note.com/naspapa/n/nf5c5c40cc5f2

サポート

顧客の質問への回答

質問の多くは、進行困難である場合に発生すると想定します。

VR 作品においては機器のバリエーションが多く相性問題が頻発するため、各機器での動作確認はもちろんのことリグレッションテストが自動で走るようにすることが理想です。

操作不可能となる事象はモンキーテストの自動化によりできるだけ潰しておくのがよいでしょう。

操作方法が分からなくての質問については、操作解説をユーザが見なくても詰まりそうなタイミングで画面に操作説明が出る動作をデフォルトとすることで問い合わせ自体をなくしていく方法が考えられます。
本動作はオプションで任意にオフにできる他、ある程度進んだ段階でオフにするかを確認する仕様にするとよいでしょう。

上達の流れ

リグレッションテストやモンキーテストについては、テストの項にゆずります。
問い合わせを無くす件については、チュートリアルや詰まらないようにするのが巧いゲームを研究して、ポイントをリストアップします。

『インディーゲーム・サバイバルガイド』に書かれたポイントを以下に記載します。

  • 海外展開を検討するなら、全世界のゲームファンとコミュニケーションするコストを投じられるかどうかを事前にしっかり考えましょう

バグ修正(機能強化は開発に含む)

バグ修正において時間がかかるのはバグの再現であると考えます。
ユーザの同意を得た上で、バグ発生時のログを開発側に収集できる機能を備えておきます。
そのため、スタンドアロンのゲームであっても開発側のサーバへの通信機能を保持することが望ましいです。
常に取得すると容量が大きくなるため、ユーザがバグ報告を行うために実行するボタンを用意しておき、直近の時間のログのみを収集する機能でも良いでしょう。

上達の流れ

バグ発生時のログを開発側に収集できる機能の学習については、知見がありません。
メンターに質問するのが有効と考えます。

共通

上記以外で、ゲーム制作を行っていく上で共通で発生して時間を取られる諸課題を取り上げます。

各分野の学習に時間がかかる

上記の対策は膨大な学習時間の上に成り立っています。学習自体を効率化できればよいのですが、知見はありません。

上達の流れ

学習スキル自体を向上させる本として、以下があります。
『リファクタリング・ウェットウェア』
https://www.oreilly.co.jp/books/9784873114033/

『リファクタリング・ウェットウェア』を読んで、学習を効率化させる方法は以下です。
進捗としては、P.42 から読みます。(Kindle で読めます)

  • 周囲の状況や文脈 一コンテキストー を必ず考慮に入れることが重要です

  • ドレイファス兄弟の技能習得モデルの 5 段階における最高段階の達人を目指すためには、自分なりの経験を活用・応用 し、コンテキストを理解し、直感に頼ることが重要です

  • 全体を見る R モード及び部分を見る L モードを切り替えて、洞察を逃さないようにします

  • 学習能力を高めるための具体的な手法として、「SMART」な目標を立てる、マインドマップ、読書法の SQ3R、教えることによって学ぶといった手法があります

  • ドレイファス兄弟の技能習得モデルの 5 段階の初心者には、状況に左右されないルールすなわち、「X が 起きたときにはいつも Y を しなさい」という形式のルールが必要です

  • 小さな成功を積み上げる必要があります

  • しかし、ルールは柔軟に状況に対応することができません

  • 中級者は多少ルールを外れて判断をしたりできますが、全体像の把握の必要性は認識していません

  • 上級者は、問題領域の概念モデルを発展させて効果的に作業ができるようになり、直面したことのない新しい問題に対処できます

  • 問題を解決する際に、どの部分に焦点を当てて対処するかを決定するにはまだ苦労します

  • 熟練者は技能を取り巻く全体像を把握し、自分のうまくいかなかった自らの行いを修正したり他人の経験から学んだり、状況に応じて臨機応変に解釈可能な原則である格言を活用することができます

  • 格言が特定の状況(コンテキスト)において何を意味するかを判断します

  • 達人は、膨大な経験、洗練された判断力や記憶力、脳の知的な働きの全てが直感となって正しい行動を行います

  • これまでの経験から、無意識に本質に関係のない部分と重要な部分の区別を行うのです

  • 達人にルールを強制すると能力を削ぎます

  • 技能レベルが上昇する中で、よりどころがルールから直感に変わります

  • また、問題を小部分の集合としてでなく、統一体として認識して特定の小部分に力点を置くようになります

  • そして問題の観察者ではなく、システム思考が説くようにシステムの一部として関与する存在となります

実現したいことを他人に伝えるためのコミュニケーションコストがかかる

全ての工程を個人として担当する、つまり個人開発とすることでコミュニケーションコストを無くすことを目指します。
ただ、リリース後に何らかの理由で開発者が開発できなくなった場合に、他の人がリカバリーできるようにメンテしやすいコードであることが求められます。

これは前述の設計やコーディングにおける対策を実施することが重要です。

上達の流れ

設計やコーディングの項にゆずります。

ノウハウが無いことによる迷いで制作が遅くなる

それぞれの開発者が自分が遊びたいゲームを開発しつつノウハウを共有してもらうために、会社組織の形を取り従業員として雇用してノウハウの共有を指示します。
無論、上記のオープンソースでの開発と同じ考えのもと、ノウハウは全て外部から参照できる形で公開します。

上達の流れ

ノウハウをわかりやすく効率的にアウトプットできるようになることを上達と捉えます。
アウトプットの方法としてはブログなどで行う際でも、技術書の書き方が参考になります。
以下で技術書の書き方を学ぶことができます。

YouTubeのvideoIDが不正ですhttps://youtube.com/playlist?list=PLKtI82pFM8xAs2jfT0UqxJhXFsS33n6xM

給与決定のための評価の時間がかかる

上記の会社の形態を取ることによる副次効果ですが、給与決定のための評価には経営・従業員共に時間が取られます。
その時間を無くすために、給与は自己決定する制度か全社員役員含めて同一の給与とするかのいずれかの形態を取ります。

上達の流れ

給与を自己決定する会社の例として以下を読みます。
https://note.com/raykataoka/n/nc913806a4440

評価制度がない会社の例として以下を読みます。
https://gist.github.com/voluntas/4f90a626adae624d8c23

人を雇う事になった際には、上記を参考にして給与決定ロジックを作ってみます。

インディーゲームを開発し始める前に

開発し始める前に『インディーゲーム・サバイバルガイド』を読んで注意点を把握することが有効です。
https://www.amazon.co.jp/インディーゲーム・サバイバルガイド-一條-貴彰-ebook/dp/B09LBMFFTK/ref=tmm_kin_swatch_0?_encoding=UTF8&qid=&sr=

以下に個人的に気をつけたい内容をメモします。上述の各分野に関連する内容は、各分野のところに書くようにします。

  • ゲームを完成させて発売するまでには、どのくらいのお金が必要になるか表計算ソフトなどに必要経費をまとめて、予測してみましょう。

  • 「デモの完成」などの一定のマイルストーンに到達するまでどの程度のバーンレートが発生するかの見通しを立てるようにしましょう。

  • 開発用機材の購入費用として以下をまとめます

    • ゲームエンジン、ツール、素材の購入・維持費用
    • 素材制作の報酬
    • プラットフォームに関する費用
    • イベントへの出展費用
    • ゲームの運営に必要な費用
  • 「現在一番大きな目的や問題はなんなのか」「なにが最優先なのか」「展示会などのマイルストーンに向けてなにが足りないのか」といった判断の際に現状を素早く確認するためにプロジェクト管理ツールを使います

  • 表計算ソフトでパラメータを作成したうえで、ゲーム開発環境からそのパラメータを読み込むワークフローを構築しておきます

  • 表計算ソフトで扱いやすいパラメータやデータとして以下のものが挙げられます。

    • UI に表示される文字
    • シナリオ
    • 武器の強さ
    • 敵の強さ
    • アイテムの説明と効果
    • アイテムのドロップ率
  • キャラクターや主要なステージモデルなど、目立つ素材はオリジナルでお金をかけて制作し、販売アセットはサブの小物や画面効果等の引き立て役、背景の一部などスポット的に取り入れていくかたちがよいでしょう。

  • プログラミングを楽にするライブラリやゲームシステム系のプラグインはどんどん活用します

  • 便利かつ安全な方法は、パラメータをもとに新しい素材を生成するジェネレーター系のツールを使うことです。製品としては、効果音やテクスチャーを生成できるものがあります。手軽でありつつ、ほかの人とは被らない、権利的にも問題ないアセットを生成・利用できます。

  • 無料の選択肢としては Google Fonts があります。2021 年に、Google Fonts のラインナップにフォントワークス社製フォントが加わり、ゲームに使用しやすいフォントが増えました。

  • 「フォントの著作権情報、ライセンス情報をゲーム内に表示する必要がある」という条件となっています。

上達の優先順位

上記のうち、どの分野の上達を優先するかを整理します。
項目名の横に直近で行う内容のみを書いていきます。
日中のゲーム制作ができてパソコンが触れる時間においては、以下の優先順位で学習を行います。
現在開発中のゲームでは、アセットは Unity 公式のものを使用するため新規のモデルやステージ作成はなく、
サウンドも既成のものを使うため、それらの優先順位が低くなっています。

  • 各分野の学習に時間がかかる:『リファクタリング・ウェットウェア』を読んで今後の上達方法を本記事にメモします
  • プレイ体験の設計:『ゲームデザインバイブル』を読んで今後の上達方法を本記事にメモします
  • コーディング:『Unity 3D ゲーム開発ではじめる C#プログラミング』を読んで開発の中で実践します
  • 脚本(ストーリー)の執筆:先に同時に参考にするために、カメラワーク・ライティングで上げた本を読みます。自分が好きなストーリーの傾向を過去の好きな作品の洗い出しによって把握し、作品を見て心を動かされた部分や考えたことをスマホにまとめてから映画のことを書く資料にまとめます(後でどこかで公開します)
  • アート(アニメーション)制作:演技については、『魂の演技レッスン22』を読みます。アクションについては、『中世ヨーロッパの武術』を読みます
  • 設計:『Adaptive Code  ~  C#実践開発手法 第 2 版』を読んで開発の中で実践します
  • テスト:『テスト駆動開発』を読んで開発の中で実践します
  • カメラワーク・ライティング:紙で『映像クリエイターのための完全独学マニュアル』及び『filmmaker's eye 第 2 版:映画のシーンに学ぶ構図と撮影術:原則とその破り方』を読んで、ゲームづくりに役立てる点をスマホに書いてから本記事にまとめます。
  • リリース前の宣伝:動画編集やサムネイル作成をメンターから学びます
  • サウンド(ボイス)制作:声の演技のオンラインレッスンで学んだことの練習を行います
  • アート(モデル)制作:紙で『デザインスケッチ―アイデアの展開・やさしい図法・レンダリング』を読んで、上達のステップをスマホに書いてから本記事にまとめます
  • アート(ステージ)制作 ※以降は優先順位低いため、一旦アクションを省略します
  • サウンド(BGM・効果音)制作
  • リリース後の宣伝
  • リリース作業
  • バグ修正(機能強化は開発に含む)
  • 顧客の質問への回答
  • 給与決定のための評価の時間がかかる

以下については、普段の開発作業の中で実施するようにします。

  • 翻訳:ソースコードのコメントなども含めた文章的なアウトプットを、可能な限り英語で書きます。また、リリース前の宣伝の一環であるゲーム実況についても、可能なら英語で実施していきます。

残課題

  • パフォーマンス・チューニングについてなにも書けてない
  • 「脚本(ストーリー)の執筆」の上達のために直近行うことが決定できていない
  • オープンソースにすることと有償アセットを使えないことのどちらを取るかを決めきれていない
  • エディタ拡張、シナリオテストの自動化、イベントシーンの演技、プレスリリースやクラウドファンディング、バグ修正の上達方法の取っ掛かりがない
GitHubで編集を提案

Discussion

ログインするとコメントできます