« 2010年1月 | トップページ | 2010年3月 »

2010年2月

IRM3開発日記その2

段々と現実味を帯びてきました、IRM3。

とりあえず、このへんで名称の整理でもしてみましょう。

2
・IRMアプリ・・・IRMで作成するゲームデータ。例)なんちゃってクエスト
・管理サーバ・・・IRMアプリのアップロード/ダウンロードなどを管理するサーバ
・IRMプレイヤー・・・IRMアプリをプレイするためのAndroidアプリ


今週末は、友人達と打ちっぱなしに行ったり、義理のお母様が我が家に泊まりにこられたりと色々ありましたが、合間に管理サーバ部分をしこしこ実装。

当初は、今持ってるサーバ環境でPHPで構築しようかとも思いましたが、どうせなので、GAE(Google App Engine)上で、サーブレット/JSPを使って構築してみました。
GAEは大分クセがあるので、なかなか戸惑いましたが、とりあえず何とかなりそうです。

以下は開発中の画面サンプル。

Device7
管理サーバからIRMアプリをダウンロードしたり、ダウンロードしてきたゲームをプレイしたり。

Device8
管理上にアップロードされたアプリの一覧。ここからダウンロードするアプリを選択します。

Device9
ダウンロードしてきたアプリをプレイ。
画面上に擬似的なキーボードを表示するようにしてます。
Android端末によっては、ハードウェアキーボードが無かったりするので、これが唯一の選択肢かも。

そのうちβ版ユーザを募集して要望やバグ情報を集めたいところですが、このサイト見てるAndroidユーザーってどれくらいいるんだろうw
どこかのコミュニティで募集するかなぁ。

IRM3デモ その1

IRMのiアプリからAndroidアプリへの移植ですが、とりあえずデータを読み込んで、最低限の動作をする所までいけました。

ここまで来るだけで、何回か泣きたくなる思いもしましたが、まだまだ課題もあるので頑張っていきたい所です。

Androidはiアプリと違ってファイルシステムを扱えるので、IRM上のプロジェクトファイルを直接読み込む形にしています。
これによって、データの読み込みロジックがかなり単純化でき、移植のハードルが大幅に下がりました。
ただ、今はiアプリの時の高速化テクニックを後回しにしているので、ロードが死ぬほど遅いです。
まぁ、ここは高速化の目処があるので、まだOKです。

問題は、マップの切り替え部分。
ここは、マップデータが入ってる1ファイルを読み取って、最小限の動作しかしてないのに、物凄く遅い。
マップの切り替えに1秒くらいかかってる。
ここは、これ以上高速化するテクニックが思いつかないので、かなり困ってたりする。

調べた所、従来のFOMA端末などに比べ、HT-03Aは動作が遅いらしい。
(905iシリーズの5分の1くらいのCPUスピードだった気がする)

どうしようか、Xperiaはかなり早いらしいので、これを最低スペックとしたい所ではあります。
まぁ、これからどんどん高性能な端末が出てくるとは思います。
とりあえずは、まだ残っているバグを取ったりしないとなぁ。

ハマったので書いとく

AndroidでMIDIを鳴らすプログラムを書いていた。

MIDIファイルを入れ替えて実行したら、MediaPlayerで下記のエラーが発生。

Error! java.io.IOException: Prepare failed.: status=0x1

