勉強しないと

ゲーム作り始めてみて、最近本当に勉強不足を痛感してる。
10年も何を学んでいたんだろうか俺は。。毎日の業務を処理してただけなんじゃないかと。


後日時間のあった時用に、不足しているっぽいところを書いていってみる。

AI

まあ、直近で出た件。詳細省略。ちなみに直近のあれも余計な移動が入るというバグにかれこれ一日はまってる。


AIは別にしょぼいのは作れるんだけど、効率的に作れないという意味で勉強必須。
一本勉強用にシミュレーションゲームでも作りたいなぁ。信長っぽいやつ。シミュレーションゲームの思考エンジンは、今回作ったAIエンジンとはまた全然違うものになるけど、AIのデバッグ方法確立したい。

エフェクト処理

なんかアニメーション実装が地味に毎回時間かかる。
今回だと不思議のすごろくで、モーションが終わってから攻撃発動 → 攻撃発動後エフェクト発動かなと思ってるので、このモーションも含めてエフェクトって事で。


で、おぼろげな記憶を頑張って思い出してみるんだけど、RPGツクールとかほんとに上手くやってた気がするなぁと。
確か1枚の白黒画像用意して、それをエフェクトエンジンに食わせれば渦巻き状に画面が消えてく画面効果とかが一発で作れたような気がする。


その場その場のやっつけでやるんじゃなくて、エフェクトの処理っていうのはちゃんと知識を体系立てて整理しておかないと毎回苦戦しそう。
どんなゲームでも普通に必要な事だし。

オートタイル

マップはjgame.jsでもTileクラス作ったんだけど、よく考えたらオートタイルに対応してない。


いやいや、よく考えたらオートタイルなんて普通にマップ作るなら必須だろと。
ちょっと調べれば出来ると思うけど、なんで前回サポートしなかったのか不思議というレベル。イメージ不足だよなと。

エディタ系

RPGとか作るなら確実にエディタ系が必須になるんだけど、ゲームのエディタなんてよく考えたら作った事ねぇなぁと。
ストーリーのあるゲームを、ツクール以外で作った事ないという。


エディタはプログラムの分類的にはむしろ俺の土俵なわけだけど、オートタイルと近いけど単純にどんな機能が必要なのかの知識が足らない。ツクールなんてそれこそ2000以来触ってないし、10年くらい余裕でブランクある。
ちょっとウディタと吉里吉里辺りを眺めて勉強した方がいい気がする。

ヘックスマップ

AIの練習でシミュレーションゲームでもやろうかって考えると、戦術画面は大戦略みたいなヘックスマップでやろうかとか思うんだけど、ヘックスマップの作り方しらねぇなぁと。
ヘックスマップの処理なんて、ゲームの種類によっては基本中の基本なので、いざって時に腰が重くならないように押さえておこうぜと。

クォータービュー

クォータービューは別に知らないわけじゃないんだけど、タクティクスオウガみたいに段差つけると途端に難しくなるよなと。
まあ作るだけならイメージつくんだけど、別問題としてHTML5での実装を考えると、DirectXみたいなスピードは期待出来ないから最適化しないといけない。


実際タクティクスオウガをブラウザで実装して現実的な速度で動かせる自信あんのかというと、知識が足らずマップ描画であほのように時間がかかってしまう恐れが高くて現状だとその自信は無い。
これは今すぐは必要じゃないけど、やりたいものがある中で作り方をしらないという意味で勉強不足な事は間違いなくて、調べておきたい。

衝突処理

衝突処理も、ちょっとな。
マップでここは通行可能、通行不可能って処理以外に、今こういうキャラがマップにいるからこの地点に移動できないよっていう判定。


普通に全部のキャラクターforで回してその座標かぶってないか判定とか、そういうんじゃなくて、なんか効率的なアルゴリズムとかもあるんだろうなと。ぱっといくつか思いつきはするけど。
これはゴチャキャラやるから直近で必要。この記事書きながら考えてる。

マップのレイヤー

木の下を通れるとか、こういう高さのあるマップ表現も普通にRPGでは必須なんだけど、これも俺知らなくねと。
単純にレイヤー構造として下マップ、キャラ、上マップで重ねるのは難しいこっちゃないけど、それでいいのか知らないよねと。


HTML5的にはSpriteでやるのと全体重ねるののどっちがいいんだろうなぁ。全体重ねた方がいい気もするけど。

全体的に

業務系で潰した10年間程度の知識じゃ全然足らないってケースが多いなぁと。
ちょい前のソシャゲならこのレベルの俺でも余裕っすけど。本当にゲーム作りたいと思うとほんとに今のレベル低いや。
AIで苦戦してはっきりわかった。


3ヶ月くらいjgame.jsのサンプルでも作りながら、勉強に専念した方がいいんじゃねーかってくらい色々不足してる。
まあそれは時間が勿体ないので、作りながらやっていくけど。
やっぱりゲームプログラミングはレベルが高くて、俺はレベルの低いところの王様でしかないということを肝に銘じて、ちゃんと勉強していきたい。