パクリアプリ開発日記 44日目 飛行◯システム

★☆★ 前回の作業 ★☆★

対戦フィールドがマ◯クラで、対戦システムがク◯クラのゲームを作ろうとしています。

対戦フィールドを球形の惑星風にしようとしましたが、立方体で球形を構成するのは無理があったので、ラピュ◯をパクって空中都市的な感じにしました。

※iPadProを使っても、絵はうまくなりません。

★☆★ 今回の作業 ★☆★

飛行◯のシステム詳細を考える。

以下、箇条書きにします。

・飛行◯の力によって、ブロックに浮力が与えられる。

・飛行◯は通常のブロックより大きく、高さ・横幅・奥行きが各3ブロック分、合計でブロック9個分の領域を占める。

・飛行◯の力は、初期状態で飛行◯の中心から上下左右10ブロック分(飛行◯を鍛えると増える)の範囲に及ぶ。ブロック数にすると、飛行◯(9個分)も入れて21 * 21 * 21 =9261個となる。

・自キャラが空中都市から落ちると、飛行◯の近くに復活する。

・名称について、飛行◯はまずいので反重力結晶とする。

とりあえずこのくらいで・・・

★☆★ 次回の作業 ★☆★

資源や防御施設建設などのシステム詳細を考える。

パクリアプリ開発日記 43日目 ラピュ◯もパクろう

フィールドについて、はじめは、マイ◯ラの土ブロックを球形に並べてちっちゃな惑星風にしようと思いました。が、ちょっと困ったことが起きます。

地球の緯度と経度の線を見るとわかるのですが、立方体のブロックを組み合わせて球形を作ろうと思うと、赤道付近は四角いブロックを並べることができますが、北極や南極付近は四角くなりませんよね?

サッカーボールなど、うまく多角形をバランス良く並べられるケースもありますが、四角形は同じ大きさで均等に球形で並べることは出来ません。

ブロックを掘って球の中心に向かったり、ブロックを積み上げて高いタワー作ったりするときも困ります。同じ大きさの立方体ではなくなります。

そこで、いきなり話が飛びますが、飛◯石を思い出しました。

◯行石の力でブロックが浮力を持ち、飛行◯の周りに浮かんでいる感じにしました。

※私の頭のメモリ容量が足りない関係上、絵が下手なことをお詫びいたします。どうでも良い事ですが、この絵を描くのに最新のiPadProを使っています。

飛◯石から一定距離でブロックを配置できることにします。

はじめは飛◯石から10ブロック四方くらい、飛行石を鍛えるとどんどん配置できる範囲が増えることとします。

クラ◯ラも取り入れるつもりなので、この飛◯石を対戦時の最終攻撃目標とすることとしました。システム的なことも決まって一石二鳥です。

★☆★ 次回の作業 ★☆★

飛行◯や、防御施設建設などのシステム詳細を考える。

パクリアプリ開発日記 41日目 メモリ使用量の再計算

実際に土ブロックを描画してみて、メモリ使用量がちょっと増えたので再計算します。

主に、頂点バッファとインデックスバッファを考慮します。

19日目の日記の通り、頂点バッファは、1ブロックあたり以下のメモリ量となります

1頂点=4バイト x 3軸(位置) + 4バイト(明るさ) + 4バイト x 2軸(テクスチャ) = 24バイト

1ブロック=14頂点=24バイト*14=336バイト

インデックスバッファは、int型4バイトを使用し、GL_TRIANGLE_STRIPで14個+区切り1個を使用することになっていました。

4バイト * (14 + 1) = 60バイト

よって、1ブロックあたり、合計で396バイトとなります。

100 * 100 * 100 で、一度に百万個のブロックを描画すると、

396MBとなります。ちょっと多いな・・・

四方を囲まれているなど、描画不要なブロックがあるはずなので、工夫して実際にはもっと減らそうと思います。

 

ちなみに、GL_TRIANGLE_STRIPをGL_TRIANGLESにすると、インデックスバッファは36個になるので、

4バイト * 36 = 144バイト

となり、合計 480バイト、百万個のブロックでは480MBになります。

★☆★ 次回の作業 ★☆★

世界を土ブロックで一杯にする。

パクリアプリ開発日記 38〜40日目 アプリの完成

遂にパクリアプリが完成しました!

マ◯クラとク◯クラと、ちょっとシム◯ティを混ぜた、いいとこ取りアプリです。

3日間くらい徹夜したら完成してしまいました。気合いは大事ですね。

有名なアプリをパクることで、ここまで面白い作品になるとは思いませんでした。おかげ様で販売開始直後から現在まで売上/DL数共にAppStoreランキング1位を維持しています。ありがとうございました。

★☆★ 次回の作業 ★☆★

次回作の構想を練る。

パクリアプリ開発日記 37日目 サーフェース管理クラス

今日は、サーフェース(頂点バッファやインデックスバッファ)を管理するC++クラスを作っていました

レンダリングエンジンやアプリケーションエンジンのクラス(これらもC++)を作成済みですが、この2つのクラス間とのインターフェースをどうするかなどを考えていました。

★☆★ 次回の作業 ★☆★

土ブロックで世界をいっぱいにする。

パクリアプリ開発日記 34〜36日目 ソース整理

頂点バッファやインデックバッファを作る箇所のソースコードを改良していました。

かなり汎用性がなくグダグダなコードだったため、ちゃんと別クラスにしてうまく使いまわせるように調整していました。

★☆★ 次回の作業 ★☆★

土ブロックで世界をいっぱいにする。

パクリアプリ開発日記 33日目

『土ブロック』を1つ完成させるのに1か月かかりました。

これではアプリの完成まで100年くらいかかりそうです。

そこで、今日は作業をもっと効率的に進める対策案を考えました。

1.会社の勤務時間が作業が進まない要因である

2.1を解決するため会社を辞める

3.2を行うと収入源がなくなる

4.3を解決するため銀行強盗する

5.4はリスクがありすぎるためアプリを売る

6.アプリを作る

今やっていることに戻りました・・・

★☆★ 次回の作業 ★☆★

『土ブロック』を1つ完成させるのに1か月かかったことを反省する。

パクリアプリ開発日記 31日目 土ブロック完成

『土ブロック』が完成しました。この立方体を完成させるのに1か月かかりました。

テクスチャはこんな感じです。

インデックスバッファ数15(区切り込み)、頂点バッファ数14に抑えて立方体が完成しました。

アプリの使用するメモリ容量を抑えるために、悩みすぎて頭のメモリを使い果たしました。

★☆★ 次回の作業 ★☆★

『土ブロック』を1つ完成させるのに1か月かかったことを反省する。

大手には作れないアプリを(気持ちだけは(๑•̀ㅂ•́)و✧)