開発日記

2013/1/2

まだメトロイド・フージョンプレイしてます。

壊せるブロックについてもう1つ。サムスは色んな武器を使ってブロックを壊せます。

  • 通常ショットで壊せるブロック
  • ミサイルで壊せるブロック
  • ボムで壊せるブロック
  • スーパーボムで壊せるブロック
  • ダッシュで壊せるブロック

なのですが、万能の武器がない、というのが良くできていると思いました。例えばミサイルブロックはボムでは壊せないので、ボムでは届くもののミサイルでは簡単には壊せない位置にうまく配置されてたりします。

あとスーパーボムで隠されたブロックが見えるようになるのですが、そもそも壊れないすり抜け壁はボム使ってもわからないので、「行き止まりだ! 進めない!!」と思ったところにうまく配置されていて、良くできているなあ、と思いました。

2013/12/30

なんかメトロイド日記になりつつあるこのページ。メトロイド・フュージョン続けています。

壊せるブロックなのですが、見た目上は他の壊せない壁と同じものがあり、どこを壊せるのか探索する要素がありますね。とても当たり前なことなのですが、今更ながら気がついたのでメモ書きです。

2013/12/28

メトロイド・フュージョンを少しずつ進めています。

ギミックに関するネタで、ボムでブロックを壊すと連結しているブロックがまとめて消える、というのはなかなか良いと思いました。ボムは丸まっていないと使えないので、どうやったら壊せるか考えるのが楽しいです。

あと思ったのが、ボスの出現演出。メトロイドでは、ボスが突然出現することもありますが、出現する予兆をしっかり見せています。例えば、上から岩が少しずつ崩れてきてたり、竜の化石が置いてあったり、(その後、ドカーンと出現する)。個人的にボスは「出現演出(何かすごいのが出てきた!)」と「消滅演出(倒した時の達成感を演出する)」が見せ所だと思っているので、うまくツボを押さえていると思いました。

2013/12/24

メトロイド・フュージョンを貸してもらったのでやっています。

やはりこちらも良くできています。世界観やシナリオがしっかり語られていて、サムスが弱体化した経緯や寄生する異形の生物の成り立ちが描かれていて、SFホラーっぽく仕上がっています。雰囲気やBGMもなかなかおどろおどろしい。

まだ始めたばかりなのですが、敵を倒してもアイテムを回収しないと、それが死んだ敵に寄生して復活するというのが、ちゃんとした理由付けもあるし、ゲームシステムとしても面白いと思いました。

そしてサムスに寄生してフルパワーの能力を得たSA-Xが、執拗に追いかけてきます。でも弱体化したサムスでは全く歯がたたないから、そいつからは逃げまわるしかない、というシチュエーションもなかなか良いと思いました。

2013/12/23

メトロイド・ゼロミッションの続き。

ようやくクリアできました。プレイ時間は迷いまくっていたので5時間30分ほどかかっています。結構ボスで死にまくっていたのですが、たいていの場合はミサイル連打でクリアできました。上手い人はもっとスタイリッシュにクリアできるかもしれませんが、上手くない人にも救済措置があるのは、よくできた難易度調整だと思いました。

全体的によくできているのですが、一番感動したのが、パワードスーツを失ってしまうところですね。そこのゲームシステムなのですが、攻撃は敵をスタンさせる銃のみとなるため、ひたすら敵から逃げ回らなければなりません(しかも銃はゲージを溜めなければならないので、連射はできない)。敵を倒さずにジャンプや地形を駆使してすり抜けていかなければならない。この遊びがとてもスリリングでとても面白く感じました。正直な話、他の本編よりも面白かったような…。敵を倒すよりも弾避けが好きなシューター脳のせいかも。もしくは強力な装備を失った美女が敵から逃げまわる、というシチュエーションにグッときたのかもしれませんね。

2013/12/22

終わりと言いつつも終わっていない日記。 久々にのんびり休みがとれたので、メトロイド・ゼロミッション(GBA)で遊んでました。

やはりさすがは任天堂、と思わせる隙のない作りですね。新しく入手した能力でステージギミックを解くのが楽しくて、ついつい先に進めてしまいます。

で、わざわざここに書くのは、ギミック周りで使えそうなアイデアがあったので、そのメモ書きです。

