リプレイ機能の実装がほぼ完成。
あとは保存する時のネームエントリー処理を実装するぐらい。
ロード画面は↓こんな感じ。
リプレイの保存の仕組みはInvaderBlock2と同じ。
ゲームオーバー後にSAVE REPLAYを選択して、保存するスロットを選べばそこに保存されます。
ただ、保存できる数は、8個にしました。(InvaderBlock2は16個)
理由は、スマホの画面では16個だと細かすぎて押し難かったので。
代わりに、PRACTICEモードでは、難易度(RANK)、機種(NOKOGI-Rider)、ステージ別にハイスコア獲得時に自動保存するので、PRACTICEでの保存数は45個。
リプレイ機能に関しては、どちらかといえばゲーム本編の方はオマケ。
リプレイ機能の最大の目的は、PRACTICE用です。
しかし、Androidだと「ストレージ」という概念がLinuxと同じファイルシステムの仕組みで存在するから、ユーザ向けに「リプレイデータはxxxディレクトリに保存してますよー」的な情報開示をしておけば良い訳ですが、iPhoneだとそういった部分はどうなるのやら。まだ、iPhoneの開発環境の仕様は調べてないから、よく分かりませんが。(恐らく、iPhoneはストレージ周りがかなり弱いから、そこら辺で色々と仕様的にAndroid版と同じにできない可能性が高いと思っています)
2012年6月5日火曜日
2012年6月4日月曜日
難易度設計
本日は有給。
有意義に過ごしたかったので、ほとんど開発はせず。
プラクティス画面からリプレイ再生ができるようにした程度。
システム周りで未完成の部分は、リプレイ保存・再生画面ぐらいだろうか。
仕組みの今回はプラクティスのリプレイ再生やデモ画面(0.01から実装済み)と同じなので、大して難しいものでもないから、今日中には仕上がるかな。
という訳で、システム周りのところは概ね完成したっぽいです。
そこまでできれば、ひたすらゲーム本編部分を作り続ければ良い状態になります。
ゲーム本編部分は、2面途中あたりまで作りかけていたところでペンディング。
理由は、
①2面途中ぐらいまでできれば、システム周りの90%を完成できる
②システム周りはバグの作りこみリスクが大きい
(初期の内から完成させておき、本編を作りながら叩いた方が最終的な品質が高くなる)
③ゲーム本編の難易度調整がスランプ中
あたり。
要は現実逃避(③)で楽な作業(システム周りの実装)に逃げてる訳です・・・難易度設計は、難しい。
システム周りと違い、想定通りに作ることが難しいので。
難易度設計は、1面と5面であれば楽です。
・1面=お披露目用
・5面=最終防衛ラインなので(私の)限界を目指せば良い
という感じで目的がハッキリしているので。
とりあえず作ってしまい、後で鬼調整するという方法もありますが。
ただ、私の経験則ではそのやり方だと最終的なバランスが悪くなるから、今回はやらない。
第三者のテスターを確保してやったとしても多分同じ。
実際、市販品でも1面と最終面は絶妙なバランスなのに、中間ステージは微妙なものが多い。
有意義に過ごしたかったので、ほとんど開発はせず。
プラクティス画面からリプレイ再生ができるようにした程度。
システム周りで未完成の部分は、リプレイ保存・再生画面ぐらいだろうか。
仕組みの今回はプラクティスのリプレイ再生やデモ画面(0.01から実装済み)と同じなので、大して難しいものでもないから、今日中には仕上がるかな。
という訳で、システム周りのところは概ね完成したっぽいです。
そこまでできれば、ひたすらゲーム本編部分を作り続ければ良い状態になります。
ゲーム本編部分は、2面途中あたりまで作りかけていたところでペンディング。
理由は、
①2面途中ぐらいまでできれば、システム周りの90%を完成できる
②システム周りはバグの作りこみリスクが大きい
(初期の内から完成させておき、本編を作りながら叩いた方が最終的な品質が高くなる)
③ゲーム本編の難易度調整がスランプ中
あたり。
要は現実逃避(③)で楽な作業(システム周りの実装)に逃げてる訳です・・・難易度設計は、難しい。
システム周りと違い、想定通りに作ることが難しいので。
難易度設計は、1面と5面であれば楽です。
・1面=お披露目用
・5面=最終防衛ラインなので(私の)限界を目指せば良い
という感じで目的がハッキリしているので。
とりあえず作ってしまい、後で鬼調整するという方法もありますが。
ただ、私の経験則ではそのやり方だと最終的なバランスが悪くなるから、今回はやらない。
第三者のテスターを確保してやったとしても多分同じ。
実際、市販品でも1面と最終面は絶妙なバランスなのに、中間ステージは微妙なものが多い。
2012年6月3日日曜日
謎スペック
前の記事で書いた集計情報の表示ですが、もちろん、カウントも同様です。
上図はデバッグ用に「GAME COUNT」の時間が有り得ない値になっていますが。
一番上の「TIME」は、ゲーム本編+プラクティスの合計プレイ時間。
「GAME COUNT」の時間は、ゲーム本編のプレイ時間(ステージクリア画面やエンディングは含まず)。
「PRACTICE COUNT」の時間は、ステージ別の練習時間。
「GAME COUNT」と「PRACTICE COUNT」の時間表示部分は、表示位置の関係で表示上限の最大時間が9,999,999時間59分59秒が限界。
ただ、時間は非符号32bitで秒単位で保持しているので、4,294,967,295秒が上限。
つまり、約1,193,046時間が限界。
1,193,046時間ということは、日数換算すれば約49,710日、年数換算すれば約136年。
136年ぶっ続けでやり続ければカンスト・・・ですが、カンスト処理は実装せずオーバーフローで0に戻るようにしておきました。プレイ時間が136年を超える場合、136年毎にノート等に正の字を書く等で記録するなりして、お楽しみください!!
・・・純然たる謎スペックですが、こういうジョークは嫌いではないです。
ちなみに、こういう所で、「どの仕様が最適か」という事を見極める技術は結構重要。
つまり、何処までを実装(プログラム)で、何処からを運用(ノートに正の字で記録など)でカバーすべきか。
まぁ、ゲームとはほぼ関係ない事ですが。
Totalize
SHOT04で、ローカルのプレイ記録を表示する画面では、
・RANK(難易度)別
・TYPE(機種)別
にランキングやデータを表示する感じでした。
しかし、全RANKの集計、全TYPEの集計が欲しかったので追加。
RANK+TYPE別、RANKだけ集計、TYPEだけ集計、RANK+TYPE全てを集計の4パターンが可能。
Tを押せば良いだけです。(起動時のデフォルトは、RANK+TYPE両方Tの状態)
上手くなってくると、ランクはN(Ninja)だけで埋められるんでしょうけど。
ただ、こういうのは、だんだんと埋めていくのが楽しいと思うので、スコアアタックゲームでは必須だと思います。(スコアボード専用のサイトとかなら普通にできることですし)
ただ、意外とやっているものは少ない。
東方でもやってないし、CAVEシューティングでも私が知る限りではやっているものは無いです。
もしかすると、作るのが大変なのかも。
別にそれ程難しいものでもなかったけど。(それでも、作るのに2時間程度はかかりましたが)
ちなみにRANK+TYPE両方のトータルだと、データは最大144位までありますが、17位以下は切り捨て。
全表示するにはスクロールが必要なので、かなり面倒。
面倒な割りに誰も得しないと思うので却下。
・RANK(難易度)別
・TYPE(機種)別
にランキングやデータを表示する感じでした。
しかし、全RANKの集計、全TYPEの集計が欲しかったので追加。
RANK+TYPE別、RANKだけ集計、TYPEだけ集計、RANK+TYPE全てを集計の4パターンが可能。
Tを押せば良いだけです。(起動時のデフォルトは、RANK+TYPE両方Tの状態)
上手くなってくると、ランクはN(Ninja)だけで埋められるんでしょうけど。
ただ、こういうのは、だんだんと埋めていくのが楽しいと思うので、スコアアタックゲームでは必須だと思います。(スコアボード専用のサイトとかなら普通にできることですし)
ただ、意外とやっているものは少ない。
東方でもやってないし、CAVEシューティングでも私が知る限りではやっているものは無いです。
もしかすると、作るのが大変なのかも。
別にそれ程難しいものでもなかったけど。(それでも、作るのに2時間程度はかかりましたが)
ちなみにRANK+TYPE両方のトータルだと、データは最大144位までありますが、17位以下は切り捨て。
全表示するにはスクロールが必要なので、かなり面倒。
面倒な割りに誰も得しないと思うので却下。
2012年6月2日土曜日
GameCenter
以前、iPhone版の虫姫さまのGameCenterのスコアボードがアレだと書きましたが、iPhone版の大往生のスコアボードは正常なようです。少なくとも、異常だと思える(=理論値を遥かに超えている)スコアの登録は今のところ無いです。
という訳で、スコアラーはおとなしく、虫さまではなく大往生をやるべきか。
虫姫さまは、稼ぎの仕組みがシンプルで好きでしたが残念。
虫姫さまのバグは仕方が無い・・・虫だけに。
iPhone版の大往生は、やり始めたばっかりなので、まだまだスコアは低いです。
現時点で86,915,770点。(A-type, Laser)
GameCenterでの順位も、まだまだ底辺(11,550人中、492位)。
母数が多いので、現在のスコアでも結構上位に見えるように錯覚しそうですが。
ただ、やり込んでいる人の割合は精々全体の2割程度だろうから、実質2,310人中492位。
私の脳内統計情報では、やり込んでいる人の5%(115位以内)に俳人になる素質があります。
なので、やるからには100位以内を目指したいところ。
下手をすると100位以内であれば、HELLではなくHARDの方が狙い易いかも。
大往生は、1周クリア時の残機ボーナスが高いので。
HELLだと、私の腕では1周ノーミスは無理だけど、HARDなら無理ではなさそう。
どうせ後でHELLしかプレイしない日が来るので、最初っからHELLで良い気もしたのですが、HARDだと無条件で2周目に入れるのがおいしい。(この仕様のお陰で、HARDに関しては捨てゲー率を0にできるので、効率良く腕を上げることができます)
あと、課金アイテムが色々あるようですが・・・必要なんですかね?
どうせやるなら、コンティニューで使えるクレジットを1クレジット10円ぐらいで10クレジットセットとかで課金販売すれば良いのに・・・と思ったりしました。ついでに、プラクティスでの練習にも1クレジット必要とかにすれば、上級者でも(というより、寧ろ上級者の方が)課金するだろうし、消耗品だから定期的な収入も見込めるんじゃないか・・・。
本体価格を0円にして、クレジット消費でプレイするゲーム(ゲーセンのイメージ)でも面白いかも。
ただ、それはやり過ぎ(某Gや某Dに間違われる恐れがある)かもしれませんが。
そもそも、課金=某Gや某Dというイメージすら有る人も居る様ですし。
という訳で、スコアラーはおとなしく、虫さまではなく大往生をやるべきか。
虫姫さまは、稼ぎの仕組みがシンプルで好きでしたが残念。
虫姫さまのバグは仕方が無い・・・虫だけに。
iPhone版の大往生は、やり始めたばっかりなので、まだまだスコアは低いです。
現時点で86,915,770点。(A-type, Laser)
GameCenterでの順位も、まだまだ底辺(11,550人中、492位)。
母数が多いので、現在のスコアでも結構上位に見えるように錯覚しそうですが。
ただ、やり込んでいる人の割合は精々全体の2割程度だろうから、実質2,310人中492位。
私の脳内統計情報では、やり込んでいる人の5%(115位以内)に俳人になる素質があります。
なので、やるからには100位以内を目指したいところ。
下手をすると100位以内であれば、HELLではなくHARDの方が狙い易いかも。
大往生は、1周クリア時の残機ボーナスが高いので。
HELLだと、私の腕では1周ノーミスは無理だけど、HARDなら無理ではなさそう。
どうせ後でHELLしかプレイしない日が来るので、最初っからHELLで良い気もしたのですが、HARDだと無条件で2周目に入れるのがおいしい。(この仕様のお陰で、HARDに関しては捨てゲー率を0にできるので、効率良く腕を上げることができます)
あと、課金アイテムが色々あるようですが・・・必要なんですかね?
どうせやるなら、コンティニューで使えるクレジットを1クレジット10円ぐらいで10クレジットセットとかで課金販売すれば良いのに・・・と思ったりしました。ついでに、プラクティスでの練習にも1クレジット必要とかにすれば、上級者でも(というより、寧ろ上級者の方が)課金するだろうし、消耗品だから定期的な収入も見込めるんじゃないか・・・。
本体価格を0円にして、クレジット消費でプレイするゲーム(ゲーセンのイメージ)でも面白いかも。
ただ、それはやり過ぎ(某Gや某Dに間違われる恐れがある)かもしれませんが。
そもそも、課金=某Gや某Dというイメージすら有る人も居る様ですし。
2012年5月31日木曜日
どの程度、保持したものか
SHOT04(NOKOGI Rider)のローカル・スコア保存のシステム周りを実装中。
とりあえず、現時点では下図のような感じ。
画面上のRANK/TYPEで、スコアランキングを確認するRANK/TYPEを選択できます。
スコアは、RANK/TYPE別に16位まで保存。
ランキングの保存情報は、プレイ日付、スコア、到達ステージ(オールした場合はC)。
概ね東方と同じ方式だと思います。
この辺は、あまりカスタマイズ余地が無いかもしれません。
ちなみに、プレイヤのエントリ名はランキングでは表示なしの仕様。
エントリ名は、リプレイ保存でのみ設定する仕様にしました。
(ランキングは端末単位のローカル情報なんだから、設定は無意味と判断)
あと、[DETAIL]ボタンを押せば、統計情報を表示する感じにします。
統計情報は未だ仕様を決めてないのですが、
①ゲーム本編のステージ別プレイ回数 & 2面以降の到達率
②ゲーム本編のクリア回数(クリア率)
③プラクティスのプレイ時間(ステージ別)
④プラクティスのプレイ回数(ステージ別)
を表示する予定。
もちろん、①~④はRANK/TYPE別で。
そんな沢山の情報を保持したら、ディスクがパンパンになるのでは?
と思うかもしれませんが、これら全部+@の情報サイズは、全部で3KBいきません。
だから、この情報でディスクを切迫することは無いです。
ディスクサイズで気を遣う必要があるのはリプレイデータの方。
デモプレイのリプレイデータですら11KB(無圧縮)もあるので・・・
リプレイデータは、保存時に圧縮すべきか検討中。
Androidなら問題にならない程度なんですが、iPhoneの場合、ローカルストレージのビット単価がかなりのボッタクリ価格なので。だから、少しでもディスクサイズが小さくなるように努力する必要があります。
現に、私がiPodのアプリを選ぶ時は、ディスク容量で第一のフィルタが掛けていますし。
もちろん、Androidでも気にしない訳ではないけど、iPodよりは若干緩いです。
とりあえず、現時点では下図のような感じ。
画面上のRANK/TYPEで、スコアランキングを確認するRANK/TYPEを選択できます。
スコアは、RANK/TYPE別に16位まで保存。
ランキングの保存情報は、プレイ日付、スコア、到達ステージ(オールした場合はC)。
概ね東方と同じ方式だと思います。
この辺は、あまりカスタマイズ余地が無いかもしれません。
ちなみに、プレイヤのエントリ名はランキングでは表示なしの仕様。
エントリ名は、リプレイ保存でのみ設定する仕様にしました。
(ランキングは端末単位のローカル情報なんだから、設定は無意味と判断)
あと、[DETAIL]ボタンを押せば、統計情報を表示する感じにします。
統計情報は未だ仕様を決めてないのですが、
①ゲーム本編のステージ別プレイ回数 & 2面以降の到達率
②ゲーム本編のクリア回数(クリア率)
③プラクティスのプレイ時間(ステージ別)
④プラクティスのプレイ回数(ステージ別)
を表示する予定。
もちろん、①~④はRANK/TYPE別で。
そんな沢山の情報を保持したら、ディスクがパンパンになるのでは?
と思うかもしれませんが、これら全部+@の情報サイズは、全部で3KBいきません。
だから、この情報でディスクを切迫することは無いです。
ディスクサイズで気を遣う必要があるのはリプレイデータの方。
デモプレイのリプレイデータですら11KB(無圧縮)もあるので・・・
リプレイデータは、保存時に圧縮すべきか検討中。
Androidなら問題にならない程度なんですが、iPhoneの場合、ローカルストレージのビット単価がかなりのボッタクリ価格なので。だから、少しでもディスクサイズが小さくなるように努力する必要があります。
現に、私がiPodのアプリを選ぶ時は、ディスク容量で第一のフィルタが掛けていますし。
もちろん、Androidでも気にしない訳ではないけど、iPodよりは若干緩いです。
2012年5月30日水曜日
スコアランキング
まだ、(ローカルの)ランキングは作ってませんが、プラクティスのスコア保存などの機能を実装したりしました。
こういう機能は、別に後から作っても良いのですが、システム周りのことは先に作っておき、後付で必要なデータや要素を追加していった方が良いもの(楽しいもの)ができると思っているので、早目に実装するのが吉です。(一度リリースしてしまうと、互換性の問題が生じるから、アップデートで更新できない場合が多々あるので、初期リリースまでに必要な要素を全て詰め込む必要があります・・・そういう場合、こういうやり方=自分で遊びながら必要なものを後付するのがベストです)
とりあえず、プラクティスモード(製品版のみ)では、RANK別×TYPE別×STAGE別にハイスコア+そのリプレイを記録する仕様でいこうと思っています。
あとは、プレイ時間やプラクティス時間をゲーム内時間(60フレームを1秒でカウント)で記録して、プレイデータ画面(製品版のみ)で、統計データやランキングを確認できるようにするつもり。
ちなみに、ランキングはネットワーク連動ではなく、ローカルのみ。
ネットワーク系の機能は実装しません。
ただ、将来的にはネットワーク経由でSHOT04(NOKOGI-Raider)のリプレイをアップできるスコアボードのようなものを作りたいのは山々なのですが、仮に作るとしても製品とは別のアプリで作ることになります。ゲーム本編では一切のネットワーク接続をしない方向です。
これは、私の個人的な趣向なんですが、ゲームの画面遷移などがネットワーク連携したがためにモッサリするのが嫌いなので、ゲーム本体は完全ローカル指向です。だから、ネットワーク接続するのなら、専用の別アプリで作る形になります。
そういえば、スコア関連の処理を実装していて思い出したのですが、iPhoneなら、標準でGameCenter機能を利用することで、簡単に全国ランキングみたいなものをアプリで実装できるのですが、それもやりません。
CaveのiPhone版「虫姫さま」がGameCenterのスコアランキングと連動していて、始めた当初の頃は「これは、面白い!」と思ったのですが、明らかにバグかハックして出したハイスコアが、ランキング上位を独占していたので、かなり微妙。
まぁ、バグがあることそのものは(良くはないけど)問題ではありません・・・当然無い方が良いですが。
問題は、GameCenterのランキングが、バグで出したもの or 正規プレイの区別がつかないということ。
リプレイも込みで登録できるようにすれば良いのですが。
しかし、(GameCenterの仕様を調べた訳ではないから定かではないですが)そんなんに対応したら、サーバがパンパンになってしまうから、多分対応していないと思うので、仮にiPhone対応するとしても、GameCenterはやりません。
寧ろ、GameCenterへの対応は逆効果だと思ってます。
プレイヤーの8割は、ランカーではないという統計データが(私の脳内に)あり、自分のランクを過度に気にする人の割合は2割弱程度です。(8割の人は、ランクとかは別に「有っても無くても良い」と思っているものと思われます)
で、ランキング機能は、その2割弱の人が楽しむための機能なのですが、恐らく、その2割弱の人の大半は、正規のプレイでトップスコアを狙うことを目指しています。当然ながら、そういう方々は、バグプレイでランキングが荒らされることを嫌います。
つまり、2割弱の人が楽しむための機能なのに、2割弱の人の大半は(バグスコアに)ストレスを感じているので、正に誰得な機能。寧ろ、無い方が幸せになれる人の数が増えます。
そんな誰得機能が果たして要るのか?と考えれば、以下略。
こういう機能は、別に後から作っても良いのですが、システム周りのことは先に作っておき、後付で必要なデータや要素を追加していった方が良いもの(楽しいもの)ができると思っているので、早目に実装するのが吉です。(一度リリースしてしまうと、互換性の問題が生じるから、アップデートで更新できない場合が多々あるので、初期リリースまでに必要な要素を全て詰め込む必要があります・・・そういう場合、こういうやり方=自分で遊びながら必要なものを後付するのがベストです)
とりあえず、プラクティスモード(製品版のみ)では、RANK別×TYPE別×STAGE別にハイスコア+そのリプレイを記録する仕様でいこうと思っています。
あとは、プレイ時間やプラクティス時間をゲーム内時間(60フレームを1秒でカウント)で記録して、プレイデータ画面(製品版のみ)で、統計データやランキングを確認できるようにするつもり。
ちなみに、ランキングはネットワーク連動ではなく、ローカルのみ。
ネットワーク系の機能は実装しません。
ただ、将来的にはネットワーク経由でSHOT04(NOKOGI-Raider)のリプレイをアップできるスコアボードのようなものを作りたいのは山々なのですが、仮に作るとしても製品とは別のアプリで作ることになります。ゲーム本編では一切のネットワーク接続をしない方向です。
これは、私の個人的な趣向なんですが、ゲームの画面遷移などがネットワーク連携したがためにモッサリするのが嫌いなので、ゲーム本体は完全ローカル指向です。だから、ネットワーク接続するのなら、専用の別アプリで作る形になります。
そういえば、スコア関連の処理を実装していて思い出したのですが、iPhoneなら、標準でGameCenter機能を利用することで、簡単に全国ランキングみたいなものをアプリで実装できるのですが、それもやりません。
CaveのiPhone版「虫姫さま」がGameCenterのスコアランキングと連動していて、始めた当初の頃は「これは、面白い!」と思ったのですが、明らかにバグかハックして出したハイスコアが、ランキング上位を独占していたので、かなり微妙。
まぁ、バグがあることそのものは(良くはないけど)問題ではありません・・・当然無い方が良いですが。
問題は、GameCenterのランキングが、バグで出したもの or 正規プレイの区別がつかないということ。
リプレイも込みで登録できるようにすれば良いのですが。
しかし、(GameCenterの仕様を調べた訳ではないから定かではないですが)そんなんに対応したら、サーバがパンパンになってしまうから、多分対応していないと思うので、仮にiPhone対応するとしても、GameCenterはやりません。
寧ろ、GameCenterへの対応は逆効果だと思ってます。
プレイヤーの8割は、ランカーではないという統計データが(私の脳内に)あり、自分のランクを過度に気にする人の割合は2割弱程度です。(8割の人は、ランクとかは別に「有っても無くても良い」と思っているものと思われます)
で、ランキング機能は、その2割弱の人が楽しむための機能なのですが、恐らく、その2割弱の人の大半は、正規のプレイでトップスコアを狙うことを目指しています。当然ながら、そういう方々は、バグプレイでランキングが荒らされることを嫌います。
つまり、2割弱の人が楽しむための機能なのに、2割弱の人の大半は(バグスコアに)ストレスを感じているので、正に誰得な機能。寧ろ、無い方が幸せになれる人の数が増えます。
そんな誰得機能が果たして要るのか?と考えれば、以下略。
登録:
投稿 (Atom)
合理的ではないものを作りたい
ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...
-
家電量販店のPCゲームパッドコーナーに行くと、軒並みWindows用のゲームパッドしか売っていません。稀に「Mac OS X対応」を謳っているゲームパッドも置いてありますが、実際に動かしてみると妙に誤動作をして更にガッカリしたりとか(経験済み)。 色々と試してみたのですが、最...
-
MSX版「覇邪の封印」の攻略情報を書きます。 MSX版には、パッケージに布製の地図とフィギュアが同梱されていますが、これらは単なるオマケではなく、ゲームをプレイするために必要なツールでして、説明書でもフィギュアの左足部分を現在位置に置いてプレイする旨が指示されています。実際に地図...
-
ゲームボーイのCPUについて、誤った技術情報が検索トップの方に表示されるので、私が把握する限りでZ80との仕様差を書いておきます。 ゲームボーイのCPUとは? ☓ 8080 ☓ Z80 ○ 8080カスタム or Z80カスタム(正確にはSHARPのLR35902) ...