コードをほぼコピペで作ったゲームがバズった開発者、「約300万円稼いだが何ひとつ理解してなかった」と大反省。“ズタボロ面接”を転機に学び直し

Darko Tomic氏はコードの“コピペ”に頼ってゲームを制作し利益も上げたものの、最終的にはさまざまな問題に直面することになったという。

ベテランUnity開発者のDarko Tomic氏が、キャリア初期における成功と挫折の経験を語った記事を公開し、注目を集めている。同氏はコードの“コピペ”に頼ってゲームを制作し、プロジェクトから利益も上げたものの、最終的には基礎知識の不足によるさまざまな問題に直面することになったそうだ。

Tomic氏はプログラマーだ。同氏はもともと自動車整備士の養成学校に通っていたが、やがてプログラマーを志すように。独学でプログラミングを学び、Unityでゲームを作り始めたそうだ。YouTubeでプログラミングの解説動画を視聴し、3年ほど独学で勉強を続けたという。

ARゲームきっかけにバズる

そうして2017年ごろ、Tomic氏は当時話題となっていたAR(拡張現実)技術に目を付けた。Tomic氏によると、そのころ存在していたARプロジェクトは技術デモの色合いが強く、人々が本当に関心を抱くようなものはまだなかったという。そこで同氏はAR技術を活用したゲームを企画し、開発プラットフォームである「Vuforia SDK」を用いてわずか1か月ほどでARシューティングゲーム『Skeletons AR』を制作。現実の好きな場所に仮想上のタレットを配置し、襲い来るスケルトンと戦える作品だったようだ。同作の動画をRedditの開発者向けコミュニティ「r/gamedev」に投稿したところ、爆発的な反響があったとのこと。Tomic氏の技術力を称賛するコメントが多く寄せられ、企業からも連絡が来るようになったそうだ。

しかしTomic氏は『Skeletons AR』の開発の際、自分で一からコードを書くことはほぼしていなかったという。同氏はYouTubeの解説動画を一時停止して、動画内のコードをそのまま入力。チュートリアルのコードをコピーしたり、フォーラムに投稿されていたスクリプトを繋ぎ合わせたりなどして、全体を作っていたという。自分が何を作っているのか理解しておらず、システムを一つも説明できない状態だったそうだが、ゲームはそれでも動作し、見た目もよかったそうだ。新しいコードが必要になったときも誰かが書いたスクリプトをコピーし、もし動かなければ別のものを探した。ゼロから自分で書くことはしなかったし、できなかったという。

このようにコードの中身を理解していないため、バグの修正には苦労したとのこと。デバッグの基本的な手法を知らず、ブレークポイントを用いたデバッグはおろか、デバッグログの内容 をチェックすることも、Gitを使うこともなかったそうだ。「一行変更して実行し、動作するか確認してまた変更」といった試行錯誤に頼るしかなく、一つのバグの修正に丸一日かかることもあったという。またエッジケースという概念もなく、自分のコンピューターで一度実行して動作すれば、そのプログラムに問題はないと考えていたそうだ。

そんな当時のTomic氏は「自分はグーグル検索に頼りすぎているかもしれない」という罪悪感もあったとのこと。しかし、フォーラムでは「ベテランの開発者もグーグル検索を使用する」という声が多く、自分に問題があるとは思わなかったという。『Skeletons AR』によって名声を集めた同氏は複数のプロジェクトに参加し、そのうちひとつでは2万ドル(約320万円・現在のレート)の収益をあげるなど、ARに長けたプログラマーとして収入を得た。だがこの間も実際にはオープンソースのプロジェクトに依存しており、自分でコードを書くスキルはほとんどなかったそうだ。

質問に答えられない

そんなTomic氏の転機が、セルビア・ベオグラードに拠点を置くとある企業の採用面接を受けたときに訪れた。同氏は面接に先立ち、課題としてUnityでゲームを制作して提出するように求められた。7日間で課題を作り上げたTomic氏はゲームの出来に自信があったそうで、間違いなく採用されると確信していたという。

しかし課題ではUnityの特定のバージョンを使用して開発するように指示されていたのに、Tomic氏はこれを大したことではないと考えて、別のバージョンを使って開発。さらに同氏は面接官に、「なぜスクリプトにQueue<T>(先入れ先出しのデータ構造)を使用したのか」と聞かれても、答えることができなかったという。同氏はUnity解説サイトCode Monkeyのチュートリアルにあったものをコピーしただけで、Queueの仕組みすら理解していなかったとのこと。その瞬間にTomic氏は面接の不合格を悟ったという。そして、Tomic氏は自身のことをプログラマーだと思っていたが、実はそうではなかったと痛感したのだそうだ。

同氏はその後10社ほど採用試験を受けたが、すべて不採用に終わった。書類審査は通過しても、面接の質問に答えられなかったのだそうだ。しばらく悔しい思いをしたTomic氏は自分に基本的な知識が欠けていることを認め、勉強を開始。面接で答えられなかった質問は必ず家に帰ってから調べ直し、少しずつ基礎的な知識を蓄えていったとのこと。

そうしてさまざまな技術の学びを深めるなか、Tomic氏はついに面接に合格。プログラマーとして身を立てることができたという。いくつかの企業に勤めるなかで、特に香港に拠点を置くソフトウェア企業Auki Labsでの勤務経験は同氏にとって多くの学びを得る場となり、大きく成長することができたとのこと。現在のTomic氏はアメリカを拠点に自らの会社Tomicz Engineeringを経営する傍らで、Unity技術学習コミュニティdarkounity.comを運営し、プログラミング初心者の学習方法について知見を共有しているという。

「独学では知識が偏る」

自身の経験を踏まえ、Tomic氏は「独学では知識の偏りが生じやすくなってしまう」との注意喚起をおこなっている。同氏の場合は、ゲームプレイの仕組みやシェーダーなど自分が興味のあることは積極的に学べたが、データ構造やアルゴリズム、メモリやコンパイラといった、同氏が退屈だと感じる分野の知識はほぼ欠落していたそうだ。しかしプロのプログラマーとして働くならやはり基礎的な知識は重要で、なぜこのコードが動いているのかを理解し、説明できるようにしておく必要があるという。

なおTomic氏が語った体験談は、まだAI技術が発達する前。同氏 の見立てでは、AIによるコーディングが発達した現代では、同氏がかつて経験したような状況は、より起こりやすくなっていると感じているという。「AIに自然言語で機能を説明する“Vibe Coding”でもコードは出力されるかもしれないが、そのやり方だと理解が深まらず、同氏が経験したような挫折に直面することになるかもしれない」と警鐘を鳴らしている。

内部構造を理解せず、コピーを中心にプログラミングしたゲームが人気を博したものの、バグの修正に苦労し、採用面接では簡単な質問にも答えられなかったというTomic氏の体験談。動くコードが作れることと中身を理解していることは一致せず、そのギャップがプログラマーとしてのキャリアの壁になりうるということなのだろう。現在はベテランソフトウェアエンジニアとして活動する同氏が、駆け出し時代の辛い経験を共有した貴重な体験談といえそうである。

この記事にはアフィリエイトリンクが含まれる場合があります。

Akihiro Sakurai
Akihiro Sakurai

気になったゲームは色々遊びますが、放っておくと延々とストラテジーゲームをやっています。でも一番好きなのはテンポの速い3Dアクションです

記事本文: 749