2023年07月05日

Facebookに移行しています。

こちらも時折書きますが、最近はもっぱらFacebookです。
リンクを貼っておきますので、ご興味のある方はどうぞ


posted by minoru at 09:02 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

ゲームプログラマーへの道 その21 FinalZoneがくそゲーと言われるわけ(笑)

めちゃくちゃ久しぶりです。プログラマ時代の回顧録

うれしいことにFinalZone、Youtubeとかで未だにアップされていたりします。
ですが、たいてい「くそゲー」「フォーメーションプレーが売りなのに、一人でないと攻略できない。」
というコメントがあります。その理由についてお答えします。

このゲーム、メインのゲーム部分はA君、私はそれ以外の全演出でした。
メインゲームですが、実は3重画面スクロールしているんですね。
これ、実はめちゃくちゃすごいことなんです。

今では、スプライシング機能があり、ハードで処理してくれますが、
当時はそんなものありません。

なので、3重にやろうとすると、
1)一番背景画面を取得する。
2)そこにキャラを切り抜いた黒い部分(影とします)を合成する。
3)そこにキャラを合成する。
4)上に被る背景の「影」と合成する。
5)上に被る背景と合成する。
という作業となるわけです。
1)の前に前のキャラの動きがあるので、それを「消す」という処理もあります。

これをすべてのキャラ(当然弾丸)に対して行うわけです。
さらに高速化が要求される。「普通の教科書的なプログラム」では絶対不可能。
正直、超絶技巧です。

と、この部分で相当悩まされたのは事実。

これに付け加え、フォーメーションプレー
この動きもあるわけです。

通常、マップ判定で何か障害物があればそれ以上進めなくするのですが、
それが「裏目」に出てしまったというわけ。
メンバーが引っ掛かってしまうのですね。

ちょこっとであればごまかせますが、
横に長い障害物に引っ掛かると最悪です。

これをきちんと回避するには、あらかじめメインキャラの動きを考えながら、
回避ルートをとらないとだめです。

このアルゴリズムが難しい。
ぶつかってから、横に移動するとなると、全体が止まってしまいます。

実際の戦闘はどうか?
当然、障害物をうまく使い、弾丸をよけながら進むわけですね。
なので、単純に障害物にあたって横に動くような処理だと、
「隠れていれば良いものを、無残に敵前に飛び出す行為」となっちゃうわけです。

要は、メインキャラの動きを見ながら、メンバーを動かすのが正解。
例えば、メインキャラが隠れていたら、当然隠れる。
突撃していれば、一緒に突撃する。

このアルゴリズム難しいですね。
(今、頭の中では、解決方法同時に考えています。
 今ならできそうな気がする・・・・)

フォーメーションプレーのアイデアは良かったのですが、思わぬところに落とし穴があったわけです。

要は、早い話、設定は素晴らしかったけど、実装で躓いた、ということ。

さらに当然締め切りがありますが、妥協が必要です。

私はメインルーチンをいじっていなかったので、横で見ているしかありませんでした。
時間はあるので、その分演出でできることは全部やったというわけです。

この部分が解決できていたら、もっと素晴らしいゲームになったでしょう。
時間があればできたとは思います。

あと、物資補給がマップに出ないとのコメントありましたが、
これは、「自分で探せ!」という意図があった記憶があります。
宝探し的な要素を入れて・・・だったかな?

また、このゲームですが、当然メンバー死にます。
するとストーリーが変わります。
何種類かのシナリオを組み込んだ記憶があります。

RPG的要素も入れようよ!というアイデアもありました。
(まだ当時、RPGはそう無かった時代です。)

早い話、アイデアはすごかったが、時間の関係で十分な調整ができなかった・・・・
というのが理由かと(苦笑)

なにしろ、3〜4人での作業ですから、当時は。




























posted by minoru at 09:40 | Comment(0) | TrackBack(0) | ゲームプログラマー | このブログの読者になる | 更新情報をチェックする