猫茶の研究日誌

ゲーム開発などの技術や、そのほか趣味などの雑記。

学生が自作ゲームエンジンで就活を終えたので振り返る

目次

はじめに

以前こんな記事を書きました。

nekocha.hatenablog.com

今回はその続編です。

あれ以来、某社に内定して就活を終えることができました。
しばらく経ったので、振り返りってみる記事です。

良かったこと、後悔してること、いろいろ書きます。 前回の記事と重複する部分もちょっとあります。

本記事のコンセプト

本題に入る前に… この手の話、可燃性が高いので説明しておきます。

この記事は、「学生向けの」、前例としての記録記事です。


「もし今後、"ゲームエンジン作りたいです!"と、自作ゲームエンジンをメインに携えて就活をするレアな人が出てきたときに、前例として少しでも参考になれば…」
という思いで書いています。
(もちろん、書ける範囲のみになります…)

私自身、学内で前例が(多分)無くて手探りでやってたので…



「学生向けの記録」です。
燃料になることは望んでいません…💦
よろしくお願いします。


軽く自己紹介

ゲーム系専門学校に通う4年生です。

小学生のころから、プログラミングとかはよく知らないけど、技術が好きだった人です。
特にゲームの技術に興味があって、それを学ぶために専門学校に入学ました。
高校は普通科で、ゲーム開発は専門入ってから学んでます。

専門時代ではゲームも作ってきましたが、2年生になったあたりから自作ゲームエンジンを作り始めました。

ゲームエンジン開発を通して、ゲーム開発をより良くしたいなぁという思いがあります。

だいたいそんな感じです。以上。

就活準備

資格

一応触れておきます。

1年生の7月に、2つの資格を取得しています。

というのも、入学当初(2020年)はコロナ禍入ったばかりでした。
入学したものの、授業開始は5月中旬、しかもオンライン授業。
社会的にも今後が分からなくて不安だったので、とりあえず一気にまとめて取っちゃいました。

  • C言語プログラミング能力認定 2級
  • ITパスポート

基本情報も受けようと勉強はしてましたが、あまり意味なさそうと判断して結局受けてません。

これらの資格が本当に必要だったかはさておき、基本情報レベルまで勉強した知識は間違いなく役立っています。

自己分析

前述の自己紹介のように、ゲームエンジン開発等でゲーム開発をより良くしたい」 というやりたいことがハッキリとしていました。

自分の中での考え方としても、他人に自分の考えを伝える際にも、これを軸にしました。

あとは、面接やESでは、長所や短所などをエピソードと紐づけて喋っていく必要があるので、自己分析しながらWord(Googleドキュメント)にまとめていきました。
これをもとに、ESを書いたり、面接対策をしていました。

下図は、実際の自己分析ノートの一部のスクショです。
先にアピールになりそうなエピソードを列挙して、それを分類するといった流れで作成しました。

企業調べ

やりたいことが若干特殊ということもあり、それなりに時間掛けました。
2年生の秋ごろから考え始めてました。

