ソフトウェア

3年間Unityでゲーム開発を続け収益もあげたのにすべてが間違いだったと気付いたゲーム開発者がバイブコーディングでプログラマー気取りの初心者に警告


3年間にわたってUnityでゲームを作り、自身が開発者であることを疑いすらしていなかったというダーク・トミック氏が、「たったひとつの質問で自分が開発者ではないことに気づかされた」と述べ、自身がいかに間違った方法でUnityについて学んできたかを説明しています。

How I learned Unity the wrong way | Darko Unity - Unity Learning Community
https://darkounity.com/blog/how-i-learned-unity-the-wrong-way


トミック氏は3年間にわたってUnityを使ってゲーム開発を続けてきました。同氏は開発者向けの無料チュートリアル配布サイトであるBrackeysや初心者がprogrammingについて学ぶことができるCodeMonkey、さらにはゲーム開発者・Jason Weimann氏のYouTubeチャンネルを含む、YouTube上に存在する無数のチュートリアル動画を見ながらUnityの使い方を勉強してきたそうです。ただし、Unityについて勉強したというよりも、動画を一時停止してコードをコピー&ペーストするだけだった模様。

この手法でトミック氏は、Android向けのARゲームである「Skeletons AR」を開発しました。Skeletons ARのリリース当初、ほとんどのARゲームはマーカー3DCGをAR上で回転させるだけのものでしたが、トミック氏のSkeletons ARは戦闘要素を含むれっきとしたゲームでした。Skeletons ARの開発期間は約1カ月で、リリース直後にReddit上で話題を集めたため、「私は何か特別な存在になったように感じていました」とトミック氏は語っています。実際、Reddit上ではトミック氏を「ジョン・D・カーマック(id Softwareの設立者)級のプログラマー」と称賛する声もありました。

しかし、実際にはゲームの処理のほとんどはVuforia SDKが実行しており、トミック氏が書いたのは5つほどのスクリプトのみ。さまざまな場所から探したチュートリアルをコピー&ペーストしたり、フォーラム上に投稿されたスクリプトをつなぎ合わせたりすることでSkeletons ARを作成したというわけ。トミック氏は「私はSkeletons ARの中のシステムをひとつも正確に説明できません」と語っています。

そのため、トミック氏はSkeletons ARの何かが壊れてもデバッグすることができませんでした。というよりも、デバッグが何かを知らなかったそうです。そのため、当時のトミック氏はコードを一行変更しては再生ボタンを押して動作を確認し、また変更して再生ボタンを押すという地道な作業を繰り返しながらデバッグを行っていた模様。

トミック氏は新しいコードが必要になると、Unityの公式フォーラムやReddit、YouTube上のチュートリアル動画を開き、自分がやろうとしていることを既にやった人を探し、そのスクリプトをそのままコピーしました。これにより、複数のゲームを開発することができたものの、作成したものについて説明することはできず、ゼロから何かしらのスクリプトを書くこともできませんでした。そのため、プログラミングの基本は知らないままでした。


ある時点でトミック氏は自身がGoogle検索に依存し過ぎていると感じるようになり、罪悪感を覚えたそうです。そこで、トミック氏はGoogle検索で直接「シニア開発者はGoogleを使う?」と検索。すると、どこのフォーラムやQ&Aサイトでも回答は「はい」であったため、トミック氏は「自身の開発方法を変える必要はない」と考えるようになってしまいます。

当時、トミック氏はスカイリムをプレイしており、これはバグだらけでした。どのフォーラムでもスカイリムのバグは当たり前とされていたため、トミック氏はゲームにとって「バグは当たり前のもの」と感じていたそうです。また、トミック氏はエッジケースという概念も全く持ち合わせていませんでした。そのためユニットテストを一度も行ったことがありませんでした。

専任の品質保証チームとプロジェクトに取り組むようになると、チームがトミック氏の見落としていたバグを見つけるようになります。当初、トミック氏は「あなたの仕事には欠陥があります」と言われているようで、品質保証チームのことが嫌いだったそうですが、チームとのやり取りから自身のプログラミングに足りないものを学んでいったと記しています。


