Webプログラマが0からUnityを勉強してゲームをリリースするまで

目次

  1. 背景
  2. プログラマがUnityでゲームを作るメリット
  3. プログラマがゲームを作る際に気を付けること
  4. リリースまでにやったこと
    1. チュートリアルをやる
    2. 自分で超簡単なゲームを作る
    3. アイデア出し
    4. アセット制作
    5. プログラム
    6. リリース
  5. 課題

背景

こんにちは。 かりんとうマニア(@karintozuki)です。
Webプログラマとして働いています。

プログラミングを始めるきっかけがゲームを作りたかったから、という人は多いのではないでしょうか。

私もその一人ですが、いつの間にかWebプログラマになって、
ゲーム制作とはかけ離れた仕事をしていました。

そこで今回は初心に返って、ゲームエンジンであるUnityを勉強して、
Androidアプリとしてリリースしてみました。

今回作ったゲームはこちらからダウンロードできます。

Webで遊ぶ場合はこちらのリンクから(PCのブラウザからのみプレイ可能です。 ※モバイル不可)
WEB版 スーパープロジェクトマネージャー

Androidはこちらからどうぞ。
Android版 スーパープロジェクトマネージャー

この記事では0からUnityを勉強して、その過程で気付いたことを書いていきます。

プログラマがUnityでゲームを作るメリット

プログラマがゲーム制作をするメリットは、
プログラムが分かってる、ということです。

まあ、当たり前すぎますが。。。

実際にゲームを作ってみて、
以下の要素がゲーム制作で大事だなと感じました。

  • プログラム
  • ビジュアル・音などのアート面
  • ゲームのアイデア

プログラマはこの3つのうち、
プログラムをすでに習得しているので、
ほかの要素により時間を使えます。

また、プログラマとしての知識によってリリースなどが楽になることがあります。
例えば、Androidアプリ開発をしたことがあれば、
ゲームをPlay Storeにリリースする際にスムーズです。

また、Web系の知識があれば、簡単にWebで公開することができます。
そういったことでつまづくリスクが減るのがメリットだと思います。

プログラマがゲームを作る際に気を付けること

逆にプログラム以外のすべては0から始めないといけません。

実際に私がゲームを作った際に、つまづきがちだったのはプログラム以外の面でした。
そして、ゲームの良しあしを決めるのはプログラムよりは
ゲームシステムだったりグラフィックだったりするわけです。

また、ビジネスとして成功させようと思っている場合、マーケティングやらなにやらの知識も必要になってきます。気が遠いですね。
とにかくゲーム制作は時間がかかるものと思い知りました。

ここからは、どんなステップを踏んでゲームを作ったかを書いていこうと思います。

リリースまでにやったこと

チュートリアルをやる

まずはじめにやったのはこちらの7時間のチュートリアルです。
https://www.youtube.com/watch?v=gB1F9G0JXOo&ab_channel=freeCodeCamp.org

英語ですが、解説者のテンションが高く面白いのでオススメです。
このチュートリアルを終えるころには簡単な2Dゲームができるようになっています。

ゲーム制作というとプログラムをすることが多いのかと思っていたのですが、むしろGUI操作をしっかり知らないとどこから手をつけていいかわからなくなってしまいます。
GUIの使い方はこういったチュートリアルで一通り触ってみるのが良いかと思います。

7時間というと長いようですが
私はプログラミングのパートはほぼすっ飛ばしたので2時間くらい省略できました。
C#を触ったことがある人ならもっと早いかもしれません。

プログラミングまわりで、Unity特有のコンセプトといえば、

  • rigidbody(物理演算)とCollider(当たり判定)
  • GameObjectとComponent
  • Coroutine
  • Delegate

くらいでしょうか。
このあたりはUnityならではの概念なので、
しっかりとチュートリアルを見たらいいと思います。
逆に言えばこれ以外は大体普通のプログラミングです。

自分で超簡単なゲームを作る

こんな感じの超シンプルゲームを作りました。
一人テニスができるゲームですね。

一応ここからプレイできるので、興味があればぜひ。

https://www.bedroomcomputing.com/projects/squash/

これは持論なのですが、プログラムでもゲーム制作でも
チュートリアルをなぞったあと、オリジナルで0から何かを作る、という経験が大事です。

知識の定着と自分ができないことが明確になるので、おすすめです。

アイデア出し

とりあえずここまでで、ゲームを作る基礎知識はできた感じがしました。

そこで、本格的にゲームを作り始めるわけですが、
まずはどんなゲームを作るかアイデア出しです。

ゲームのアイデア出しの手順として、

  • ざっくりとコンセプトを決める
  • 制約条件をあげる
  • 具体的なものに絞り込む

という感じでやりました。

ざっくりとしたコンセプトとして、プロジェクトマネージャーをシミュレーションにするゲームがあったらおもしろいな、
ということを何となく思いつきました。
QDC(品質・納期・予算)の管理とかがゲームっぽいなと思ったからです。

そこから制約条件ですが、

  • Unityエンジンをつかったゲームであること
  • そんなに複雑なプログラムをしないこと
  • そんなに複雑なアニメーションがいらないこと

まあ、これだけ書くとやる気ないのかと怒られそうですが。

とりあえずこれを満たすゲームとして、
プロジェクトマネージャーをテーマにした2Dタワーディフェンスゲームにすることを決めました。

一応、ノベルゲームとかは複雑なことをしないので、良いかなと思ったのですが、
そうなるとUnity(物理エンジン)を使う意味が全くなくなってしまうので、
ボツになりました。

アセット制作

これが割と一番大変なパートでした。
私の場合は絵が描けないので、Figmaでグラフィックを全部やりました。

今流行っている(?)のアイソメトリックを参考にしてビジュアルを固めたため、
えせフラットデザインなゲームになっています笑

地道にFigmaで四角形を加工する仕事でした。

ただ、これはフリー素材もありますし、
お金をかけられるなら、ランサーズやココナラなどで外注してしまったほうがいいかもしれません。

ココナラでアセット製作を発注する↓


プログラム

プログラムを書くのは割と苦ではなかったです。

2Dのシンプルなゲームなので、プログラムで特にテクニカルなことをする必要はありませんでした。

少し変わったことをしたのは、広告を入れたことと、Firebaseを使って、Google Analyticsと連携させたところです。
この詳細はほかの記事で書きたいのですが、
Google Analytics連携をすることで、ユーザがどんな行動をしたのか分析することができ、
ゲームの改善に役立ちます。

実際はアセット制作とプログラムを並行してやる感じでした。

リリース

リリースは以前、Androidアプリをリリースしたことがあったので、
割と簡単にPlay Storeにリリースすることができました。

自分の出したアプリがストアに出るとやはりうれしいですね。

課題

これからの課題としては、いかにマネタイズしていくかを考えていけたら良いと思っています。
一応、広告はつけているのですが、DL数が少ないので収入は得られていません。

どんどん新ステージやキャラクター追加などをしてゲームのクオリティを高めていくことが大事かと思います。

自分の性格上、何かをリリースして放置みたいなことが多かったので、
今回はリリース後のデータを見て、改善していくプロセスもやってみようと思っています。

それでは今日はこの辺で。