2016年12月31日土曜日

核心は語らない、常々。

いやあ、今年も厳しかったすねえ。

Android のアプリ、ぜんぜんダウンロードされんですわ。 あまりにも新規のアプリが増えすぎたため、プロモーションに秀でた人物や組織しか生き残れない状況が加速しています。

「面白くないからダウンロード増えないんでしょ」という、意見はあると思います。 質が悪いから流行らないんだと。 確かに…このすごく真っ当な理論が通じた時期も…ありました。 しかし、今では自信をもってこう反論できます。

クオリティーが影響するのは万を超えてからだ!
それ未満ではあまり関係ない

成功者が語らないこと

例えば古い話になりますが、「100万のタマゴ」というアプリがあります。
アプリマーケティング研究所
上記サイト様のインタビューによると、800万ダウンロードらしいです。すごい数字です。 これだけ大ヒットしたのは海外でバズったのが成功要因みたいですが、

2012年の8月末にAndroid版を日本だけでリリースしたのですが、9月末時点で3万ダウンロード

上記のような推移らしいです。この国内で3万ダウンロードのあと、スペインを皮切りに全世界に飛び火していったのだと。 ハッキリ申して、スペイン大流行以降に関しては良くも悪くもこのアプリの実力によるものでしょう。 しかし、私のような個人開発者目線では、国内でサクッと3万ダウンロードを達成していることの方が驚きです。 これ、絶対になんかやっています。 初動の1ヵ月で3万っていうのは、そんなに簡単なものではありません。 成功者が語らないことの中に、重要な秘密が隠されているわけ。 この法則は古今東西のあらゆるサクセスに共通する、とても大事なものです。

この3万DLとかのレベルまで達すれば、海外の人々の目にも触れやすいのでチャンスが生まれてきます。 逆に言えば、少ないDLだと国内外を問わず、人の目に入りません。 ランキングは圏外、検索でも下の方になりがちだからです。 つまり、大ヒットするためには最低限まで上げないとダメっぽいのです。 それ以下だと「スタートライン」にすら立てていない状況。だから、
クオリティーが影響するのは万を超えてからだ!
って書いた次第です。

2,3年前でこうですからね。今はもっと苛酷になっているかもしれません。 スタートラインに立つのが。 だけど、どうなんでしょうね? 大手も中小も広告費を使って使ってというビジネススタイルが形成されると、結局儲かるのは広告会社ばかりとなります。 業界として負のサイクルに突入して、引き返せないところに向かっているのかも…。 そういった意味でも、2017年はポット出の情弱な個人開発者が運とセンスだけでヒットアプリを作る話…。たくさん出てきたら、いいと思います。

2016年12月20日火曜日

Android Studio への移植手術 クローン技術

以前、「キーストアとフィンガープリント」と題した記事で、 プレイストアにアップロードしているアプリを更新する場合の二つの条件
・パッケージネームが同一でなければならない
・デジタル署名が同一でなければならない
と、いうことを書きました。

APKファイルを作るときに、キーを作ります。 厳密にはキーストア(金庫)と、その中に入れるエイリアス(証明書)なのですが…。 ここでは簡略化して「4桁のランダムな数字」であると考えましょう。 で、"urenaigames.com.test01"というパッケージネームのアプリを作ったとします。 このときに"5514"という暗号を入手しました。 初回版をプレイストアにアップロードした時点で、パッケージネームは"urenaigames.com.test01"、 キーは"5514"という形で認識されています。 なので、更新版は同様のパッケージネーム、同様のキー(ってかエイリアスね)が必要となります。

キーは製作者のパソコンに保管され、もちろん公開はされません。 普通に考えれば、「製作者もしくは製作関係者」ではない人物はキーを入手できません。 "5514"という機密情報はデベロッパーだけの秘密です。

今回、トライしたいのは
・旧PC上のEclipseで作られたプロジェクトを…
・新PC上のAndroid Studio へ
上段から下段に移植できるかな? ということです。 外部ライブラリを使用していない「作りかけのプロジェクト」であれば、簡単にEclipse から Android Studio へ 移植できました。 しかし、問題のやつは既に公開していますし、ゲームサービスなどの外部ライブラリを適用しています。 この外部ライブラリが邪魔をして、移植が成功しませんでした。 おそらくライブラリのバージョンが古いままだから認識の際に問題が生じるのだと思います。 公開版を Android 5.x 以上でプレイしようとすると即落ちします。重症です。 …古いパソコン上で、ライブラリ周りを削除してから移植すればいいのでは? とも思いますが、 古いパソコンはもう半年くらい電源を入れていないので、いまさらwwwww みたいな感じがして腰が重いのです。 何かいい方法はないのだろうか?

移植が失敗したので、 「完璧なクローン作製による同一性確保」の術式でアプローチしたいと思います。 やり方としては Android Studio で新プロジェクトを作成。 パッケージネームは「旧PC上のEclipseで作られたプロジェクト」と同じものにする。 まずは Hello World のスッピン状態なので、先に必要なライブラリを導入。 中枢をコピペで復元、これはファイル単位で行う。 プログラムの基礎部分ができたら、いったんテストプレイで動作を確認。 APKファイルの作成、プレイストアへ更新版のアップロード。 という流れになります。

APKファイルを作る際に、もちろんキーストア関連を入力しないといけません。 キーストアを選択すると、その中に格納されているエイリアスが取り出せます。 このエイリアスは、複数のアプリで同一のものを使いまわすべき、らしいですね、Google が推奨するやり方では。 ちなみに私の場合は、キーストアは2つくらいしか作っていなかったので、ともかくとして、 エイリアスがいっぱいあって意味不明だったので「このアプリの署名はどれなの?」と、けっこう嫌な汗をかいた次第です。 1年以上前のことなんて、ろくに覚えていないので、アプリ毎にキーストアとエイリアスに関するメモを残した方がよいでしょう。 まあ、とにかくこれで
・パッケージネームが同一でなければならない
・デジタル署名(エイリアス)が同一でなければならない
この二つをクリアできます。商標と社印みたいなノリですね。 例えばパズドラを「超駄作にアップロードしてやるぜ」という悪い企みを実行しようとしたら、 デベロッパーコンソールのパスワード、パズドラのキーストア、キーストアとエイリアスのパスワード、これだけ必要になります。 しかし内部に精通した、例えば辞めた社員ぐらいなら、逆恨みでヤレそうな気もします。 大きな会社だとどういう管理体制なのか知りませんが、キーストアはUSBなどの記録メディアに保管して本当の金庫に入れたりするんですかね?

そして、ゲームサービスにはフィンガープリント(SHA1)を登録していますが、 この SHA1 こそが、エイリアスが固有に持つユニークな文字列というわけです、 つまり、「オリジナルと同一のエイリアス」を使ってデジタル署名したアプリは、 ゲームサービスにおいても「オリジナルと同一」であると判断してくれるのです。 ハッキリ言って同一かどうかの判別はパッケージネームとデジタル署名のみです。 男の子向けのゲームが女の子向けゲームに豹変していたとしても、そんなことは気にもしないのです。 すげーお役所仕事です。

2016年11月23日水曜日

今こそ語ろう。ASOの基礎と実践。

ここ数年、アプリ界隈のトレンド変遷

Android アプリ界隈の移り変わり
2010年:ガラケー強し。稀にiPhoneの人がいるくらい。クソゲーでもアップしたもの勝ち。
2011年:大手の参入がまだまだ。アングリーバード強し。個人開発でもアップしたらそこそこ。
2012年:サムソンのGalaxy-Sが高評価な機体。この辺からスマホへの乗り換えが急増する。まさに過渡期。
2013年:大手及びヤリ手企業の本格参入によって、宣伝しないとダウンロードされにくい「素人殺し体制」が始まる。
2014年:ガラケーisデッド。完全にiPhone VS Android になる。Unity 開発アプリが増える。もはやプログラミング技術はいらない?
2015年:個人開発者や弱小デベロッパーには厳しい時代。「アプリ開発でいっちょやってやるぜ」みたいな人は、おそらく急激に減った。
2016年:カネでダウンロードを買い、ダウンロードでカネを得る…「資本家の一党独裁体制」が確立される。

もう少し詳しくみていきましょう。2012年にこんな記事があります。
既存のものに乗っかるという商法
版権とか著作権とかはまだ行き届いていない頃だったようです。パクリ+版権無視+超テキトーな作り、というスーパーコンボの作品が ゲームランキングでTOP10入りですからね。ちなみに(さすがに)「ジャグラーンプ」先輩はその後、リジェクトされましたが。 次にその2年後の2014年の記事です。6枚も絵を描いています。我ながら凄い暇だったんですね。
戦闘力風にダウンロード数を語る
パズドラ、モンスト、クラクラ…と、もうお馴染みの大御所たちですね。 2015年、リリースしたアプリの伸び悩みに苦しんだ私は Admob にて広告を出稿(2016年現在は Admob から広告は出せませんので注意ね)、 大手のプロモーション方法も気になったわけです。
第73話 勝算

弱小デベロッパー、埋もれて…

弱小デベロッパーには厳しい時代です。ラッキーパンチ、ビギナーズラック的な成功が起こる確率は、2011年くらいと比べて絶望的に下がっています。奇跡を待つのは現実的ではありません。現状の厳しい環境を説明するとしたら、うっそうと茂った森林を想像してください。太くて高い20m級の樹木も珍しくない、そんな霊験あらたかな空間です。その隙間には、それより低木の木々が生い茂り、所狭しと葉を広げています。さあ、そんな状況で新芽を出したところで、まともに太陽を浴びれません。陽を浴びるためには、育って高さを得るしかないのですが、ライバルが多すぎて陽を浴びることができない。陽の光とは一般大衆から向けられる興味の視線です。アプリの認知度です。木の高さはプレイストアにおけるランキングを意味します。

アプリをリリースしたら、それをダウンロードしてもらわないといけません。 手順としては
①GooglePlay のダウンロードページに訪れる(訪問)
②アプリを実際にダウンロードする(成約)
この2つの関門があります。 ①の訪問者はどこから来るのでしょうか? ざっと下図のような感じです。 水色の矢印が無料、赤い矢印が有料を意味します。

ランキング:人気ランキングであり、上位に位置すれば集客効果はデカい。しかし、簡単には操作することができない。
ワード検索:プレイストア内での検索を意味する。検索される頻度の高いワードで上位表示されれば、集客効果がソコソコあるでしょう。最も攻略しやすい。この攻略を ASO といいます。ウェブ検索では、SEO といってずっと前から存在する技法です。
友軍:いわゆる自社広告というやつを、既出のアプリで出稿すれば集客効果アリ。ユーザーの多いアプリを所有していることが条件。厳しい。
ブログ、SNS:個人でやっているブログだとか、大手メディアのレビューサイト、ツイッターとか掲示板とか、インターネット上でのワード検索だとか…。まあ、いろいろありますが、まったく話題性0でダウンロードも少数のゾンビアプリが、ある有名ブロガーが話題にしたことがきっかけで爆発的にインストールされた…みたいな漫画チックな話は現実にあるんでしょうか? まあ、援護射撃の域を出ないと思います、この辺は。
AdWords等広告勢:ヒャッハー!カネで解決だぜ。と、言いたいところですが昨今は誰をターゲットにして、どのくらいのボリュームで、デザインやワードは? と、決めなくてはならないことが多く、プロに相談しないと上手くやれそうもないですね。100万、200万単位で出稿するのなら、そりゃあしっかり打ち合わせしないと大損こきますよ。いずれにせよ、資金が必要なのが難点。

ASOの利点を列記してみます。プレイストア上で掲載文変更が反映されるまで2時間くらい、その変更がワード検索に反映されるまでを考慮しても4~8時間くらいです。 つまり、「こういう変更をしたらどうなるか?」という試みがどのような結果を生むか? 割とすぐに結果が出るということです。まずこのスピード感が大事です。 次にお金がかからない。もちろん、専門のコンサルタントに依頼すれば有料でしょうが、個人で試行錯誤していくことは十分に可能かと思われます。 安くて速いのが利点ですが、逆に難点もあります。 データの入手は比較的簡単に行えますが、それのデータ解析・情報分析みたいなことが必要になるのです。 ある程度、狙いのワードを絞ってから掲載文を変更し(英語・日本語の2言語)、それから App Annie でデータを見ましたが、 最も掲載順位の高かったのは "sword and shield" でした。 一日で250件以上の検索ボリュームがあるようだし、アイコンも剣を構えた戦士の絵なので適合性もバッチリです。 狙っているワードで順位が取れず、狙っていないワードで順位が取れていた。こういうことがあるので、思い通りにはいきません。

実際のところ私も、ASO の存在は知っていたが、過去数年にわたって非常に軽視していたのです。 なぜなら、ちょっとやってみても効果を認められないから。 効果っていうのは、ダウンロード数のアップです。 だけど、今や弱小デベロッパーにとって超・逆風の兆候であります。 大手と弱小が同じ土俵で戦うという無理ゲーを戦い抜くには、比較的フェアなバトルが展開できる ASO フィールドが好環境です。 ランキングで大手に勝てる? 否! ブログやSNS、YOUTUBE動画、なんだったらTVCM、そういう総合プロモーションで大手に勝てる? 否! お金を出してAdWordsに広告出稿、広告費で大手に勝てる? 否!否!否!
ん~、つまりは ASO できちっと成果を出すことが求められます。

ASO の実践方法

①ワードの選定
②掲載文の変更
③効果の確認(検索順位)
④訪問者数増加の確認
⑤コンバージョン率の改善
手順としたは、ざっとこんなものでしょう。 で、納得がいく結果を得られるまで①~⑤を繰り返すのです。短期的には①~③を繰り返すことになるでしょう。

①ワードの選定
どんなワードで検索してもらうことを想定するか? これは非常に大事なポイントです。 検索ボリューム、検索ランキング、マッチング、この3つを考慮して良さそうな言葉を選びましょう。 検索ボリュームとは、そのワードでどのくらい検索されているのか? という頻度を表すものです。 「ゲーム」で例えば1,000というボリュームがあったとしましょう。 「パズル ゲーム」なら100ボリューム。「パズル 難解 ゲーム」なら30ボリューム。という具合に、具体的になればなるほどボリュームは小さくなります。 検索ランキングとはそのワードでどのくらいの順位に表示されるかというものです。 「ゲーム」なら当然の圏外(測定不能)。「パズル ゲーム」なら490位。「パズル 難解 ゲーム」なら50位。みたいに、ボリュームと反比例して順位はアップします。 ランキングはボリュームの高いところで99位までを狙う、よりも中規模ボリュームで5位以内を狙う方がよいでしょう。 あと大事なのはマッチングです。様々な単語が乱立しているので、意図しないキーワードで検索されることがあります。 例えば、拙作「ダンジョジョの奇妙な一本道」では、「育成ゲーム ペット」で(100位より下ですけど)検索されるようです。 「育成ゲーム ペット」から連想されるのは「たまごっち」的な育てゲーですね。 つまり、「育成ゲーム ペット」で検索したユーザーは「ダンジョジョの奇妙な一本道」を求めていない、ミスマッチ、マッチングアウト! ということです。 ミスマッチの場合、ユーザーがタップしてダウンロードページまで飛んでくれる率は低いでしょう。 仮に訪問しても、ダウンロードしてくれる可能性はもっと低いでしょう。 少なくとも、アイコンの絵柄から連想できるワードを選定すべきです。 例えばフードミキサーのアイコンなら「ニンジン」「リンゴ」「ブロッコリー」「ジュース」「レシピ」「自家製」「青汁」「健康」「ダイエット」なんかだと無理のないイメージですね。

え~、じゃあどうしたらいいの? 何を選んだらいいの? と、思うかもしれません。思うことでしょう。 そこで、私のお勧めの方法ですが、プレイストアで「あ」と入力したら、「amazon」「アラーム」「アルバム」…と候補が表示されます(サジェスト)。 「あさ」と入力したら、「アサシンクリード」「アサシン」「朝日新聞 特典電子版」…と候補が表示されます。 この候補は一定以上の検索ボリュームがある単語(単語群)なので、条件の一つをクリアしていると考えてよいでしょう。 あとは、「ああ」「あい」「あう」「あえ」「あお」「あか」「あき」…と、しらみつぶしに打ち込んでいき、使えそうなワードがでてきたらメモリましょう。 まったく関係ないワードは、スルーしたらよいです。 こうして、おおよそ100も集めたら上出来。あとは、蓮舫氏の如く「仕分ける」だけです。仕分けの際にはマッチングを意識してくださいね。 これで、検索ボリュームとマッチングはクリアできました。 実際に文章に反映させて、検索ランキングがどう変化するのか? 見てみましょう。

②掲載文の変更
Android の場合、タイトル(30文字)、見出し(80文字)、掲載文(4,000文字)、レビューの文章(無制限?)、この辺が考慮されて検索対象となりンス。 制限の文字数が小さいエリアほど、検索の効果が高いのです。つまり、タイトルが最も効果的。 ゲームだったら「モンスターラビリンスRPG」みたいにするのが正解ですね。 逆にやったらいけないのが「ドングサスの騎兵」みたいにテキトーなオリジナル用語を使ってしまうパターンですね。 「ドングサス」は検索しても0件ですからね、逆にすげえなっ、っていう…。 恥ずかしがらずに「王道RPG キング&アーサー」くらいにベタベタにするのが ASO 的には有効です。 だけど、そこまではやれないよ。と、いうかタイトル今更変えたくないし、という不器用な方、頑張りましょう。 「今更、掲げた看板おろせねえんだよ!」ってくらいの気概があった方が格好いいんです。 あとは、見出しと掲載文でどうにかしましょう。