トミック氏は「プログラマーではない人でもコードを書かずにARコンテンツを作成することができます。それは、既に難しい部分を解決したオープンソースプロジェクトが存在するからです。今振り返っても、なぜあのようなアプリケーションがオープンソースだったのかわかりません。しかし、非常に価値のあるもので、そのおかげで私は2万ドル(約320万円)の利益を得ることができました」と語っています。

他にも、トミック氏はソースコード管理を一切行っていませんでした。一度、プロジェクトが破損してすべてがゼロになってしまったことがあるそうです。しかし、ベースとなるオープンソースプロジェクトが存在しており、自身が書いた内容も把握していたため、数日でプロジェクトを再構築することができたとトミック氏は語っています。この経験から、トミック氏はGitを使うようになりました。


また、トミック氏は3年間Unityでゲーム開発を続けてきたものの、たった数カ月Blenderを使っただけの男性に、プログラミングにおける圧倒的な知識の差を見せつけられたこともあります。この男性はBlenderの中でPythonを書いて、ゼロからスクリプトを書いていたそうです。そのため男性は自身がプログラマーであるとは考えていなかったものの、プログラミングの基礎をしっかりと身につけることができていた模様。それに対して、トミック氏はプログラマーという肩書は持っていたものの、その利用経緯もありプログラミングの基礎は全く身についていませんでした。

トミック氏はこの男性からさまざまな質問を受けますが、正しく回答することはできず、ついにはプロジェクトは失敗に終わってしまいました。トミック氏は知人の会社にこの男性を売り込み、最終的に男性は著名スタジオで働くゲーム業界で尊敬されるような存在になります。トミック氏は自身と男性の違いについて、「私たちの間にあったのは経験の差ではなく、学習方法の違いでした」と語りました。


トミック氏はセルビアのベオグラードにある企業の就職面接を受けます。面接を受けた当時はAIが現在のように普及する前のタイミングだったそうで、7日でかなり見栄えの良いゲームを作ることに成功したため、「自身が採用されることを確信していた」と語りました。

しかし、面接官はトミック氏の開発したゲームをチェックして、「なぜQueue<T>クラスを使ったのか?」と質問してきたそうです。トミック氏は従来通りCodeMonkeyのチュートリアルをコピー&ペーストしただけだったため、なぜこれを利用したのか説明することができませんでした。それどころか、Queue<T>クラスの仕組みすら理解していませんでした。

トミック氏はその後も複数回にわたって就職面接を受けます。実績もあり、見栄えのするデモも用意していました。しかし、開発したゲームについて技術的な質問をされると、何も回答できず、就職面接に何度も落ちることとなってしまいます。それでもトミック氏は「(自分を落とした)企業は自分にふさわしくなかったのだ」と自分に言い聞かせていたそうで、その理由を「YouTubeで自己啓発系の動画を見過ぎたため」と説明しています。

それでもトミック氏は度重なる失敗を経て、ついに他人を責めるのをやめ、ゼロから学習し直すことにしました。トミック氏は「長らくベオグラードでの面接の失敗が自分の人生におけるターニングポイントだと考えてきましたが、実際にはUnityで開発を始めて3年間ずっと失敗し続けていたわけです」と語り、自身の取り組みが初めから間違っていたことを認めています。

なお、記事作成時点ではトミック氏の間違ったプログラミング手法は「バイブコーディング」そのものであると同氏は主張。「今まさにバイブコ―ディングで開発を行っている初心者を心配しています。プロジェクトは素晴らしいものに見えるでしょうが、その根底に理解は存在しません」とトミック氏は警告しています。

この記事のタイトルとURLをコピーする

・関連記事
「Unityの欠陥でゲーマーが攻撃を受ける可能性がある」とSteamが警告 - GIGAZINE

「ゲーム開発にコーディングの必要がなくなるAIをリリース予定」とUnityのCEOが明かす - GIGAZINE

価格改定で大荒れのUnityが「無料プラン続行」「既に発売済みのゲームは対象外」などの見直しを発表 - GIGAZINE

「会社のリセット」を掲げるUnityが会社史上最大となる従業員25%の人員整理を実施へ - GIGAZINE

「インストール1回ごとに○円」という料金体系を発表したUnityがインストール回数を自己申告制に切り替える計画か - GIGAZINE

in AI,   ソフトウェア,   ゲーム, Posted by logu_ii

You can read the machine translated English article A game developer who spent three years d….