クロノス・クラウン - 記事検索

ツイート @rutenさんをフォロー
クロクロ ショップ 本、ゲーム、同人誌他を販売
クロクロ ツールズ 便利なWebアプリを多数収録
IT用語大辞典 IT用語を解説
ソフトウェア
めもりーくりーなー Winのメモリーをお掃除するソフト
Novel Supporter 小説推敲補助ソフト
PCソフト 便利なソフトを多数公開
Webサービス 便利で楽しいサービス多数
レトロゲームファクトリー レトロゲーム移植会社のお仕事小説
#電書ハック 電子書籍編集部のお仕事小説
顔貌売人 IT系ミステリ
裏切りのプログラム IT系ミステリ
ゲーム
Little Bit War Switch向け高速RTS
TinyWar high-speed 1ステージ数分の8bit風RTS
EX リバーシ 変形盤面、ステージ多数
PuzzleAndGame.com ブラウザで遊べるパズルやゲーム
no link
2013年07月16日 10:51:57
 夏のコミケ「コミックマーケット84」の準備を進行中。

月曜日 東地区“ポ”ブロック−33b「るてんのお部屋」

 この数日で、Androidアプリ版のコーディングをしました。もう何というかAndroidバグ多過ぎ……。プログラムを書いているというよりも、Androidのバグを調べて、回避策を調べたり実験をし続ける感じでした。何とかならないのかなあ。

□コミケ84 サンプル 011(※ 音が出ます)

Androidアプリ版のスクリーンショット
コミケ84 スクリーンショット 011 1

コミケ84 スクリーンショット 011 2

コミケ84 スクリーンショット 011 3



 さて、ブラウザ以外の実装として、XUL runnerアプリとAndroidアプリを作成したので、開発のメモを書いておこうと思います。

 こういったブラウザ以外の実行環境で見られる現象としては、ブラウザのクライアント領域のheightが、タイミングによって上手く取れないことです。

 0から始まり、最終的な値に徐々に大きくなっていったりします。たぶん、ブラウザのコンポーネントをアプリに配置する際に、URLが読み込まれた後にサイズを調整しているのではと勘ぐっています。

 何だか、そう思うような現象に、何度か出会っています。



 後は、Androidの2.3以上対応にしたのですが(私の使っているSH-12Cが2.3)、2.3と4.2は挙動が違っていました。各OSのバージョンでチェックしておかないと痛い目に遭います。同じ処理をしているのに、挙動が違うので。

 それと高速化は大切だなあと思いました。画像の描画時に座標を整数だけにするとか、Contextのスタイル変更処理をソートして、極力設定を変えないようにするとか、そういった施策を行うと随分遊べるようになります。

 あと、Androidの標準ブラウザと、WebViewでは、微妙に挙動が違うので、ブラウザで動いていたからと安心していると危険です。特にアプリ起動時の処理が重くて色々と問題が出るので、注意が必要でした。



 また、これは本筋とは違いますが、Androidの高速エミュレータ(InterlのCPU仮想化技術)を使うために、PCのBIOSの設定を変更しました。

 これが、けっこう大変でした。うちのPCは春先に修理でメーカーに送っていたのですが、なぜかBIOS設定の画面に入れなくなっていました。なぜだ?

 そこでサポートに電話して、色々と実験をしていると、モニターだけ認識していないことが判明。画面が出ていることを前提にキーボードを操作すると、操作ができている……。

 その後、色々と調べた結果、修理の段階でBIOSを「最も古いもの」にダウングレードされていたために、モニターを認識していなかったことが分かりました。ガックリ。

 PCを買った時(工場出荷時)よりも、古いBIOSにされていたとは……。

 そこでBIOSのアップデートを掛けたのですが、そうすると今度はPCが起動しなくなりました。

 結局修復を何度か掛けて、ようやくPCが起動するようになった時点で、BIOS設定の変更を試みてから半日が経っていました。死ねる。

 何か色々と大変でした。



 今回一番頭が痛かったのは、AndroidのclearRectのバグです。

 一定以上の面積を一度にクリアしようとすると、処理落ちしてクリアに失敗します。なので、小さい面積に分割して、複数回のクリアを掛けないといけないです。

 さらに頭が痛いことは、そうやって複数回に分割しても、1フレーム内で、複数のCanvas(レイヤーとして使用している)を一気にクリアしようとすると、やはり処理落ちしてクリアに失敗します。

 そこで、シーン遷移時の全レイヤークリア処理を、複数のフレームで分割して行うという、無駄の極地とも言うべき処理を実装しなければいけませんでした。徒労感MAXです。



 また、今回、Android2.3まで対応させるために、少し変わった処理を組み込みました。実行時のfpsを見て、45fpsを切ると、自動で低速レンダリングモードに切り替わる処理です。

 具体的には、攻撃のエフェクトがチープになります。

 こういった環境による描画処理の切り替えは、昔Android1.6の頃に「EX Reversi」を開発した時に組み込んでいました。その時は画像データのDLができない環境では、画像なしでレンダリングをするというモードでしたが。

 なので、ある程度遅い機種でも、どうにか遊べるようになりました。



 というわけで、Androidの実装が終わったので、コードを整理して、バランス調整に入っていこうと思います。
最新20件 (全て見る)

柳井が執筆した本や商品 (全て見る

マンガでわかるJavaScriptのPromise
JavaScriptのPromiseをマンガで解説。無料。
レトロ風RPG 全コード
JSのレトロゲーム風RPGの全コードを掲載&解説。
タワーディフェンス 全コード
JSのタワーディフェンスの全コードを掲載&解説。
レトロゲームファクトリー
過去のゲームを最新機用に移植する会社のお仕事小説。新潮社より発売中。
#電書ハック
電子書籍編集部のお仕事小説。文藝春秋より発売中。
顔貌売人 ハッカー探偵 鹿敷堂桂馬
シリーズ第2弾。文藝春秋より発売中。
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
松本清張賞の最終候補に残った拙作小説(デビュー作)。

サイト目次

PCソフト/Webアプリ/ゲーム

記事/マンガ

柳井の同人活動

開発

携帯・スマホ

アナログ・ゲーム

Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2024 Cronus Crown (c)1997-2024 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について