Android2.3~4.0の場合、機種によってVSYNCの間隔が区々なようなので、リプレイデータにプレイした時のFPS平均値を記録&表示するようにしてみました。Androidの場合、VSYNC間隔はプログラム側で弄れ無さそうなので、せめて「どの程度の環境でプレイした記録か」という情報を保持する必要があります。
SLOT1~3は、仕様変更前のリプレイデータだから、0.00fps。
SLOT4がテストで記録してみたもの。
ちなみに、Windows版の場合、DirectX9以降に対応したGPUを積んだ環境であれば、60.00fpsジャストになります。少し端数の具合を確認したかったので、プレイ中にわざとウィンドウを動かしてみたりして、端数が出るようにしました。
あと、計測対象は、ゲームメイン処理のプレイ中でプレイ開始時点の最初の約1秒(正確には1000ミリ秒~1ミリ秒の範囲)を除いた状態からの平均フレーム数で、ポーズ中やクリア時、エンディング時は測定しない仕様です。(※最初の約1秒を記録しないのは、秒単位で総フレーム数と総プレイ時間(秒単位)を測定するので、厳密な測定をする為に必要)
無駄に厳密な測定。
2012年8月5日日曜日
2012年8月4日土曜日
生産状況(8/4)
本日(4-Aug 2012)時点のSHOT04の開発規模を測定。
5月中旬ごろ(体験版が完成した時)の実行行数が7.7ksぐらいで、現時点で12.3ks。
2.5ヶ月ぐらいで+4.6ksといったところですか。
「単独製作なのに、2.5ヶ月でたった4.6ksかよ!?」
と、思われるかもしれませんが、基本休日(週休2日として約20人日)しかプログラムを組む時間が無いから、こんなもんです。
あと、ずっとプログラムを作る作業だけやっている訳ではなく、絵を描くのと音楽や効果音を作るのにもそれなりに時間が掛かります。(むしろ、プログラムよりも絵や音楽の方が専門外なので大変)
思ったよりもプログラム規模が膨れました。
5月時点では、スコアランキングやリプレイなどの機能が未実装(体験版として公開できる最低限度の実装をした状態)だったというのが増加要因なので、あとは完成するまで、あまり大きな増加は無かろう・・・と、思っていますが、あと、3ksぐらいは増えるかも。一応、一番デカいゲームの本編処理(game.c)と、VGEエミュレータ(vge*.*とvgs.c)の増加傾向は止まりつつありますが、敵のアルゴリズム(enemy.c)の規模が依然として増加し続けているので。
敵アルゴリズムは、内部で細かく部品化して実装量を抑えるようにしていますが、再利用率があまり高くないです。似たような敵でも、ついつい細かい演出の違いとかを入れたくて、結局再利用せずに新規で起こしたりしているので。これなら、最初から部品化をしない仕組み(=非オブジェクト指向設計)にしておいた方が実装規模を抑えることができたかも。私はそこら辺(オブジェクト化するorしない)のバランス調整がかなり上手い方なので、通常は実装規模を最小限に抑えることができるのですが、この敵システムの作りこみに関しては、ミスった感が否めません。
ちなみに、SHOT03の時の実装規模は、10.2ks。
だいたい、10ksを超えだすと、ソース内に魔物が棲み始めます。
だから、プログラムの規模は少なければ少ないほど良いです。
(SHOT03の時は完成時ジャスト10ks程度になるように狙って作っていました)
SHOT04に関しては、今から10ks以下にするようにリファクタするのは期間的に不可能です。
なので、魔物を棲ませた状態で作り続けざるを得ません。
ロックロールせざるを得ません。
5月中旬ごろ(体験版が完成した時)の実行行数が7.7ksぐらいで、現時点で12.3ks。
2.5ヶ月ぐらいで+4.6ksといったところですか。
「単独製作なのに、2.5ヶ月でたった4.6ksかよ!?」
と、思われるかもしれませんが、基本休日(週休2日として約20人日)しかプログラムを組む時間が無いから、こんなもんです。
あと、ずっとプログラムを作る作業だけやっている訳ではなく、絵を描くのと音楽や効果音を作るのにもそれなりに時間が掛かります。(むしろ、プログラムよりも絵や音楽の方が専門外なので大変)
思ったよりもプログラム規模が膨れました。
5月時点では、スコアランキングやリプレイなどの機能が未実装(体験版として公開できる最低限度の実装をした状態)だったというのが増加要因なので、あとは完成するまで、あまり大きな増加は無かろう・・・と、思っていますが、あと、3ksぐらいは増えるかも。一応、一番デカいゲームの本編処理(game.c)と、VGEエミュレータ(vge*.*とvgs.c)の増加傾向は止まりつつありますが、敵のアルゴリズム(enemy.c)の規模が依然として増加し続けているので。
敵アルゴリズムは、内部で細かく部品化して実装量を抑えるようにしていますが、再利用率があまり高くないです。似たような敵でも、ついつい細かい演出の違いとかを入れたくて、結局再利用せずに新規で起こしたりしているので。これなら、最初から部品化をしない仕組み(=非オブジェクト指向設計)にしておいた方が実装規模を抑えることができたかも。私はそこら辺(オブジェクト化するorしない)のバランス調整がかなり上手い方なので、通常は実装規模を最小限に抑えることができるのですが、この敵システムの作りこみに関しては、ミスった感が否めません。
ちなみに、SHOT03の時の実装規模は、10.2ks。
だいたい、10ksを超えだすと、ソース内に魔物が棲み始めます。
だから、プログラムの規模は少なければ少ないほど良いです。
(SHOT03の時は完成時ジャスト10ks程度になるように狙って作っていました)
SHOT04に関しては、今から10ks以下にするようにリファクタするのは期間的に不可能です。
なので、魔物を棲ませた状態で作り続けざるを得ません。
ロックロールせざるを得ません。
エスプレッソーダの魅力について
7/29ぐらいに、エスプレッソーダが上手かったという記事を投稿しました。
そろそろ、VIPの反応が出ているだろうということで調べたところ概ね想定通りの反応。
※「http://logsoku.com/thread/hayabusa.2ch.net/news4vip/1344002674/」から引用
まぁ、こんな感じになるだろうと思っていました。
私としては美味かったし、既に複数回購入して飲んでいますが。
エスプレッソーダを美味しく頂くには、幾つかの手順を踏む必要があります。
①コーヒーだと思ってはいけない ← 最重要
コーヒーではなく、あくまでもコーヒーテイストの別モノだという風に思うことが重要です。
アイスコーヒーというイメージで飲むと、やられます。
②喉を鳴らして飲む(ビールみたいな感じで飲む)
これは、次で説明する③の効果を高めるために必要な手順です。
コーラとかって、勢い良く飲むと、「ゲフッ」ってなりますが、それが狙い。
「ゲフッ」とする時に漂うコーヒー風味が、とても良いです。
③香りを楽しむ
上記②でゲップをした時、喉の奥から鼻にかけて、爽やかなコーヒーの香りが通り抜けます。
その香りを楽しんでください。
この感覚は、コーラだと味わえないし、普通のアイスコーヒーでも味わえない。
お下品ですが、要するに、炭酸の影響でゲップをした時に得られる爽やかな香りが最大の魅力。
お下品なので、他人様の前では飲むことができませんが。
たぶん、葉巻とよく合いそうな気がします。(葉巻は飲んだことがないので、想像ですが)
そろそろ、VIPの反応が出ているだろうということで調べたところ概ね想定通りの反応。
※「http://logsoku.com/thread/hayabusa.2ch.net/news4vip/1344002674/」から引用
まぁ、こんな感じになるだろうと思っていました。
私としては美味かったし、既に複数回購入して飲んでいますが。
エスプレッソーダを美味しく頂くには、幾つかの手順を踏む必要があります。
①コーヒーだと思ってはいけない ← 最重要
コーヒーではなく、あくまでもコーヒーテイストの別モノだという風に思うことが重要です。
アイスコーヒーというイメージで飲むと、やられます。
②喉を鳴らして飲む(ビールみたいな感じで飲む)
これは、次で説明する③の効果を高めるために必要な手順です。
コーラとかって、勢い良く飲むと、「ゲフッ」ってなりますが、それが狙い。
「ゲフッ」とする時に漂うコーヒー風味が、とても良いです。
③香りを楽しむ
上記②でゲップをした時、喉の奥から鼻にかけて、爽やかなコーヒーの香りが通り抜けます。
その香りを楽しんでください。
この感覚は、コーラだと味わえないし、普通のアイスコーヒーでも味わえない。
お下品ですが、要するに、炭酸の影響でゲップをした時に得られる爽やかな香りが最大の魅力。
お下品なので、他人様の前では飲むことができませんが。
たぶん、葉巻とよく合いそうな気がします。(葉巻は飲んだことがないので、想像ですが)
音楽が凄い
Android2.3用のデバッグ機としてSonyのZシリーズを導入しましたが、音楽プレイヤーとしてかなり良品。
音楽がものすごく良い音で聴くことができます。
少なくとも、私が今まで使った携帯音楽プレイヤーの中では一番良いです。
細かい特徴は、メーカーのページで謳われている通り。
http://www.sony.jp/CorporateCruise/Press/201109/11-0913B/
一番のポイントはイヤホンですかね。
Zシリーズに付属しているイヤホンですが、「完全にZシリーズ専用」という仕様。
他音楽プレイヤーに繋げて聴くと全然使えません。(かなり小さな音になる感じになります)
試しに少し音質が悪いかなり昔に録音された楽曲を鳴らしてみたところ、キレイに再生されたので、かなりの波形補正(ホワイトノイズのカット等)をしているような感じです。
反面、アンプとかの外部ハードを使いたい場合、相性等の問題が起こり易いかもしれません。
ただ、そういった外部ハードを一切導入することなく、それと同等の効果が得られるともいえます。
なので、多少本体価格が高いという印象でしたが、コスパはかなり良いモノだと思います。
たぶん、iPodTouchで同程度の音質を得ようと思うと、アンプ+ノイズキャンセリング対応のイヤホンが必要だと思います。iPodTouchでZシリーズと体感的に同等の音質を得ようとすると、最安値商品に絞って調達したとしても、Zシリーズの標準メーカ小売価格の1.5倍程度の出費(※iPodTouchの本体価格を含む)が必要になります。
なので、音楽プレイヤー用途で選ぶなら、iPodTouchよりはZシリーズの方が良さ気です。
音楽がものすごく良い音で聴くことができます。
少なくとも、私が今まで使った携帯音楽プレイヤーの中では一番良いです。
細かい特徴は、メーカーのページで謳われている通り。
http://www.sony.jp/CorporateCruise/Press/201109/11-0913B/
一番のポイントはイヤホンですかね。
Zシリーズに付属しているイヤホンですが、「完全にZシリーズ専用」という仕様。
他音楽プレイヤーに繋げて聴くと全然使えません。(かなり小さな音になる感じになります)
試しに少し音質が悪いかなり昔に録音された楽曲を鳴らしてみたところ、キレイに再生されたので、かなりの波形補正(ホワイトノイズのカット等)をしているような感じです。
反面、アンプとかの外部ハードを使いたい場合、相性等の問題が起こり易いかもしれません。
ただ、そういった外部ハードを一切導入することなく、それと同等の効果が得られるともいえます。
なので、多少本体価格が高いという印象でしたが、コスパはかなり良いモノだと思います。
たぶん、iPodTouchで同程度の音質を得ようと思うと、アンプ+ノイズキャンセリング対応のイヤホンが必要だと思います。iPodTouchでZシリーズと体感的に同等の音質を得ようとすると、最安値商品に絞って調達したとしても、Zシリーズの標準メーカ小売価格の1.5倍程度の出費(※iPodTouchの本体価格を含む)が必要になります。
なので、音楽プレイヤー用途で選ぶなら、iPodTouchよりはZシリーズの方が良さ気です。
55fps
どうも、ウォークマン(SonyのZシリーズ)だと微妙にゲームが簡単になったと思ったら、Zシリーズの場合、VSYNCが55fps(18.18ms)のようです。
・・・これは、ハード依存なので、どうにもなりません。
ただ、Jelly Bean(Android4.1)では62.5fps固定(16ms)になるらしい。
Android4.0で(2.3から)大幅に劣化したSurfaceViewの性能問題も何とかして欲しいところ。
上記のような大幅改修をしたのであれば、結構期待できるかも。
ただ、期待値と同程度のデグレードリスクもある訳ですが。
この性能問題を除けば、Android4.0には概ね満足してます。
しかし、この性能問題が致命的過ぎるので、4.1へアップデートできるのであれば、すぐにでも試したいところ。
ただ、私の携帯(MotorolaのRAZR)ではAndroid4.1へアップデートが行われるかは微妙ですが。
Android4.0へのアップデートですら、だいぶゴタゴタしたようで、遅れに遅れて配信されたので。
ちなみに、Android4.0にアップして一番良かったのはChromeが使えること。(標準ブラウザよりもかなり使い易い)
標準ブラウザでも、Safariとかと比べればかなり使い易いけど、Chromeは更にその上。
タブがかなり便利。
あと、余談ですが、Android4.1でのFlush完全非対応はどうでも良いです。
Android4.0でも全然まともに動かないけど、特に困りまらないので。
Adobeが正式にFlush撤退を表明してくれたから、一気に脱Flushが加速した感じでしょうか。
ちなみに、Adobeが公式に撤退を表明しているのはモバイル分野のみだったと思いますが、今の時代、モバイルから撤退するということは、完全に消えることと同じ意味になる筈。
これは、アップルGJです。(発端はアップル⇒http://www.apple.com/hotnews/thoughts-on-flash/)
ただ、私は「HTML5なら大丈夫」だとは思っていませんが。
一番ベストな方式は、ブラウザから専用アプリをキックする方式です。
PCの場合、それでは使い勝手上の問題がありましたが、AndroidやiPhoneの場合、UIがシングル構造のためPCの場合のような問題(=UX上の問題)は起こらないので。
あと、専用アプリ方式の方が「バグを作り込むリスクが低い」というメリットもあります。
「バグを作り込むリスクが低い」というのは重要です。(ユーザ視点では見え難いことですが)
ケン・トンプソンとデニス・リッチーがUNIXを作った時の設計思想(Small is Beautiful)がまさにソレ。
つまり、Flushの敗因は色々と詰め込み過ぎたことです。
色々詰め込み過ぎ、肥満化したから、重くてセキュリティホールの巣窟になりました。
なので、HTML5が「Flushの代替品」として作り上げられた場合、結局Flushと同様、肥満(重くて、セキュリティホールわんさか)になるだけだから、無意味ではないかと。
2012年7月29日日曜日
/mnt/sdcard/ディレクトリのアクセス権限
ウォークマン(Zシリーズ)で、SHOT04(NokogiRider)をデバッグしていて機種依存の盲点をひとつ発見。
SHOT04の場合、SDカード(/mnt/sdcard)の下に専用のディレクトリを掘って、そこにプレイデータ(スコアとか)やリプレイデータを保存する仕様にしていたのですが、Zシリーズの場合、/mnt/sdcardにアクセス権限が無いようでした。
確かに、Androidの仕様として、/mnt/sdcardの有無は機種依存に成り得ます。
Androidの仕様として、アプリケーションが(ストレージパーミッションで)読み書きが保障されているのは、基本的に 標準のアプリケーションディレクトリ(/data/data/パッケージ名) 配下のみのようです。
という訳で、/mnt/sdcardにアクセス権限が無い場合、標準のアプリケーションディレクトリ(/data/data/パッケージ名)にデータファイルを保存する仕様にしておきました。
なお、/mnt/sdcardにアクセス権限がある場合は、SDカードに保存するようにします。
一般的にSDカードの方が空き領域が大きいので、標準のアプリケーションディレクトリに配置するデータは可能な限り小さくする方が、ユーザにとって親切だと思うし、リプレイデータとかを独自にバックアップしたりするのも楽なので。(/data/dataディレクトリの場合、パス決めウチで打たないとファイルへアクセスできないという...)
これは、InvaderBlock2も同じ仕様にしておく必要がありそうです。
まぁ、このバグに気付けただけでも、Zシリーズを購入した甲斐がありました。
Zシリーズ設備投資分のペイバックは無いでしょうけど。
しかし、Androidの機種依存には困ったものです。
SHOT04は、かなりその辺を柔軟に作ってましたが、それでもこういう手落ちは出てくる・・・
追記(8/4):
Xアプリで、音楽データを転送したら/mnt/sdcardに書き込み権限ができたっぽい?
とりあえず、SHOT04は、/mnt/sdcardに書き込み権限があれば、/mnt/sdcardにデータ保存して、なければ/data/dataにデータ保存する仕様にしておきます。
SHOT04の場合、SDカード(/mnt/sdcard)の下に専用のディレクトリを掘って、そこにプレイデータ(スコアとか)やリプレイデータを保存する仕様にしていたのですが、Zシリーズの場合、/mnt/sdcardにアクセス権限が無いようでした。
確かに、Androidの仕様として、/mnt/sdcardの有無は機種依存に成り得ます。
Androidの仕様として、アプリケーションが(ストレージパーミッションで)読み書きが保障されているのは、基本的に 標準のアプリケーションディレクトリ(/data/data/パッケージ名) 配下のみのようです。
という訳で、/mnt/sdcardにアクセス権限が無い場合、標準のアプリケーションディレクトリ(/data/data/パッケージ名)にデータファイルを保存する仕様にしておきました。
なお、/mnt/sdcardにアクセス権限がある場合は、SDカードに保存するようにします。
一般的にSDカードの方が空き領域が大きいので、標準のアプリケーションディレクトリに配置するデータは可能な限り小さくする方が、ユーザにとって親切だと思うし、リプレイデータとかを独自にバックアップしたりするのも楽なので。(/data/dataディレクトリの場合、パス決めウチで打たないとファイルへアクセスできないという...)
これは、InvaderBlock2も同じ仕様にしておく必要がありそうです。
まぁ、このバグに気付けただけでも、Zシリーズを購入した甲斐がありました。
Zシリーズ設備投資分のペイバックは無いでしょうけど。
しかし、Androidの機種依存には困ったものです。
SHOT04は、かなりその辺を柔軟に作ってましたが、それでもこういう手落ちは出てくる・・・
追記(8/4):
Xアプリで、音楽データを転送したら/mnt/sdcardに書き込み権限ができたっぽい?
とりあえず、SHOT04は、/mnt/sdcardに書き込み権限があれば、/mnt/sdcardにデータ保存して、なければ/data/dataにデータ保存する仕様にしておきます。
エスプレッソ+ソーダ
サントリーのエスプレッソーダという商品があったので買ってみました。
[ニュースリリース]
http://www.suntory.co.jp/news/2012/11446.html
[販促サイト]
http://www.suntory.co.jp/softdrink/espressoda/product/index.html
発売は7/31~とのことですが。
ジャンプみたいなもんですかね?
まぁ、昔っからこういう商品はありました。
スパークリングカフェ(ネスカフェ)とか。
http://gigazine.net/news/20060605_sparklingcafe/
スパークリングカフェはもう製造してないようです。
理由は単純にマズイから。
まぁ、普通に考えてウゲェ~となる組み合わせです。
エスプレッソーダも、名前からして、一発狙いの臭いがプンプンします。
ペプシのシソとかスイカみたいな。
ですが、飲んでみると、結構ウマイ。
ただし、私の舌はかなりアテになりませんが。
試飲された方のブログを幾つか見た限り、肯定的な意見はあまり無かった感じでしたし。
恐らく、「コーヒー」という先入観を持って飲むとマズイのかも。
得体の知れない液体を飲む感じで飲めば、普通にウマイです。
味を表現するのは難いのですが、疲れた時に飲むと疲労感がメキメキと回復する感じでしょうか。
[ニュースリリース]
http://www.suntory.co.jp/news/2012/11446.html
[販促サイト]
http://www.suntory.co.jp/softdrink/espressoda/product/index.html
発売は7/31~とのことですが。
ジャンプみたいなもんですかね?
まぁ、昔っからこういう商品はありました。
スパークリングカフェ(ネスカフェ)とか。
http://gigazine.net/news/20060605_sparklingcafe/
スパークリングカフェはもう製造してないようです。
理由は単純にマズイから。
まぁ、普通に考えてウゲェ~となる組み合わせです。
エスプレッソーダも、名前からして、一発狙いの臭いがプンプンします。
ペプシのシソとかスイカみたいな。
ですが、飲んでみると、結構ウマイ。
ただし、私の舌はかなりアテになりませんが。
試飲された方のブログを幾つか見た限り、肯定的な意見はあまり無かった感じでしたし。
恐らく、「コーヒー」という先入観を持って飲むとマズイのかも。
得体の知れない液体を飲む感じで飲めば、普通にウマイです。
味を表現するのは難いのですが、疲れた時に飲むと疲労感がメキメキと回復する感じでしょうか。
登録:
投稿 (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) ...