私がUnityを独学してゲームプログラマーに転職した方法

      2017/09/07

Unityロゴ

「ゲームプログラマーになりたいけど、難しそう…」
「Web系のプログラムは組めるけど、ゲームは無理かな…」

ゲームプログラミングって難しそうなイメージがありますよね。

私もそうでした。

私は業務系Webアプリケーション開発の仕事をしていたのですが、ふとしたことからゲームプログラマーを志し、独学でゲーム開発技術を学び、今ではスマホゲームのプログラマーをやっています。

昨今のスマホゲームの爆発的ヒットによって、ゲームプログラマーの需要が急増していて、ゲーム開発経験のない人にもゲームプログラマーになるチャンスが十分あります。

私の場合、

  1. Unityを本やWebサイトで独学
  2. 個人でかんたんなゲームを作る
  3. 求人に応募して採用された!

という手順でうまくいきました。

そんなわけで今回は「Unityを独学してゲームプログラマーに転職した方法」を紹介します。

ゲーム開発って難しい?

これまでに何度かゲームを作ってみたいと思ってチャレンジをしてきましたが、DirectXを使ったゲームのソースコード見た時には、

「意味わからん、こりゃ無理だわ(´・ω・`)」

と思ってあきらめました。DirectXのコードを見ると確かにゲーム開発はWebなどに比べて難しそうです。

そんなある日、書店でUnityの本が目に入り、手に取ってパラパラと眺めてみたところ、

Unityなら俺にもできる!

「どうせ難しいんでしょ?」と思って手に取ったのですが、コードも短いし、やってることもなんとなくわかる気がしました。

「これならいけるんじゃないか!?」

と思ったんです。DirectXは言語がC++なのに対し、Unityは言語がC#、JavaScriptなので読みやすかったのもあると思います。

ゲーム開発には高度な数学やゲームアルゴリズムの知識が必要?

ゲームプログラマーを志す際のハードルとして「ゲーム開発には高度な数学やゲーム特有のアルゴリズムの知識が必要なんじゃないか?」というものがあります。私は数学が苦手なので、「やっぱ無理かなぁ」と思っていたのですが、実際今ゲームプログラマーをやれています。

数学の勉強をしたわけではありません。

Unityが重力処理や当たり判定、フレーム制御などの低レベル処理をやってくれるので、高度な数学やゲームアルゴリズムを自分で実装しなくてもゲームを作れるんです。

Unity学習のポイント

手を動かしながら学ぶ

Unityで学習すべきことは大きく分けて2つあります。

  1. 開発ツールの使い方
  2. コードの書き方

Unityの開発ツールはかなり高機能でコードを書かなくても、かなり多くのことができます。コードを書くにしてもツールとの連携が必須なので、ツールの使い方を覚えることは重要です。

コードの書き方は本やWebサイトを見るだけでもけっこう頭に入りますが、ツールの使い方は実際に手を動かして血肉化しないと使いこなせるようになりません。

私の場合、先に本を数冊ざっと読んでみて、「だいぶ基礎的なこと分かってきたな」という段階で、Unityを使い始めたのですが、いざやってみると、何もできず呆然としました。

そこで、ドットインストールのUnity講座をやってみました。動画の通りに手順を実行していくと、本で書かれていたことが思い出されて、知識が血肉化していく感覚がありました。

言語の学習なら本を読むだけでもある程度できますが、Unityは言語 + 開発環境なので手を動かすことが重要です。

ですから、

  • 本を読みながら手順通り操作してみる
  • ドットインストールのUnity講座をやってみる

のがおすすめです。

やっていく内に自然と操作方法やUnityの特徴がわかってきます。

[UnityOnlineText]

Unityの特徴

ツールとコードのスムーズな連動

green_floppysima20141024222406500

Unityの一番の特徴はUnity Editorというツールです。

3Dや2Dのオブジェクトを配置して、配置したオブジェクトを操作するスクリプトを張り付けます。

ドラッグアンドドロップなどの作業で直観的に操作できるんです。

ゲーム内のオブジェクトとそれを操作するスクリプトがセットになるので自然とコンポーネント分割がなされ再利用しやすい設計になりやすいのもポイントです。

また、ゲーム内のオブジェクトにはタグをつけることができて、例えばツール上で"Enemy"というタグを敵キャラのオブジェクトに付けておけば、タグ名で検索して全敵キャラのオブジェクトを取得してまとめて操作するコードが書けます。このような便利な仕組みがたくさんあります。

アセットストアを活用すれば一から作る必要はない

UnityにはアセットストアというUnityで再利用可能な2D/3Dモデルや音声素材、プログラムの部品を配布しているサイトがあります。

この中にCompleteProjectというカテゴリーがあって、ゲームのひな型となるプロジェクト一式のセットになっています。これを元に作れば、元からできてる部分を見て作り方を学べる、かつ作る手間が省けるので早く効率的な学習 & 開発ができます。

私が以前作ったゲーム、

もアセットストアにあるMecanimExampleScenesというCompleteProjectをひな形に使っています。

3Dモデルやアニメーションが作れなくてもOK

アセットストアには3Dモデルや再利用可能なアニメーションデータもたくさんあります。

Unityの3Dモデル・アニメーションの形式にMecanimというものがあります。Mecanimは3Dモデルの関節の形式などの共通フォーマットなので、Mecanim形式に対応した3Dモデル・アニメーションならば、別の3Dモデルにも同じアニメーションを適用することができます。

例えば、ユニティちゃん3Dモデル用に作ったアニメーションをプロ生ちゃん3Dモデルに適用することができるんです。

またMMDの3DモデルをMecanim形式に変換するMMD4Mecanimというツールもあるので、MMDの初音ミクをUnityで動かすこともかんたんにできます。

サーバ連携もかんたん

リアルタイムマルチプレイ通信ならPhotonCloud

モンスターハンターや白猫プロジェクトのようなリアルタイムに複数プレイヤーが動きまわるゲームを作るのもUnityであればかんたんに実現できます。

PhotonCloudというクラウドサービスがあって、このサービスが提供するクライアントSDKを使えば、サーバを自分で用意しなくてもかんたんにリアルタイムマルチプレイゲームを実装できるんです。

どれくらいかんたんかというと、複数クライアントでリアルタイムに同期して描画したいオブジェクトにPhotonCloudが提供するモジュールを張り付けてパラメータをいくつか設定すればOKというレベルです。

TCPソケットやWebソケットを使って自前でリアルタイムサーバを実装することもできますが、手間を考えると断然PhotonCloudがおすすめです。

非リアルタイム通信ならWebAPI

リアルタイムではなく、単発の通信でスコアの記録などをさせたい場合はWebサーバとREST APIを用意すればOKです。UnityにはかんたんにHTTP通信するためのAPIが用意されています。

サーバーサイドの言語はPHP, Perl, Ruby, Python, Java, Node.js, Go等の好きな言語を選べばOKです。

私はNode.jsとRubyを使いたかったのでVPSサーバを借りていますが、PHPだったら安価なレンタルサーバでも動かせます。

ゲームが完成したら宣伝する

ニコニコ動画、Youtube、はてな匿名ダイアリー、無料プレスリリース、ブログ、Twitter、Facebook、qiitaなどで宣伝しました。

リリース後、数日はアクセスが2000くらい来ましたが、その後はすぐに減ってしまいました。

なのでリアルタイムマルチプレイゲームを作っても、プレイヤーが一人しかいないという状況になりやすいので、一人でも複数人でも楽しめるゲーム構成にするのが良さそうです。

Unityエンジニアとして採用されるためにすること

Unityをある程度習得したら、Unityエンジニアを募集している企業に応募します。

私の場合、いくつかの企業からは「ゲーム開発の実務経験がない」という理由で落とされましたが、採用してくれる企業がちゃんと見つかりました!

Unityエンジニアは需要に対してエンジニア数が追いついていないので、今がチャンスです!

転職はやってみると思ってたより簡単!

私自身3回ほど転職してるんですが、思ってたより簡単で、転職エージェントを使ったらあっという間でした。

エージェントが応募先候補の選出から、面接の日程調整までやってくれるので、こちらから動かなくても半分くらい自動的に進む感じで楽でした。しかも今は好景気で売り手市場なので転職するのにちょうど良い時期です。

レバテックキャリアっていうエージェントがおすすめです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

なので、レバテックキャリアのホームページ見てみてください。「ホントだ、美人じゃん♪」ってきっと思うはずです笑

職務経歴書の作り方がわからないという方は、私の使っているテンプレートを使ってみて下さい。

地方在住や、エンジニア未経験の人にも使える転職エージェントがある!

レバテックキャリアは東京・大阪近郊のエンジニア経験者向けサービスなので、地方在住の方や、エンジニアの仕事が未経験の方には、ワークポートがおすすめです。

未経験の人はサポート対象外のエージェントが多いんですけど、ワークポートは未経験者の転職も支援してくれます。以前エンジニア未経験の友達にワークポートを教えてあげた所、ちゃんと登録できて未経験可の求人を紹介してもらえました。未経験の人こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいくと思います。

ワークポートは全国の求人をカバーしているので地方在住の方もご利用いただけます。

人脈がなくてもフリーランスになれる!

フリーランスになりたい方にはレバテックフリーランスがおすすめです。人脈がなくてもレバテックフリーランスに登録するだけで案件を紹介してもらえます。案件の希望(どんな技術を使っているか、残業が少ないこと)等も聞いてくれるので、やりたい仕事が出来ます。対象地域は関東圏です。

「派遣社員」なら正社員とフリーランスのいいどこ取り!

フリーランスになりたいけど、確定申告とかめんどくさいなという方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるのでいいと思います。

私の先輩でフリーランスになった後、派遣社員になった人がいるんですが「自由かつ煩わしい手続きがなくて最高」って言ってました!リクルートITスタッフィングに登録するだけでかんたんに派遣社員になれます。

私(やまろう)への相談メールも募集中

転職や仕事術、勉強法等について質問や相談がありましたら、以下のメールフォームからぜひご連絡ください。
経験者から見れば簡単に解決できる相談って多いのでお気軽にどうぞ!こう書いてもなかなかメールくれる人って少ないのでホント気軽にメールしてくれると嬉しいです。

メールアドレス (必須)

相談内容

たまに間違ったメールアドレスを入力されていて返信できない場合があります。一週間経っても返信がない場合、メールアドレスを確認の上、再度送信をお願いします。

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

ホームページを見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはワークポートというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『ワークポート』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、ワークポートは未経験者を支援し転職を成功させています。

未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

『派遣社員』なら正社員とフリーランスの『良いとこ取り』!

  • 「フリーランスになりたいけど、確定申告とかめんどくさいな」
  • 「定時帰りできる職場や、時短勤務がしたい」

という方には派遣社員がおすすめです。

派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員なら

  • 時給が高く、給料も悪くない
  • やりたい仕事を選べる
  • 確定申告不要(派遣会社がやってくれる)
  • 厚生年金、健康保険も派遣会社が入ってくれる

ので、正社員とフリーランスのいいとこ取りな、とてもいい選択なんです。

 - 勉強法 ,