つくった話 / 深淵神経
ゲームを1ファイルも変えずにアプリにした話
ブラウザで遊ぶ放置ゲーム『深淵神経』を、ゲームのファイルを1つも書き直さずに iOS アプリにしました。決め手になった数字と、あちこちでつまずいた話を書いてみます。
はじまりは、ブラウザの中
『深淵神経』は、六角形のマスにニューロンを置いてつなぎ、思考をためていく放置ゲームです。最初はブラウザの Web ゲームとして生まれました。記録では、2026年3月5日から6日にかけて、土台から転生、記憶の断片まで実装が進んでいます。
で、最初に何を思って作り始めたか。これが実は、記録に残っていないんです。残っているのは設計書です。構想は「自分の脳を培養する放置ゲーム」でした。脳を育てるゲームに、脳がはまる。そんな入れ子の構造を魅力に挙げています。放置でたまる定番の流れに、配置を考えるパズルを足す設計です。
書き直すか、そのまま包むか
アプリにしたのは2026年8月5日。私が選んだのは WebView 同梱という方式です。HTML・CSS・JS をアプリに入れて、内蔵のブラウザ部品で動かします。ゲーム本体のファイルは、1つも変えていません。
React Native で書き直す道とも比べました。このゲーム、Canvas で六角形のマスを毎フレーム描いていて、効果音13種は Web Audio API でその場で合成しています。演出は CSS。移植するなら JS 7,743行と CSS 2,818行の書き直しで。CSS のアニメーションは同じにはなりません。同梱なら見た目はブラウザ版のまま。元のゲームを直せば、ビルドで追いつきます。そこで、同梱にしました。
弱点もあります。審査ガイドライン 4.2(最低限の機能)が論点になりうることです。そこで通信を一切しない作りにして、審査メモにもそう書きました。触覚フィードバックなど、ネイティブの機能も足しています。
14MBのフォントが、356KBに
手を入れたのは2点です。1つ目は ES Modules。ゲームは import でファイルを読み合う構成で、読み込み先に ?v=28 のような目印が付いていました。開発スタッフに esbuild で1本の JS にまとめてもらい、目印を外して読み直す小さな仕組みを足しています。まとめた JS は232KBです。
2つ目が日本語フォント。ここ、けっこう困りました。Web フォントの配信サービスが、使う文字だけを頼んでも分割した全部を返してくるんですよね。全部入れると14MB、必要な分割だけでも約7MB。最後は可変フォントの元データ(9.1MB)を手元で、使う文字だけに削りました。結果は356KB。CSS・JS・フォントを1つの HTML にまとめて830KBになり、外への通信はゼロになりました。
音、画像、そしてストア
音では、ゲームが音の部品(AudioContext)を内側に閉じ込めていて、外から触れませんでした。アプリ側で部品の作り方を包み、作られたものを控えておく方式に。ホームから戻ると、控えた部品を再開させます。
画像では、生成したスプラッシュに、透明を表す市松模様がそのまま描き込まれていました。背景色をベタ塗りで指定し直し、画像の四隅の明るさを調べる検査も足しました。ところがシミュレータでは模様が残ったまま。原因は、古いアプリが残っていたことでした。入れ直したら、消えました。
ストア登録でもつまずきました。説明文に★の記号が使えず、送信がストップ。止まる前に画像だけは送られていて、やり直すと同じスクリーンショットが10枚に増えていました。重複を消して5枚に戻します。カテゴリーも、あると思っていた値が実在しなくて、一覧を問い合わせて選び直しました。
ランクの段階や青いシステム窓の演出が、人気のある作品に近い面もありました。名前・商品の形・組み合わせの3点で見て、名前が重ならないことから改名は不要と判断。言い換え案も出ましたが、私はそのまま出すことにしました。
8月5日に提出したあと、同じ時期に出した他の2本と同じく、6日以上審査待ちのまま動きませんでした。調べるうちに、年齢制限の新しい質問が未回答だったことと、スクリーンショットの重複という、こちら側の不備が見つかって直しました。正直、滞留の原因そのものは特定できていません。公開は8月13日です。
深淵シリーズの「ものさし」に
その後の作品でも、『深淵神経』は私の基準になりました。8月29日、次は深淵神経の雰囲気を受け継いだ、進化形のパズルを作りたい。そう思って始めたのが、落下型のパズル『深淵進化』です。9月6日、3Dを取り入れた続編の試作を前にして、私は「実際のゲーム画面やクリック時のアクション・効果音は前作の方が良い感じ」だと感じていました。そのあと作った『深淵鼓動』は WebGL を使わず、前作と同じ Canvas 2D に戻って、疑似3Dで描く形になりました。
10月1日の企画会議では、新作より先に『深淵神経』1.1 を整えると決めました。バージョン表示、お問い合わせ、アプリ内のプライバシーポリシーやライセンス表記など、あとから定めたアプリの標準に足りない項目を入れる予定です。広告は足さない方針です。実機での音(マナーモード)と触覚の確認、ゲーム内ヘルプの記憶の断片の数が実際と合っていない点も残っています。
同じ日、このサイトの詳細ページに、放置ゲームがはじめての人向けの案内も載せました。
これからアプリをつくる人へ
- 書き直す前に、ゲームが何に頼っているかを数えてみてください。依存の量を数えたことで、同梱を選ぶ理由がはっきりしました。
- 日本語フォントは、使う文字だけに削ると大きく縮みます。14MBが356KBになり、配信サービスに頼らないぶんビルドの結果も毎回同じになりました。
- 直したのに直らないときは、作ったものと端末に入っているものを分けて確かめます。
- ストアで使える値や文字は、思い込まずに問い合わせて確かめます。途中で止まった送信のあとは、枚数を数え直します。
- シミュレータで確かめられないことは残ります。音や触覚は実機で触るまで分かりません。
この記事は、開発中の記録をもとに書いています。開発スタッフには AI のツールも含みます。