③効果の確認(検索順位)
一つ前のステップ、②を実行してから半日も待てば結果が反映されています。 プレイストアにて、狙ったワードが何位に表示されたのか確認できます。 もし、圏外であったり希望より悪い順位であった場合、強化する必要があります。 先ほどの例の「ドングサスの騎兵」だったなら「ドングサスの騎兵【育成&サバイバルな戦い】」みたいにサブタイトルっぽく付け足しましょう。 「ハリーポッター【賢者の石】」みたいなノリです。 タイトルの次に目を付けたくなるのが見出しの80文字ですが、ここにワードの羅列をしますとユーザーを混乱させます。 なるべく読める文章にした方が印象はよくなるでしょう。 あと、このエリアは勝手に改行されて汚く表示されがちなので、「。」を含めて14~18文字の行を4つ作りましょう。 「。」があると、そこで改行してくれるので美しく表示することが可能です。

数日間は上記の順位いじりを行ってください。 狙いのワードもなるべく多くして。数が多くないと、偶発的に発生するラッキー事象を得られないからです。 次に、App Annie で効果の確認を行います。無料登録を行い目当てのアプリを呼び出したら ASO の項目に飛びます。 ここで開示される情報で特筆すべきは「順位が高い」「検索ボリュームが一定以上」の検索ワードがリスト化されて表示されることです。 重視していたけど○○のワードのボリュームは150/dayしかない、順位も頑張ったのに70位とイマイチ。切り捨ててもいいね。 考えてもみなかったが、□□での順位が15位、ボリュームも240/dayある。こっちを育てた方がよさそう。 と、いう具合に今後の方針を練ることができるのです。

④訪問者数増加の確認
さあ、ここからはプロの仕事です。プロの仕事という表現に語弊があるのなら、玄人感が増してくる工程です。 まずは訪問者数を増やすことです(そのための①~③です)。 何の改善もせず、何のデータも取らずに、11月第1週のダウンロードが1でした。 これでは良くはなりません。 しかし、ダウンロード数などは気にせず、11月第1週の訪問者数150、11月第2週の訪問者数300、11月第3週の訪問者数400…という具合に 数字を増やしていければ、有効な改善ができている証となります。

⑤コンバージョン率の改善
さあ、あなたのアプリをダウンロードしてくれる人、増えましたでしょうか? 結局はこの目的のために①~④の工程を頑張ってきたわけです。 コンバージョン率とは訪問者数の中で成約してくれた人の割合です。 無料アプリであっても概念は同じです。 どのくらいが普通なのか? 1%程度じゃないんですかねえ。いや、実際に私が手持ちのデータを見てみましょう。某アプリのPlay ストア(オーガニック)からの流入値です。
2016年01月 11/470 (2.3%)
2016年02月 12/616 (1.9%)
2016年03月 06/461 (1.3%)
2016年04月 14/557 (2.5%)
2016年05月 07/539 (1.3%)
2016年06月 12/576 (2.1%)
2016年07月 10/483 (2.1%)
2016年08月 03/432 (0.7%)
2016年09月 06/414 (1.4%)
2016年10月 08/359 (2.2%)
累計 89/4907 (1.8%)
この結果から申し上げると、約2%が無料アプリのコンバージョン率です。月別のコンバージョン率で見ると最低が0.7%、最高が2.5%となっています。 0.7~2.5%、こんなもんかなあ…と思いますよ、実際問題。 もし、コンバージョン率が1%より安定して下回るなら、掲載文やスクショ(スクリーンショット)が魅力的でない可能性が高いですね。 早急に差し替えるべきです。 この成約率1%っていう数字は、ウェブショップなどで一般的に考えられている数字です。 ウェブショップで売っているモノは有料なのだから、無料アプリと比べることはできない。そう、そう思いますけどね、50%はそう、思うんだけど。 どうなんでしょうかねえ? この、無料アプリっていうやつは…。

無料DLしてユーザーが失うもの

本当に何も失わないのなら、無料アプリの成約率は限りなく100%に近い数字になるでしょう。しかし、失うものはある。
・インストールに使う時間
・容量(アプリ1本、50MBもあたりまえの時代)
・データ通信量
・遊ぶのも手間、逆にアンインストールするのも手間
・スパイウェア的な何か悪さをされるんじゃないの? っていうリスク意識
こういった失う要素があるから、「あまり興味がわかない」「思っていたのと違う」というフワッとした理由でドンドン流していきます。

あなたの貴重な時間を、容量を、データ通信量を奪うことになります。 その代償として、インストールすれば素敵なゲーム体験を提供することができます。 お気に召さねばアンインストールすればいいだけです。面倒なら放置しましょう。たったの13MBです。
ダンジョジョの奇妙な一本道

今回の続き、ASO の成果に関しては、近日中にご報告できれば、と思います。あまりにも残念な結果になった場合は、きっと書かないでしょうが。いや、きっとうまくいく、ハズ…。ダメだ、ダメだ、と言いながらも心の片隅では大望を抱いて生きていきたいものです。

2016年11月13日日曜日

日本でドラクエ、というか、RPGが流行った真の理由

唐突にもの凄い仮説、今までおそらく誰も語らなかった、 それでいて本質を付いているに違いないという驚愕の事実、そういったものを思いついたので書いてみます。 ことのきっかけは、デベロッパーコンソールを見ていて、「どいつもこいつも、私の作ったゲーム、すぐアンインストールしますね。インストールした当日にアンインストールするのはわかるけど、時間差で1日後、2日後に削除するのはどういうことかな? 昔はクソゲーだと思ってもファミコンのカセットを遊びつくしましたよ。その精神が足らんよね」と、思ったことが発端です。

なぜ、クソゲーだと思っても遊びつくしたのか? それは、せいぜい年間10本あるかないかという限られた資源をエンジョイするしかなかったからです。友達から借りる、とかしたところで、それでも限度があります。というか、貸してもいいソフトって完全な旧作か面白くないと思っている準新作ですから。基本的に魅力的なゲームは借りるのが難しいです。

これを親御さんの立場から考えるとどうでしょうか? ファミコンのカセットは4800円ですかね? 確か。「信長の野望」などは妙に高かった気もしますが。まあそれなりに高額なオモチャですから、できることなら子供には長いこと遊んでほしいはずです。だって、考えてくださいよ。年間10本前後は提供するという契約を子供と結んでいたとしても、あわよくば子供が一本のソフトで2カ月も3ヵ月も遊んでくれたら、すげえリーズナブルですよ。親御さんの本心としては、長いこと遊べるゲームを潜在的に要求していたのではないでしょうか?

だから、日本でドラクエ、というか、RPGが流行ったんですね。 「なんかよく分らんけど、あのタイプのゲームはうちの子が長いこと飽きずにやってるな」と感じたはずです。 RPG に限らずシミュレーションゲームも長丁場ですよね。 ファミコンウォーズのCMで「カーちゃん達には内緒だぞ」と歌っていましたが、むしろカーちゃん大喜びです。 長いこと遊べるソフトは、家計を助けるのですから。

欧米で、Wiz が流行ったのとは全く背景が違いますよね。 そもそも Wiz はコンピューターがバカ高かった頃のパソコンゲームですから、子供が手を出すよな領域ではなかったはずです。 TRPG(テーブルトーク)からの発展ということを考えても、欧米のRPGは大人が手を出すものです。

あの、バカリズム氏も「ファミリーベーシック」というファミコンでプログラムを打ち込むことができるソフト(キーボード付き)を買ってもらう際にこう言ったらしいです。「このファミリーベーシックはお高いですが、それだけの価値があります。なぜなら、これを買えばゲームを作ることができるからです。もう今後、ゲームソフトを買ってもらう必要がないんです」つまり、そういうことです。親御さんの望みは10年遊んでくれるソフトだったはずです。まあ、それは極端ですけども、1週間で飽きるようなやつ買っちゃったらエライことですよ!という危機感はあったことでしょう。

長いこと遊べるゲーム=コスパがいい。コストパフォーマンスという観点からファミコンのゲーム史を振り返ってみるのもゲームのマーケティングとして有効な手段かもしれません。つまり、コスパがいいばっかりにたくさん売れたゲームは過大評価されていた可能性すらあるのです。ゲーマーの年齢層が低いほどこの法則は当てはまりそうです。ポケモンがヒットした原因として、こういった要素も大いにあるでしょう。逆にユーザーの年齢層が高い場合は、コスパは意識しない方がよいのかもしれません。

長いこと遊べるゲーム=コスパがいい。この理論も有料買い切りゲームにおける概念です。おろらくメーカーは気づいていたに違いありません(あまり公にしたがらなかったが)。だけど、今の世は無料+課金型のスマホゲー時代。また新たな法則が生まれているに違いありません。民衆の考え方には時代性がありますからね。その時代性をとらえた者が勝者となる。ガンホーやトランプ氏のようにね。

2016年10月1日土曜日

playストア裏街道 インディーゲームの魅力を探る

ダンジョジョの奇妙な一本道

企業が作るプロの味も捨てがたいが、一個人(や少人数グループ)が作る奇抜な味わいもまた、格別である。 ゲームの本質が退屈しのぎであるのなら、退屈の要素として
・繰り返しである
・変化に乏しい
・予想しやすい
と、いうような状況があげられるだろう。 こんなのはごめんだ。打破したい。 そう、娯楽には「刺激」が求められている。 ところが、企業の作るプロの味はマンネリ気味じゃないですかね? 予想できる範囲の変化に乏しいネタを繰り返し繰り返し投入してくる。 課金で儲けるっていう外枠が決まっている以上、課金させるよう、いかに煽るかがすべてである!
そんなギミック、食傷気味だぜ
いい気味だなんて、そんなことないだろ?君

我々は一つのアプリですべった。
だが、これは敗北を意味するのか?
否!
始まりなのだ! 上場企業に比べわし個人の開発力は1/300以下である
にも関わらず、こんにちまで戦い抜いてこられたのはなぜか?
諸君、わし個人の開発目的が正義だからだ。

と、いうことで今回ご紹介するゲームは「ダンジョジョの奇妙な一本道」です。 いきなり面倒くさいことを書きますが、先ほど語った
・繰り返しである
・変化に乏しい
・予想しやすい
これを「ケルベロスの首」だとするのなら、このうち二本を内包しているのがゲームなんですよね。 成長要素を楽しむ RPG っぽいゲームなんかは繰り返し敵を倒します。 キャラや合成などがアクセントになるものの、この組み合わせはこうなる的な、結果を予想しやすくなっています。 予想しやすいというか、「火」属性で固めるだとか「風」属性で弱点つくだとか、それ系です、もろです。 ただ「成長=変化」がウリであるから、変化には富むわけです。

「ダンジョジョの奇妙な一本道」は繰り返し推奨で変化に乏しいゲーム性です。 なぜ変化に乏しいかというと、キャラがまったく成長しないからです。 そして使えるカード(人選)も最初から最後まで不動の18人で変わらずです。 この18人の中から「器用貧乏な司令塔」「ダメージ製造要員」「攻守で活躍する魔術師」を選んで3人パーティーを作ります。 実際は制約があるので6x5x4=120通りの組み合わせとなります。 で、「こいつ」と「そいつ」と「あいつ」を組み合わせたらどうなるかな? と予想してパーティーを作るのがゲームの肝となります。予想が肝心なゲームですから、なかなか思惑通りには事が運びません。 しかし、数々の定石が存在するのでそれらを発見して戦術として活かすことがプレイヤースキルとなります。 例えば、赤属性のキャラは攻撃は強いがメチャ打たれ弱いという特性を持ちます。 一方で青属性のキャラは貴重なチートアイテム「不屈の護符」を持っているので、あとは分かりますね。 赤+青は食い合わせがよいな、逆に黄+緑はダメな組み合わせ。…という具合に論理的な戦法…、ロビン戦法を完成させてください。

ダンジョンに潜ってモンスターを倒しながらボスのところまでたどり着く、そして決戦。 という流れですので、RPG っぽいんですが、ストラテジー要素が濃厚なゲームです。 というか、意識的に成長要素を0にしているので、非RPG といえます。 また、ダンジョンも迷路になっていますが、自動運転で高速移動するので「なんちゃって迷路」です。 しかし、作りこみによって雰囲気がでています。 雑魚敵と遭遇した際のシンボルエンカウントっぽい演出も、複数パターンの追いかけっこが見られて大満足です。

戦闘は敵の姿しか見えませんが、微妙なアニメーションがあります。 また、完全なリアルタイムシステムとなっています。 敵が仕掛けてくる状態異常のエフェクトは重要な情報なので、それが何を意味するのか徐々に覚えていく必要がありそうです。 あと、何気に「防御」コマンドが重要なゲームであります。 「防御」すると回避率がアップするのでもともと盾持ちで回避能力の高いキャラなどはもう、受け流しまくります。 ちなみに操作可能なのは並びでいう一番左のキャラだけです。 左のキャラは「勇者枠」なので、中途半端な物理攻撃とそこそこな補助魔法を使いこなします。 操作キャラでイケイケに攻撃したいのなら、そういうのが得意な人を選べばいいってなもんです。

でたっ、謎の川柳。 ボスを倒すとこういったジャパニーズカルチャーがさく裂します。 こういうデタラメでカオスなところはさすがインディーゲームですね。 川柳はメンバー構成で変わってきますので飽きさせませんね。

最後に取説っぽいことを書いて、締めたいと思います。 魔法は杖っぽい部分を押すと選択画面がでてきます。

その時点で使用可能な魔法はマス目のブロックが明るい色に発光します。 使うためには、一に習得していること。二にMPが足りていること。三に場のマジックレベルが到達していること。 の条件があります。 一に関してはキャラクターによって習得魔法が違うので、キャラ選択時に表示される図を見て把握してください。 二に関してはMP(マジックポイント)は、場からリソースとして与えらえる仕様になっています。 待っていれば増えるが、魔力の高いキャラほど増加スピードが速いようです。 勇者は基本、魔力が低めなので魔法の無駄うちはしないようにするべきです。 三に関しては場のマジックレベルというものが戦闘開始時は0なのですが、10秒毎に+1されていき、最大で7にまで育ちます。 要するに、徐々に強力な魔法が解放されていくという仕組みです。

勇者が使う魔法で重要なものだけ解説します。 基本的に赤は使いません(キルスイッチ以外は効果が魔力依存なので)。
青LV1:シールド これを味方にかけると40秒間、ほとんどのダメージ攻撃(物理・魔法問わず)を1/10にします。 すごい性能だが、切れたタイミングにHPが1になってしまうので注意。 もし可能ならHPがある程度減ってからかけた方がロスが少ない。 ちなみに赤キャラはこのシールドの恩恵を受けることができないので厳しい戦いとなる。
黄LV1:ブレイクダウン これを敵にかけると防御力が半減する。ボス戦ではとりあえず使っておきましょう。
黄LV2:リセット これを敵にかけると補助魔法の効果を打ち消す。敵がシールドを使ってきたら使うべし。
黄LV3:ツーストローク これを味方にかけると2倍の速さで動けるようになる。ボス戦ではまず戦士に使いたい。

あと、このゲームには「RT(リインフォースメントタイム)」というものがあります。 勇者がブレイクダウンなどの当否判定のある魔法を使ったり、敵が特殊攻撃をしてきた場合に発動します。 「RT」が発動すると、画面はレインボーエフェクトが起こり、勇者は25秒間は状態異常に対して無敵となります (ツーストロークも跳ね返すので注意)。 しかし、終わってしまうと今度は0%状態となり、これが時間経過で100%になるまでは状態異常を防げません。 0~99%のときは、ブレイクダウンやキルスイッチといった判定技も失敗してしまうので注意してください。

大手支持 零細潰しをはじめたGoogle

不思議なことに「play ストア 新着 消えた」みたいな内容で検索をかけても、一切でてこないのですが、 今まであった「無料の新着」「有料の新着」が消えております。 タブレット版だと存命しているようです。 タイミングとしては2016年9月のことです。

--- 追記 ---

Android 5.1 の端末に限って上記の現象が起きているようです。 4.2、 4.4、 6.0、 などでプレイストアを見た際は、「無料の新着」「有料の新着」が存在します(10月3日現在)。 ということは、5.x系に限ったある種のバグである可能性が高いと思われます。 おかしいと思ったんだよ、ネット界隈でぜんぜん話題になっていないから。

末端カテゴリの新着欄で、ランキング50位以内に入るのは無理なことではありませんでした。 日本のユーザーが10人でもDLしてくれれば、微妙なポジションをキープできます(あくまで国内ランキングで)。 1,000~10,000人規模でユーザーを獲得できれば相当な上位に食い込めます。 そもそも競合相手が50~100ちょっと程度なので、末席にいたとしても見つけることはできるのです。 仮にゲーム>パズルの分野で一か月に80ゲームが新規で登録されるとしましょう。 新着の間は80ゲーム間で争うわけですが、新着期間が過ぎると仮に5年間として、80x12x5=4800ゲーム間での争いとなります。 しかも、古いアプリの方がユーザーを増やせる期間が長いのだから、かなりアンフェアな戦いです。

つまり、新着とは宣伝活動を行わない作品が、人の目に触れる最大のチャンスだったのです。