メトロイドでは壊せるブロックが多いのですが、中には時間経過で復活するものがあります。その復活するブロックなのですが、復活してあたり判定が発生するタイミングでサムスと重なると、復活せずに消滅するのです。これは中々いいアイデアだと思いました。このような処理をすれば重なったときの挙動を考える必要がなくなり、ブロックにハマってしまう状態が起きなくなるので、実装がかなり楽になります。

壊せるブロックは何らかの方法で復活するようにしないと、たいていゲーム進行不能のハマリが発生します。画面外に出たら復活する、などの方法がありますが、時間経過で復活するのがやはり確実です。そういうギミックを実装する場合にこの方法はかなり有効だと思いました。

あと別の話になってしまいますが、落下床というのがメトロイドでは存在しません。乗ると一定時間で消える、という仕様になっています。ちょっと不自然な挙動ですが、ゲームとしてはアリですし、落下しない方が実装も楽なので、これもいい方法だと思いました。

それと、近づくと消えて正しいあたり判定の地形が表示される、というギミックもなかなかいいと思いました。

2013/12/19

特に開発とは関係がないですが、面白いアクションゲームを作る方法を考えていました。

完成度が高いアクションゲームは、ゲームの各要素がシンプルで、密接に連結していて無駄のない作りとなっています。そういうのを見ると、ついつい、それを目指したくなってしまいますが、 完成度の高いゲームの裏には、アクションゲームに対する膨大な知識量の蓄積や、膨大な時間を費やした試行錯誤が隠されているように思います。

つまり、知識や試行錯誤がない・少ない状態で、完璧を目指すのは容易ではないと考えています。

では、どうすればいいのか?

私の1つの考えとしては、

  • とにかく思いつく要素を詰め込んでみる

ことだと思います。1ステージごとに新しい敵やギミックが出現する、という作り方になってしまうかもしれません。 これはとても効率が悪く、時間のかかるやり方であると思います。 そして結果、あまり面白くないゲームとなる可能性が高いです。

ですが、そういった試行錯誤を繰り返すことで、ある日、突然、シンプルな仕組みで面白いアクションゲームを作れるようになる気がしています。

今回、ステージギミックを中心にゲームデザインを組み立てていきましたが、1ステージのみの使い捨てに近いギミックもいくつかあります。その結果、完成度の高いゲームにはなりませんでしたが、ギミックに対する知識量が増えたので、そういう成長ができたことにとても満足できています。

2013/12/17

ひと通りの作業が完了したので、開発日記はここで終了です。

2013/12/16

なんとなくUbuntu版も作ってみよう、と思い立って作成。ビルドにはUbuntu環境が必要なのでOSのインストールもやる。USBメモリからのブートがうまくいかなくて少し悩む。強引にインストール完了。Ubuntuの実行形式がよくわからないけれども、とりあえず実行ファイル?が無事動いてちょっと感動

2013/12/15

紹介ページの作成完了。Windows版とプロジェクトファイル(*.gmz)については、SourceForgeで公開しました。

HTML5でなぜかBGMがループ再生できない不具合発生。原因はHTML5だとストリーム再生できないようでした(サウンドの設定を「Compress(Uncompress on load) - Not Streamed」(オンメモリ)にすると解決)

Mac版のビルドも完了。あとはリリース日の12/27を待つだけですね

2013/12/14

最終ステージで盛り上がりを出すために、丼さんの曲を使うようにしてみました。

