« i アプリ すこしだけわかってきたっぽ | トップページ | マップを歩くひと »

2006年6月22日 (木)

ScratchPad & JarInflater & HTTP通信

今日もi アプリだよ。

ドラクエやFFが アプリサイズ100K&データサイズ500Kになってたのにヒントを得て、
アプリと画像等素材データの分離配布モデルを実装してみた。

 ・アプリのjarファイルにはプログラムとタイトル画像・タイトルBGMなどのみを入れる
 ・ゲームスタートでその他もろもろの音楽と画像をダウンロード
 ・ダウンロードしたデータ(画像等をかためたJAR)はScratchPadに保存
 ・ゲーム内ではScratchPad上から画像・音楽を読み出して使用
 ・次回起動時にはすでに落としてあるjarの内容を用いる。

と、だいたいこんな感じのモデルで実装してみた。

まずは素材一式をjarでかためてみた。
3~400Kバイトになったので、そいつをサーバにアップロードして
エミュレータで実験。

すると、ログに150k 以上のデータはhttpで落とせないですという旨のメッセージが・・

むぅ。。 そうきたか。。

しかたがないので、画像やら何やら種類別にわけてjar化してみた。


ドコモの仕様書に、ScratchPadは16個までもてますみたいなことが書いてあったので、
はじめは別々のScratchPad番号に種類別のファイルを先頭から書き出してみたが、
なんだかうまくいかない。。

しょうがないので、すべてのファイルを0番のSP上に先頭から順に
ならべて記憶させるようにした。

すると、アラマア!
うまく保存できたですよ。

そこまでで昨日は力尽きて眠ってしまいました。


んで、今日、会社の帰りのグリーン車の中で、
くちくちいじったところ、期待通りの動作をしたので
家に帰って実機確認してみました。

うごいたぁぁ!


初回、通信して5つのファイルにわかれた300キロ程度
のデータをとってきます。

しかし、 おせぇぇ!

エミュレータだと1秒もかからず、全ファイル落としてくるのに、
実機でやると1分近く通信しやがってくれました。

 教訓: はじめに全部落としてくるのはダメぽい
      ⇒だからファイルをわけるにしても、
       種類別じゃなくて、シーン別というか
       ゲームの進行度合いに応じたJARパッケージング
       せんとだめぽ

      ⇒進行度合いに応じたパッケージングって
        ゲームが出来上がってからなら簡単だけど、
        開発中に試行錯誤的にシーンの順番を入れ替えたりする
        ことができなくなっちゃう。
         (ツールが必要かなぁ・・)
        

ちなみに、成果物は⇒ http://akio.shimono.net/2006/iappli/0622/ (FOMA SH901iSのみ確認済)

あと、発見したこと。
一旦古いバージョンでJarをおとしてきてSPに書き込むと、
その後ソフトバージョンアップしても、SPはクリアされない。
(本来のSPの使い方を考えれば当たり前だけど・・)
だから、ちゃんとしたリリースの際は、
素材データもバージョン情報を持つ必要があって、
バージョニング機構は自分で実装せねばならないね。

Jarファイルにいっこテキストファイルを入れてもいいだろうけど、
マニフェストファイルをちゃんとつかえばいいかな?


あ、それと、昨日実家で2年前ぐらいにかった
504i/FOMA対応 iアプリゲームプログラミング(DoJa 2.0対応!)
なんて本を発掘したよ。

アプリサイズは10kとか30Kとか、
涙ちょちょぎれるようなことがホントに書いてあった・・
すごい・・ 

んで、本をよんだら、キーイベントの拾い方、
変な自己流でやってたことに気づきました。
やっぱり本は大事だねぇ

それと、あとなんだ、
終了ボタンをおしたときに
「終了しますか? はい/いいえ」
ダイアログが出るようにしたよ。

次の目標は・・と、
これが一番大事だね。

次々と簡単に実現可能そうでかつ、
大きな目標に着実に近づく目標をたてること。
こいつができさえすれば、あとは情熱だけで前にすすめる。

んーと。

 ・シーンの切替
 ・グラフィックに対するエフェクト(フェードイン・フェードアウト)
 ・ウィンドウの実装
 ・非圧縮フィールドマップデータの上を
  てくてく歩く主人公&フィールドスクロールの表現
 
そのへんかなぁ。

いや、ちょっと欲張りすぎた。

まずは、タイトル画面をだして、
ボタンを押すと今のアプリに遷移、
右ソフトキーは、アプリ終了に飛ばずに
タイトル画面に飛ぶようにする。

・・ そんなとこかな。(以上明日の目標)

そんつぎに、そのシーンのトランジションに
フェードイン・フェードアウトを入れる。(あさって)

さて、 夜も更けたし、ねるとしよう。
 
おやすみなさーい(^~^)

  ・・ てか、なんか、すぐできそうな気がしたので、
     明日の目標ってとこまでは達成してしまった。 (0622 ver0.5)

     但し、以下課題があることに気づいた
      -シーンを以下のように親子ネスト構造とすることで、
       普通のRPGは表現できそうな気がするのでそれをイメージした
       クラスをつくってみたが、
           -タイトル 
             -マップ
              -戦闘
        今の実装だと、資源もちっぱなし。 メモリがたらなくなるかも・・
        ネストしたシーンクラス自体は軽い実装にして、
        そこで使う画像やら音楽はonEnter()でロードしてonExit()で開放するようにしよう。。
          ⇒明日の課題


   こんどこそおやすみ~

« i アプリ すこしだけわかってきたっぽ | トップページ | マップを歩くひと »

JAVA」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: ScratchPad & JarInflater & HTTP通信:

« i アプリ すこしだけわかってきたっぽ | トップページ | マップを歩くひと »

Haruya's Violin

2023年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のトラックバック

無料ブログはココログ