Product/Room666

Top / Product / Room666

操作方法 (How to operation)

  • 移動(Move): WASDキー(WASD Keys) / カーソルキー(Arrow Keys)
  • ジャンプ(Jump): X / Xキー(X key)
  • 攻撃(Shot): C / Cキー(C Key)

遊び方 (How to play)

上から振ってくるブロックに当たらないようにして、出口を目指します。 ブロックは攻撃で壊すことができます。

By entering the door, you can escape from this dangerous room, and avoid falling blocks from above. You can break the block in the attack.

更新履歴 (History)

  • 2016.2/14 : v1.0.0 リリース

ソースコード (Source Code)

使用したゲームライブラリ (Game Library)




























製作期間

toggl.png

3日(実質2日) : 2016/2/12〜2016/2/14。作業時間は8時間

振り返り

Game A Week の3週目。次のゲーム作成開始の曜日を月曜日にしたかったのと、ゲーム要素がこれだけでも成立する気がしたので、3日で完成とした

  • アイデア
    • 落ちゲーパズルを作ろうとしたけれども、気がついたら普通のアクションゲームになっていた
    • ミスタードリラーとかスチームワールドディグとかをイメージ
      • 下に降りるのではなく、上に登るゲームにしたら面白いかも、と漠然と考えながら作った
    • ソロモンの鍵のように、ブロックを出現できるようにしたら面白いかも……、と思ったがやめた
      • 簡単に上に登れてしまうため
    • ソロモンの鍵は、敵の動きのパターンも参考になるものが多かった
    • ゲームの雰囲気は「処刑室」のイメージ
    • 下のブロック壊してもすぐに落下しない仕組みを作りたかったが面倒なのでやめた
    • マジカルドロップみたいに、プレイヤーの上側にあるブロックを回収できる仕組みも妄想したけど、妄想で終わった
  • 良かったところ
    • 3週目にしてようやく(個人的な印象では)まともなゲームが完成
    • ブロックの出現頻度の上昇にABAさんの計算式を採用
    • ゲームオーバー時にブロックが画面外に出るのはよい演出だと思った
      • 実はコリジョン判定を無効にしているだけ
  • 悪かったところ
    • ブロック同士の衝突判定に苦労した
      • HaxeFlixelの衝突判定(FlxG.collide)を使うといつくか問題がある
      • たくさんブロックが出現すると、処理が重い
      • 重力が累積する
      • たくさん重なるとめり込む。コリジョン抜けする
    • このタイプのゲームを作るときは物理エンジンを使った方が良かったのかもしれない
  • 学んだこと
    • FlxG.overlap の引数に FlxSpriteGroupを渡すと、Flashでは動かないみたい(NekoVMではなぜか動く)
    • Bitwigの音量のバランスの取り方が分かった
    • Intellij IDEAを15の環境にバージョンアップできた
    • プレイヤーの移動をX軸とY軸に分離して移動し、衝突判定を行う仕組みが作れた
      • FlxObject.moves = false にすると好きなタイミングで動かせる。Tokenクラスに軸移動する関数を実装できた
    • FlxTypedGroup.recycle でインスタンス数が足りない場合のみ生成(動的生成)する方法を覚えた
    • 1週間で作るゲームは、要素数をこれくらいに抑えた方が良いのではと思った
      • 敵やアイテムを出すべきか悩んだが、なくてもそれなりに成立すると判断した
  • その他メモ
    • このゲームを発展させるには、ブロックの種類のバリエーションを増やす方向で肉付けするとよいかもしれない
      • 鉄球が落ちてくる(上下左右、どこから接触しても死亡)