はじめまして!新入社員のプログラマーBlackTreeです。よろしくお願いいたします。
今回は私が普段ゲームを遊ぶときに考えていることを書いていこうと思います。
ゲームを遊ぶとき
皆さんはゲームを遊ぶときにどんなことを考えていますか?
立ち回りや効率を考えたり、なにも考えずに遊んだりと様々かと思います。
かくいう私も、ゲーム業界に入るまではなにも考えずに楽しんでいました。
しかし、最近になってこれはよくないということに気が付きました。
今では意識的にゲームの気になる挙動を探しては実装方法を考えるようになりました。
最近見つけた
最近見つけたもので毒ガスを使っているキャラクターがいました。
その毒ガスは壁を貫通してダメージを与えてくる仕様でした。
流石におかしいと思ったのか、アップデートで壁は貫通しなくなりましたが、
ここで、私はアップデート前と後でどのように処理が変わったのかが気になりました。
そもそもの仕様はどうだったのか?
そもそもの仕様として特徴的なのは壁を貫通するところです。
つまり壁の当たり判定を見ていないということになります。
ではどのような判定だったかというと敵と毒ガスの距離でダメージ判定を取っていたと考えています。
このアップデートによりどのような修正が加えられたのか?
その後のアプデで壁への当たり判定が追加されましたがどのような処理なのでしょうか。
まずレイ判定を使っていると考えました。
しかし、レイを全方位に細かく打っていると処理が重くなってしまい、とても製品としては出せません。
そこで考えたのはレイをガスを起動した位置から一定の位置まで飛ばしていく方法です。
レイを飛ばし、壁に当たらなかったら球体のガスの当たり判定を生成するというものです。
▼毒ガスを出したときの判定
▼毒ガスの近くに壁がある場合
これなら最初に考えた方法よりかは処理が軽くすみ、なおかつ壁のと判定もとれそうだなと思いました。
少し間ができそうだなと思いますが、このゲームは人間が操作キャラとなっているので多少の当たり判定の隙間は関係なくなるのでいけそうです!
これなら先ほど考えたレイを全方位に細かく打つよりは処理が軽いです。
そして壁との当たり判定もレイの打ち方によってはとれそうです。
少し当たり判定との隙間ができそうですがこのゲームの操作キャラは人間なので許容できる範囲です。
最後に
弊社では、新人研修の一つに「ゲーム研究レポート」というものがあります。
これはゲームについていろいろ研究して社内で発表するというものです。
このゲーム研究レポートで私はプレイ中に気になった処理について
「どの様に実装されているか」を考えることをしていました。
結果として実装されている内容を見るだけで、処理の流れを考える癖が付きました。
毎日遊んでいるであろうゲームから少し視点を変えるだけで
ゲームに活かすこともできるようになるので特に学生の方は今のうちにこういう力を身に付けてもいいと思っています!
最後まで読んでいただきありがとうございました!