ぼくのかんがえたさいきょうのゲームエンジンについて語ります。
まだ何も動いていません。
ここに書いてあることは全て妄想です。
ちなみに、ゲームエンジンって言ってますが、描画とかのことはあまり興味ないのでUnity上で動かす予定。
Unity上で動くフレームワークとでも言ったほうが良いのだろうか、まあ細かいことは気にせずに。
百聞は一見にしかず
PC上で書き換えたソースコードが実機(スマホ)上に一瞬で反映される開発環境、めちゃくちゃ良くない?
— きゅぶんず (@kyubuns) April 5, 2020
ステートが引き継がれてるのもポイント。
理想の環境まであと一歩ーーー #Aprot pic.twitter.com/KN0VscTyvB
Aprotのプロトタイプ版、Aprotprotの動画です。
(今はこのコードは全て消し去って1から書き直しています。理由はこのあたりのツイート)
コンセプト
コードを書いてから挙動確認までをとにかく素早く回せるフレームワーク
RE ENGINEの発表の言葉を借りると、ラピッドイテレーションというやつです。
動画からわかる通り「コードを保存してから、実機で実行されるまで1秒未満」を目指しています。
そのためなら、実行速度を犠牲にしてもやむなし。というのが商用エンジンには出来ない利点でしょうか。
重いゲームは作れません。
割り切りが重要。
自分は今まで、なんやかんや色んな言語でゲームを作ってきました。
そして、「ああ、10年後のPCスペックなら一瞬でビルド終わって、コード書いてから確認までの時間が短くなるんだろうなぁ」と思っていました。
が、ゲーム作り始めて10年経っても、コード書いてから確認までの時間は一向に短くなりません。
不思議ですね。
この世界、基本的に遅すぎるんですよね、なんでみんな耐えれるんだろう。という話は長くなるのでまた今度。
Aprot 名前の意味
はじめに書いたとおり、「最強のゲームエンジンのプロトタイプ版」なのでプロトタイプのProtが付いています。
そんな高級にする予定もないので「プロトタイプを作るのにちょうど良いエンジン」の意味もこもっています。
最初から完璧を求めると完成しないのはよく知っているので、まずはプロトタイプから。
頭のAは、「速さを求めている」ので、アルファベットの中で一番早いAをつけています。
後から、AcceleratedのAってことにしました。(GitHubのDescriptionに書いてある。)
なにが出来るの?
以下、妄想です。実現出来るかは知りません。
- コードを書き換えてから実機に反映されるまでが1秒未満
- 状態を維持したまま、コードのホットリロードが可能
- フレームの状態をセーブ/ロード可能
- エラーを吐いた1フレ前の状況を保存しておいて、コード治したらすぐ再現出来る
- 穴に落ちちゃったから5秒前の状態に戻ろう、が出来る
- いつでも前のフレームに戻れる
- ぶっちゃけこれがめちゃくちゃ便利だと思う。いつでも好きな状態を保存して、いつでも引き出せる、メモリがある限り出来る。
- switchのファミコンソフトの巻き戻し機能みたいなイメージ
- 個人的にめちゃくちゃデカイのは、ビルドが速いのに型がちゃんとあるところ
- 自分がどれだけ型好きかは、このへんのツイート見てください
- 他、思い出したら書く
夢
プレイモードから抜けずにゲームが完成する
いつでもコードが状態を維持したままホットリロード出来て、
いつでも状態をセーブ/ロード出来れば、
プレイモードから抜けずにゲームが完成するんじゃないの?というのが夢。
ちなみに、RPGツクールアドバンスでは実現されてました。
なんで後発のツクールには乗ってないんですかね、めっちゃ好きだったんですけど。
いつ出来るの?
わかりません。
が、自分はモチベーションが長く続くタイプではないので、短くパッとすぐ出来るか、途中で飽きてやめるかの二択です。
既に、このAprotを使って作りたいゲームのネタも浮かんでるので、さっさと作りたい!!!!
応援メッセージお待ちしております。
05/19追記メモ
- 本当はjsで動かしたいけど、前の結果からUnity上でまともな速度でjsを動かすのは現実的でないことが分かっている。悲しい。
- なぜjsが良いか、Haxeでやるにもコンパイルが速いし、v言語もjsをはける、本当はvが良かった。