散々悩んだあげく、大文字になっていたMIDIファイルの拡張子(MID)を小文字(mid)にしたら直りました(´・ω・`)

↓の#52にも書かれてるけど、Androidでは大文字のファイルは扱わない方が無難っぽい。
http://blog.eni.co.jp/tech/2009/09/android_beginner_diary_04.html

IRM3開発日記その1

Device

早起きしてプログラミングという、健康的な不健康をしていたら、タイトル表示までいけました。
キー操作を実装してないので、この先進めないけどw


とりあえず、今の所の懸念点をメモメモ。
・解像度のギャップをどう解決するか。
とりあえずメソッドをあさろう。

・キー操作をどうするか。
HT-03Aはキーボードついてないし、今後のAndroid携帯もついてこないだろうしな~

・IRM2との互換性。
意地でも維持したい。最大の課題は音声ファイルのフォーマット。iアプリはMLDというマイナーなファイル形式なので、MIDIやmp3に移行したい。まぁ、コンバーターあたりを作って対応という形になるのかな。


以下余談。
昔は端末のスペックも低くかったので、iアプリは職人芸的なテクニックも多かった。
しかし、そのようなテクニックは他端末の移植の際には、障害として立ち上がることが多々あった。
IRM3では、端末の性能に甘え、とりあえずそういったテクニックを排除し、最低限の動作をする所をとりあえずの目標にしている。

まぁ、やっぱシンプルが一番ですよ。
ああ、自分の開発力のしょぼさがうらめしい。

IRM3の妄想

1
IRMがAndroidに対応できないかな~、と妄想中。

IRM2で一番の悩みは著作権に触れる作品が出てきたらどうするかということだった。
対策は色々したけど、やはりユーザーの方には自由に無料で公開できるようにしたかった。

また、AndroidアプリはiPhoneなどと比べれば作品が公開しやすい環境にあるが、
「誰にでも」公開しやすい訳ではない。
Androidマーケットへ公開するには、年額で2000円ほど必要だった(はず)である。


んで、色々頭を悩ませてたんだけど、ふと、図のような構造が思い浮かんだ。
IRM2ではiアプリ自体を出力していたが、IRM3ではゲームデータそのものを管理サーバにアップロードし、Androidアプリからはゲームデータのみをダウンロードするようにしてみたらどうだろうか。

ユーザーは無料でゲームが作成/公開でき、万が一問題のある作品であったら、管理サーバ側で対応すればよい。
これが歯止めになる。

こうすれば、ゲームを作る側もプレイする側も無料で済ませることができる。
Android特有の課題もまだあるけど、ひょっとしたらなんとかなるかもな~
とりあえず、色々妄想だ~

「読む!」デモ その2

今回は以下の3つの機能を追加しました。

・最安値表示機能
・履歴機能
・書籍以外のスキャン機能(β)


最後の機能が一番苦労しました。
というのも、書籍の場合だとISBNコードとして国際的に標準化されています。

それに対して、一般的な商品についているバーコードは、バーコードの値と商品データとの紐付けがオープンなものになっていません。
このため、同じバーコードの値をスキャンしても参照する紐付けデータが異なれば、全く異なる商品データを取得してしまいます。


ま~、とりあえずはβ版として様子見ですね。
CDやDVDなどは、正確な商品データが取得できるようです。
お菓子などのバーコードをスキャンすると、全然関係ない商品がヒットするかもしれませんので、それはそれで楽しんでくださいw


今回は身分不相応にFalcom様の音楽を使用させて頂きました。
動画におけるBGMの重要性が実感できると思います。

Overdosing Heavenly Bliss/英雄伝説 空の軌跡 the 3rd オリジナルサウンドトラック/Copyright© Nihon Falcom Corporation

「読む!」を紹介して頂きました2

Androidアプリレビューサイト「アンドロイダー」様にて、「読む!」を紹介して頂きました~(o≧口≦)ノ

http://androider.jp/?p=3767


10点満点中の9点ということで、作者は非常に舞い上がっているとのことです。
改めて、こちらでもお礼申し上げます。


しかし、アンドロイドのレビューサイトも色々生まれてきましたね。
iアプリ時代はこういったレビューサイトやコミュニティもほとんどありませんでしたので、開発者としては喜ばしい限りです。


もっとAndoird業界が活発化していくといいな~

「読む!」 Facebookとはてなブックマークへ対応

とりあえず対応してみました。

http://jp.androlib.com/android.application.net-bsf_i-testscancode-pDBC.aspx


投稿例:
http://b.hatena.ne.jp/h013001b/


ダウンロード元から統計が取れるのですが、1000人がダウンロードして、アンインストールされていない数が500人くらいですね。
まだまだこれからのユーザー数だと思いますが、ぼちぼち頑張っていきたいと思いま~す。


Facebookへ対応するために6時間くらい試行錯誤してたんですが、結局2行のコードで対応できました('Α`)

う、嬉しいんだけど、あの苦労は一体orz

« 2010年1月 | トップページ | 2010年3月 »