グラディウスで使う数学をまとめてみた

昨今の3Dゲームは幾何学計算が厄介であるが、俺のブログで「コンビニおにぎりの原価」や「ストIIターボのダイヤグラム」と並んでアクセスがあるのがYouTubeにアップしたグラディウスもどきゲームのプレイ動画である。

f:id:karmen:20210420152255j:plain

これはファミリーベーシックの画像チップを使ってJavaで作成したもので「ファミべのよっしん」に対するリスペクトはあるのだが、ファミコンの「グラディウス」というコナミ社のゲームへのリスペクトを基盤から作るほどの気概もないマイコン少年の魂を受け継いでいること以外に技術的にも人間関係的にも俺が「ファミべのよっしん」に憧れただけで無関係ではある。

そうして、Javaが使えるのでBASICコマンドではなく、純粋数学の座標系でオブジェクトつまり仮想物体を全て網羅していて、計算の後に仮想座標系から画面座標系に画像を転写する。

思えば長い道のりだった。もしかして中学くらいでパソコンのマニュアルを親に頼んで買ってもらい、雑誌で勉強すれば出来たかも知れないことを高校出てバイトして金貯めてパソコン買ってもらってつぶして買い替えて4台目くらいまで来てからやりだしたのだから。

その間にはIT企業で働いたりもしたし、ゲーム会社の人がゲームではなくゲームプログラムの本を書くという企画もあって拝読したりもしました。

それで、書こうと思ったのはゲームのプログラムでもグラディウスなど、自機や敵に自分のビームに敵のビームにアイテムにオプションにミサイルにとひとつの画面に色々のものが飛び交うようなこんなゲームって、こういうのが好きな人の頭の中には全部の映像がうごめいていて、それ専門のプログラマーが少数精鋭でやるのが基本になっているんだけど、それって多人数でやったら幾分か楽になるかもしれない仕事をひとりで抱え込みすぎだと思ったから。

数学がいるとか言っても同級生から「お前、高校の時数学悪くなかったか?」とか突っ込まれたりするんですけど、大学受験のような応用題とゲーム数学って似てるところもあれば違うところもあって、どちらかというと計算機科学の方に行ってから花開いたんですよ、俺は。

そんで仕事に行き詰まってから、高校の時の数学の勉強足りていたか自信がなくなって復習してるんですけど、わかりやすい参考書を読むとまだまだゲーム数学の本はここまで熟れていないというか。チョット違う、どう違う、高校数学以外に何が必要かというと、ゲームを遊んで画面の動きを丸々掌握するような脳内映像化みたいな訓練も多分いるんですよね。

計算機科学の分野から来て、数学が出来て、でも現場ではあんまり仕事が捗らないって人は特に俺から見ると遊んでいないんだと思うんですよね。

まあ「GitHubグラディウスのソースアップしといたから読んでみて」みたいのではせいぜい月にひとり見るかどうかくらいのペースなので、ブログでもうちょっと本やオープンソースの足りない所を補完できることを書けたら、と思うんだけど、さて何から始めようかと数学を勉強中のノートに落書きをして写真撮って載っけてみたという。


🄫1999-2023 id:karmen