「Web系のプログラムは組めるけど、ゲームは無理かな...」ゲームプログラミングって難しそうなイメージがありますよね。私は業務系Webアプリケーション開発の仕事をしていたのですが、ふとしたことからゲームプログラマーを志し、独学でゲーム開発技術を学び、今ではスマホゲームのプログラマーをやっています。昨今のスマホゲームの爆発的ヒットによって、ゲームプログラマーの需要が急増していて、ゲーム開発経験のない人にもゲームプログラマーになるチャンスが十分あります。個人でかんたんなゲームを作る求人に応募して採用された!という手順でうまくいきました。そんなわけで今回は「Unityを独学してゲームプログラマーに転職した方法」を紹介します。́・ω・`)」と思ってあきらめました。DirectXのコードを見ると確かにゲーム開発はWebなどに比べて難しそうです。そんなある日、書店でUnityの本が目に入り、手に取ってパラパラと眺めてみたところ、Unityなら俺にもできる!「どうせ難しいんでしょ?」と思って手に取ったのですが、コードも短いし、やってることもなんとなくわかる気がしました。「これならいけるんじゃないか!?」と思ったんです。DirectXは言語がC++なのに対し、Unityは言語がC#、JavaScriptなので読みやすかったのもあると思います。ゲーム開発には高度な数学やゲームアルゴリズムの知識が必要?ゲームプログラマーを志す際のハードルとして「ゲーム開発には高度な数学やゲーム特有のアルゴリズムの知識が必要なんじゃないか?」というものがあります。私は数学が苦手なので、「やっぱ無理かなぁ」と思っていたのですが、実際今ゲームプログラマーをやれています。数学の勉強をしたわけではありません。Unityが重力処理や当たり判定、フレーム制御などの低レベル処理をやってくれるので、高度な数学やゲームアルゴリズムを自分で実装しなくてもゲームを作れるんです。Unity学習のポイント手を動かしながら学ぶUnityで学習すべきことは大きく分けて2つあります。開発ツールの使い方コードの書き方Unityの開発ツールはかなり高機能でコードを書かなくても、かなり多くのことができます。コードを書くにしてもツールとの連携が必須なので、ツールの使い方を覚えることは重要です。コードの書き方は本やWebサイトを見るだけでもけっこう頭に入りますが、ツールの使い方は実際に手を動かして血肉化しないと使いこなせるようになりません。私の場合、先に本を数冊ざっと読んでみて、「だいぶ基礎的なこと分かってきたな」という段階で、Unityを使い始めたのですが、いざやってみると、何もできず呆然としました。そこで、ドットインストールのUnity講座をやってみました。動画の通りに手順を実行していくと、本で書かれていたことが思い出されて、知識が血肉化していく感覚がありました。開発環境なので手を動かすことが重要です。本を読みながら手順通り操作してみるドットインストールの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がおすすめです。APIを用意すればOKです。UnityにはかんたんにHTTP通信するためのAPIが用意されています。Go等の好きな言語を選べばOKです。私はNode.jsとRubyを使いたかったのでVPSサーバを借りていますが、PHPだったら安価なレンタルサーバでも動かせます。ゲームが完成したら宣伝するニコニコ動画、Youtube、はてな匿名ダイアリー、無料プレスリリース、ブログ、Twitter、Facebook、qiitaなどで宣伝しました。リリース後、数日はアクセスが2000くらい来ましたが、その後はすぐに減ってしまいました。リアルタイムマルチプレイゲームを作っても、プレイヤーが一人しかいないという状況になりやすいので、一人でも複数人でも楽しめるゲーム構成にするのが良さそうです。Unityエンジニアとして採用されるためにすることUnityをある程度習得したら、Unityエンジニアを募集している企業に応募します。私の場合、いくつかの企業からは「ゲーム開発の実務経験がない」という理由で落とされましたが、採用してくれる企業がちゃんと見つかりました!Unityエンジニアは需要に対してエンジニア数が追いついていないので、今がチャンスです!転職はやってみると思ってたよりかんたん私自身3回ほど転職してるんですが、思ってたよりかんたんで、転職エージェントを使ったらあっという間でした。エージェントが応募先候補の選出から、面接の日程調整までやってくれるので、こちらから動かなくても半分くらい自動的に進む感じで楽でした。今はエンジニア不足で売り手市場なので転職するのにちょうど良い時期です。シリコンスタジオっていうエージェントがおすすめです。シリコンスタジオはゲーム業界に特化したエージェントなので、他のエージェントよりも業界知識を豊富に持っています。ゲーム業界ってSIerやWeb系とは違った企業カルチャーがあるので、それらを事前に聞いておいたほうが面接で的確な受け答えが出来ていいと思います。シリコンスタジオのホームページ見てみてください。エンジニア未経験の人にも使える転職エージェントがあるシリコンスタジオはエンジニア経験者向けサービスなので、エンジニアの仕事が未経験の方には、ワークポートがおすすめです。未経験の人はサポート対象外のエージェントが多いんですけど、ワークポートは未経験者の転職も支援してくれます。以前エンジニア未経験の友達にワークポートを教えてあげた所、ちゃんと登録できて未経験可の求人を紹介してもらえました。未経験の人こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいくと思います。ワークポートは全国の求人を扱っているので地方在住の方もご利用いただけます。人脈がなくてもフリーランスになれるフリーランスになりたい方にはギークスジョブがおすすめです。人脈がなくてもギークスジョブに登録するだけで案件を紹介してもらえます。案件の希望(どんな技術を使っているか、残業が少ないこと)等も聞いてくれるので、やりたい仕事が出来ます。「派遣社員」なら正社員とフリーランスのいいどこ取りフリーランスになりたいけど、確定申告とかめんどくさいなという方には派遣社員がおすすめです。派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるのでいいと思います。私の先輩でフリーランスになった後、派遣社員になった人がいるんですが「自由かつ煩わしい手続きがなくて最高」って言ってました!パーソルテクノロジースタッフに登録するだけでかんたんに派遣社員になれます。転職や仕事術、勉強法等について質問や相談がありましたら、以下のメールフォームからぜひご連絡ください。経験者ならかんたんに解決できる相談って多いのでお気軽にどうぞ!こう書いてもなかなかメールくれる人って少ないのでホント気軽にメールしてくれると嬉しいです。(必須)相談内容たまに間違ったメールアドレスを入力されていて返信できない場合があります。一週間経っても返信がない場合、メールアドレスを確認の上、再度送信をお願いします。(26)プロフィールやまろうと申します。ITエンジニアを十数年やってます。スマホゲームと幅広い分野で仕事をしてきました。そこで培ったエンジニアの本質的な仕事力や転職ノウハウを書いています。プロフィール詳細やまろうのYoutubeチャンネルIT関連のことから人生哲学までざっくばらんに話してます。