Steam Workshopにアップしてみました ( http://steamcommunity.com/sharedfiles/filedetails/?id=203699849 )。Steam版のGameMaker:Studioがあればボタン1つで簡単にアップロードできるのがいいですね。ただしExtensionを使っているとなぜかアップできないので、Scriptsに移動させる必要がありますね

2013/12/13

崩落床のSEを追加。KanaWaveで「ががが」という音にしました

ステージクリア時にちょっとした遊びを入れてみました。失敗してもとくにペナルティはないのですけど

2013/12/12

英語版の対応完了。メッセージデータがCSVだから、メッセージ","(カンマ)が使えないことに気が付かずに焦る。ワタワタ

メニューのSE追加完了。もうちょっとで完成です。

プロジェクトのプログラミング言語のカテゴリにGameMakerがなかったので追加してもらいました。

これでGameMakerのオープンソース・プロジェクトが増えるといいですね!

2013/12/11

ステージ21(エンディングステージ)を実装完了。こういうゲームプレイ可能なエンディングを一度作ってみたかった

次回作は全方位STGにしようかと思っています。例えば、Hammerwatch( http://www.gamespark.jp/article/2013/09/18/43509.html ) こういうもの。古いゲームですけどスマッシュTVとかダンジョンエクスプローラーが近いですね。 理由としては、画像リソースがRPGツクール的なものでよいので、素材がたくさん見つかりそうなので作りやすい気がしています。なんとなく思ったのが、いまどきの弾幕STGの文法ではなく、狙って撃って倒すような古いタイプのゲームデザインにするといいかもしれない

2013/12/10

ステージ20実装完了。ようやく全ステージ作成完了です

なんとなくソースコード管理を Google Codeから、Source Forgeに移行。ネットワークの転送速度がすごく速くなった……!

2013/12/9

移動床の上下移動と左右移動を実装。エンディングメッセージとメッセージ用オブジェクトを実装しました

ステージ19実装完了しました

2013/12/8

そういえば壁にぶつかって反転移動する床がない、と気がついて実装しました

2013/12/7

  • 画面外のブロックの動きを止めていたのを、動くようにしました。(タイミングがずれてしまうため)
  • 床ぬけ不具合を修正。(落下移動の最大速度を1減らした)
  • 移動鉄球を追加しました

ウィッパーの大冒険( http://www.genterprise.jp/ggplus/action/whippa.html )やってたら、移動ダメージオブジェクトが出てきたので、 これは実装せねばということで実装してみました。これを大量に配置すればクソゲー間違いなし……! ごくり

2013/12/6

スイッチの動作仕様調整。ON/OFFを交互に切り替えられるようにした。よりマイティー・スイッチ・フォースに近づいてしまった

2013/12/5

BGMの音量が小さめだったのでFL Studio使って調整しました

2013/12/4

透明床を実装するの巻

2013/12/3

スイッチ実装中。なかなか大変です。

わんきちさんの曲をステージ中に使うことにしました。 BGMとジングルは「かいてんパティシエ!( http://www.geocities.jp/dij4121/alpha/ )」からお借りすることに

ジャンプSEをMagical 8bit Plug( http://www.ymck.net/download/ )を使って、みょい~ん、という音にしました

2013/12/1

マイティー・スイッチ・フォース http://game.intergrow.jp/msf/ に触発されて、スイッチの実装開始する。

何か最近、急激に寒くなってきた気がする。冬が本気出し始めた!

2013/11/30

ステージ17実装完了。 さて今日はこれからD.Kさんの結婚式の2次会に行かねば。

→結婚式オワタ。わんきちさんに久しぶりにあって、ソーシャルゲーム開発話やゲームヘルの昔の話をして懐かしんだ

2013/11/29

ステージ16実装完了。うーむ、ネタ切れ感が半端ない

2013/11/28

ステージ16実装中です

2013/11/27

ステージ15作成完了でござる

2013/11/26

ジャンプする敵を追加しました

2013/11/25

コンプリート演出実装

2013/11/24

アイテム回収率のチェックを実装 コンプリートしたステージには、タイトル画面に星を出すようにした

2013/11/23

矢印で破壊できるブロックの実装 ステージ14実装 セーブロード実装。今回もINIファイルに保存する

2013/11/22

乗ると上に移動する床を実装しました

2013/11/21

矢印出現位置を調整

2013/11/20

ステージ12実装しました

2013/11/19

移動床のバリエーション追加。 乗ると移動する床を追加。

2013/11/18

EASYモードが即死ステージばかりだったので、難易度をかなり下げました。死ぬ要素は欲しいけど、あまりにも理不尽なのは避けたいなと

ステージ11実装。HARDモードを追加しました

2013/11/17

ポーズメニューの不具合修正。 instance_deactivate_allですべて止めるのではなくて、 instance_deactivate_objectで1つ1つ止めるようにしたら、うまくいきました

2013/11/16

弾を撃つ敵を実装。 敵弾の打ち返しを実装。うーん、思ってたより面白くない。 今回は敵を倒して楽しいゲームじゃないからかもしれません。 攻撃方法がプアなので倒すよりも避けるゲームですね。おそらく

2013/11/15

ヒントメッセージ調整。

2013/11/13

1UPだけだとバランスが大雑把なので、 マリオのコインにあたる、バナナアイテムを追加。 30個集めると1UPぐらいでいいかな?

2013/11/11

ステージ8実装 ステージ9実装

2013/11/10

ステージ7実装

2013/11/9

HTML5だと、ポーズメニューからゲームに復帰できない。 Windows版だとうまくいくのだけれども。 とりあえず、ポーズと言いつつもゲーム進行は止めないようにしておきます

2013/11/8

やり直しメニューを実装。 あまりハマリ状態を作らないゲームにするつもりですけど、 コリジョン抜けなど、そういう状況にならないとは言えないから保険として。

2013/11/7

残機数の表示を実装。 ステージクリア演出を実装。 タイトル画面のモード選択を実装

2013/11/6

死亡時に画面揺れするようにしました。 出口オブジェクトを実装。 1UPを実装

2013/11/5

敵が壁に衝突したら移動方向を反転させるようにした。 ヒントオブジェクト実装。 ゲーム進行を止めたくないので、カットイン演出っぽくした

2013/11/4

鍵を実装しました。 でもゲーム使用上、ハマり状態を作りづらい (残機制なので、リトライして試行錯誤させるのに向いてない) ので、あんましパズルゲームっぽくできないことに今更気がつく。

矢印の数を増やせるパワーアップアイテムを実装。

2013/11/4

ステージ5を実装。楽しいなー。

死亡時に血が飛び散るのを止めました。 やはり暴力表現は良くない良くない

2013/11/4

移動床不具合調査。 どうもmove_contact_solid()は座標にfloat値が含まれていると、 小数部の切り捨てか何かで正しい座標に移動しなくなるっぽい。

floor()を使って強引に解決

2013/11/3

ステージ4を実装。 移動床の速度が速すぎる気もするけど、まあこれでいいかな。

ゲームループをひと通り実装完了。

2013/11/2

ステージクリアとかゲームオーバーを実装。

ステージ1、2、3を試しに作ってみる

2013/11/2

敵に矢印を当てると敵の動きを止めるようにした。 が、矢印と敵の関係をどう扱うかが難しいなあ。どうしよう。

2013/11/1

矢印で敵を吹き飛ばすようにしてみた。 プレイヤーのダメージノックバックを実装してみる

2013/10/31

移動床の挙動がまだおかしい。 GameMakerだと衝突判定のタイミングをこちらで制御できないのがつらいなあ。

2013/10/30

壁の引っ掛かりの原因が不明。 とりあえず1ドット押し返すことで強引に解決した

2013/10/27

壁オブジェクトに引っかかるバグ調査。 原因は着地時に垂直方向の移動量を0にしていないことであった。 これでずり落ちはなくなった

2013/10/27

とりあえず敵を表示するようにしてみた。当たり判定はまだない……

2013/10/27

スクロール対応。Viewを使うと簡単に実装できる。これはすごい

2013/10/27

キャラの反転描画をdraw_sprite_extの スケール値を-1にすることで実装。 新たに画像を用意するよりも楽できた

2013/10/27

矢印を時間差で表示するようにした。 ズバババッと表示されるといいよね

2013/10/26

今日はかなり頑張った

2013/10/26

キャラクターの基底クラス obj_char を作った。 これを継承して敵も作れるかも?

2013/10/26

矢印を実装。当たると慣性がかかる。 アクションゲームは移動量がすべてなので、 ゲームバランスが崩壊しないような値に調整するのが難しい

2013/10/26

キャラクターアニメを実装。 鉄球追加。 やっぱり、ゲームオーバーがあるとゲームらしくなるなあと改めて実感

2013/10/26

ジャンプを月風魔伝ジャンプ (接地していなくても1回ジャンプできる) にするべきか悩む。 ・月風魔伝ジャンプのメリット  ・ジャンプタイミングがルーズにできる  ・ジャンプの自由度が上がる ・デメリット  ・メジャーでない(現実のルールに即していないので、分かりにくい)  ・知らないとクリア不能なステージ構成になってしまう

悩んだ末、いのべーしょん2007もちゃんと実装していたので、 月風魔伝ジャンプは止めることにした。

2013/10/26

下から登れる床を、下+ジャンプで降りられるようにした。 いのべーしょん2007( http://o-mega.sakura.ne.jp/product/ino.html )にある床やギミックはひと通り実装しよう

2013/10/25

動く床を実装。 衝突判定・応答がうまくいかず試行錯誤。 下から登れる床を実装。

2013/10/24

製作開始。 画像素材はおめがさんがTwitterで公開していたものがあるので、 それをベースに使うことにする。

そもそも衝突応答するオブジェクトはどうやって作るのかわからなくて調べる。 http://eidwinds.com/tooru/GM6HP/ ここを参考に色々試してみた。