夢幻の緑星 製作状況報告その1「概要」

 おはようございますorこんにちはorこんばんは。

 いしあたまーるちゃん受賞報告の時にちらっと書いたゲーム「夢幻の緑星」の製作報告をしていきます。初回なので概要の説明と、現状でどこまで完成しているのかを書きます。


概要

 去年作ったゲーム「WirePlanet」をもとにしたシステムを用いた、緑星と呼ばれる小さい星が舞台のゲームになります。平和だった緑星にある日宇宙人が攻めてきて、宇宙人から住人たちを守るために主人公のロボットが奮闘する、という内容です。
 操作にはマウスを使い、主にレーザー砲で敵を狙って倒します。


製作目標

 このゲームの製作目標ですが、まず今後似たゲームを作るうえで再利用できるライブラリを作ることです。

 以前WirePlanetというゲームを作りましたが、そのプログラムはつぎはぎで拡張性がなく、いわゆるスパゲッティコードの状態になっていました。完成後にこのコードを使いまわして新しいゲームを作ろうとしていましたが、機能を拡張しようにもどこに追加したらいいのかわからない、各モジュールの依存性が高すぎてある部分を修正したらあっちもこっちも修正しなければならなくなった、中途半端に作り直そうとしたら余計こんがらがった、など問題だらけで全く進みませんでした。
 そもそもこのコード自体がそれよりもさらに1年前の、C++を勉強し始めたころに書いたものに追加していったコードだったために、コードによって書き方や設計がばらばら、今となっては考えられないコードを書いているなど悲惨なもので、もはや作り直した方が早いと判断しました。

 ……これほぼ「WirePlanet」Vector新着ソフトレビューの作者からの声のところで書いたこととほぼ同じ内容ですよ。

 だってこのWirePlanet、弾を撃って敵や定期的に出てくるボスを倒していくだけのゲームなのに、全体でC++のソースコード約15000行(空行、コメント行除いて。結構詰めて書いた)もあるんです。どれだけ効率の悪いコードを書いていたんだって話です。

 ということで、今後のゲームに使えるようしっかり設計したライブラリ(フレームワーク?)を作ると言うことが一つ目の目標です。

 そして、このゲームの最終目標はニコニコ自作ゲームフェス2016に出すことです。

進捗状況
 
 ゲーム基幹部分の、ファイルシステム、画像や音楽などのリソース管理、描画システム、ゲームオブジェクトとコンポーネントの管理、シーンの管理や遷移、衝突判定の実装が終わり、とりあえず動かせるようになったところです。UIやセーブ機能、デバッグ支援機能などはまだ実装していませんし、細かい部分で修正するべきところがまだあります。
 
 これらが終われば、いよいよ実際に「夢幻の緑星」の内容を作っていくことになります。
 ちなみに、この今回作成したゲームエンジンでのゲームオブジェクトはUnityを参考にコンポーネントで構成されるようになっています。
 また、UIシステムはGameObjectの空間とは完全に独立しており、異なるものとなっています。
 さらに、上でゲーム進行を手軽にコントロールする仕組みとして、ゲームオブジェクトやUIオブジェクトを外部から操作する仕組みを実装してみました。容易に追加・削除やオブジェクトの登録・解除を行うことができ、ゲーム内のイベント進行だけでなく多数のオブジェクトに対する一括処理、自動移動なども行うことができます。
 オブジェクトの更新や描画処理もこの仕組みを利用しており、各詳細についてはこれから書いていこうと書こうと思います。


中間生成物

 夢幻の緑星の中間生成物として、「UFOデリバリーサービス」というゲームを10月か11月に公開します。現状できているもののスクリーンショットがコレです。
 
 UFOデリバリーサービス_スクリーンショット0


 本当は別のゲームとして9月に公開しようとしたのですが、間に合わなかったので少し内容を変えて10月頃に公開することにしました。
スポンサーサイト



コメント

コメントの投稿

非公開コメント

プロフィール

Cdec

Author:Cdec
情報系修士出身のIT系企業会社員。趣味で変なゲームを作ったり、気まぐれにゲームしたりしています。

■メインPC
Win11Pro, Core i7-13700K, DDR5-6000 32GB*2, SSD 512GB, HDD 2TB*2, RTX4070
■サブPC1
Win11Pro, Core i5-11400H, DDR4 16GB, SSD 512GB, RTX3050 Laptop
■サブPC2
MacBook Air M2(2022年)
■ファイルサーバー
WinServer2016Standard, DDR4-2133 2GB*2, Corei5-6500, SSD 128GB, HDD 1TB*2+2TB
■趣味制作
ゲームを作ってます。
・C#(Unity):
・C++(DXライブラリ)
・Python
■仕事
主にWebサービス開発をしてます。
・Pythoh/JavaScript/TypeScript