2017年8月27日日曜日

ソーシャルゲームが儲かる仕組み

少し古い記事ですが、基本無料のゲーム(ソシャゲ)の課金ユーザの比率はだいたい1.7%ぐらいだとか。
http://gigazine.net/news/20160325-mobile-market-report-2016/

当然、全てのゲームがそれに当てはまるとは限りませんが。
ただ、概ねこの通りだと仮定すると、MAU(月間アクティブユーザ数)が50万人であれば8500人ぐらいがPUU(課金ユーザ)という計算になります。
更に、PUUの内6割(5100人)ぐらいが微課金勢でそれらは売上的には些細なものだから、実質残り4割(3400人)ぐらいがメインの収益ソース、更に売上の半分を支える重課金勢の割合は、PUUの内1割(950人)ほどとか。
一人の課金ユーザが支える無課金ユーザ数は57.82人ぐらいという計算になるのですが、これは・・・。例えば、財務省によると、2025年には年金受給者1人を支える現役世代は2.2人になるとのこと(参考)ですが、ソシャゲと比べれば大分ヌルく見えてしまう程度に歪な収益構造だと思います。

こんなんで儲かっているの?
と思いきや、関連企業の決算情報を見てみると中々儲かっている様子。

■mixi (2017年3月決算)
・売上: 207,161百万円 (前年比: -0.8%)
・営業利益: 89,008百万円 (前年比: -6.3%)
・営業利益率: 約43%
メディアプラットフォーム事業(SNSなど)の分の決算も混ざっていますが、売上30億程なので誤差みたいなものだからそのまま混ぜておきました。(元々の本業はそっち系だとは思うので念のため)
■ガンホー (2016年12月決算)
・売上: 112,475百万円 (前年比: -27.1%)
・営業利益: 46,081百万円 (前年比: -36.4%)
・営業利益率: 約41%

■コロプラ (2016年9月決算)
・売上: 84,730百万円
・営業利益: 31,855百万円
・営業利益率: 約37.6%