というのももちろん重要ですが、

  • もし自分がここに入ったら、どのように働いて、成長し、貢献するだろうか?(キャリアプラン

という点も着目して考えながら動きました。

こう考えていると、大手で既にすごい内製エンジンを持っているような企業も当然魅力的ではありますが、
少数精鋭ですごく頑張っている、今現在新たに内製エンジン開発を開発しているなどのケースもぜひ受けたいと考えるようになりました。

だいたいそんな考え方もとに、次に応募する企業を考えていきました。

インターン

結果的に、インターンは参加しませんでした
というよりも、「参加できなかった」のです… (ほかにもインターン申し込みたいところが複数社あったのですがどうしても日程や色んな都合が合わず、断念…)

というのも、1社だけ申し込みはしましたが、書類選考落ちでした。
正直、ちょっと凹みました。

ちなみに、内定先です。
インターン落ちても本選考でなんとかなりました。

話を戻しますと…
このときの反省点は、提出したポートフォリオ資料の分かりづらさでした。
(実際落ちたのがポートフォリオが原因かどうかは不明ですが)

システム方面は特に、アピールしないと何も伝わらない分野です。
なので、効果的にアピールしないと意味がないことを改めて思い知りました。

そして、インターンではありませんが、座談会等のようなイベントにも参加してました。
とても刺激を受けましたし、
特に初対面のプロのエンジニアと話す経験は、面接での不安の低減にもつながりました。

適性検査

鬼門でした。

私は専門学生です。
英語や数学、物理は、普段の開発でも使いこそはしますが、
一般教養的に体系的に学んだり試験を受けたりというのは、長らくやってません。
(私の場合、高校卒業からすこし期間あけて専門に入学してるので、もう5年以上とか?)

なので、丸々1か月かけて対策をしました。(開発や面接対策と並行ですが)

SPI・CAB/GAB

正直すごく苦手でした…特にCAB/GAB。
図形の規則性のやつが全く分からん。苦手すぎる。

とはいえ、導入してる企業が多いので頑張って対策しました。

対策はシンプルで、とにかく模擬問題を解きまくりました。
まずは慣れようと。
マイナビの全国一斉Web模擬テストを受けてみたり、 模擬試験受けれるサイトを使ったりしてました。

こことか。

career-world.net

しかし、うまくいった感触は最後までありませんでした…

ところでこの試験どこまでまともに評価されてるの?

コーディング試験

これもちゃんとした対策が必要でした。

ゲームエンジンを内製している企業は、
多分、採用プロセスにコーディング試験を取り入れていることが多い…ように見えます。知らんけど。どのくらい重視されてるかも知らんけど。

というわけで、ここも対策しました。

たとえばこの辺やってました。

  • Paizaラーニングのレベルアップ問題集で、標準入出力をおさらいする。
    クラウド上でテストが走って判定される出題方式についても、これで練習できる。
  • 算術ライブラリに頼らない数学計算を勉強、実装する練習をしておく
  • 学校の先生や、(卒業年度の違いで)先に就活をしていた同級生から、業界の出題傾向を聞く

だいたいこれらでギリギリ何とかなりましたが、
正直、気楽に練習できる場所が少ないなぁ という印象でした。
Paizaスキルチェックにせよ、AtCoderにせよ、練習用に解いてみるにしてはお手軽感が足りない……

ついでに作ったコーディング試験等練習用ソフトの宣伝

というわけで少しだけ宣伝です。
最近、オリジナルの模擬問題を作成して解くことができるソフトを開発しました

今後の誰かのために。

コーディング試験や競技プログラミングなどの練習に使うことを想定しています。

周囲の人や先輩、先生などに作問してもらった問題をシェアしてもらって、
気楽に練習してもらえたらな、という思いで開発しました。

実際に、学内向けに私や先生などが作問した問題を解く勉強会もやりました。
(問題に身内ネタとかも入れつつ、楽しく学べる感じでやりました)

GitHubで公開してるので、もしよろしければご活用ください!!

github.com

宣伝は以上!

就活で見せる作品とポートフォリオ

前述のインターン書類選考落ちの経験から、ちゃんと効果的にアピールしないと意味が無いと思ったので、

  • 効果的にアピールできる作品作り
  • 効果的にアピールできるポートフォリオサイト作成

を頑張りました。

「使えるものは全部使う(アピールにする)」という精神でやってました。
少し貪欲すぎるくらいの姿勢で挑んでました。

(私が緒事情で高校卒業から専門入学までの間に空白の期間がある、ということをそれなりに気にしていたという理由もあります)

以前作っていたエンジン

2年生のときに開発していたエンジンです。

はじめて開発したゲームエンジンです。
ゲーム開発用にフレームワークやエディタを作っていたら楽しくなってきて、
先生からの後押しもあり、エンジン開発にシフトしたときのものです。

このときは、最低限の機能は備えつつ、自分のやりたいことを探っていました。

www.youtube.com

エンジン

一番アピールする作品としてました。
3年生の7,8月くらいから開発始めました。
なので、開発期間は数か月程度って感じです。

どんなものを作ったのかは、長々と書くよりも、学内発表会でのプレゼン動画見てもらうのが一番早いと思います。

「ゲーム開発をより良く・便利にしたい」という考えを自分の中でも認識しつつありました。
これを、達成・効果的にアピールすることを最大の目標にして、設計から丁寧に考えていました。

  • C#スクリプト対応
  • テストも書いてる
  • CI組んでる
  • マルチプラットフォームを想定
    • 算術ライブラリも自作
    • レンダラにはグラフィックスAPIとの中間層となるRHI(Render Hardware Interface)を実装
  • エディタはMVVMアーキテクチャ
  • Application(Runtime)とEditorを完全分離して、プロセス間通信する設計

youtu.be

youtu.be

自分のやりたいことを効果的にアピールするという点では、ある程度要件は満たしていたと思います。

一方、見た目やほかの機能面など、最低限欲しいのに揃っていない部分が多いです(-_-;)
まだUnLitな状態ですし、当たり判定のシステムもまだたったりします…

描画系の技術とかも、CGWORLDをよく購入するほど好きなのですが、手が回りませんでした…

あと、サンプルシーンも、ドラム缶を等速直線運動させて、当たったら爆発、という最低限過ぎるものになっています。
もっとまともなゲームらしいデモを作っておくべきだった、
そして、それが動作するだけの基本機能を実装しておくべきだった
と思っています。

この原因は、

  • アピールすることに集中しすぎていた
  • このエンジンを使ったゲームを作るのは、就活終わってからにしようと考えていた

の2つにあると思います。

そのため、「就活のための機能開発になってしまう(機能実装の優先順位などがおかしい)」ということが起きてしまい、これはエンジン開発そのものにも悪影響を及ぼしていました。

つまり、就活としては結果的に悪くはなかったと思いますが、エンジン開発としてはミスをしたと思っています。

なお、エンジン開発は諦めていません。
ちゃんと就活から解放&目的を再認識したうえで、リスタートのための準備を進めています。
これは、近日また別の記事で書くつもりです。

ゲーム

アピールの主軸ではありませんが、専門入学してから大小含めて7つ以上作ってきました。
その中から、大きめ&一般公開している2作品程度をポートフォリオに書きました。

すべてプログラマ/エンジニアだけで作ってます。うちの学校にもプランナーやアーティストが欲しい…

ゲームエンジンを作る以前に、「ゲームを作ることを知る」ことは必須で重要なことであると考えているので、作ったゲームもちゃんとアピールしました。

1年生:2Dゲーム(DirectX 11ネイティブ)

マップが自動生成されたり、武器を自由にカスタムできる、ローグライトアクションゲーム。
自動生成のマップでもゲームバランスを保てるように調整した、マップ生成アルゴリズムなどがアピールポイント。

youtu.be

3年生:3Dゲーム(Unity、WindowsXboxでリリース)

人力車の運転手(車夫)となり、派手な運転でお客さんを楽しませて、がっぽりとお金を稼ぐゲーム。
和風&物理演算系ゲーム要素のある〇レイジータ〇シー。

2か月の短期間開発、広大なフィールド(最適化、製作支援ツールの開発)、Xbox版リリースなどがアピールポイント。
youtu.be

ポートフォリオサイト

頑張ってよかったこと圧倒的No.1です。

先述したように、インターン書類落ちでちゃんと効果的にアピールしないと意味が無いと思い知ったので、頑張って作りました。

ちゃんと書いたら、ちゃんと読んでくれます。
面接でも、「ポートフォリオサイト読んだのですが…」とポートフォリオサイトの内容にに触れていただけることが多かったです。

実際のポートフォリオサイトも貼っておきます。
今読んでみると、ちょっと文章読みづらい…

mewmew-tea.github.io

また、ここで変に印象悪くするのも避けたかったので、全体的な見やすさも配慮しました。
特にカラーユニバーサルデザインには配慮して、誰にとっても見やすい配色なるよう努めています。

Markdownで書きたい&ある程度オリジナリティがあるWebページを作りたかったので、
MarkdownファイルをMkDocsでHTML化してます。
それをGitHub Pagesのサーバー上にデプロイしてます。

Markdownからの変換から、GitHub Pages上にデプロイするまでのワークフローは、すべてGitHub Actionsで自動実行してます。
自作エンジン開発でCI/CD方面にも力入れてたので、この辺もアピールポイントにつなげていました。

ちなみに、Google Analysis埋め込んでアクセス解析もしてました。
見てほしいページがあまり見られてなかったら、より目立つように構成を改善したりもしました。
もちろん効果は不明。半分自己満足。

履歴書やエントリーシート(ES)の自由記入欄

ESと言っても、アンサンブルなスクエアのことではないです。

ジョークは置いておいて、
エントリーシートの自由記入欄などについての話です。

例えばこんなことを書いてました。

  • 自分の長所:技術者としての興味や知識の広さと深さ
  • その根拠:学内での技術交流/共有、Twitter、ブログやGitHubなどでの活動
  • ゲームエンジン開発がやりたい:ゲームエンジン開発を通して、長所を活かしてゲーム開発に貢献したい!

なるべく作品やアピールしている注力した点と関連/紐づけできるような、長所や大事にしていることを書くようにしてました。

あとは、各社の特色に合わせて、「自分がどのようにマッチしているか」「自分がどのように活躍できるか」といったことを書いてました。

面接

ESに書いた内容を主軸に、先述の自己分析ノートの内容も交えつつ、あとはアドリブで喋る感じでやってました。

面接練習

3年生の10月、11月あたりから対策を始めていたと思います。

学校の先生方や、学校の同期で1年早く卒業する友人たちに、複数回面接練習をお願いしました。

(あと、学校のキャリアセンターによる全学生強制参加の面接練習もありました)

自己分析ノートの中身をアドリブで引き出せるように、練習していきました。
就活用の丁寧な言葉遣いなども、面接練習の中で慣れさせました。

気を付けていたこと

とにかくハキハキと、楽しそうに話す!

ほとんどこれです。喋り方です。
(あと、よく言われる「福利の法則」ってやつも)
エンジン全然関係ないけど。

よく「抑揚をつける」「声のトーンを上げる」「ゆっくりと話す」と良いと言いますが、同じことのつもりです。

いずれも具体的なワードですが、個人的には意識するのが難しかったので、
「ハキハキと、楽しそうに」という抽象的なメンタルの持ち方として意識してました。

私は接客のバイトもやっていて、その経験から喋り方の重要さをよく知っています。
喋り方1つで、自分の言葉の伝わり方が劇的に変わります。

なので、オンラインでの面接中はずっと目の前に

ハキハキと、楽しそうに喋る!

と太字のペンでデカデカと書いた紙を貼ってました。
こういうのは意識しないと、つい忘れちゃいますし。
(なお、受け答えのカンペなどは作っていません。あれ逆に思考のノイズになりそうじゃね?)

正直、活舌は悪いし、面接も得意なほうではないと思っていたので、印象良くできるところは良くする努力をしました。

結果として、喋り方はある程度評価されていたっぽいので成功だと思ってます。

余談ですが、先日このことを学校の後輩に話したら、オンライン発表会の日に、下図のような絵が描かれた紙をPCに貼っている写真が送られてきました。

^  ^
 v

自分自身とって理解しやすい形にすることはやはり重要ですね。

よく聞かれたこと

大抵は「ゲームエンジン開発に携わりたい」という気持ちにや理由について深堀されました。

「なぜゲームエンジンを?」
「何がキッカケで始めた?」
ゲームエンジンの中でもどんな箇所を担当してみたい?」

とか。

リアクション

面接まで進んだときは、珍しがられたり、エンジン開発をやりたい理由について興味を持っていただけることが多かったです。

また、書類選考通過率も高かったです。
自分を好意的に捉えてくれそうなところ中心に受けたのもありますが。

そのほか

個人技術ブログ

このブログなどで、挑戦したことを積極的に技術記事として共有しました。
もちろん、ポートフォリオサイトにリンクを貼ってます。

あと、自作エンジンの目玉機能(?)としていたC#スクリプト機能で使っている「mono」についても、本ブログで解説記事を書きました。
単純に記事書きたいという気持ちと、ちゃんと理解してますよというアピールの両方が目的です。

nekocha.hatenablog.com

ちなみに、冬の間は無駄に雪を降らせたりもしてたりします。
画像は、3年生(2022年)の12月初旬ごろの本ブログ。
当時の降雪量激しすぎてワロタ(のちにナーフしました)

学校

とにかく利用しまくりました。
特に先生方。

就活の全般的な方針の相談(2年生のころから)、作品、エントリーシートや履歴書、面接練習などなど…
頻繁に、沢山相談に乗っていただきました。

夏休みなどにも自習教室(通称ラボ)を開放していただけたので、ほぼ毎日行って作業しては沢山相談してました。

もし先生方に相談してなかったら、明らかにおかしな方面に突っ走ったりして業界内定貰えなかった可能性も充分にあったと思います。
お金払っているのだから、ちゃんと利用して大正解だったと思うと同時に、先生方には心から感謝しています。

また、友人たちとも沢山情報共有をしてました。
専門学生という立場をフル活用できたと思います。

0時以降作業しないルール

前回の記事で触れた、「0時以降作業しない」マイルールですが、ちゃんと守り通せました。
面接でも話しましたが、それなりにウケ良かったです。(多分)

SNS

おもにTwitter(現𝕏)です。
就活終わったのでぶっちゃけると、運用はけっこう気を遣ってました。
ポートフォリオサイトにもリンク貼ってましたし。

ツイート内容自体は、普通に開発の進捗から趣味まで雑多に書いてました。

最低限のこととして、下手なことは絶対にツイートしないようにしました。
普段から心掛けてるけど、就活中は特に。

あとは、特にメディア欄も、技術方面の割合が半分以上になるようにも注意してます。
中でも、Webブラウザでプロフィール開いた時に見える直近6枚分。
画像のような感じで、技術のことがここに必ず映るようにしてます。
ゴ〇ラとかブル〇カの超〇磁砲コラボとかのツイートもありますが、そういったものでここが埋まらないようにしてます。

私自身、初めて見るTwitterアカウントは、どんな人か把握するために真っ先にメディア欄を見に行くので、第一印象の材料の1つだと思ってるためです。

おわりに

成功した部分も沢山ある一方で、後悔している部分も数多くありました。

特に、自作エンジン開発としては(ありがちな?)ミスをやってしまったように思います。
(この反省は今後に活かします)
まぁ、でも就活としては(入社してみないと分かりませんが)成功だったと思ってます。
そこは本当に満足しています。

そして、ミスしてる部分は他のことでカバーできていたと思います。
開発したゲームだったり、学内での活動(受賞歴、200人以上の技術共有Discordサーバーの運営等)、技術記事、ポートフォリオサイト、面接対策、今回はあまり触れませんでしたがGitHubでの活動とか。
持っている武器の弾数と種類が、とにかく多かったからカバーできたのだと思います。
通っている専門学校には2,3年制学科もあったのですが、4年制を選択&頑張り続けた分、沢山揃っていました。ラッキー。
でもやっぱり、自作エンジン開発&デモをちゃんと作れてたら、こんなに武器多くなくても余裕だったのでは…?とも同時に思ってます。

あとは、専門学生という立場も利用しながら、人を沢山頼りにしました。
皆様には感謝しかないです。

(言える範囲なので、知りたい部分に限って情報書けていないかもしれませんが)
今回の成功や失敗が、今後の誰かの参考になれば幸いです。

追伸:コメントでご質問頂いた場合でも、言えない範囲のことも多いのでお答えできないことがあります。ご理解お願いしますm(_ _)m