この新着がなくなったことによって、何が起きるのか? 王はその地位を盤石のものとし、奴隷は出目のチャンスを失います。 聖帝サウザーさんが言っていた「オレはアリの反逆も許さない」を実行したかのような狭量な政策です。

企業がアプリを新規で出す場合、どうするでしょうか? コネとカネを使って、色々な記事を書かせますね。 あるいはビッグネームだから、ライターの方が勝手に書いてくれるというのもあるでしょう。 広告も打ちます。テレビCMのようにカネのかかるものから、Admob みたいなネット広告も使うでしょう。 結局、個人開発者、インディーゲーム開発グループが新たにアプリを世に出す場合も同様の手段を選ぶしかないのです。

ってことは何ですか? Admob 使って広告を出稿・配信するしかないってことですか? Admob を儲けさせるための策略だと思われても仕方ないでしょう。 カネのない持たざる者が、持つ者へと這い上がるストーリー。 これをアメリカン・ドリームと言っていた。かつては…。 しかし、今のアメリカにこの種のドリームが残っていると考える者は少ない。 グーグルさんが夢のないヒデエ仕打ちをするのだって、時代を考えれば当たり前なのかもしれません。 iPhone と Android の二刀流ならアップル方面に逃げればよいさ。 しかし、そんなことはできぬ。 この厳しい Android 界で生きて、生きて、生き残るしかないのです。 何とか狙いのカテゴリで無料トップ100以内に食い込むしかありません。 そうすれば、地味にじわっと長期的にユーザーを獲得できるでしょう。南無三宝。

2016年8月31日水曜日

成長要素のないゲーム

成長要素はもはや、RPGの特権ではなく、ソシャゲの収益体系にゴッソリ持っていかれた感があります。 猫も杓子も成長・成長・成長…。レベルアップ、スキル、合成、レア武器、レアカード…、やり方はいろいろあるにせよ、まあ成長ですよ全ては。

バブル崩壊…その後に…

バブル崩壊は1991~1993年と言われています。 長期金利は1990年には、なんと 8% もありました。 それが1997年には 2% を下回り、あとは皆さんご存知のデフレ社会ですよ。 バブルのイケイケ感は、なかなか数字を見たって分かりにくいんですが、福本伸行氏の漫画「銀と金」で以下のように語られており、これが私的には一番 しっくりきます。

土地がドンドン値上がりするんだから、借金をしてでも土地を買い漁った奴が得をするのさ。 何せ、借金の金利よりも土地の値上がりの方がすごいんだから。 絶対に損をしない安パイの博打だぜ。

まあ、引き際を見誤った人は損をしたわけですが、ですが、戦後の経済成長は1990年まで続いたわけですから…。 売買ゲームの時間は決して短くなかったと思います。 今は中国の経済がすごいことになっていますが、日本のように20年も30年も長いことハジけられるでしょうか? 来年ってわけじゃないが、そんなには 長くないだろう…。って、みんな思っているんじゃないでしょうか。 日本はフィーバータイムが長かったんですね。そりゃあ感覚も麻痺する。 だけども、いずれ経済成長とバイバイしなければならない不文律を、倍々ゲームに興じるギャンブラーたちがうっかり見落としたに過ぎません。

ファミコンは1983年発売です。 スーパーマリオブラザーズは1985年、ドラゴンクエストは1986年発売です。 ゲーム機のミリオンヒットというものは非常に多いのですが、 バブルが弾けたその前後となる、1990~1995年の作品を見てみましょう。

1990年:
スーパーマリオワールド(SFC)、Dr.マリオ(FC/GB)、ドラクエ4(FC)、FF3(FC)
1991年:
FF4(SFC)、ソニック・ザ・ヘッジホッグ(MD)、ゼルダの伝説 神々のトライフォース(SFC)
1992年:
スーパーマリオカート(SFC)、ストリートファイター2(SFC)、ドラクエ5(SFC)、スーパーマリオランド2(GB)、FF5(SFC)、星のカービィ(GB)
1993年:
スーパーマリオコレクション(SFC)、ストリートファイター2ターボ(SFC)、すーぱーぷよぷよ(SFC)、聖剣伝説2(SFC)、ドラゴンボールZ 超武闘伝(SFC)、 カービィのピンボール(GB)、ロマンシング サ・ガ2(SFC)
1994年:
スーパードンキーコング(SFC)、FF6(SFC)、スーパーマリオランド3 ワリオランド(GB)、スーパーストリートファイター2(SFC)、スーパー桃太郎電鉄3(SFC)
1995年:
ドラクエ6(SFC)、スーパードンキーコング2(SFC)、クロノ・トリガー(SFC)、スーパーマリオ ヨッシーアイランド(SFC)、星のカービィ2(GB)、 ロマンシング サ・ガ3(SFC)、バーチャファイター2(SS)、ダービースタリオン3(SFC)、アークザラッド(PS)、スーパードンキーコングGB(GB)

なんか同じメンツが数字だけ変えたり、スーパー付けたりだったり、タイトルを並べただけだと面白いものではありません。 もちろん中身は中身です。売れたことがクオリティの証明でもあります。 で、バブル弾ける前後。中核はスーパーファミコンですが、ゲームボーイもなかなか息が長いですね。 ジャンル的にはアクションゲームが多いような気がします。 マリオだとかスト2だとか、プレイヤーの腕次第なゲームがまだまだ多いかなという感じです。 しかし、1995年。いつもドラゴンクエストとファイナルファンタジーしか名前の挙がらなかった RPG ですが、この年は クロノ・トリガー、ロマンシング サ・ガ3、アークザラッド、と新顔も多くなっています。 あと、ダービースタリオンも競走馬を育てるゲームですから RPG ライクなところはありますね。

異変は1996年。やつの登場によります。
ポケットモンスター 赤・緑(GB)、マリオカート64(64)、スーパーマリオ64(64)、スーパードンキーコング3(SFC)、パラッパラッパー(PS)、 スーパーマリオRPG(SFC)、ドラゴンクエスト3 そして伝説へ… SFC版(SFC)、鉄拳2(PS)、バイオハザード(PS)、ダービースタリオン96(SFC)、 星のカービィ スーパーデラックス(SFC)、アークザラッド2(SFC)

要は1996年のポケモンが超売れたっていうわけですけども。 ただ、1995年DQ6、1996年ポケモン、1997年FF7、1998年ポケモン、1999年ポケモン(次点でFF8)、2000年DQ7…という具合に 一番売れるソフトは RPG だね! という風潮ができつつあります。

長ったらしいこと世の移り変わりを書きましたが、私の仮説はこうです。 「日本が成長しなくなった頃合いで、成長要素のあるゲームが流行しだした」

銀行に預金をしても、ろくに増えやしない時代。 消費税アップ以外のタイミングで値上げをすると、やたら叩かれる時代。 昔はあれでしょ、食堂のうどんが10円だったのが、気が付いたら100円になっていた…、とか、どんどん物価が上がっていく社会。 物価が上がる前提だから、給料も上がるし、銀行金利は高めだし、地価もグイグイ上がっていく…。 最近ではタバコがもの凄い勢いで値上がりしていますが、高度経済成長期っていうのは、タバコの値上がりみたいなノリで 米も肉も給料も上がったわけですよね。 すごいノリノリですよ。 イケイケ感が半端ないっすよ。 そういう社会情勢だと、娯楽の世界に成長要素は求められない気がします。 逆に経済成長が止まったとき、ゲームの世界で成長要素が流行りだしました。 人間はやはり、時間とともに右肩上がりになる成長曲線(グラフ)が好きなんでしょうね。 何かが時間とともに順調に伸びるということは、何事にも代えがたい安心感を与えてくれるのでしょう。 この心理的バイアスを「数字育成欲求」と仮称します。

ソシャゲ・マンネリ…その後に…

「空白の10年」は「空白の20年」と呼び変えられ、日本人は疲弊していた。 成長しない世の中にあっては、経済成長を無事に遂げられる元気な企業組織に身を置くことも難しい。 肉体や精神の成長も20代ともなれば、もはや望むべきでもないと誰もが知る(いや、精神は成長するのかもしれないけどね…)。 オレも伸びない、会社も伸びない、国も伸びない…。えっ、四面楚歌じゃんか! このような閉塞的な社会において、「数字育成欲求」は膨らむばかりである。 そんな社会的背景を付いて、見事な集金システムを構築するに至ったソシャゲ業界。 カネと時間を注ぎこめば、右肩上がりの成長曲線を得ることができる。 しかも、ネットワークに接続しているから下郎たちに私の成長ぶりを見せつけることができる。 なんということでしょう。ワクワクが止まりません。

いや…。

わかる。

わかるけど…。

もう、やめにしないか。そりゃあ、不安なのはわかる。8% の金利が付くのなら、通帳見てニヤニヤしていればいいもんね。 それが、ぜんぜん銀行に預けたって増えなくなったものだから、投資信託だのNISAだのっていう小技を使ってニヤニヤしようやんか!っていう世の中ですよ。 確かに今の時代、8% の金利が付いて、通帳見てニヤニヤ…っていう種類の幸せは無いかもしれない。 でも幸せは色々なタイプがあるじゃないですか。 もっと、それを考えよう。 万全を尽くしても不安になる奴はなりますよ。 逆に不安要素だらけでも、何とかやっていける奴もいます。 なぜなら、不安も安心も、要は心の在り様でしかないのだから。

ガラケーで鎖国していたこの国も、アップルやグーグルといった列強によって開国を余儀なくされました。 世はまさにスマホゲーの時代。 売り切り販売の従来型と違って、課金で継続的にお金を搾り取るのが現代のやり方。 課金なしの無料広告型のゲームにしたって、長く遊んでもらわないと収益になりません。 とにかく、終わらない、ネバーエンディングストーリー、別名「無間地獄」の始まりです。 まあ高度経済成長期の「物価」と「給料」の関係みたいなものです。 敵はだんだん強くなっていくけど、キャラクターもだんだん強くなっていくから大丈夫。 ジャンプの漫画でよくある、○○を倒す、もっと強いやつがでてくる、前回の敵を味方に付けて立ち向かう。 と、いうループを延々、延々やり続けるわけです。 バブルが崩壊するみたいに、終わりの日がないわけじゃないのですが、その時が来るまで運営は運営し続けるのです。

「成長はありません、終わりはあります」というゲーム企画を提出したら、上司に 「どうやって費用回収するの? バカかね」と、言われることでしょう。 つまり、ここに企業の限界があります。 費用を回収する仕組みをゲームの根本に仕込まざるを得ないわけで、どうしたって似たようなゲームシステムになりがちです。 個人開発のゲームにしたって、最初っからレベル上げみたいなことを、延々やらせ続けるゲームデザインのものもあります。 いや、私も通った道ですが、 少ないボリュームでプレイ時間を長くさせようと考えたら、レベル上げをだらだらさせるのが一番なんです。

だから、今回の新作「ダンジョジョの一本道」には成長要素が無いんだ。 キャラが18人いて、(競艇の3連単と同じく)120通りの組み合わせでパーティーを作ることができる。 この試行錯誤こそが、繰り返し要素となる。 この手のゲームの宿命として、「○○ステージはXYZの組み合わせがベストよ」という情報が出回ったら難易度は低下してしまう。 ネットを見ることで答えを探す過程をカットすることができる。 だけど、それでいいと思うんです。 誰かが考えた答えで攻めるのならソレもよし、あくまで自分で考え抜きたいのらソレもよし。 「えっ、○○は使いたくないな。あいつ嫌いなんだよな」みたいなところもありますからね。 各自、ご自分がご納得するように、自由にやっていただくのが一番です。 ユーザーをがんじがらめにするのではなく、もっと寛容でなくてはならない。 そんな気がするんですね。

2016年8月28日日曜日

オマエはもう、読んでいる

