コードは書ける。なのに、ゲームだけ完成しない
プログラマー歴33年。COBOLから始まって、VB、C#、ASP.NET。お客様の会社の請求や在庫を支える業務システムを、ずっと書いてきました。
便利なアプリなら作れます。『らくらく宝くじ確認』も『EasyEyeBreak』も、リリースまで漕ぎ着けました。
なのに、ゲームだけが完成しない。
長いあいだ、この矛盾に悩んできました。Unityは何年も触っている。C#も書ける。アセットも買った。プロトタイプまでは作れるんです。キャラクターが動いて、ジャンプして、敵を倒せる。「おお、動いた!」と感動する。
そこから先が、続かない。
「で、このゲーム、何が面白いんだっけ?」
その問いに答えられなくて、手が止まる。そしてプロジェクトフォルダだけが増えていきました。
今日は、その原因を自分なりに分析した話をします。**技術力の問題ではありませんでした。**思考の型の問題でした。
アプリは作れるのに、ゲームは止まる理由
整理してみて、はっきりしたことがあります。
『らくらく宝くじ確認』は「宝くじの当選確認が面倒」という課題からスタートしました。『EasyEyeBreak』は「在宅ワークで目が疲れる」という課題から生まれました。
課題が明確だから、ゴールも明確。あとは技術で解決するだけです。
ゲームには、それがありません。
| アプリ開発 | ゲーム開発 | |
|---|---|---|
| 目標 | 便利な機能の実現 | 面白さ・爽快さの実現 |
| 出発点 | 課題・不便 | 世界観・体験 |
| 成功の基準 | 「便利になった」 | 「楽しい!もう一回!」 |
| 完成の判断 | 要件を満たしたら完成 | 満たしても面白くなければ未完成 |
最後の行が、決定的でした。
業務システムでは、要件を満たした時点で完成です。33年間、私はそれを繰り返してきました。仕様書があり、それを満たすコードを書き、テストが通れば納品。この型が体に染みついています。
ところがゲームでは、要件を満たした時点がスタートラインなんです。動くようになってから「面白いかどうか」を延々と調整する。そこが本番。
アプリ開発では強みだった「課題解決型の思考」が、ゲーム開発では足かせになっていた。これが私の結論です。
私が止めた5つのプロジェクト
恥ずかしい話ですが、証拠として並べます。今なら、止まった理由が説明できます。
① 傾き操作のボール転がしゲーム
スマホを傾けてボールが転がる。動いた。で、何が面白いの? → 放置
今なら分かる理由:「傾けたら転がる」は技術の実現であって、遊びの設計ではありませんでした。要件を満たした=完成、という業務の癖がそのまま出ています。
② Candy Crush風マッチパズル
7色のブロックが揃うと消える。動いた。でもCandy Crushでよくない? → 放置
今なら分かる理由:お手本の「動き」は写せても、「なぜ面白いか」は写せません。業務なら既存システムの仕様を正確に写せば正解ですが、ゲームでは仕様を写しても面白さはついてきませんでした。
③ 釣りゲーム
魚が釣れる。動いた。だから何? → 放置
今なら分かる理由:機能が揃った時点で「終わった」と思ってしまいました。ゲームでは、そこからが本番だったんです。
④ ローグライクRPG
ダンジョン生成できた。敵も出る。でもバランス調整が無限に思えて → 放置
今なら分かる理由:業務システムには正解があります。計算が合うか合わないか、それだけです。でも「面白い」に正解はない。終わりが見えないことが、単純に怖かったのだと思います。
⑤ リズムゲーム
音に合わせてブロックが降ってくる。動いた。でも曲を用意するのが大変で → 放置
今なら分かる理由:面白さの大部分が「音楽」という、自分の強みの完全に外側にあるものに依存していました。最初の企画の時点で無理があったんです。
並べてみて、共通点に気づきました。5本すべてが、アクション寄りのゲームです。面白さが「操作感」に宿るジャンル。
そして操作感の設計には、データ構造も状態遷移もルール設計も、業務で鍛えた武器がひとつも効きません。得意な道具を一切持たずに、毎回戦場に出ていたわけです。
それでも、作りたかった
じゃあアプリだけ作ってればいいじゃないか、と思いますよね。私もそう思ったことがあります。
でも、子供の頃からの夢が「ゲームを作ること」だったんです。
ファミコン世代。信長の野望に夢中になった少年時代。「いつか自分でゲームを作りたい」——その夢だけは、50代になった今でも消えていません。
アプリを作れるようになって嬉しい。でも、それは夢の代わりにはなりませんでした。
だから何度挫折しても、またUnityを開いてしまう。
抜け出すために変えた3つのこと
長い停滞のあと、ようやく完成させられるようになりました。変えたのは、技術ではなくアプローチです。
① 自分の強みに合うジャンルを選ぶ
アクションをやめて、シミュレーション・戦略ゲームに切り替えました。理由は単純で、SLGの画面構造は業務アプリとほぼ同じだからです。マスタデータがあり、状態遷移があり、イベントロジックがある。33年の経験が、そのまま武器になりました。
そうして完成したのが『三国志ミニ』です。詳しくはこちらに書きました。
→ なぜ私のゲームは完成しなかったのか——そして完成した『三国志ミニ』
② 環境を軽くして、AIと組む
もうひとつは、Unityを一旦離れたことでした。ブラウザで動くPhaserに切り替えたところ、環境構築の重さから解放され、AIとの相性も一気に良くなりました。結果、2本のゲームを完成させられました。
→ ゲームが作れなくて悩んでいた私が、AIと一緒に2本作れた話
③ 新しい技術に飛びつかない
これが一番大きかったかもしれません。私は昔から「3Dで作ろう」「新しいエンジンを試そう」と、新しく高度なものに手を出しては失敗してきました。
今は横井軍平さんの「枯れた技術の水平思考」を座右の銘にしています。実績があって単純な技術を、新しい使い方で活かす。この方針に変えてから、完成率が明らかに上がりました。
最後に
技術力と創造性は別物です。プログラマーなら誰でもゲームが作れるわけじゃない。私のように「コードは書けるけどアイデアが出ない」人間もいます。
でも、原因が分かれば、対処はできます。アイデアが出ないのではなく、自分の強みが効かない土俵で戦っていただけでした。
苦手なら苦手なりのやり方があります。強みが効くジャンルを選んでいい。アセットを使っていい。AIと組んでいい。お手本を真似ていい。
まずは1本、完成させる。50代からでも遅くありません。
