あきねこの後悔日誌

自作ゲームの制作状況とか、その他。



 累計閲覧数:  / 現在閲覧数:

 ●本館「あきね工房」 (ゲームとか公開中)
 ●Web拍手 (メッセージを送れます 気が向いた時、日誌上で返信します)

▼ 敵の仕様を考えようか

C++で作ろうとしている一画面アクションゲームの話。
敵を作るだけ作って、ゲームに登場させないのはもったいない。ということで
どんな敵を作ったら実際使うかというのを考えてみたいところです。
強すぎて使いどころがないんじゃ困ります。

前提として、主人公の仕様の確認から・・・
主人公の攻撃手段は正面に向かってなんか発射するだけ。
練習用にさくっと作ってさくっと遊んでさくっと終われる感じにしたいので
シンプルな方が遊ぶ方にも作る方にもいいんじゃないかと思います。

地面を歩くだけの敵はすでに3種類作りましたが、実際使うのかと言うと疑問です。
崖で折り返さないやつは最終的に一番下に溜まる結果になりますし、
高速で追いかけてくる奴は主人公の攻撃手段から言ってやたら強く感じます。
崖で折り返す奴だけでよかったかな・・・

空を飛んでいる系統は、壁に当たるとそのままの速度で跳ね返る感じ、
その1種類で十分かと思います。
上下の壁にも反射できますし、左右・上下・斜めに加えいろいろな速度のがいれば
バリエーションは十分確保できるだろうと言う希望的観測です。

地面を跳ねまわる敵キャラはぜひ作りたいところです。
ガケでジャンプする敵と、常にバウンドしてる感じの敵を想定しています。
ガケでジャンプするようにすればなかなか一番下にたまったりしませんし、
地形を工夫すれば複雑な動きもさせられそうで楽しそうです。

あとはなにか発射してくる感じの敵。
空中に静止して自機狙い弾を(シューティングの用語ですが)定期的に撃つのが
1種類いれば結局事足りるんじゃないかって感じです。
あるいは、全方位にまんべんなく弾を撃つのを作るかどうか。

結局、ザコに関しては4~6種類作ればゲームとして成立しそう、という結論。
崖でジャンプする敵以外は作り方がわりと簡単に思い浮かぶので
そんなに苦労はしなさそうです。
あとはザコスライム2種を、削除するかしないか・・・

スポンサーサイト

▼ 買ってきたゲームの難易度

お久しぶりです。ついうっかりアイワナ系みたいなゲームを買ってきてしまいまして、
それがようやくラスボス撃破に成功したので制作に戻ろうか、という状況です。
それは逆に1週間でクリアできるほどの時間のつぎ込み方がどうなんだと
言われそうなような気もするのですが・・・

いわゆる初見殺しの豊富なゲームというのは、間違いなくプレイヤーを選びます。
ライトゲーマーのような人には絶対に受け付けない部類ですからね。
逆にマゾゲーマーの大好物だったりして、だからこそ需要が出るわけですが
ウチでそういうゲームを作るのは正直どうなんだろうとか。

▼ 3色スライム

制作中のアクションゲームの進捗状況報告。
現在は主に敵キャラの動作を作る作業中です。
前回時点では地面を歩く敵キャラが1匹いただけでしたが、
地面を歩くだけの敵キャラ「スライム」(仮名称)を3種類にしてみました。

20111117.jpg
サムネをクリックで元画像を表示


緑のスライムは前回のものと全く同じで、ガケから普通に落下します。
青のスライムはガケで引き返すので、転落しません。
赤のスライムは普段は緑スライムと同じ挙動をしますが、
主人公が真横に(同じ高さにと言った方が厳密)来ると高速で追いかけてきます。

画面上の方で何か飛んでますが、あれはまっすぐ飛行して壁に当たると跳ね返る敵です。
実はスライムよりこれのほうが、重力の処理がない分簡単な処理で作れる筈なのですが
一番弱そうなザコキャラということでスライムを一番最初に作ってみた次第です。
次は壁を這う敵とジャンプする敵を作れたらいいだろうか。

▼ 見た目に分からない進歩