今回のアプリ「ダンジョジョの一本道(仮)」(Dun Jojo's a straight road)では極力「テキストを排除」するように工夫しています。 文字を排除というと大げさですし、実際のところはそれなりに文字が表示されるのですが…ユーザーどもは

流し読みどころか、ぜ~んぜん読みやしない

と、いうことを知っております。 書籍やブログのように、文字を読むことが当然のメディアであれば、文字を読みます。
読めないから、…ではなく、読まないから読まないのです。
人間は興味のないものは認識しないように、無意識にコントロールしているのです。

極端に短い文字であれば、「読むまでもなく見る」ことで人は内容を頭に入れてしまうハズです。 その境目が何文字なのかは詮索しませんが、仮にカタカナで6文字程度としましょう。
リオ <<< 見る
トーキョー <<< 見る
ブエノスアイレス <<< 読む
バンダルスリブガワン <<< 読む
と、いう感じでしょうかねえ。

とりあえず大きくて短い言葉であるならば、「読むまでもなく見る」ことで、内容を頭に入れます。

上の絵なら、50%オフだと嫌でも認識してしまうでしょう。 短くて…、大きくて…、見慣れた…言葉であるならばユーザーに向けて「刺すように読ます」ことができます。 無視するにはあまりにも存在感が大きいからです。

小さ目な文字で、「ただし、10,000円以上お買い上げの場合に限ります」という注意書きが憎たらしいですねえ。 憎たらしいですが、文字の大きさをハッキリさせることで「何を主張したいのか?」がハッキリします。 むしろ、読んでくれなくてもいいような内容は、小さく小さく書くことで存在感を消します。 逆に「声を大にして言いたい」ことは「文字を大にして書き込む」だけのことです。 しかし、ゲーム画面にこれほど大きな文字を押し込めるでしょうか? たかだか「50%オフセール」を告知するために画面の半分を使う。 こんな燃費の悪い使い方は、タイトル画面でもなければできやしないでしょう。

いくら何でも…、もう少し詰め込みたい。 「竜王の城が南にあるんだけど、河が邪魔して近づけないんだ。 急がば回れですよ先輩」くらいの内容は告知してみたい。 その結果がですよ…。

もう読んでくれません。全ての文字の大きさが均一で焦点がぼやけてしまったので、「50%オフセール」すら伝えれないかも…。 むしろ、10,000円以上買わないとダメだよっ、ていうネガティブ情報が前に出てきたような…。 全てを平等に扱うことによって全てが目立たなくなってしまった。

文字をどうやって読んでもらうか? どうやって画面上に表示させるか? どんな風に情報を分かりやすく編集するか? この あたりは、かの有名な DQ1 の頃から知恵とセンス溢れる偉人によって研究されてきました。文字情報でストレス過多とならないように…。

「ダンジョジョの一本道(仮)」では、見た目で表現することを目指しています。 アニメーションや記号、ゲージ、効果音などによって何が起こっているのかユーザーに認識してもらうことを目標としています。

モヘンジョダロとラスコー

パキスタンに現地の人々が「死の丘」と呼び恐れる、日本でいうところの古墳のようなものがあります。 嘘か本当か、砂を超高温で固化させてガラス状にしたような物質が散らばっているエリアがある。 まるで核兵器の演習場跡地で見られる光景のようです。 遥か古代に…、現人類の体系とは異なる超文明があったのだ! と、いう噂の噂…。 マハーバーラタに記されるインドラの矢説…ン?、宇宙からの降臨…彗星が落下した説…これは現実的ね、…。 モヘンジョダロと呼ばれる遺跡のあるエリアは、あくまで「死の丘」を現地の言葉で読んでいるにすぎません。 遺跡に掘られた文字が解読できないため、古代都市の本当の名前がわからないのです。 都市の文化水準は高く、下水道や公衆浴場などの施設が見受けられたようです。 どうやら洪水によって衰退していった模様です。 つまり、この地には洪水やら天からの矢(核にせよ彗星にせよ)といった、凶悪災害が別々に襲ってきた過去があるわけですね。 受難の末、インダス文明は滅び、インダス文字の解読は難航しています。

一方でラスコーの壁画があります。 15,000年前に描かれたと言われています。 馬や鹿が遠近法を用いて描かれています。 モヘンジョダロの遺跡に描かれた文字が、現代人には解読不能な「?」であるのに対して、 フランスのクロマニョン人が描いた絵は、「馬だね、鹿だね」と現代人に解読されています。 もちろん、ラスコーの石器時代人は風呂に入ったりしなかったでしょう。 モヘンジョダロの方がずっと高度な文化です。 だけど、伝わらない。 文字の便利さと文字の不遇さを、とても考えてしまうわけですね。

私も文字を書くこと自体は好きですし、その証拠にこの細々更新ブログは一話が妙に長い。 だけど、これは結局、日本語が読める人だけを対象にしているわけですね。 アプリの場合は英語圏、いやそれ以上を目指したいわけです。 なので文字情報は、読めなくてもいいよ、という前提で作っています。 一応、JAPANESE / ENGLISH の二か国語対応アプリなんですが、開発中のかなり大部分を ENGLISH ヴァージョンのままデバッグしていました。 流し読みどころか、ぜ~んぜん読んでませんよ。 そういう作成方法によって、言語で説明しない、いわば理想的なローカライズを構築しようと試みたわけです。

2016年8月14日日曜日

多様性ゆえの混沌~発見!バグランド

Android でゲーム作ろうと思ったら本当に泣けますよ。 いくらプログラムがバグっていなくても、微妙な差ってやつが機種毎に存在するから。 しかも今回の話は非常に興味深いことに、新しくて高性能なものがダメだっていう逆転現象を示していますから。

エントリーするのは以下の4選手です。
Galaxy Nexus (エミュレーター=ヴァーチャルデバイス API 23 / Android 6.0)
LGE Nexus 5X  (実機 API 23 / Android 6.0)
SHARP SH-02H  (実機 API 22 / Android 5.1.1)
SONY SO-02F  (実機 API 19 / Android 4.4.2)
エミュレーターっていうのは Eclipse とか Android Studio が再現する疑似マシーンですな。 Windows のパソコン上でアンドロイドの世界をシミュレートするわけです。 こういう回りくどいことをするとマシーンにかかる負荷が高いので、速度なんかは遅くなります。 しかし、パソコンさんの CPU(Core i5-6300U / RAM 8GB)がスマホの CPU より遥かに高性能であることを考えると、この勝負、まだまだわかりませんよ。

じゃあ何で勝負するかっていうと、私が開発中のゲーム「ダンジョジョの奇妙な探検」を実行したときの FPS です。 と、いっても 1秒10コマくらいに制御しているので劇おそなんですが…。 最初に断っておくと、四天王の中で最弱であるエクスペリア(単に古いバージョンだからですよ、中傷じゃなくて)さんですら、 スペック的には簡単にクリア。 1秒20コマでも楽勝でした。 じゃあ、1秒10コマであるなら、シャープさんもLGさんもヴァーチャルデバイスさんも余裕、余裕。 「朝飯前」どころか「新聞配達前」だバカ野郎! と、思うでしょ? しかし、そういった思い込みは思い込みにしか過ぎないのです。 我々は分かっているつもりで、分かっていないことだらけです。 実際にやってみることで意外な発見が意外とあるものです。

まずは標準記録のヴァーチャルデバイス選手から見ていきましょう。 8~9といったところですね。 写真(スクリーンショット)はごちゃごちゃしてますが、水色の四角で囲っている部分に描画速度を表示 しているわけです。 そこ以外は見るべき点はありません。

次に、LGE ネクサス5X選手。ネクサス選手はグーグルさんが標準機として提供するものですから、こういったリファレンス機でまともに動けば 設計者はドヤ顔できます。 実際には「動かへんのやったら、そのスマホのクセが悪いねん」と、UNKOユーザーに言えないのが客商売の辛さですが…。 で、ネクサス選手も7~9といったところですね、大差はありません。

次、シャープのアクオス選手。 問題児っぽいイメージが定着したシャープですが、携帯に写メ付けたのはこの方が元祖です。 目の付け所がシャープです。 スマホの製造販売も頑張っていて、2016年春モデル=コンパクト部門の中では地味に最優秀であると思います、個人的には。 最大の特徴は薄いボディーとプラスチックな素材から生まれる体感的な軽さです(マシンの性能ちゃうんかい…)。 まあ正直なところ、しばらく使ってみた実感として悪いマシーンではないと思います。 しかし、どうしたことでしょうか? 、5~8とステージによってはかなり悪いスコアを記録しています 。 実際、4とか5になると処理落ちを嫌でも体感できるので「動き悪いな、こりゃ」と思うユーザーが大半でしょう。超マイナスイメージです。

最後にエクスペリア選手(SO-02F)。 国産アンドロイドの旗手、SONYさんのチョイ古モデルですね、2013~2014年発売くらいですね。 早い、早いぞ。10~11、他の追随を許しません。 11なんて数字は瞬間的であっても、他の方々はマークできません。 奴は四天王の中で最弱どころか圧倒的に最強・最速です。

茶番を読むのもしんどいと思いますので、先に答えを書きますが、 「背景を合成している場合、アクオス選手だと遅くなります」。 背景の合成って言っても、床部分と壁部分が別々にあるものを重ね描きしているだけです。 ただ、大きめサイズの画像であるということ、透過部分の面積が大きいこと、これがパフォーマンスの低下に影響していると思われます。 なぜなら、アクオス選手でも背景が一枚もののステージだと遅くならないからです(それでもエクスペリアより若干遅いんだけどね)。 上の画像は透過部分(alpha)の割合が非常に高いですよね。これが、描画の際に負担になっているのです。

この透過部分が多い画像をやめて、透過部分ナシの一枚絵に変更したところ、アクオスさんもスピードアップしました。 背景に限らず、モンスターのグラフィックにも透過が使われています(サイズが小さいので影響も小さいが…)。 アクオス選手の場合、この透過部分の処理が目立って苦手なようですね。 こういったメーカーのクセ、機種固有のクセっていうのがあるんです。 しかも、アンドロイドがバージョンアップしてキットカット(K)、ロリポップ(L)、マシュマロ(M)…と進化するたびに状況は変わります。 正確にはバージョンアップに対応したマシンが各メーカーから発売されることによって、クセの勢力図が一変します。 ネクサスと売れ線の機種(Sumsung の Galaxy とか)でデバッグして、その他大勢には目をつぶる…、 あるいはプログラム的に極力複雑なことをしないでクセによるばらつきを吸収するようなデザインを目指す。 個人製作なら好きなようにやればいいでしょう。 ただし、UNKOユーザーから「動かないから星1個」とレビューされる危険性は付きまといます。すげーストレス。

ここまで読まれた方は「じゃあ何かい? アンドロイドは 4.X 時代の方が今より高性能だったとでも言いたいのかい? 」と思うことでしょう。 しかし、そう云うことではないんです。 描画機能も含めて性能は後発の 5.X 6.X の方が高いことは間違いありません。 で、そういう最新のバージョンで推奨されるプログラミング技術というものがありますが、私のように5年遅れて Surfacce View を使い始めるような 旧人類もいるわけです。 旧人類の書いた旧コードを最新のマシーンで実行すると、何かがかみ合わずにチグハグ…。結果、「逆に遅いよ」という出来事だって起こり得るんだと。 右のタイヤをインチアップしてスポーツ仕様に変えたのなら、左のタイヤも同様にせねばなりません。 右側をハードの新旧、左側をコードの新旧と考えれば、バランスって大事ですよね。 まあ多様性ゆえのカオスと言えましょう。 当然のことながら、iPhone のアプリ開発であればこんな面倒なことは起こらないはずです。

Surface View は Android で描画する方法の一つです。 マルチスレッドであり、走らせているプログラム本体とは独立して動きます。 と、いうことはですね…、毎秒10コマ表示したいところが毎秒5コマしか表示されなくても、 裏では同じようにメインプログラムが動いているわけです。 なので、例えば4秒間である値が0から1,000まで育つとしますと、 毎秒10コマだろうが毎秒5コマだろうが4秒間で1,000に達するのです。 ただし、見かけ上では前者が数字を 25,50,75,100… と刻んでいくのに対して後者だと 50,100,150,200… と刻んでいきます。 例えばシューティングゲームで敵いっぱい出てきて画面が遅くなった、という場合は実際に弾が画面の端から端まで到達する時間も遅くなる ことでしょう。 ある意味スローモーションモードなので難易度が優しくなります。 これとは違って、画面表示がモッサリでも弾が画面の端から端まで到達する時間は変わらない、ということです、Surface View ってやつは。

2016年8月3日水曜日

鉄は熱いうちに打て! 冷めたハートじゃ作れやしない

ようやく18人の勇士の姿絵が完成しました。 ここまで手こずるとは思わなかった。 だって、このブログを参照したら…最初の6人は去年の11月に完成してますものね。 そう、最初の6人+1人までは早かった。 本来ならあの勢いのまま、去年中に18人全部完成させておくべきだったのだ。

キャラ絵だけをやって完全にフリーズしていたわけではありませんが、 あんまりにも進まないから、「液タブにペンで描いたら早いんじゃねえの?」と、思って Surface Pro4 を購入しましたが、 いまだにペンはぜんぜん使ってません。 相変わらずマウスで絵を描いています。 今まで長年かけて培ってきた我流のタッチを崩したくない。という想いが、急に溢れてきたからでもあります。 単に新しい文化に馴染むのが面倒だと思ったからでもあります。 世間の皆さんは道具だとか環境だとか言いすぎなんですよね。 大事なのはやる気・元気・根気です。あとの少しばかりが、便利かつクリエイティブに使える今風のグッズ。そういうことなのでしょう。

ただし、キャラのモチーフやゲームの構成をよくよく考える必要があり、 ポジション入れ替えなどが後ほど発生しています。 確かに最初の数人っていうのは、まだ構成を詰めていない段階で 「べつに変更があってのも大丈夫」という安心感のもとに作れるという利点はありました。 後半になると、いろいろハッキリさせなくてはならないし、キャラがかぶらないように 気を付けなければならない。 それでいて、統一感も保たなければならない。

最初の構成としては 勇者(男)、戦士(男)、魔法使い(女)だったのですが、 女勇者や女戦士もいたっていいんじゃないすか? でも、最初に6人の魔女作っちゃったしどうすんのよ? などなど 無計画に進めてきたツケを支払う羽目に。 去年の11月の記事と今回を比べてみると、色属性を変更したうえで他のポジションに異動となった人がいることに気づくでしょう。

微妙なことを書きますが、どのキャラもネタ元があって大なり小なりパクッてます。 いや、先人のデザインをオマージュしています。 それは、服装のみであったり、ポーズのみであったり、武器の握り方だけであったり、全然別々のAとBの合体であったり、 もう言い出したらキリがないです。 しかしここで、顔面を私自身が手描きしているので、統一感をだすことに成功しています。 大事なのは顔面のトレースはしていないということです。 トレースはデジタルの場合、いとも簡単にできてしまいますが 実在の人物の写真にせよ、漫画やCGの架空のキャラであるにせよ、目で見てうつすレベルに抑えなくてはなりません。 目で見てうつす過程で、作画担当の個性(タッチ・筆致)がでます。 輪郭のクセとか目鼻立ちのクセとか、陰影の付け方の強弱などです。 そういった個性を出すために、模写でとどめておくべきなのです。 お経をコピー機でコピーすれば完璧な複写物ができますが、 手書きで写せば書き手の深層心理ですら表にでます。 文字の乱れは心の乱れ、でも、だからこそコピー機にはない面白みがあるのです。 漫画家の先生でもトレースをやっちまうと問題になるという、割と明確な線引きがあります。

ちなみにビートルは野生のカブトムシの写真を見て、そこから適当に擬人化して作りました。 完全な無から作り出すのはもはや不可能、とはいいません。 モンスターのデザインに関しては完全な無から、つまり写真などを一切見ないで、かつ 誰かがデザインしたものを意識しないで作ったパターンもあります。 モンスターの場合は極端に奇抜なデザインでも問題ないから、これでもいけます。 しかし、プレイヤーが使うキャラとなると、ある程度世間に認知されている原型があった方が親しみやすいはずです。 「筆のタッチ」という作者のアクが入らないリアルCG路線だと、今後この問題を避けられないでしょう。 見た目の精度を上げるほど既視感のある人物しか作れなくなります。

ボートレースからアイデアを得ているので1枠は白です。 で、2枠以降が黒・赤・青・黄・緑となるわけです。 昨今のゲームであれば、聖属性(白)、闇属性(黒)、火属性(赤)、水属性(青)、土属性(黄)、木属性(緑)などとすることでしょう。 しかし、そんなポケモンチックな属性は採用しておりません。 「あのボス、植物系だから火属性で攻めたらいいべ」的なことをやっても今更面白くもなんともないでしょうから。 作者があのボスは6-3-4あたりの組み合わせかなあ? 実際それしか勝てんしな。と、思っておいて実は3-2-1で勝てましたよ。うそぉ、本当に… 的な、想定されていない勝ち方がいっぱいある方が良きことかと思うのです。 (想定外の勝利は)作者にしてみれば抜け道のようなものであり、悪く考えれば管理が不徹底であるとも言えます。 しかし、戦に多様性があるのはとても大事なことでしょう。

属性は特性と読み替えて、このゲームでは次のような特徴を各色は持ちます。

白は優秀・無難といったイメージですね。特別尖った部分はないけれども、攻めてよし・守ってよし、みたいな 何でもこなせる系です。 初期バランスでは戦士のゴートがあまりにも強すぎたので、彼の武器を重くすることによって燃費が最悪という感じに変えました。 バランスを調整するうえで「奴は与えるダメージが大きすぎる」→「ダメージ量を減らそう」みたいに出る杭を打つ!な対処をすると、 つまらないバランスになってしまうと思います。 突出した部分はそのままに、それに関連した部分で落とし穴を作った方が切れている感じ(スリリングな感じ)が出てくると思うのです。

黒は耐久性能を重視しています。 しかし、「攻撃は最大の防御」とはよく言ったもので、敵をせん滅さえすれば我慢する必要はなくなるわけですから…。 高い火力を集結させて一気に叩く方が理にかなっているし、プレイヤーも気持ちがいいでしょう。 ジグロロも見た目は世紀末風で切れまくっていますが、防御を活用するしかないキャラです。 ガンダムで有名なスパイクシールドを武器盾兼用で二刀流装備してますからね、タフボーイでクレイジーですわ。

赤は悪魔族です。 設定ではエルフの召喚士ティエルコが、ゼリ王の要請に応じて魔界から3人を召還したことになっています。 悪魔たちにとって長期出張になるので、心臓を二分して半分を魔界に残しています。 なので、非常に打たれ弱く、ハッキリ言って貧弱です。 その代わり、攻撃力が高いので脆弱性をうまくカバーすることができれば強靭なパーティーとなるでしょう。 この明らかに人じゃない怪物みたいなのをメンバーに入れるのは「ダンジョンマスター」の影響を受けてのことでしょう。 スコーピオンのモデルは当然…。

青はエルフ族です。 人間ではありませんが、外見は人間と酷似しています。 ローティーを作った時点では、耳は尖り、肌は白っぽく、宗教的な理由で顔を青白く塗る、という設定を考えていたのですが…。 数か月空いてからレリオスとラベッロを作ったので、顔を青白く塗るのを忘れています。 でも、服と髪の毛が青っぽいからいいんです。 彼女たちはやられたら自動復活するチートアイテム「不屈の護符」を持っているのでゲームの攻略上、重要なポジションにいます。 この所持アイテムによってキャラの格付けが左右されるところも、「ダンジョンマスター」の影響を受けてのことでしょう。

黄はイエローモンキーな東洋人です。 それプラス、呪われたアイテムである仮面をしているので、消耗アイテムを装着できないというハンデを持ちます。 テン、シシ、ヒョウっていうのは哺乳類ネコ目の名前ですよね。 攻撃的なイメージを持ちますが、シシなどは物理最強の猛者となっています。 テンは元々、悪魔族のスパイダーとしてデザインされたのですが、諸事情があって角を抜かれて人間族となりました。 そのときの名残で髪は赤く、胸元に蜘蛛っぽい刺青がされています。

緑は亜人族です。 グルとアピが人間と外観が似ているのに対して、アンギンは完全にリザードマンです。 まあ、イグアナなんですけどね。 哺乳類でアンギンのモデルとなる動物を探したのですが、サバンナにいるアスリートたちはジャッカルだとかハイエナだとかガゼルだとか、いろいろいますが、 緑系(青系)のカラーリングが見事にいないんですよね。 一説には色盲で、青緑っぽいのは識別できないからとも言われています。 「アバター」の青い人型異星人が衝撃的なのも、地球の常識では青とか緑の哺乳類がいないからです、実は。 なので緑人間という制約がある以上、アンギンが爬虫類になるのはもう必然としかいいようのないレベル。 緑族は辺境の商人連合だという設定なので、みんな大量のアイテムを抱えています。

単純な能力値+装備武具の優劣+所持アイテムの兼ね合いで、総合的な使える係数が導き出されます。 装備品の付け替えはできませんが、所持アイテムは3人で兼用となるので、例えば悪魔族にエルフ族が持っている「不屈の護符」を装着させることが 可能です。 消耗品アイテム所持数は白が0個、黒が2個、赤が3個、青が4個(青系ばっかり)、黄が5個(黄系メイン)、緑が10個(緑系メイン)となっています。

2016年7月10日日曜日

20世紀の大発明 ATBとは何だったのか?

アプリ名は「ダンジョジョの奇妙な探検」に改名します。 理由は聞かないで。 英名は "Dun Jo Jo's Adventure" にしようかと。

話は変わりますが、某漫画(不思議な霊体を操る系)で…、 殴る蹴るの単純な霊体はわかりやすいのですが、 時間を止めたり操作したりする系のスタンドは不可解です。 種明かしをされたあとならともかく、

「な… 何を言っているのか わからねーと思うが

おれも 何をされたのか わからなかった…」

と、いう錯乱状態に陥ってしまうことでしょう。

時間に対して干渉することは、最も非現実的であるが…ゆえにでしょうか? 我々に…恐怖を通り越した…冷や汗を与える「得体の知れぬもの」です。 そもそも本当に時が止まるのならば、分子運動がなくなる絶対零度の世界ということでしょうか? いや、言い出したら物理の先生の出番となりそうなので やめておきますが、アインシュタインの相対性理論もスピードが上がると時間の流れ方が変わる? みたいな難解な話ですよね。 そう、人間にとって時間ってやつはまさに難解そのもの。 だけど、漫画にはよくでてきますよね。タイムマシーンだとか、精神と時の部屋だとか、時間をゆがめる概念が!

ゲームとは時間をリアルから解放する事から始まった

しかしね、もっと昔の発明。「将棋」「チェス」「ベースボール」のようなターン性ゲームは時間をゆがめてこそ成立する遊び(競技)です。 将棋で言うなら相手が考えている間に二手も三手もこちらが動かしてしまった方がよほど現実的というかリアル性重視です。 戦場でこちらが相手を撃つべきかどうか悩んでいる間に、敵は自動小銃で何十発も撃ってきました。 「ちょっと待てよ! こっちが動くまでお前のターンにならないから! 勝手に動くなよ!」という理論が通用するでしょうか? ボクシングで 相手が一発打って、こっちが一発打って、相手が一発打って、こっちが一発打って、相手が一発打って、こっちが一発打って… という一問一答みたいな試合展開があるでしょうか? 

もちろん、将棋は相手が一発打ち終わるのを見届けてから、こちらが一発打つゲームです。 ここに紳士協定という名のルールが存在し、時間を人間の理性と知性が捻じ曲げています。 現実世界なら「5分考えて素晴らしい一手を導き出す名人」よりも「何も考えずに5分で百手ほどやってしまう死に急ぎ野郎」が勝ります。 将棋における人間対コンピューターの対戦が白熱しているようですが、 絶対にコンピューターが勝てる方法があります。 「1秒以内に指してね」ルールでも導入すれば、そのスピードに人間はついていけません。

コンピューターゲームの歴史は、もともとはターンライクな将棋的なゲーム性から始まったものの、 マシーンの性能がアップしたことによってリアリティ重視な方向へシフトしています。 しかしね、リアリティな世界というのは「待ってくれない世界」というわけです。 リアルタイム性を重視した3Dリアルゲームでは、時間をゆがめることはできないでしょう。 でもこれって、先祖返りな気もしますけどね。 「相手が打ち終わるまで待つ」というのは文化的です。気品と知性のなせる技です。 昔の人間が発明した概念を、コンピューターが発達することによって自らぶち壊すというのは何とも皮肉なものです。 リアル性を重視し続ければ、ゲームというよりは「シミュレーター」の側面が強いものになるのでしょう。 しかし、究極のリアルワールドである「現実世界」を生きている我々は、現実逃避というかガス抜きの暇つぶしの娯楽としてゲームをするわけですよね。 まあ何と言いますか、リアルもほどほどにねっ、と割り切る精神が娯楽の発展には必要なのかもしれません。 我々には想像力という、すごい力があるんだからね。

で、スーパーファミコンの時代、まだコンピューターが今ほど優秀ではなく、テレビがブラウン管で、録画がビデオテープで、音楽がカセットテープで、 カメラは銀塩で、写ルンですが行楽地に行けば必ず売られていた頃、 RPG にて ATB というものが開発されました。 アクティブタイムバトルです。 ドラクエやウィザードリィ的なターン性をやめて、アクティブタイムな戦闘になったわけです。 しかし、野球からサッカーになったというわけではありません。 なぜなら、リアルタイムバトルという趣向とはちょっと違うからです。

敵味方ともに、時間の経過によって行動の権利が与えられ、アクションを行った後は一定の待機時間となります。 一発殴ったら5秒間のペナルティタイムがあり、そのペナルティタイムを満了したらまた殴ることができます、みたいなシステムです。 このペナルティタイムが長いキャラは鈍重であり、短いキャラは俊敏である、という個性付けが可能です。 で、時間が流れている間は敵味方ともにペナルティタイム(待機時間)が減少します。 なるほど、ダンジョンマスターみたいなアレか…。 じゃあ、アクティブタイムバトルとはコマンド性のリアルタイムバトルってことでいいかな?

否!

私の心の中で何かが叫びます。それは違うぞと。 そう、先ほど時間が流れている間は敵味方ともにペナルティタイム(待機時間)が減少します。と書きました。 そうなんです、時間が流れている間は敵味方ともにペナルティタイムが減少するんです。 時間が流れていない間はペナルティタイムが減少しないんです!

…、…、…。

な… 何を言っているのか わからねーと思うが
 
おれも 何をされたのか わからなかった…

ね、ややこしくなってきたでしょ。だから、時間の話は嫌だったんですよね。 つまり、「誰かがアクションをしている最中はペナルティタイムが減少しない」のです。 ジョーと力石が対面している。 ジョーのペナルティタイムは1.00秒。 力石のペナルティタイムは0.99秒だとします。 この場合、二人はほぼ同時にアクションを起こし、ジョーの拳が力石を、力石の拳がジョーを捉えることでしょう。 ほぼ同時とはいっても、僅差で力石の方が早いというのがポイントです。 アクティブタイムバトルの場合は、僅差で力石がアクション開始の権利を得た時点で「時の流れがストップ」します。

アクションの権利を得た力石はジョーにパンチを食らわします。 ヒットしてダウン! どうだ、立ち上がれるか? 頑張れ、ジョー! よっしゃ立った。ファイト! このときジョーは思います。 「おかしい、オレがパンチを打とうと思ったとき、力石もオレと同様のタイミングだったはず…。 なのに、次の瞬間、いきなり力石の拳がオレの顔面にめり込んだだと! 目にも止まらぬ高速拳! 時間が…トンだみたいだ!」

な… 何を言っているのか わからねーと思うが
 
おれも 何をされたのか わからなかった…

次の瞬間、ぶったまげるのは力石です。 「おかしい、オレのパンチがジョーに当たって奴は膝をついたはず…。 なのに、次の瞬間、いきなりジョーの拳がオレの顔面にめり込んでいる! 目にも止まらぬ高速拳! 時間が…トンだみたいだ!」

力石が行動モーション(攻撃アクション)>ジョーにダメージ>ジョーが行動モーション(攻撃アクション)>力石にダメージ>
というターン性みたいな順番処理をアクティブタイムバトルはとっています。 行動モーションの際は他のキャラのペナルティタイムは減りません。 例え60秒くらいかかる召還魔法をおっぱじめたとしても、他のキャラのペナルティタイムは少しも減りません。 なので、二人以上が同時期に攻撃モーションを展開するということはありません。 これでは時間が止まっているのと同じではないか! しょっちゅう…毎回、ザ・ワールド! ってわけですか。 より自然なのは相対する両者が、同時に行動モーション(攻撃アクション)を行って、同時にダメージを受けるというやり方です。 クロスカウンターみたいな、両者同時にダメージを受ける形。

逆の言い方をするならば、ATB の場合は攻撃を開始する権利を得た際、 その権利を得た者だけが動けます。 基本的にリアルタイムのゲーム性であるサッカーですが、 例えばペナルティキックの際は事情が変わります。 キッカーが蹴る前に、守備側が壁を作ったりしますが、キッカーがボールを蹴りあげる「そのとき」までは時が止まった状態になります。 普段ならシュート気配の相手が蹴る前に妨害することも可能ですが、セットプレイの際は行儀よく待っておかねばなりません。

言ってみれば、ATB とはセットプレイでしかシュートを打てないサッカー。

PK のようなセットプレイの良さと悪さを考えてみましょう。 良さはわかりやすいということですね。蹴る側がチャンス、蹴られる側がピンチ。「今から点が入りそうだ。注目してくれよな」ということが プレーを見守る観客にハッキリと伝わります。 悪さはテンポを削がれるということでしょう。審判がホイッスルを吹けばゲームそのものは続行するものの、ゲーム内に流れる時間は止まります。 セットプレイより、普通にドリブルエンドシュートで決めてくれた方が爽快感があります。

ゲームの歴史にあった if を再現する個人開発者

ATB を開発して特許を取ったのはスクウェア社ですが(その特許ももう期限が切れていますが)、 とうぜん ATB を導入するにあたって「時を止めるかどうか」が争点になったはずです。 それまでのターンベースの RPG しか知らなかった層が FF4 をやれば、「うわっ、こっちがコマンド選んでいる間に敵が攻撃してきた、おっかねえ」となります。 そう、プレイヤーが入力指示を選んでいる間は時が流れているのですね。 これで十分だったのかもしれない。

では逆に、戦闘中に時が止まることは一切ない、というルールで ATB を再構築するとどうなるでしょうか? 2対2くらいの戦闘で物理攻撃しかしないのなら、 見守りし者(プレイヤー)もついてこれるでしょうが、5対5で全体攻撃使うやつが半分以上、とかなったら複雑です。 敵の攻撃と味方の攻撃が被りまくるからです。 ただ、召還魔法で1分も使っていれば、その間に敵の攻撃を何回も受ける羽目になるのでやってられません。もちろん、途中で朽ち果てたらおしまいです。 なので「演出は短く」が基本となることでしょう。 また、FF4 は5人パーティーにまで膨れ上がりますが、こんなに大勢を操作するのであれば、プレイヤーの操作に関わる俊敏さが戦闘結果を大きく左右しそうです。 「素早く押しミスのないように、かつ的確な指示」をできなければ、ロスタイムが積もりまくりです。 なのでパーティーの人数を大きく減らすか、操作できるのは1人だけにする(他キャラはオートで行動する)、みたいな感じにするしかありません。

ゲームですから、プレイヤーに楽しんでもらわねばなりません。 そのために、様々な取捨選択が行われるわけですが、「わかりやすさ」「テンポの良さ」のどちらかを選べ、ということになりがちです。 何モカモってわけにはいかない。オレは全てが欲しいんだって言えば、それは何も欲しくないと言うのと同じです。 常に選択が求められている。右か左かどちらかしか選ぶことはできず、選ばれなかった方は忘れ去られる。 今日は参議院選でしたので、ちょっとニュアンスをだしてみました。 あのとき、切り捨てられた「テンポの良さ」を実装したリアルタイムコマンドバトル…。 歴史に if はいくらでもありますが、その選択されなかった方の if を個人開発者が試してみるっていうのも面白いじゃないですか。

「ダンジョジョの奇妙な探検」は「テンポの良さ」を実装したリアルタイムコマンドバトルです。 上の画像を見てください。真ん中にいるスケルトン野郎が炎魔法でこちらを攻撃しています。 それと並行して味方の戦士が右側にいるデク人形を攻撃しています。 敵の攻撃と味方の攻撃が同時に行われているのです。 これは、敵A敵B敵Cが一斉に襲い掛かってくるというパターンだって実現します。 敵の攻撃が一人に集中すると、大ダメージを食らいます。 戦闘開始2秒くらいで味方の一人がやられることだってあります。これが戦場の現実だ。待ったナシや。 現実にはリアルタイムではないのですが、順番待ちによる遅延は1フレーム分しか発生しません。 ほとんど無視していいくらいの誤差です。

せっかくだからオレは、テンポの速い方を選ぶぜ!

2016年6月27日月曜日

Surface の実力を見せてもらおうか

その昔、Android1.5だった頃、 世の中がまだガラケーユーザー9割以上だった頃、 私も持っておりませんでしたスマートフォンを。 実機がないと困るのが、作ったプログラムをテストプレイするときです。 Eclipse にはヴァーチャルコンソールという、仮想マシン、 まあ言ってしまえば、パソコンの中にスマホを作ってその中でプログラムを走らせる、ということです。 嫌な予感がするでしょう…、そうクッソ重いんです。

エミュレーター重い重いというのが世間の声であり、 私もアクションゲームみたいなやつを作るのを諦めました。 これによって、かじ取りが大きく変わった部分があります。 スーパーマリオじゃなくてファミコンウォーズを作ろうと方向転換したのです。 もし、当時誰も持っていなかったスマホをいち早くゲットしていれば(カネさえ出せば簡単に買えます)、 あるいは家にあるPCが超ハイスペックであれば…、アクションゲーム、カジュアルゲームを量産できる体制に入っていたかも しれません。

そういう過去があったものです。 そして、今回パソコンの買い替えと、開発環境の移行を同時に行いました。 Android Studio についても、エミュレーター重い重いと言われております。 実機でデバッグする分にはメモリ8GBでもいいけど、エミュレーター使うんだったらメモリ16GBでも足りねえな。 みたいな恐ろしい話です。 私はWindows10 で、core i5 で、メモリは 8GB です(Surface Pro4)。 こういうのは百聞は一見に如かず、なので、実際にやってみるのが一番です。 その驚愕の結果を動画でお見せしましょう。

確かに立ち上がりはややモタツキますが、起動してからのスピードは十分です。 これだけスムーズに動くのであれば、実用に耐えると言えるのではないでしょうか? いや、もちろんアプリが大負荷を与えるような 構成であるならば、「おっせえなバカやろう」と、なるのかもしれません。 そんなのケースバイケースだし、なんとも言えねえっす。 あと、オプション豊富なのがヴァーチャルの魅力。 Google さんがメーカーという扱いである Nexus(一部 Galaxy名義のものもあるが)、 これのヴァーチャルマシーンを新旧いろいろと選ぶことができます。 要するにリファレンス機として実機をわざわざ買う必要はなかったということですね。 …毎年毎年、山のように後悔することがあるものです…。

2016年6月20日月曜日

Surface Pro と マウス と 私

道具を新調すると妙に戸惑ってしまう。 直接、手に触れるものの場合は特にそうだ。 大工道具は別として、(旧来型と)まったく同じものを買うということ、余りない。これが現代社会のサガだ。 ぼやぼやしている間に、新製品が続々投入されるんだもんな、目まぐるしいったらないぜ。 特に家電、特にマイコン関係は特にだ。 今まで使っていたノートPCのキーボードが、特に上等だったわけではない。 が、しかし、乗り換えるとトンでもねえ違和感だよ、こいつは。

私はキーボード評論家ではないので、あまり突っ込んだ話はできないのですが、 何かあるっすよね、SONY と hp は打感が似ている、みたいなやつが。 いま、初めて Microsoft のデザインキーボード(とかいうやつ)で打っておりますが、 そのタッチ・フィーリングのエキセントリックさに体中がZAWAZAWAするんだぜ。 今まで使っていた古Vaioさんと会社のパソコンは(キーボードの打感が)似ている、ずいぶんと。 逆にそういうことがわかってきますね。

多分、慣れると思う。慣れるまでの時間がもったいない、というほどの時間もかからずにきっと慣れるだろう。 キーボードと同梱されていた、やけに背の低いワラジみたいなマウスには瞬間的に慣れたのだから。 しかし、もしできることなら古Vaioさんのキーボードだけは温存して、そこにnewディスプレイと、new CPU を 叩きつける、ということができるのならソレが一番なんですけどね。 だから、最近流行ってきている 2 in 1 の流れはいいことだと思うんですよ。 これなら、同じキーボードを10年使い続けることもできるだろうから。 BlueTooth接続なら、タブレット(ディスプレイ)とキーボードをドッキングする必要がないので、 キーボードの位置とタブレットの位置や角度を好きなように調整すればベストなフィット感が得られます。

で、似たようなことが App 開発ツールについても言えるわけですよ。 そりゃあ10年くらい前はさ、「これが最新のプラットフォーム」とドヤ顔で Eclipse と Android の SDK ですよ。 Eclipse でアンドロイドのアプリが作れるんだぜ、と当時は最先端だったような…。 それがいまや、… Unity は確かに台頭しているけれども、ちょっと違うからカットしますよ…いまや、Eclipse は サポートを打ち切られた Vista みたいな扱いになってしまった。 Android Studio への移行がデベロッパーの中で必須であると言われて久しいのですが、 Vista で RAM 2GB で旧世代CPU の古Vaioさんじゃ、Android Studio をインストールしたところで まともに動かないだろう、という事情がありまして開発ツールの更新ができないまま月日が流れておりました。

しかし、世間でブイブイ言わしとる Surface Pro 4 を買っちゃいましたので、悲願であった Android Studio への 移行ができそうであります。 スペック的にはRAM 8GB、core i5、SSD 256GB というミドルミドルミドルモデルです。 この条件を満たせば何でもいい、というのならノートPCという枷を付けても7~8万円でご提供できます。 しかし、それよりもおそろしく高く、しかも、キーボードが別売りであるサーフェイスをなぜ選んだのか? それは ひとえにペンの存在が大きいのであります。 クリエイティブな使い方できますよ、という部分に釣られてしまったわけですね。

買ったはいいけど、いろいろ移行作業があるから面倒くせえなあ、というのが本音ですね。 画面は確かにキレイ。蛍光灯の映り込みがしやすいけれども、位置や角度を調整すればその問題はクリアできるし、 写真とか見ようものならすごいことになってますね。 文字も相当小さくても見えるから、12インチの液晶でプログラムくらいならいけるいける。 とはいえ、文字ちっちゃいなあ。 設定を変えてどうにかなる部分をまだ煮詰めていないので、いろいろ不便に感じる部分があるし、 慣れればどうにでもなる部分もあるででょう。

今までマウス+PaintNet という手法で描いていた絵ですが、道具が変わったから新しいやり方が可能となるわけです。 しかし、まずは旧形態からの移行が大事。 旧PCでやっていた作業を新PCで再現できなければ、いろいろとしんどいです。
ペンよりタブよりマウスがほしい。
夢より今日よりハイテクなどより、オレが欲しいのは、マウス、お前だ。
とりあえず、PaintNet の下位互換は確認できました。 つまり、少なくとも5、6年前にインストールした PaintNet で作った pdn ファイルを、 Win10 にインストールした最新版の PaintNet で開くことができます。 そしてマウスでの作業、いやあ、安心感が違いますね…。 そう、こうやって古Vaioさんで行ってた諸々を継承することがまずは、第一なのです。 性能やポテンシャルを確認するのは、そのあとでよいのです。

2016年4月18日月曜日

橋が崩落後、阿蘇へのアクセスは?

国道57号線を大分方面に進んでいくと、阿蘇大橋が右手に見えます。 道が混んでいなければ平野の大津から車で10~15分、近いです。 この橋を渡ってすぐを左折すると東海大の農学部エリアとなります。 この橋を使わない場合、大津から北に抜けてミルクロードという阿蘇山侵入経路でも キャンパスにはたどり着けますが、おそらくこのルートも分断されています。 と、なると南阿蘇村から都市部へ抜けるためには東へ走って高森、そこから宮崎方面に抜けて高千穂峡。 高千穂から西へ抜ければ熊本、東へ抜ければ宮崎沿岸部に到達します。 あるいは、高森から武田市経由で大分方面に抜けていくか? どのルートが生きているのかは分かりませんが、 相当な迂回であることがお分かりかと思います。 目の前に見える対岸の土地に行くために車でグル~~っと遠回りするんですから、これはとんでもない話です。

4月18日現在としてはミルクロードが通行可能みたいです。 絵図でいうと、白いラインがそれです。 これでかなりの時短となります。

国道57号から阿蘇大橋のルートが生きていれば、大型車両も普通に入っていけるので 物資の輸送や重機の搬入もやりやすかったでしょうが、まさに生命線である橋が落ちたことで非常にまずいわけです。 自衛隊ヘリが活躍したことからも明白ですが、傷病者を救急搬送するのだって陸路では厄介です。 オスプレイによる物資輸送も行われましたが、現状では空路が命綱となるのかもしれません。 橋さえあれば、アクセスは良かったのに、陸の孤島というか、袋小路の最奥部になっているわけです。

土砂崩れの規模がもの凄いので、元通りに復元するよりも多少ルートを変更してでも接続することが急務でしょう。 極端な話、歩いてしか渡れない橋でもいいから、とにかく道を作ることが先決です。 傷も癒えぬうちに、梅雨の時期が来れば土砂災害が追い打ちをかけることになります。 阿蘇地域は降雨量が尋常じゃないので、地盤がゆるいことと相まって雨季は災害が起きやすいのですが、 今回の地震の影響で非常に崩れやすくなっているので恐ろしく危険、危機感を持たねばならない部分です。

2016年4月8日金曜日

SurfaceView で死んだ話

SurfaceView はマルチスレッドで動く絵を見せるビューです。 本体と独立しているというのが特徴で、例えばミスでビュー側の画像更新がストップしたとしても、 メインの処理は関係なく進んでいます。 で、音だけはバキバキ聞こえてきて、気が付いたら敵を全滅させていたりします。 また、描画スピードが物事に追いついていないとコマ落ちになります。

SurfaceView に関して不満があったので、相当いろいろ調べましたが明確な答えは出てきませんでした。 ただ、Android 4.x 以降になってからは混乱が見受けられるといのが印象です。 2010年くらいの記事だと、SurfaceView 重い・遅い・クソ、という話は見えてきません。 で、問題となるのはハードウェアアクセラレーションなのかもしれません。

ハードウェアアクセラレーションとは

Android 5.x 以降の機種では開発者向けオプションで 「GPUレンダリングを使用」 「GPU表示の更新を表示」 などという項目があります。 GPU とはパソコンでいうとこのグラフィックボードみたいなものだと思うんですけどね、 描画専門の機能のことです。 で、ハードウェアが持っているGPUを行使することで グラフィック描画機能を向上させるみたいです。 この機能は、Android 4.x だとデフォルトでオンになっているというのが通説です。

で、話はややこしいですよ。 ハードウェアアクセラレーション使用はメリットがある反面、デメリットもあります。 場合によっては恣意的にオフにしてやった方がよいということも…。 この辺はググって調べてください。内容がアバウトじゃないから、調べるのは容易だろうと思います。 で、何がややこしいかというと、
・View には適用されるけど、SurfaceView には適用されない(真実は…?)
・だから、View の方が逆に早いよ(真実は…?)
・じゃあ Android 5.x はデフォルトでオンなのですか?
・ついでに Android 6.x はデフォルトでオンなのですか?
・もしかして、メーカー単位で微妙に設定が違っていないですか?
いろいろな疑惑がでてきます。

シャープが悪いのか?

個人的な経緯を説明しましょう。 ゲームを Android で作成していて直面した事態です。

・デバッグ機は2台目、Xperia SO-02f です。

・今まで Viewで作ってきたけど、SurfaceView にしたろか?

・とりあえず移植完了。早い遅いの変化は感覚的に変化なし。

・新たにNexus5X と、AQUOS(SHARP) SH-02Hをゲット!

・新機で実機デバッグ開始。画面表示、動作など特に問題なし。

・Eclipse だと直結で run できないので、SO-02f(Android4.4.2)が相変わらずメインデバッグ機。

・普段使い(電話&インターネット)はシャープですね。お出かけでウェブ見る分にはとてもいいマシーンですね。

・あれれ、何かこのボスと戦うとき明らかに遅くなってない?

・画面内にFPSが表示されるように細工

・ソニー(Android4.4.2)が最速で、シャープ(Android5.1)とネクサス(Android6.0)はもっさり

・ちゃんと比べていないが、ソニーはシャープの5倍以上の速度で描画することが可能、というかシャープが異常に重い

・解決のために色々やってみる。実際は例のボス以外でも遅くなっているシーンが多発していることが判明

・色々やったけど、やっぱ無理やねん、劇的な改善とはならず…。そうや、久々にネクサスでデバッグしてみよか…

・ネクサスだと改善されとる…! どの段階で良くなったのかはもう分からん

はい、この…。私の個人的な体験に加えてですよ、いくら調べてもハッキリしない真実。 そういえば、上記の問題とは別に、マップ画面開始直後にシャープの場合はなぜか落ちるので、 ちょっと小細工して落ちないように工夫したことがありましたよ、すっかり忘れていたぜ。 …シャープさんが悪いとは言い切れないんですよ、Android5.1 特有の問題かもしれないのだから。 私が国内外の機種20個くらいで、真面目に比較検討したわけではないっすからね。 とてもそこまで大がかりなテストはできない、現実的じゃない…。 こういうとき、リファレンス機があると便利です。 ネクサスで問題なく動くんだから、文句ないよね? と、考えていいわけですから。

とりあえず、ネクサスで目的のスピードが確保できたのでこれ以上この問題を掘り下げて考えることはしません。 ちなみに、FPSどれくらいなの? って思うでしょ。 私が作っております「アタックダンジョンMMF」のFPS(フレームレート)、 標準目標が10枚/秒で、シャープだと5~9です。 たったの10です。 世間的には超ロースペックですが、これを仮にFPS30のゲームとするでしょ(描画速度が出るかどうかは別として)。 例えば敵を切るアクション(斜めに線が入っていく的な)。 まあ0.3~0.5秒くらいの尺は欲しいですね。 と、いうことは9~15枚の絵を描かないといけないわけですよ。 これを、あらゆるアクションパターンに対して行う。 さらに敵の絵は地獄。 考えるだけでも恐ろしい。 だから、研究を重ねてギリギリまでFPSを少なくしました。 FPS10の場合であっても、アニメーションオブジェクトは700~800枚くらいありますからね。

たったの10ですからね、別にどうということはない処理なんですが、敵の数や描画オブジェクトが多いときは重くなりがちです。 これはマシーンの性能が悪いからではなく、設定がうまいこと機能せずに SurfaceView というパターンに対して見事にかみ合わない。 そういうことなんだと思いますけどね。 仮に普通の View で描画性能の競争をしたら、SHARPさん負けはしない、きっと勝つと。

どんな機種でも動く…は戯言なのか?

今回の出来事で分かったのは「新型が旧型に劣る場合がある」ということです。 これは結果的にそうなわけで、演算処理能力やOSのバージョンで勝っていても局地的な不利をカバーしきれないことがある。 特定の場合に限り、○○はまともに動作しない、という、ケースバイケースな感じの不安。 じゃあ、安心はできない。 メーカーといっても、日本だったらソニー、シャープ、富士通、東芝、NECくらいのものでしょうが、 世界的には Samsung、Huawei、Asus、Lenovo、Motorola、Archos、HTC、LGE、etc…いっぱいありますね。

味付けは基本します。日本のメーカーに限らず海外のメーカーも。 クセがあるっていうことですねえ、ネクサス以外は。 その結果、どのような差異が出るのか? これは誰にも分からない。

2016年3月23日水曜日

メモリ・ウォーズ 駆逐される巨人

最初の図。8x8マスの空間がありますが、これがRAMの2GBだとか、4GBだという容量だと考えてください。 もちろん、RAMが大きいほど広い空間になります。 灰色の空間の中にはカラーブロックが点在しています。これが実行中のアプリだと考えてください。 大きいものほど使用メモリが多いアプリです。 現在、Aのアプリを稼働中であると考えてください。 Bのアプリはバックグラウンドで待機中です。

次の図。Aアプリのプレイが続くことによって、Aアプリの使用メモリは拡大しました。 その結果、Bアプリが存在していた空間を押しつぶしました(この時点で、ホームボタンなどを押してAを中断、Bアプリを再開してみると一時保存データが消えており、 おそらくタイトルロゴか、Unityマークが登場するところから始まるでしょう)。 実際には、Aアプリは中断せずにそのまま!継続プレイ!で進めるシミュレーションとします。

次の図。Aアプリが占有する空間を"HEAP領域"と書いています。 これはどういうことか? ざっくり説明しますと Android の端末には通常ヒープが16MB、ラージヒープが32MB、みたいな設定があります。 最近の機種ほど大きくなる傾向がありますが、Xperia Z1 のコンパクト機である F-02F(Android4.4.2)、 最新のリファレンス機である NEXUS5X(Android6.0)、このあたりのマシーンは通常が192MB、ラージヒープが512MBでした。 もう少し古い端末だと、Galaxy Note N7000(Android4.1.2)で通常64MB、ラージヒープが256MB、 Galaxy Y GT-S5360(Android2.3.5)で通常64MB、ラージ設定なし、となっています。 NEXUS でいうと、LG NEXUS4(Android4.3 / 2012年末発売)から現在の192/512MBという大きめのヒープサイズになっています。 多くのメーカーがこれを基準にして、Android4.4.xくらいの端末(あるいはそれ以降の端末)は192/512MBになっているようです。 カオスなのはAndroid4.0.x~4.3.x の端末です。 しかし、デベロッパーコンソールのGoogle様の統計情報によると、ロールプレイングゲームのカテゴリでは、
////////4.1 : 12.17%
//4.03-4.04 : 9.89%
////////4.2 : 9.74%
////////4.3 : 6.35%
////////3.2 : 0.28%
2.3.3-2.3.7 : 2.62%
上記のようなシェアがあり、Android4.3以下がなんと41%も存在します。 ある時期より逆に増えたんじゃないの? 今までスマホが普及していなかった、あまり裕福ではない地域に 廉価版の安いAndroid端末が急速に普及してきたから…と考えればオールドバージョンのシェアが増えても不思議はありません。 超無責任に言うならば、15%くらいのユーザーは例え large heap にしていても、アプリのメモリサイズが 128MB を越えた時点でアウトでしょう。

ヒープとはアプリ一つに割くメモリ空間です。 Aアプリはプログラムの中で large heap を宣言しています。 端末から512MBの空間を割り当てられていると考えてください。 結構な広さの空間ですが、Aアプリは限界ぎりぎりまで育っています。 メモリ管理ができていないと、肥満化がとどまりません。 こ、こいつは…メモリリークしてんじゃないの? この先いったいどうなってしまうのか?

次の図。Aアプリの肥満化はとどまるところを知らず、 ついに"HEAP領域"を越えてしまったぞ。 いったいどうなってしまうのか?

次の図。そうです、皆さまお待ちかねの Out of Memory 発生で強制終了です。 Aが亡きあと、ずいぶんすっきりしましたね。 しかし、この国取りゲームっぽいのは面白いかもしれないですね。 パズルゲームでこういうの作ったらめちゃめちゃ流行るかもしれませんよ、Don't miss it!
生き残っているのは比較的メモリ使用量の小さいアプリばかりです。 この生き残っている部分を、OSの機関部分(システムプログラム)と考えてもよいし、 そういうシステム関係の部分はそもそも8x8マスの枠外に存在する。と考えてももらってもよいです。そんなに厳密に考えて作っていないので。

最後にまとめを。 Out of Memory 発生のメカニズムはわかってもらえたと思います。 large heap を宣言すれば、国内のユーザーなら少なくとも256MBはいけるでしょう。実際はほどんどが large heap なら512MB以上確保でしょう。 じゃあ、メモリ抑制の目安として200MBくらいで妥協しちゃっていいのか?っていう話です。 確かに170~180MBくらいでメモリ使用量が落ち着くのであれば、Out of Memory を防げるでしょう(少なくとも国内では)。 しかし、上の図を順に見てもらえば分かる通り、メモリの大きいアプリは 「他アプリからの攻撃に弱い」という弱点があります。 メモリの小さなアプリは、巨大アプリ通しの激しい陣取り合戦、仁義なき抗争の中にあっても生き残りやすい傾向があります。 生き残れば、途中からストレスフリーで再開できます(自動セーブ機能があればいい!といえばいい!のですが…)。 あと、やはり、単純に限られた資源であるメモリを無駄に使ってしまうのはユーザーに対して優しくないかな、とも思うわけです。 ラージヒープが512MBとかいうのは、初期のアンドロイド端末から考えれば10倍以上の容量に増えているわけですが、 RAMが2GBの端末でもラージヒープが512MBとかの設定をしているわけです。 RAMが2GBならシステム関係を除いた自由空間というのは1GB未満ですからね。それで、ラージヒープが512MBというのはやりすぎな感がある。

さらに海外勢の状況です。 日本の場合は機種変更を定期的にしないと「実質損をするから」みんな最新型に買い変えるわけですが、もしそういった要素がなければ? 日本でも格安simだとか、 シムロックフリーだとかの新展開が登場しました。 状況次第では、古いマシーンを大事に使い続けるっていうのはあり得ます。 日本だけでも選択肢が増えて、未来は分からなくなりました。そして、海外。 海外の情勢、といってもアメリカ市場、ヨーロッパ市場、アジア市場、いろいろあるし、インドや中東は特殊でしょう。 使用メモリが少ないことによって、意外なところからあなたのアプリに火が付くかもしれない。 だったら、もう、贅肉を落とした設計にするしかねえ。

Android のアプリでどうやったらメモリリークしにくくなるかは、色々なサイトで書かれているのでここでは簡単にしか書きませんが、一応、一筆。 まず、Activity と一部のストレージ的な役割をするクラス以外は "public class Main" と名乗らずに "class Sub" と非パブリックな形で 1行目に登録します。 非パブリックであれば、他のパッケージからは見えませんので、アクセスできません。こういう構造にすることで、アクティビティ遷移の際に参照を切りやすくなります。 さらに、メモリリークの温床となる「画像を扱う View 関係のクラス」ではフィールド、メソッドともに全て private で仕上げます。 考え方としては、必要最低限の露出にして遠くからの参照をなくすということです。 static が使いにくくなるので、苦手なインスタンスを取り扱う機会が増えましたが、仕方なし。 Bitmap はフィールドにせずにローカルで使用、使うたびに resources で拾ってきます。 Bitmap は終了時に null したらメモリが解放されるとよく書かれていますが、うまくいかなかったので…。 ただし、読み込みをやりすぎると cpu に負荷がかかるので(そりゃ同じ画像を何十回も~だから無駄の極み)、 LruCache を利用して一度読み込んだ画像はキャッシュに保存しておき、キャッシュに存在しない場合だけ resources から読み込むようにします。 LruCache のサイズはあまり大きくしなければ、例えば16MBとかなら何ら問題はないでしょう。 あとは、ググればすぐに見つかる this じゃなくて、getApplicationContext() を使え、とかそういう技を盛り込んでみます。 実際効果はありました。普通にプレイする分には50MB未満のメモリ使用でいけそうな感じです。

2016年3月8日火曜日

アンドロイド:RAM が 2GB でも実際は…

最近、諸々の理由から スマホを2台更新しました。 今、話題の(悪い意味で)SHARP製「SH-02H」と、Google製(結局はLG製)「Nexus5X」の2台です。 今、あえてシャープにするなんて目の付けどころが悪いでしょ。 しかし、片手で持ちやすく、小型なのにフルHDです。 しかも液晶が120fps(秒速120コマ)で表示されるので、滑らかな動きがたまりません。 RAMは3GBもあります。 Xperia(Z5) のコンパクト機に性能で勝っているところがこんなにあります。 ちなみにネクサスのRAMは、2GBです。

今回はこのRAMがテーマとなります。 RAMとはマシンが扱えるデータ量ということなのでしょうか? このRAM以上の負荷をマシンにかけることはできません。 Android だと、同時に色々なアプリを開くし、インターネットやメールもすることでしょう。 一方でパソコンでも、Excel だ Word だと、いっぱい開く場合があります。 これは似ているんですけども、Android の場合は、パソコンのアプリケーションでいうところの右上「×」マークが無いんですよね。 Android4.x以降はタスクマネージメントの画面で、個別に起動中のアプリを葬ることができますが、 それでも、アプリたちの管理は原則的に"OS"に委ねられています。

Windows で、Excel だ Word だと、いっぱい開いている場合って、こまめにセーブしますよね。 だから、比較として何とも言えないんですけど、Andoroid の場合はゲームAとゲームBとゲームCとゲームDと4股していたら、 途中でネット…見た気がする。 途中で電話…かかってきたかもしれない。 途中でメール…したかもしれない。 いつの間にやらゲームAの途中データが消えていた。 こういうことがよくありますね。 これは、色々なアプリをユーザーがポコポコ開いていくうちにメモリを使いすぎて、マシンの負担が増えたことを意味します。 正確なアレはよく分かりませんが、RAMが2GBだったら、2GBに到達する前に(限界が近づいてきたら)OSが自動で実行中アプリのメモリを開放します。 メモリ解放とは、ファミコンで言うなら「リセットボタンを押す」に相当します。 この機能があるおかげで、アンドロイドさんは様々なアプリのインストールと同時並行的な使用に耐えることができるのです。

しかし、しかし。 タスクマネージメントを行う、Andoroid のOSは、もちろん常駐アプリです。 常駐アプリとは「常に駐屯している=常時起動している」アプリです。 メールとかセキュリティ系もそうでしょうね、いつ何時、情報が更新されるかわからないんだから、常時起きていて目を光らせておくしかない。 で、常駐アプリはメモリを消費します。 そして、哀しいことに、RAMが2GBあるのに実際に使えるフリー領域は半分以下の1GB弱しかない…。 ということはよくあります。 では、実際に最近買った2機種の情報を見てみましょう。 まだ、ほとんどアプリのインストールなどしていませんので、白紙状態に近いです。 アクオスフォンのSH-02Hだと、システムが1.0GB、常駐アプリが505MB、空きが1.2GBです。 最新のAndroid6.0を搭載したNexus5Xだと、空きが591MBです。 上記の値は使用状況によって変動します。しかし、まだほとんど手を付けていないので荒らされる前であることは確かです。

AndroidでOSはバージョンアップを繰り返していますが、 1.5 >>> 2.3 >>> 4.4 >>> 5.1 あたりが節目となるバージョンです。 Android2.2 の初期Galaxyを使っていたときは、2.3のゲームができずに悔しい思いをしたものです。 OSのバージョンアップは性能やセキュリティがアップするので、ユーザーにとって喜ばしいことなのですが、 しかし、新しいものほどメモリを食いますね。 Nexus5Xの、空きが600MB弱しかないのは、そういうことなのでしょう。

さきほど、RAMが2GBだったら、2GBに到達する前に(限界が近づいてきたら)OSが自動で実行中アプリのメモリを開放します。 と書きました。 これは、色々なアプリを開いて使っていくうちに、何回か前に開いたアプリの途中データが消えましたね。みたいな内容でしたが、 しかし、今使っているアプリの実行中に、まさに、2GB到達の危機が訪れたらどうなるのでしょうか? アプリは実行中に GC(ガーベッジコレクション)されるのですが、GCとはまあ不要な内部データをシュレッダーにかけるみたいな話です。 プログラムに問題があって、このGCがうまくできないとメモリがリークし続けます。 リークとはもれです。 コンクリートのひび割れに水が吸い込まれていくように、アプリからメモリがもれ続けます。 そんなこんなで、今使っているアプリの実行中に、まさに、2GB到達の危機が訪れたらどうなるか? Sowwww...「強制終了」となります。 これこそが、プログラマーが忌避する Out of Memory です。 よくユーザーレビューで「落ちる落ちるっていうけど、私は普通にプレイできましたよ。運営に文句言っているのは、最新機種に変えられない学生か何かじゃないの?」 的な煽りムンムンなお言葉を読むことができますが…。 そうなんです。Out of Memory とは環境に依存するバグなのです。 (ご使用になられているマシンの)空きメモリ次第なので、開発側も「ウソ、落ちたっていうヤツ多いな!オレのデバッグ機では普通に動いたけどな」と、首をかしげてしまいます。 勘違いしてはいけないのは、まったく同じ機種だとしても安心できないということ。A君の使い方だと落ちないし、B君の使い方だと落ちる。と、いうことがあり得ます。 この辺の事情はかなりカオスですね。混沌としております。

-------------------------------------
オレの作ったアプリ、10MBしかないから、リークしたって10MB付近でしょ?
 …そう思っていた時期がオレにもありました。 -------------------------------------

実際はアプリの容量というヤツは、そこまであてになりません。 私がメモリリークを考えずに作ったアプリなどは、10倍20倍が簡単にいっちゃいます。 では、実際に見ていきましょう。今回はタスクキラー系のアプリ「スマホ最適化」を利用させてもらっています。 使用端末は使い古したXperia Z1 SO-02F です。 とりあえず、容量の大きい四天王である4ゲームを立ち上げて、すぐに切ります。 世界線勇者110MB、ボクを殺すこと…83MB、奴は四天王…20MB、L.o.戦55MBとばらばらです。 では、トップ記録の世界線勇者を3分間プレイしてみます。 117MB、若干増えました。 ボクを殺すこと…も同様に約3分プレイ、第7ボスを倒せました。 結果として93MB、やはり若干増えました。 奴は四天王…も適当な時間をプレイ、29MB、同様の結果。ちなみにこれだけ Unity ではありません。 最後に、Legend of 戦士、これは95MBにアップ。55→95MBという大幅なメモリ増なのでメモリリークの傾向があるのかもしれません。 気になるので、もう少しプレイしてみましょう。 再開して3分くらいプレイして閉じて計測、今度は128MB、やばいですね、55→95→128MBとどんどんメモリ圧迫量が増えています。 これは連続してプレイしていると、どこかで強制終了となるかもしれません。

ちなみに、Xpreria Z1 SO-02F はもうシムカードを抜いてネット不接続状態だったのを忘れていました。 ネット接続があると、広告表示が発生するので、それ絡みでのメモリリークが発生するかも? です。 テザリングでネットを有効にして、世界線勇者を再開、約3分プレイすると…144MB、まあまあ増えましたね。 で、この時点で端末のメモリ使用量が結構増えてきました。 おろらくネット接続したことで、その他のアプリが雨後のタケノコの如く無数に発生した気配もあるんですが…(テキトー)。 ともあれ、546MB開放できます、と表示されています。 逆に言えば、それだけ使っているということです。 で、一覧の中から、ボクを殺すこと…、が消えました。 タスク管理画面ではまだ生きています。再開すると Unity のロゴが登場して最初から立ち上がる(オートセーブっぽいので前回の続きからですけど)。 これは、アプリがキラーされたことを示します。 このアプリキラーは賢いアンドロイドさんが自動的にやってくれます。 546MBともなると、だいたい80%くらいですか? メモリを使っているのでカツカツな感じです。

このXperia Z1の場合は、実際に使えるメモリが700MBくらいなんだと思います。 その中で、実用系やソーシャル系のアプリもメモリを要求しますから、実質「ゲーム枠」は300~400MBと考えていいでしょう。 もちろん、最新機種で3GB、4GBのマシンであればもっと余裕はあるのでしょうが、上は見たって仕方がない。 特に日本市場だけを見ると、世界平均よりもマシンの性能は上に位置しているハズ。 だから、2年前に入手した端末を基準にするくらいで調度いいのかもしれません。 いろいろな事情を加味すると、ハードにプレイしても100MBを越えないのが最低条件。 10分以下の標準的なプレイで、50MBを切るくらいが目標値となりましょう。

画像がどのくらい容量を使うのか? に関しては注意が必要です。 と、いうのも10KBの画像を100枚使っているから1MBくらいメモリを使ってんやろな、と思いがちですが、少し計算方法が違うようです。 例えば、同じ100x100ピクセルの絵であっても、容量が違いますよね。 私の場合、開発中の「アタックダンジョンMMF」でのモンスターグラフィックは150x100なんですが、3~8KBくらいでバラバラです。 余白が多い絵ほど、軽い傾向があります。 これが220パターンくらいあって、合計で1.2MBくらいになります。 し・か・し、実際に画像をJavaで(?)読み込む場合、同じ面積の画像は同じメモリを使います。 jpg や png などは圧縮をかけて、容量を減らしていますが、それを読み込んだ際には非圧縮です。 150x100x3(24bit=3byte)で計算すると、3~8KBの元画像が展開した結果は45KBとなります。 詳しいことはグーグルさんで各自調べてもらうとして、 想定外に大きくなる、と考えた方がよさそうです。

画像のキャッシュ機能を今作っていて、初回のみリソースから読み込んで画像データを取得して、 2回目以降はキャッシュデータを使って高速に読みこむというシステムです。 これで、キャッシュのサイズを取得すると、(まだ全ての画像をキャッシュ化できていないのに)7MB弱いっちゃってますからね。 まあ、背景とか、コマンドの元画像がデカイことが原因ですが…。 この感じでメモリーがGCされずに、もれ続けたらスゴいことになるのは容易に想像できます。 実際に私の経験上、ユーザーはもの凄く Out of Memory を連発します。 これに関しては「どうせクソみたいな低スペックマシンでやってんじゃないの?」と、なめていました。 あるいは、Galaxy というマシーンが悪いんじゃないのか? とか考えていましたが、世界的には、Samsung のシェアが Android 界隈では際立って高いですからね。 ただ単に割合の問題で Galaxy のバグが多かっただけです。 結局のところ、まともにプレイできた人ってどのくらいいるんだろう? って思ってしまいます。 この件に関しては、反省しております。直視しなければならない重大な問題だったのだよ、もっと前に。

今回は、ニューマシンも増えたので Android4.4 + 5.1 + 6.0 の3台(タブレットも含めれば4台)でデバッグができそうです。 特にネクサスはリファレンス機なので、これが基準ですよ。開発者必携のマシーンをついにゲットしたぞ。この意義は大きい。 しかし、その全てで問題なく動いても、それでも「胃の中の蛙」だと思わなければならないのでしょう。 世界中のユーザーに「安心してください、動きますよ」と保証する為には、使用メモリが少しだけ!…という裏付けが必要なのです。 この際、製作が長引いてもこの問題を解決することに注力したいものです。

2016年2月15日月曜日

宇宙一分かりやすい携帯電話料金の話

格安simに乗り換えた方が安いぜ。キャリアを使ったら損。 というのが昨今の風潮だと思いますが、そういうのを置いておいて 比較的中立の立場からドコモの料金プランを考えます。

docomo の2年間定期契約は、他のキャリアも似たようなルールだと思いますが、 契約から2年間は継続して使用する代わりに料金の割引を実施するというものです。 これを適用しないと基本料金が最低でも月々1,500円は割高になるので普通は2年間定期契約をします。 これを途中で解約すると10,000円程度の解約金が発生します。 新ルールで6ヶ月以内の解約は別の違約金が発生するようです(短期解約への対策)。

2016年2月の時点で、arrows Fit F-01H などは実質負担金0円となっております。 この機種を購入した場合は、2,376円の割引が24回適用されるので、24ヶ月で57,024円の割引となります。 本体価格と割引合計額が一緒になるわけですね。
例えばカケホーダイライト(電話をかけたときに最初の5分間まで通話無料:¥1,836)+SPモード(実質必須:¥324)+パケットパック(5GB:¥5,400)で、 税込¥7,560となります。 ずっとドコモ割15年超なら¥6,696となります。
あるいは、カケホーダイ(通話無料:¥2,916)+SPモード(実質必須:¥324)+パケットパック(2GB:¥3,780)で、 税込¥7,020となります。 ずっとドコモ割15年超なら¥6,372となります。
どう抗ってもこれくらいの最低料金は必要となります。 データ通信料として考えたら高額ですが、データ通信の速度と安定性は格安simより圧倒的に良いです。 また、電話を利用する場合は格安simだと30秒20円なので、月2時間以上カケルのならカケホーダイ(通話無料:¥2,916)の方が安いです。 それでも、高いよね。 税抜きなら最低でも6,000円付近、これが基本料金として徴収されます。 この枷(かせ)を24ヶ月継続する代償として「店が用意している指定の最新機種」を実質無料で購入できるわけです。 居酒屋で考えると「団体のお客様へ、ビール24杯頼まれる場合は舟盛り(5,000円相当)が実質0円に!」、でもビール1杯600円とか高いじゃねえかよ、 24杯も頼めん、帰るわ。 「お客様、規定の24杯に達していませんので舟盛りの料金も一部ご請求させていただきますがよろしいですか? あと、申し訳ありません、 入店から120分が過ぎた時点で追加120分が自動更新されていますので、23:00以前に離籍されますと違約金が発生しますがよろしいですか?」 「ボッタくりバーかよ!…もうわけわかんね、ええで。ええで。いい値で清算するから…ナンボや」

この2年間定期は自動更新されます。さらに、機種本体の代金は 機種変更から24ヶ月付与される割引システムによって無料~30,000円程度に抑えられています。 最新機種のスマホ・タブレットを新品で購入しようとしたら結構なお値段ですからね。 6万円、場合によっては10万円近くしますよね(※1)。 これ(機械を安く手に入れられるコト)は一見得なような気もしますが、結局のところ高~い通信費を搾取されているし、 2年毎に新しい機種に買い変えないと実質損をするわけですから「下衆の極みなハウスルール」である、と思います。 まだ使えるけど、次の機体に半強制的に乗り換えざるを得ないのです。 極端な話、買い変えたニューマシーンを開封しないまま転売してもいいわけです。 オンラインでの機種変更も可能ですし。 ドコモショップに行ったとしても、現物を持たずに機種変更などは可能ですからね。

非常にややこしいのですが、ここで混同してはいけないのが、 「解約」と「機種変更」の違いです。 2年間定期契約をした翌月が、契約更新月となります。 2014年1月に契約を開始したのなら、2016年2月がチャンスのときです。 チャンス、とは解約をするまたとない好機ということです。 一方で機種変更は契約の「変更」「更新」「解約」のいずれにも該当しない、と考えてよさそうです。 例えば2012年10月にガラケーからスマホに機種変して、2016年1月にスマホからスマホへと機種変したとします。 ガラケーからスマホに変更した際は、FOMA(ガラケー用)からスマホ用に料金プランを変更しているはずなので、ここが起点となります。 この場合、契約更新月は2014年11月、2016年11月、2018年11月…であり、機種変のタイミングは関係ないことが分かります。

Q 2年6ヶ月前に新規で契約したけど今月解約(docomo脱退)したい
A 解約金が発生します

Q 2年6ヶ月前に2年間定期契約したけど来月から定期契約じゃないプランに変更したい
A 解約金が発生します

Q 2年6ヶ月前に機種変更したけど今月機種変更したい
A 解約金は発生しません

Q 1年前に機種変したけど、今月機種変できる?
A 解約金は発生しません、ただし前回購入機種のローンが残ったまま買い変えることになります

※1:携帯端末自体の価格ですが、これも値段設定に罠があります。 NEXUS 5X などは米価格380$(おそらく16GBモデル)となっておりますが、 Googleストア(直販店みたいなもの)での販売価格はドルベースより円やユーロだと高くなるみたいです。 これがさらに、ドコモだと32GBモデルの端末代金が93,312円となっています。 ここから割引が色々付くのですが、スタートキャンペーン+10年継続利用の月々サポートで 実質23,544円となります。 ドコモで販売される端末はsimカードがドコモ仕様になっているコト、日本の通信環境に適した仕様になっているコト。 この2点くらいしか実際にアメリカで現地買いするのと変わらないだろうし、とにかく値段が爆上げされる意味が分かりません。 買ってすぐ未開封で売りに出しても40,000円以上の値は付かないでしょう、下手したら35,000円くらいで買いたたかれるかも。 何となくドコモショップで買ったら損だっていうのは分かるけど、もう意味がわからないでしょ? 機種とタイミングによってはお得感がでる端末もあるみたいだが…。 ドコモとかキャリアの料金システムは単純に高いから嫌だっていうだけでなく、 複雑だし契約月数とか解約金の縛りが多々含まれて難解すぎるのが「真の問題」ではないかと思う。

ドコモは新料金プランなどを打ち出していますが、 格安simがそれなりに台頭し、simロック解除も義務化されている、世間的には「寡占状態にあった通信会社」が殿様商売をやめなければいけない 時期に差し掛かっているように思えますが、 しかし、少なくともドコモは料金を安くする気はないみたいです。 私も15年ユーザーに近々なりそうですが、15年も律儀にユーザーを続けたお客様に対して、あまりにもどうでもいい割引率ですよ。 例えばカケホーダイライト+spモード+データMパック(5GB)の組み合わせがドコモでスマホやる際の最低ラインですけども、 2年契約を前提として月7,000円です。税込なら7,560円です。 これが、15年選手になると、月6,200円になります(半額でよくない?)。 「学割」と「U25応援割」を適用できる若い人、1年選手の方が下手したら安いです。 ちょっと、ちょっと、不動であることがこれっぽっちの値打ちしかないわけ? …、 そんなんだったら、近々やめてやるからなバカヤロー、と思います。 比較的中立の立場からドコモの料金プランを考えます、とこの記事の頭に記載していますが、 やっぱり駄目ですね。熱が入ってくる。

simナシタブレットの使い道。 タブレットは基本的にインターネットを大きな画面で楽しんだり、大きな画面で動画を見たり、という使い方をしていたはずです。 じゃあ、タブレットの契約をやめてしまって、ネット接続できなくなったら、いま流行りの格安simをぶっこむしかないのか? ないのか? 落ち着いて、選択肢はあります。 格安simといっても、当然料金がかかるわけで、わざわざ中古タブレットを延命させるためだけにsim契約するのは気がひけます。 少なくとも、私はそうでした。 しかし、契約を更新して2台目のタブレットを手に入れても、何か嬉しくないしなあ…。それこそ1台目の立場がないじゃん、そもそも料金が高いし。 そこでお勧めなのが、スマホ本体からの Wi-Fi テザリングです。 simカードの入っていないタブレットでも、子機として電波受信は可能です。 これで、今まで通り使えるね。 また、Bluetoothのキーボードを購入すれば、タブレットをノートPCみたいに使うことができそうです。

私の場合、とりあえずタブレットの方が24ヶ月終了したところなので、こちらの契約をやめます。 そして、ドコモの新料金プランで カケホーダイライト+SPモード+データLパック(8GB)で税込8,532円(ずっとドコモ割15年含む)に変更しようかと思います。 あるいは5GBで、¥6,696にして割引率の高い(安い)最新機種にオンライン一括払いで変更し、 外出用モバイルとしてそれを運用する。 SH-02Hなら、2016年2~3月に契約すると、2,889円が月々安くなる。24ヶ月で69,336円の割引になり 割と評判の良い最新型が実質10,368円で入手できるのでこれもアリかもしれません。 タブレット分がなくなるので、8GB契約にしても毎月の支払はかなり減ります。 で、今使っているXperiaでテザリングして、契約終了したタブレットを今まで通りに運用するわけです。 近い将来、MNPしてドコモから完全撤退するつもりですが、しばらくは現状を維持します。 さらに、Googleから直販でNexus 5x を買ったので、ぼちぼちと格安simを試していきたいと思います。 格安simは、電話の方はオマケとして、データ通信が「遅い」疑惑があります。朝夜は早いけど、昼間は激遅いなどの時間的変動もあります。 安いけど不安定です。 結局はお住まいの地域で、どうなのかテストする以外に安心できる方法はなさそうです。 だから最初はデータ通信のみの安い契約を結んで、試験運用をしてみようと、そういう計画です。

2016年2月5日金曜日

悔しいです!!! キラキラウォーカーに散る…

マクドナルドのカード20,000円分ゲットというキャンペーンがありまして、 結局来月になったら継続課金の解除をしないといけない破目になっただけ、という…。 解除するのを忘れないように日記として記しておきます。

スクラッチカードを削る

絶対?当たる

KIRA2WALKER(キラキラ☆ウォーカー)登録

条件をクリアせよ

登録は携帯メールから行います。 docomoメールとかは可で、Gmailは不可です。 それで、登録したら今度は有料サイトに登録するか、 クレジットカードを作るか、 無料アプリをインストールするか(10件必要)、というクリア条件が提示されます。 「ああ、これが有名なおこずかいサイトなのか…」

ちなみに、リワード広告の一種であるポイントサイトに含まれる アプリのインストールを勧めるやつ。 ユーザーはポイント欲しさにインストールするので、まったくもってアプリには興味がありません。 これもんのランキング操作が Android でも iPhone でも恒常化しているのだから、 世の中はグレーっすよね。 企業が本気出したら怖いっすよね。

「ああ、これが有名なおこずかいサイトなのか…」と、思いましたが とりあえず地図情報のマピオン有料に登録しました。 月額300円ですかね。 で、上の写真のようにクリアした旨が表示されたのですが(XX様はマックカード2万円分の受け取りが可能です!!と書いてますが…)、 で、どうしろと?

クリアしたことを報告すると、メールが来てマクドナルドのカード20,000円分の受け取りが完了するらしいのですが、 報告の仕方が分かりません。 エロサイトでよくある、目的のソレにいつまでたってもたどり着けない感じ…っていうんですかね。 なぜ、クリアしたことを報告する部分が自動化されていないのかが、不思議でなりません。 まあ、お察しというヤツですね。 「ああ…、やられた」と、思ってマピオンの月額課金を解除しようかと思ったら、どうも登録翌月からしか解除はできないみたいですね。 しかも、継続課金一覧を見たら「musicjp洋楽300」という見覚えのないものまであるぞ…。 これは神に誓って申しますが、申し込んだ覚えがない…。 日時を見ると2/1 0:00、寝てたわ! これは、キラキラウォーカー登録よりも前なので、キラキラとは関係ない可能性が高いのですが、 怖いよ、怖いよ、怖すぎですね。

マクドナルドの2万円券、無事にゲットできた人はいたのでしょうか? 限りなく、ブラックに近いグレーだと思いますが、 別に詐欺ではございません。 しかし、ちょっと前に雑誌の景品で詐称があって問題になったことがあったような…。 調べてみると、読者5名にプレゼント…ウソ 「秋田書店を景品表示法違反で処分へ」 という記事が見つかりました。 他にもこの手のウソは発覚しているようですが、○名にプレゼントと明示しているケースが消費者庁から怒られるようです。 マクドナルドのカード20,000円分ゲットは何名様が当たるのか一切書かれていませんからね。 分かりますね? まぎらわしいかもしれないけど、問題は無いんだ。いいね。

2016年1月31日日曜日

Android アタックダンジョン MMF 開発記<承>

2016年最初の日記(前回)の内容が「成金大作戦」って、まったくダメですね。 YARUKIのYの字も感じられませんが、 1月は、まあ、そこそこ、やりました。 目標の30~40%は達成でしょう。私にしては上出来です。

現在開発中のAndroidアプリ「アタックダンジョンMMF」の進行具合を振り返ってみようと思います。 まあ、簡潔に言うと「ボスキャラに合わせてメンバーを選び、そしてボスを殺す」という RPG におけるボス戦闘の部分+その直前のダンジョン探索3分間だけを 抜き出したようなゲームです。 選べるキャラは18人もいます。そこから3人を選びます。 彼らの個性はぶっちゃけ、戦闘能力のバランス配分だけなんですよね。 ゲームとは言え、それでは寂しいので、彼ら18人の個性を戦闘以外のアングルからも説明してみたい。 で、川柳システムっていうのを考えたんですね。 下の写真みたいのが、ボスを倒したあとに出てきます。

この川柳はメンツの組み合わせによって、ぜんぜん別のものができます。 黒の呪術師バリ・バラなんかは「死んだふり」「サイレンス」「レクイエム」「無に帰る」…という感じで虚無です、ニヒリズム全開です。 緑の魔法使いアピなどは「踊りだす」「走り出したら」「止まらない」…という感じで躍動感に溢れています。 イタリアの都市から名前を付けた青の戦士ラベッロなどは「川辺だね」「イタリアン」「水の都と」「イエスタデーが」…という感じでファッション的です。 こういう感じで参加メンバーのセンスで川柳の仕上がりも変わってくる。 戦闘は強いけど川柳の質はイマイチ…、という組み合わせもあるだろうし、当然逆も考えられる。 面白い試みですね。 問題は、欧米人には理解されないだろう…というところですが、(ゲーム的に有利不利関係なしの)枝葉の部分なので気付かなかったことにします。

ちなみにこの川柳システムは去年の12月頭に完成させたものなので、ちょっと論外なんですけどね。 じゃあ今度こそ1月の達成内容として、消耗品アイテムの実装があります。 これも、7割方は元ネタから輸入しただけで、画面を横構成から縦構成用に作りなおしただけなんですけどね。 下の写真だと分かりにくいかも…ですけどドラッグすることで高速セッティングが可能です。 この画面で行うことに関しては、ゲーム機のコントローラーさばきよりもスマホのタッチパネルが操作快適性で勝利できそうです。

上の写真は、配色がちょっと意図的・人工的すぎる感じがするかもしれません。 しかし、その違和感は正解です。 このゲームでは色が○○を表すということを多用しています。 まず魔法は回復・防御の青、攻撃の赤、補助の黄、と役割が分かれていますし、 武器攻撃は白、アイテムは緑で表現しています。 緑じゃないアイテムは装着することで自動的に仕事をしますが、プレイヤーが任意のタイミングで発動させることができるのは緑属性のアイテムだけです。 青属性のキャラは青魔法が得意だし、青のアイテムを主に持っています。 黄属性のキャラは黄色のアイテム、緑属性のキャラは緑のアイテムをたくさん持っています。

元々横画面だったものを縦画面に移植しています。 これの手間は想像を絶するものがありましたが、敵の絵が小さくなったことによって ドットのキメが細かくなりグラフィックが綺麗になった気がします。 で、まあ下の写真はボスの一つなんですけど、雷攻撃系ですね。 とりあえず11面のうち、6~7面くらいは完成させたんですが、 あとはバランスですよね、ボスと味方キャラクターの。

例えば物理攻撃バカのボスに勝てるメンバーと、状態異常デパートのボスに勝てるメンバーはぜんぜん違います。 これは、いいんですよ、実際にテストプレイでも狙いどおりな感じなので。 しかし、運の要素がかなりデカイので、ベストメンバーで勝てないことも多々あるわけです。 逆に相性があまり良くないメンバーでも、運とノリで勝ててしまうこともあるんですが…。 これがまた難しい話でね、正解だったら絶対勝てる「将棋」的なものは目指していないんですよね。 じゃあ最適解、あるいは準最適解でメンバーを構成した場合、勝率何%あればいいのさ? ということになるんですが。 しかし、確率が絡むとジャンケンで3連勝する人もいれば、サイコロ2つ振って2を叩きだす人もいるわけで…。 だから、昔のファミコンのときのRPGボスなんかは強さの設定が難しかっただろうな、と思いますね。 まあ勝てんかったらレベルを上げればいいんですけどね、それにしたってどのくらい上げればいいの? っていうサジ加減があるわけですから。 まあ、コンティニュー機能を作ればいいと思うんですけどね。 「惜しかったなあ、今の」とプレイヤーが考えた時に「雑魚戦すっ飛ばしてもう一回ボス戦の直前からやれますけど、どうですか?」 と提案するわけですね。 で、そのときにリワード動画広告みたいなこともできたらいいかな、と思います。 いや、むしろコンティニューさせること前提のゲームバランスだったりして…。

2016年1月3日日曜日

成金大作戦という名のゲーム

元旦から今日に至るまで3日間かけてようやくクリアしました。 何って、成金大作戦決定版の通常マップ23-10ステージ目です。 成金大作戦が何かって? そんなのググってくださいよ。 あまりにもバカらしくなるくらい時間を浪費したことに悔いが残る。 記録を残すとともに、もう2度とやらない方向で。 マジで時間泥棒だぜ。

ここに至るまで通常マップ21、22と課金購入してクリアしてきました。 実は4年くらい前にやっていたことをふと思い出して、久しぶりにやってみた次第です。 21、22とも10ステージ構成で、時間のかかる広大なマップはラスト2つか3つだけですが、 ここまではリセットプレイ無しの一発クリアで決めてきました。 いや、やり直した面はあったかもしれないが、2回目でクリアできなかったことはなかったはず。

元旦、相棒を見ながらやっていた頃、難しいとは思うものの、まさかこんな泥沼になるとは思ってもみなかった。 夜中にイラっとしてタブレットを床に投げつける場面が数回。 諦めて寝る。 2日目、もしかしていけるかも? というところまでたどり着く。 おカネがないのに昼間にやったパチンコよりも緊張してきた。 しかし、今までの失敗をふまえてあるポイントを起点にして何回でもリセットしてやり直す作戦を導入する。 まさか、33Tから何回もやり直すことになるとは…。

写真1:ここが問題の激戦地である。この橋をまたいで両軍が激しい争いを続ける。 橋の右側にある赤軍のダブル基地を陥落させることがどうしてもできない。

写真2: 起点となる33Tのときの状況。今にして思うとぜんぜんダメだが、部隊数で赤軍を凌駕しており、 ある程度包囲できる環境には仕上がっていた。

写真3: 赤軍は収入を高めるために都市に投資を繰り返し行っており、だからこそ経済的に劣勢な青軍が敵陣奥深くに攻め込むスキができた。 青軍は都市への投資をかなり犠牲にして部隊を生産し続けた。

写真4:このマップでは海軍が活躍できるエリアは限られており、しかし水辺沿いに都市が集中しているので 制海権を得ることは重要である。

写真5:敵軍陣地の占領が進み、40Tの時点では自軍(青軍)は占拠街数で優位に立ち、収入差もかなり減っている。 しかし、敵軍(赤軍)の部隊数がかなり増えているぞ。 理由は二つあって、投資の完了した赤軍は収入のすべてを部隊の生産・補給に充てることできたのが一つ。 都市などを占領すると占領した側が占領された側へ補償金?を渡すというシステムがあることが一つ。 つまり、青軍がガシガシ占領しているそのとき、大量の資金で赤軍は強力な補強を行うことができたわけです。

写真6:赤軍の首都近辺まで占領したのにも関わらず、敵の大反撃にあって逆に攻め込まれる青軍。 こうなったらもうお手上げ。ジ・エンドです。 何回か33Tからやり直したけど、アレレ…。もう無理なんじゃね? イラっとして夜中にタブレットをぶん投げる。

3日目、途中セーブの33Tを放棄してまた最初からやる。 このマップ、最初の条件は両軍ともほぼ一緒なんですが、敵軍の方が早い段階で都市を大量にゲットできるような構成になっているので、 赤軍は青軍を常に収入でリードし続けます。 序盤はこちら2000の収入に対して相手が3500とかそんな感じです。 リードといっても過剰分は投資に回すので、そこまで戦闘力で圧倒的差にはならないのですが、 膠着(こうちゃく)状態になったら赤軍が超有利です。差が広がる一方ですからね。 つまり、青軍は少ない収入で貧乏部隊を編成しつつ投資もある程度行って、かつ早めに敵地を制圧しないといけない。l

写真7:で、やり直した結果、ベストな状況に持ちこめた。 この橋の右側に見える赤軍の空軍基地に何度も泣かされてきたわけです。 このゲームの常とう手段として遠隔攻撃のできる巡洋艦を配置して、ノーコスト・ローコストで敵軍を撃破するというのがあるんですが、 敵に飛行機系がいるとすぐに後ろを取られて巡洋艦を爆破されるので非常に厄介。 しかし、敵地になるべく接近しないことには巡洋艦の効力も得られないというジレンマ。 そこを安いユニットの大量投入で壁を作ることで解決しました。 武装高速艇は上の方にある港で生産して下ってくるのですが、その際に対岸で中立都市を占領しようとする敵歩兵を撃破します。 つまり、一仕事を終えてからガードの任に着くわけですから合理的ですね。

総じてポイントと言えるのは、 あらゆる小競り合いで負けないことです。 一度仕掛けた戦いは絶対に引いてはいけないし、勝てないのなら攻めないことです。 しかし、攻めきれない以上は守らないといけない。 この二つはときに反転しますので、守りの兵を増強しつつ、いざ勝てる突破口ができたら、機を見るに敏として攻めに転じねばなりません。 機を逸しないためにも防衛ラインは敵拠点に近くなるよう設営すべきです。 取れないけど敵に取らせたくない拠点はグレーのままにしましょう。 占領を妨害して、中立地点のまま中盤まで放置させるようにします。

写真8:今回は青軍の都市への投資も頑張っているので、そこまで相手にリードされていません。 ユニットを生産したいのを必死に我慢して、投資レースに参加しました。 この2000くらいの差っていうのがギリギリな気がします。

写真9:ここまできたら勝ちは確定です。 しかし、敵の部隊数が妙に多いのが面倒です。

写真10:敵地の内部はこんな風に岩山地帯になっています。 悪の軍団の総本部みたいな雰囲気です。 これだと地上軍は進みにくく、空軍をどうしても使いたくなりますし、実際のところ爆撃系が活躍します。 ただし、地上軍を盾にして敵の戦闘機を寄せ付けないという戦法ができないため、敵の戦闘機にバンバン落とされるという難しさもあります。 肉を切らせて骨を断つ、そういう戦い方を強いられます。

写真11:まあ紆余曲折いろいろあったが、チェックメイトです。 最後の方は完全に作業になるのが面倒なところ。 敵も絶対に勝てないんだから諦めて白旗を振ってほしいですな。 例えば単純な陣取りゲームであるスライというゲームでは、COMが劣勢を判断すると降伏を申し出てきます。 スライみたいな欧米系のいいところってのは案外こういうところなんですよね。

最後にこのゲームのだるい要素を批評して締めたいと思います。 課金してるから文句言っていいよね。 とりあえず最大の悪は前述している占領時に発生する補償金?システムです。 戦争しているのに何で敵拠点を占領したときに相手に賠償みたいなコトをせないかんの? 理屈はともかく、 これがあるせいで劣勢の相手が息を吹き返します。時間かかるよね。 あと、成長した拠点を占領するのに歩兵が完全10体の状況で4ターンかかるのもだるい。 まあ成長させた都市だって1ターンで占領できるシステムだったら、逆にプレイヤー側も嫌な思いを多々するだろうから仕方ない面もあるだろうけど…。敵歩兵の動きに常に神経を尖らせないといけないのはシンドイ。 まあ、だから~占領中の歩兵は歩兵でしか攻撃できない、とかの工夫がほしいところ。 敵都市を占領するときは歩兵の周囲をグルッと完全に囲んで守らないといけないのはだるい。 あと生産中の敵ユニットに攻撃できるようにしてほしいですね(もちろん生産中の方は反撃できない)。 敵軍の戦車とかがすぐ横にいるのに、のんびり生産できてしまうあたりがゲームゲームしてて嫌になる、というか面倒くさい。 勝ちが見えてから本当に勝つまでが長いこと長いこと…。 結論としては、何だかんだ言って作業がすき~、ってことで…。