Author Archives: ftvoid

[お知らせ] サイト整備について

今日はゲーム制作はお休みしておりました。

現在運用中のWebサイトですが、ここ暫く手付かずの状態になっているため、どこかのタイミングでまとめて整理したいと考えています。
その際、一時的にこのブログ含めサイト全体のメンテナンスが入る可能性があります。

もしかしたら、このタイミングでサーバーをお引越しするかもしれません。
メンテナンスする際はまた改めてブログで周知したいと思います。

恐らく来月か再来月のGWあたりになりそうです。

それでは、引き続きfrom the voidをよろしくお願いいたします。

[Departure from the Void] ステージオブジェクトのマスターデータ修正

修正した設計を元に、敵や雲などのステージオブジェクトのマスターデータ構造の修正を行いました。

これで、複数ステージ間で共有していたマスターファイルを各ステージ毎に分割でき、マスターデータのメンテナンスが楽になりました。

20170321_1

メンテナンスが楽になった一方、ステージオブジェクトを参照するときはマスターファイルとその中で定義されているIDの2つのキーが必要になるのがデメリットです。
しかし、デメリットを差し引いても上記の管理方法が良いと判断したため採用に至りました。

明日はゲームオーバー画面の実装の続きをやっていこうと思います。

[Departure from the Void] マスターデータ管理クラスの設計見直し

今日はマスタデータを管理するクラス周りの設計を見直しました。
クラス構成は以下の通りになる予定です。

20170320_1

StageObjectMasterは現在は全ステージ分の敵や雲などのオブジェクト情報を一括管理していますが、このままではステージが増えていくごとに管理しにくくなります。
そのため、ステージ毎に固有のStageObjectDataを持たせられるような設計にしました。
各ステージで使いまわす共通のオブジェクトも存在するため、ステージ共通とステージ固有のStageObjectDataが複数個存在する感じです。

明日は上記設計を実装に反映していこうかと考えています。

[Departure from the Void] ステージ2スプライト切り出し

今日はゲームオーバー画面の実装をやる予定でしたが、あまり時間が取れなかったので、ステージ2で使うスプライトの切り出しを行っていました。

20170319_1

上記は背景オブジェクト用のスプライトですが、ほかにもステージ2専用の敵キャラもあります。

必要なスプライトの切り出しはすべて終わったので、またゲームオーバー画面の実装に戻りたいと思います。

[Departure from the Void] ゲームオーバー画面遷移

今日はゲームオーバー画面に必要なクラス設計を行っていました。
クラスはまだ構想途中のため、見た目上の進捗は無しです。

また、これに伴い、自機がやられる動作ややられた後の復帰動作の実装も行っていました。
こちらも実装途中のため、明日以降の進捗報告にしたいと思います。

今日は簡単ですが、ここまでです。

[Departure from the Void] バッチコール対策実施

バッチコールが最大で20まで跳ね上がってしまっていたので、今日は無駄なバッチコールを減らす対策を施しました。

20170317_1

20170317_2

原因は異なるマテリアルのオブジェクトが交互に重なっていることでした。

今回のゲームの場合、殆どのキャラが黒一色で重なり順序は気にする必要がありません。
そのため、上記の現象を防ぐため1レイヤーに1マテリアルのオブジェクトのみ描画させるようにしました。

改善前のSortingLayerの構成は以下の通り。

20170317_4

特にStageObjectレイヤーで上記の現象が顕著に発生していました。
(自機、敵、敵弾という異なるマテリアルのオブジェクトをこのレイヤーに共存させていたため)

このレイヤーを以下のように細分化しました。

20170317_5

そもそもマテリアルをひとまとめに出来ないかという問題もありますが、今後AssetBundleも使うことを考慮して多数のマテリアルが存在しても無駄にバッチコールが増えない仕組みを目指しました。

これで以下のように10以下までバッチコールを抑えることに成功しました。

20170317_3

これでめでたしめでたしです。

[Departure from the Void] ステージ1ほぼ完成

雲の描画順序の問題をSortingLayerにより解決し、正しく描画できるようになりました。

これでステージ1の実装はほぼ完了です。

自機が敵や敵弾に当たったときの処理はまだこれから実装しますが、ステージ1そのものの実装はこれで終わりです。
ここまで実装するのに1か月半かかってしまいましたが、大きなトラブルも作業の後戻りもなく順調に来れました。

明日からは自機がやられたときの処理やゲームオーバー画面などを実装していきます。

[Departure from the Void] 雲を配置

昨日は配置クラス構成周りをリファクタリングしたので、今日はステージ1の背景に雲を配置しました。

20170315_1

今は雲が常に手前に表示されてしまう状態ですが、原因ははっきりしているため後程対処する予定です。
敵キャラと背景でマテリアルが分かれているので、レイヤーで描画順序を制御する方法で行きたいと考えています。
(Z座標での管理ではマスターデータの管理がややこしくなるため)

この問題を解消できればステージ1の実装は完成です。

次はステージ2への遷移演出を実装していきます。

[Departure from the Void] ステージ配置クラスの設計見直し

今日はステージ配置クラス周りの設計を見直しました。
今までは一つのレイヤーに敵や背景オブジェクトをまとめて配置していましたが、レイヤー分けをして配置できるような仕組みにしました。

以下、修正を反映したクラス構成です。

20170314_1

今まではStageLayouterクラスがSingletonでしたが、これをレイヤーの数分だけ存在させるようにしました。
この複数のStageLayouterクラスを束ねて管理するのがStageLayoutManagerクラスです。

明日はこのクラス構成を実装に反映していきます。

[Departure from the Void] 今後の制作予定について

今日は制作日記をいったん止め、Departure from the Voidの今後の予定についてざっとまとめてみました。

  • 3月上旬~中旬
    • ステージ1の完成
  • 3月中旬~下旬
    • ステージ2の実装着手
    • ゲームオーバー画面の実装
    • 一連の画面遷移実装
  • 4月上旬~中旬
    • ステージ2の完成
  • 4月中旬~下旬
    • BGM制作
  • 5月上旬~中旬
    • テスト
    • リリース準備
    • リリース

大体以上のようなスケジュールになりそうです。

今回は特にクラス設計周りを重要視して実装を進めているので、序盤でかなり設計に時間を割いてしまいましたが、その分ソースコードのメンテナンスはこれまでと比較にならないほど楽になりました。
まだ設計に甘い部分があり、これからも修正を行っていくつもりですが、自分なりに少しでも品質の良い設計とコードを書けることに全力を尽くそうと思ってます。

グラフィック素材は既に完成しているので、プログラムのほかはBGM制作が大きなタスクとして残っています。
BGMは2ステージ+ゲームオーバー画面用で計3曲作成する予定です。
DTMのスキルは初心者並みなので、想像以上に時間を要す可能性大ですが、こちらも自分の満足行く形に仕上げられるようじっくりと時間をかけたいと思います。

明日からまた引き続き作業を進めていきます。