C++でなんか作る企画、それなりに進行中です。
現在の作りたいプログラムの内容を簡潔に表すと、
「1ステージ1画面でさっくり遊べるアクションゲーム」を作ろうといった感じです。
ルールもシンプル、敵に一発当たったら即アウトという事にしましょう。

壁との当たり判定とめり込み時の位置補正について改善に成功しました。
何日壁との当たり判定ばっかりやってるんだって感じですが。
壁に、上から高速で斜めの位置に当たった時、上に乗れずに落ちるという不具合を
ちょっと面倒な処理によって修正する事が出来ました。

これまでの壁との当たり判定処理は
縦横移動→上下左右めりこみ判定→めりこんでいたら4方向座標補正
→斜め4方向めりこみ判定→めりこんでいたら浅くめり込んだ方向に4方向座標補正
というものだったのですが、

修正後は
縦移動→斜め4点めりこみ判定→めりこんでいたら上下に座標補正
→横移動→斜め4点めりこみ判定→めりこんでいたら左右に座標補正
という処理に変わりました。

こうすることのメリットは、左右移動によるめりこみでは必ず左右に壁から追い出される事、
上下移動でのめり込みでは必ず上下に壁から追い出される事、です。
判定を挟む位置が2か所になったので少々記述がめんどくさいですが
「軽い処理で正確に判定したい」という現在の目標は達成できているようです。

そういえばまだ一度もスクリーンショットを掲載していなかった事を思い出したので
(というか、これまでは掲載しても大したものは写せなかった)、
ここらへんで一枚くらい掲載してみる事にします。
まだまだ殺風景ですが、足場、主人公、敵(左右に往復)を登場させてみました。

20111115.jpg
サムネ画像をクリックすると元の画像へ


1マス20ピクセルという、構成物がやけに小さいゲーム画面となっております。
緑色の、三角形の書いてある玉が敵キャラ(の仮のグラフィック)です。
あとでちゃんとスライムっぽいドット絵を用意する予定。
次は、敵に当たるとゲームオーバーになる処理を作りたいところ。

===

ちなみに、この小さな文字のドット絵や文字の表示プログラムも自作です。
一応DXライブラリのほうで表示する関数は用意されているのですが、
処理が重いらしいのでシンプルで軽いのを自作。
このちっこい文字、素材として公開したら需要あるのでしょうか?

▼ 練習は妥協の言い訳たるか

現在C++で作ろうとしているアクションゲームはC++の勉強という位置づけ。
後で本番としてそれなりなものを作ろうと心に決めているはず、なのですが。
練習を練習と割り切れず、思いつく限りの要素を詰め込みたいと思ってしまいます。
最善を尽くした作品を作ろうというこだわりが妙な障害に・・・

壁との衝突判定ですら、どのくらいこだわるか悩むほどです。
『四角形のチップだけ、4方向判定』 『四角形のチップだけ、8方向判定』
『斜め床を実装する』 『細かい凹凸などの地形も表現できるようにする』・・・。
すでに4候補挙がりました。ちなみに採用したのは2番目です。

いっそ、やたらめったらシンプルなルールで作ればよかったのにとも思います。
でもそれをやるとそれはそれで負けたような気もしますし・・・
結局、1ステージ1画面の、さっくり始めてさっくりクリアできるようなのを作るのが
今の自分にとって最善の選択なのかと感じました。

▼ ウディタ2、公開ですって

ウディタ2が公開されたので、早速入手してまいりました。
機能が増えて、使いやすくなって、表現力も上がり、処理も軽快と。
さらにデバッグ系統の機能が大幅に向上されているようです。
システム自作派にも優しそうですね。RPG以外とか作るにも。

問題があるとすれば、実行ファイルとかが重いような気がする辺りでしょうか。
300KBくらい?この容量、シンプルなゲームなら入ってしまいます。
PCの性能の向上と共にデータ量や処理能力の大きいPCを前提としたソフトも
増えていくというのは時代の流れの必然なのでしょうね。

===

偽装勇者を作り直す格好の言い訳がまた一つ増えてしまった!どうしよう!
作り直すとしても、今作ってるC++企画をどうにかしてからなのは当然、
さらにその次にもう一個季節企画を挟みそうな気がするのでそのあと。
絶対、そのころにはどこまで作ったか忘れてるでしょうね・・・