■CyberAgent (2016年9月決算の内ゲーム事業の連結分)
・売上: 122,638百万円
・営業利益: 30,451百万円
・営業利益率: 約24.8%
調べた4社の中では営業利益でビリ。売上的にはガンホーを追い越していますが、他と比べると営業利益率が低いのが特徴。他と比べて明らかに運営にコストが掛け過ぎじゃね?という印象はあるので特に不思議ではないですが。あとは、広告会社だからプロモとかに相当金を使っているとか?(インターネット広告事業も結構堅調とからしいのですが、その売上の内自社広が占める割合がどの程度なのか調べたかったがよく分からなかった)
全般的に営業利益率が高い。
caが若干低めですが、それでも他業種と比べると大分高い。
例えば製造業の営業利益率はだいたい5%ぐらいが平均的。(参考
初期投資がメチャクチャ掛かるけどヒットするのはほんの一握りのため、大半のものはリクープ(費用回収)すらままならず死ぬにも関わらず、新作がリリースされ続けるのも頷ける。

どうしてそんなに儲かるのか。

2012年ごろコンプガチャ が問題になって、最後には消費者庁が違法(景品表示法)だと勧告して業界内で自主規制する騒ぎにまでなりました(騒動のキッカケ?)。要するに、阿漕なやり方で消費者からジャブジャブとお金を吸い取っているから儲かっているのか?

当時は、コンプガチャの違法性云々や、射幸心(可能性の低い偶然性を得ようとする欲求)を煽り云々が争点になっていたような気がしますが、そこは実のところ大した問題では無かったように思っています。
もちろん、未成年者が親の金を遣ってジャブジャブ課金とかだったとしたら大問題ですが、事理弁識能力がある人が自分で稼いだ金を自分の意思で遣う分にはという意味で。
というのも、人間が持つ欲求の内、射幸心なんて取るに足らないものなので、それだけでここまで儲かる筈が無かろうと。ただし、ここから先は実際に経験してみないと分からないので、去年ぐらいから実際にソシャゲで無制限に課金できるようにして実際に体験してみたのですが、それで何となく理解することができました。

アメリカの心理学者、アブラハム・マズロー(の自己実現理論)によると人間には5段階の欲求があり、自己実現(これが5段階目)に向かって絶えず成長する生きものであるとしています。

(欲求の5階層)
1. 生理的欲求: 生きていくために必要なもの(食欲、性欲、睡眠欲)
2. 安全欲求: 病気や怪我のリスクを回避したり経済的安定を求めたいとする欲求
3. 社会的欲求: 友達や仲間が欲しい, ぼっちになりたくない
4. 承認欲求: 友達や仲間から認められたい, 出生したい, 偉くなりたい
5. 自己実現欲求: 創造的な活動がしたい

ソシャゲ(ソーシャル=社会性)というコンテンツは、言わば閉じられた一つの社会で、その中で承認欲求を満たそうとして人は課金をします。ただし、所詮はゲームコンテンツの中の社会なので、その中ではどう足掻いても自己実現欲求を満たすことはできません。逆に言えば、自己実現をする必要が無い箱庭です。つまり、自己実現はしなくても良くて、承認欲求さえ満たせば良い構造だからこそ、(極一部の人が)そこに無尽蔵なまでの投資ができてしまう。これがソシャゲが儲かるロジックなのだと理解。
このロジックと割とよく似ているのが受験戦争ですかね。受験戦争の最大の問題点は結果的にそれが自己実現欲求の満足という観点を置き去りにしていた(良い大学に入る、良い企業に入ること=承認欲求の満足がゴール目標になっていた)ことで、その反省(というか、結果的に国益にならなかった?)から生まれたのが「ゆとり教育」なる考え方だったと思うのですが、何れにしても両極端だなと思います。
それを軸にした戦術として、スタミナ(時間制限を拡張することでアバターを成長させる機会を増やせる仕組み)、ガチャ(アバターを強化する装備アイテムなどを購入できる仕組み)などがある訳です。
逆に言えば、「承認欲求の満足」に紐付かないものは失敗します。その失敗例として思いつくものといえばデレステのドレスショップです。ドレスを変更することでアイドルの総合力が上がるとかそういう要素が一切無かった(仮にあっても課金必須という時点で9割強のユーザからは批判を買う。極めて低い確率であっても無課金ユーザが入手できる方法を用意しておく必要がある...結局ガチャ)ので結果的に全然売れず、最終的にはガチャチケットと抱き合わせ販売する形に落ち着きました。
ちなみに、課金上限は特に設けずに試していたのですが、約1年間での月当たりの課金額はだいたい1万円といったところでした。(ソシャゲという箱庭では狭すぎるので暇つぶしにはなるけど満足は出来ないという感じでした)

2017年8月13日日曜日

ファミコンのステートセーブ(QuickSave)に必要なストレージ容量を計算

だいたいのファミコンのエミュレータには、ステートセーブ機能(マシンの情報を丸ごと保存して復元できる機能)が付いていますが、その中には一体どのような情報が何バイトぐらい記録されているのか、興味本位で調べてみました。(当初、お手軽にググって調べれば分かるだろうと思っていたのですが、良い感じに纏まった情報がパッと見つからなかったので)

調査方法は、Nestopiaというlibretroを使ったNESエミュレータ(OSS)のソースコードを解析する形で実施しました。(たぶん、それが一番楽だと思います)

なお、オリジナルのNestopiaのソースコードはコチラにありますが、本記事では見やすさを優先してGitHubにミラーされている以下のリポジトリ(のバージョン1.47)を参照します。
https://github.com/rdanbrook/nestopia

全体像


上記から、大まかに以下5項目のデータを保持していることが分かります。
  1. CPU: Central Processing Unit
  2. APU (CPU内部): Audio Processing Unit
  3. PPU: Picture Processing Unit
  4. IMG: イメージ?
  5. PRT: 拡張ポート
① CPU


ファミコンのCPUはRP2A03というMOS 6502のカスタム品(リコー製)です。
(オリジナルのMOS 6502との違い)
  • 二進化十進表現(BCD)関連の機能が削除されている
  • APU(後述)が付いている
  • DMA関連の機能が追加されている

1-1 REG: レジスタコンテキスト (7byte)
  • pc (プログラムカウンタ) 2byte
  • s (スタックポインタ) 1byte
  • p (ステータスレジスタ) 1byte
  • a (アキュームレータ) 1byte
  • x (インデックス) 1byte
  • y (インデックス) 1byte

1-2 RAM: メインメモリ (2KB)
流石にメインメモリはデカイ。
デカイといっても、昨今のスマホの数百万分の一程度ですが。
当初(調査前)は、ココ(RAM)が圧倒的にデカくて、他は大したことが無いんじゃないかと想像していたのですが、調べてみるとname-tableというRAMに匹敵する(というか同じ)サイズの巨大なメモリ空間がPPUにありました。その辺は「流石ゲーム機」といった感じですね。(name-tableについての詳細は後述)

1-3 FRM: 割り込み制御情報 (5byte)

1-4 CLK: ticksカウンタ (8byte)
ticksカウンタというのは、CPUの動作周回(Hz)動いたかを示すカウンタです。ココに何バイト使うかはエミュレータの実装依存かと思います。ちなみにファミコンのCPUは 1.79MHz で, 8byte (64bit) は 0~18446744073709551615 までの数値を記憶できるので, だいたい1億日(30万年)ぐらい起動し続けるとticksカウンタがラップアラウンドすることで, 再現性が失われる可能性があるかもしれません。(つまり、8byteあれば事実上ticksカウンタはラップアラウンドしない)

② APU

APU; Audio Processing Unitは、音声の制御に特化した演算装置のことで、実際にはRP2A03の内部に実装されています。だから、Nestopiaの場合、CPUのsaveStateの内部でAPUのsaveStateを呼び出す構造になっているのかと思うと、何かロマンめいたものを感じてしまう。構造的にはAY-3-8910 (PSG音源) のカスタム品ですが, 矩形波だけでなく三角波(笛みたいな音. 1系統のみ)を扱うことができます。また、矩形波 (2系統) についてもデューティー比を0.25, 0.5, 0.75の3種類から選べるようになっていて更に系統別のエンベロープも実装されている豪華仕様です。デューティー比0.25 (, 0.75) の音はノコギリ波に似た感じのあの音です。またノイズ (1系統) と DPCM (1系統) も扱うことが出来ます。オリジナルのAY-3-8910と比べて格段に高い音楽表現能力を有しています。この時代のチップチューン音源は, 現代の表情のない音源システムには無いカオスさがあって面白い。(そういう所に面白さを感じる人間だから東方VGSとかをやっていた訳で)
2-1 FRM (4byte)

2-2 IRQ (3byte)

2-3 EXT (2byte)

2-4 矩形波1 (4+1+3byte)
波形の基本情報4byte + 長さカウンタ1byte + エンベロープ3byteです。

2-5 矩形波2 (4+1+3byte)
系統1と同じ内容です。

2-6 三角波 (4+1byte)
三角波にはエンベロープが無いので, 矩形波と比べて3byte少ない領域で保存できます。

2-7 ノイズ (1+1+3byte)
ノイズにはエンベロープがあります。(何故、三角波にはつけなかったんだろ)

2-8 DMC (12byte)
DMAを制御するためのコントローラのレジスタコンテキストを保持しています。

③ PPU

PPU; Picture Processing Unitは、グラフィックスの制御に特化した演算装置で, スプライトやBGなどの表示制御を行います。 要はGPUですね。(現代のGPUとは根本的に異なりますが)

3-1 REG: レジスタコンテキスト (11byte)

3-2 PAL: パレットRAM (32byte)

3-3 OAM: RAM (256byte)

3-4 NMT: name table RAM (2KB)

3-5 FRM<optional>: PPU_RP2C02 only (1byte)

3-6 POW<optional>: HCLOCK_BOOT only (1byte)

④ IMG

この領域はよく分かりませんが、SaveStateが空関数になっているので何も保存していませんが、friendメソッドなので派生クラスの方で色々と保存しているようです。(少し追いかけてみたところ、マッパー種別に実装が分かれているようでした)

⑤ PRT

5-1 4SC optional (1byte)
拡張ポートが4つかどうかだけをフラグとして管理しているらしい。 データは特に無いので1bitでも十分だが、1byteとしておきました。

5-2 拡張ポート device (0byte)
IMGと同様、saveSatateメソッドが実装されていましたが空でした。
何かしらのコンテキストやRAMを持つデバイスの場合は実装する必要がある(現状対応していない)のかもしれません。

5-3 拡張ポート (3byte)

結論
上記の容量を合計すると 4468 + α byte になります。
約4KBってところですね。なお、Nestopiaの場合、RAMやNMTなどのサイズが大きな領域はZLIBを用いて圧縮しているので、ファイル上のサイズはもっと小さくなる筈です。ただし、これは飽くまでも全ROM共通の最低サイズで、マッパー(ROMの種類)によってαのサイズが大分変わってくる筈です。(その内、代表的なマッパー分だけでも解析してみようと思います)
もちろん、これはNestopia (v1.47) の場合の話しです。
でも、ファミコンは既に解析され尽くされている感があるので、他のエミュレータでもだいたい同じようなものだろうと思っています。

リアルトーンケーブルをLogic Pro Xで使う

Rocksmith 2014という、実際のギター(やベース)を使った遊ぶ音ゲーで使うリアルトーンケーブルをLogic Pro X(DAW)で使ってみました。

リアルトーンケーブルは、シールドの片方がUSBになっているような形状のケーブルです。
https://www.amazon.co.jp/%E3%83%A6%E3%83%BC%E3%83%93%E3%83%BC%E3%82%A2%E3%82%A4-%E3%82%BD%E3%83%95%E3%83%88-%E3%83%AD%E3%83%83%E3%82%AF%E3%82%B9%E3%83%9F%E3%82%B9-%E3%83%AA%E3%82%A2%E3%83%AB%E3%83%88%E3%83%BC%E3%83%B3%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB/dp/B008R50VRC

使い方は簡単。

パソコン(Mac)とギターをリアルトーンケーブルで接続した状態で、Logic Pro Xを起動し、プロジェクトにトラックを追加して、この時に「ギターまたはベース」を選ぶだけです。
入力デバイスの部分が「Rocksmith USB Guitar Adapter」になっている筈
空プロジェクトにトラックを追加してみた状態
後は、追加したギタートラックを選択した状態でギターなりベースなりを鳴らせば、選択されているライブラリのエフェクトが掛かった音が鳴ります。当然、エフェクトも自由に弄れるし録音も出来るので、Mac + Logic Pro Xがあれば自宅練習や宅録するのにアンプやエフェクタは一切不要になります。

リアルトーンケーブルでなくても、オーディオインタフェースを買えば似たようなことは出来ますが、3000円ぐらいの安物のオーディオインタフェースとシールド(相場は1500円ぐらい?)を買うよりは、リアルトーンケーブル(3000円ぐらい)が1本あれば良いし、性能面でもそんなに気にならない(というか安物のオーディオインタフェースよりも遥かに良いと思う)ので、コスパ面ではリアルトーンケーブルがベストかもしれません。

なお、Logic Pro Xを持っていなくても、OSに付属しているGaragebandで(若干設定が必要らしいですが)似たようなことが出来るらしいです。
参考記事: http://catsmane.net/wsblog/?p=2273

ついでに、私の手元の環境がMacなのでLogic Pro Xで試しましたが、Windowsでも(※ちゃんとしたDAWソフトを使えば)多分似たような事ができるかと思います。
参考記事: http://electric-guitarz.net/amp-simulator/

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...