ポケモンGOのためのポケモン講座

            <h1>ポケモンGOのためのポケモン講座</h1>

世界的に話題になっているポケモンGO(Pokémon GO)ですが、主にプレイをしている大人たちは「赤・緑」や「金・銀」を子供のころにプレイしていた世代が多いと思います。

2016年7月現在、ポケモンのゲームは大きく『6つ』のシリーズが存在します。 2016年11月18日には、7つ目のシリーズ最新作「サン・ムーン」が登場する予定です。

ポケモン界隈では、各シリーズのことを『第○世代』と呼びます。 まずは各世代を振り返ります。

第一世代「赤・緑・青・ピカチュウ

おそらく最も有名な世代が第一世代です。 ポケモンの原点です。

1996年2月27日にゲームボーイ用「赤・緑」が発売されました。 「赤・緑」が大ヒットしたため、ポケモンの出現確率とストーリがほんの少し違う「青・ピカチュウ」も発売されました。

リメイク版のゲームボーイアドバンス用「ファイアレッドリーフグリーン」もあります。 リメイク版では、その時点の最新世代までのポケモンが登場するような変更が加えられています。

最新の任天堂携帯ゲーム機3DSでも遊べるように、VC(バーチャルコンソール)版「赤・緑・青・ピカチュウ」も登場しています。

登場ポケモンは151種類。

主人公(プレイヤー)はポケモン図鑑を完成させるために旅にでます。 旅の途中でポケモンという不思議な生き物を捕まえ、育て、バトルをし、ライバルと競い合い、立ち寄る町にあるポケモンジムを攻略し、途中に出てくる悪の組織をやっつけ、ポケモンリーグでチャンピオンになるというストーリーの流れは全世代で共通しています。

ポケモン赤・緑には「同じゲームなのに2種類同時発売」「通信ケーブルを用いた遊び」という当時では画期的なアイディアが盛り込まれており、その後のゲームにも多くの影響を与えています。 ポケモン赤・緑の登場以降、メダロット遊戯王ドラクエモンスターズなど、様々なゲームが「同じゲームなのに2種類同時発売」を真似しています。 最近だと妖怪ウォッチがそうですね。

今でこそ当たり前ですが、友達とゲーム内のデータを交換するというのもポケモンの「通信ケーブルを用いた遊び」が走りです。 『ゲームボーイの限界に挑戦する』という想いのもと開発されたそうですが、その辺は(株)ゲームフリークの田尻さんや、(株)ポケモンの石原さん、(株)任天堂の故岩田さんのインタビュー記事などで垣間見れます。 ある種、昨今のソーシャルゲームの原点だと思います。

2016年7月現在、ポケモンGOに登場するポケモンは全て赤・緑で登場しているポケモンです。

ポケットモンスター 赤 専用ダウンロードカード特別版 (『ポケットモンスター X・Y・オメガルビー・アルファサファイア』で利用できる幻のポケモン「ミュウ」の特典コード付)
ポケットモンスター 赤

ポケットモンスター 緑 専用ダウンロードカード特別版 (『ポケットモンスター X・Y・オメガルビー・アルファサファイア』で利用できる幻のポケモン「ミュウ」の特典コード付)
ポケットモンスター緑

第二世代「金・銀・クリスタル」

1999年11月21日にゲームボーイカラー用「金・銀」が発売されました。 こちらも大ヒットしたため、「クリスタル」も発売されました。

リメイク版のDS用「ハートゴールドソウルシルバー」もあります。

登場ポケモンは100種類増えて、251種類。

画面がカラー対応し、色違いのポケモンが低確率で存在するという遊びが追加されました。 また、ポケモンのタイプに悪、鋼が追加され、性別、タマゴ、昼と夜の時間(現実世界の時間と同期させられる)など重要な要素もこの世代で登場しました。

クリスタルでは、主人公を男か女かを選択できるようになりました。

ポケットモンスター ハートゴールド(特典無し)
ポケットモンスターハートゴールド

ポケットモンスター ソウルシルバー(特典無し)
ポケットモンスターソウルシルバー

第三世代「ルビー・サファイア・エメラルド」

2002年11月21日にゲームボーイアドバンス用「ルビー・サファイア」が発売されました。 過去の2世代と同様に、後から「エメラルド」も発売されました。

リメイク版の3DS用「オメガルビーアルファサファイア」もあります。 このリメイク版が2016年7月現在では最も最新のポケモンであり、すべての世代のポケモンが登場します。

登場ポケモンは135種類増えて、386種類。

ポケモンに性格、とくせいという新パラメータが追加され、2体のポケモンでバトルするダブルバトルが登場しました。

ポケットモンスター オメガルビー
ポケットモンスターオメガルビー

ポケットモンスター アルファサファイア
ポケットモンスターアルファサファイア

第四世代「ダイヤモンド・パール・プラチナ」

2006年9月28日にDS用「ダイヤモンド・パール」が発売されました。 後から「プラチナ」が発売されました。

登場ポケモンは107種類増えて、493種類。

DSになったことで2画面になりました。 第三世代までに登場したシステムが上手く組み合わされており、非常に人気の高い世代です。

ポケモンファンの間では、このシリーズのチャンピオンは人気の高いキャラクターの一人です。

ポケットモンスター ダイヤモンド(特典なし)
ポケットモンスターダイヤモンド

ポケットモンスター パール(特典なし)
ポケットモンスターパール

第五世代「ブラック・ホワイト/ブラック2・ホワイト2」

2010年9月18日にDS用「ブラック・ホワイト」が発売されました。

過去の世代と同様、「グレー」というマイナーチェンジ版が登場するのではないかと期待されていましたが、 期待を越え、シリーズ初のナンバリング続編DS用「ブラック2・ホワイト2」が2012年6月23日に発売されました。

登場ポケモンは156種類増えて、649種類。

かくれとくせいというパラメータが登場し、トリプルバトルローテーションバトルなど新しいバトルシステムが登場しました。

第五世代は「新鮮な気持ちでプレイしてほしい」「初めてのポケモンでも楽しめる」をコンセプトに、クリアするまで過去世代のポケモンが登場しないのが特徴です。

ポケットモンスター ブラック
ポケットモンスターブラック

ポケットモンスター ホワイト
ポケットモンスターホワイト

ポケットモンスターブラック2
ポケットモンスターブラック2

ポケットモンスターホワイト2
ポケットモンスターホワイト2

第六世代「X・Y」

2013年10月12日に3DS用「X・Y」が発売されました。

登場ポケモンは72種類増えて、721種類。

ポケモンのタイプにフェアリーが追加されました。 メガシンカというシステムが追加され、過去の世代では微妙な立ち位置だったポケモンたちが一転して大活躍するようになりました。

ポケットモンスター X
ポケットモンスターX

ポケットモンスター Y
ポケットモンスターY

第七世代「サン・ムーン」

2016年11月18日に3DS用「サン・ムーン」が発売される予定です。 3年ぶりとなる新世代の登場です。

ポケットモンスター サン 【Amazon.co.jp限定特典】オリジナルマイクロファイバーポーチ(イエロー)
ポケットモンスターサン 【Amazon.co.jp限定特典】オリジナルマイクロファイバーポーチ(イエロー)

ポケットモンスター ムーン 【Amazon.co.jp限定特典】オリジナルマイクロファイバーポーチ(ブルー)
ポケットモンスター ムーン 【Amazon.co.jp限定特典】オリジナルマイクロファイバーポーチ(ブルー)

ここまでがゲームについてです。 ポケモンGOに触発されてポケモンのゲームをやってみようという人は、「アルファサファイアオメガルビー」もしくは「サン・ムーン」がおすすめです。 昔プレイした思い出に浸りたいという人は、VC版「赤・緑・青・ピカチュウ」がおすすめです。

ポケモンはゲーム以外にも、いくつかの人気コンテンツがあります。

アニメ

マサラタウンのサトシ少年が、世界を旅してポケモンマスターを目指すというストーリーのアニメです。 1997年4月1日に放送が開始し、ポリゴンショックという事件にも負けず、今でも続く人気アニメです。 毎年、夏に劇場版が公開されています。

カードゲーム

ポケモンカードゲーム遊戯王よりも歴史の長い、日本発のトレーディングカードゲームです。 1996年10月20日に登場し、今でも新しいカードが登場しています。

ポケモンカードゲームXY BREAK ポケットモンスター カードゲームスターターパック
ポケットモンスターカードゲームスターターパック

ポッ拳

ポケモン格闘ゲームです。 ゲームセンターなどに設定されているアーケード版と、WiiU版があります。

ポッ拳 POKKÉN TOURNAMENT (【初回限定特典】amiiboカード ダークミュウツー 同梱)
ポッ拳

キャラクター

ゲームだけではなくキャラクターとしてもポケモンは大人気です。 最も有名なキャラクターは「ピカチュウ」ですね。 全国に11店舗あるポケモンセンター、9店舗あるポケモンストアは、ポケモンのキャラクターグッズを専門に取り扱い、海外の観光客にも人気のスポットです。

ポケモンセンター オンライン

世界大会

ポケモンのゲーム、カードゲーム、ポッ拳の世界チャンピオンを決めるイベント「ポケモンワールドチャンピオンシップス(WCS)」が毎年開催されています。 それぞれの分野で、世界中の各国の予選を勝ち抜いた代表が集い、チャンピオンを決めています。

2015年のゲームマスター勝戦

まとめ

第一世代の登場からポケモンは今年で20周年です。

ポケモンの市場規模は4兆円を超えていると言われています。 ポケモンGOの登場で、市場規模はさらに拡大されると思われます。

子供の頃にポケモンをしていた人は「現実世界にポケモンがいたらこのポケモンを捕まえよう!」みたいな妄想をした人も少なからずいるのではないでしょうか。 ポケモンGOは単なるゲームではなく、そんな妄想を非常に高いレベルに実現してくれる夢のツールだと考えています。

ポケモンGOポケモンに興味持った人はぜひゲーム最新作「サン・ムーン」もやってもらいたいです。 よきポケモンLIFEを。

最近構築したスマホゲームのサーバーの話

            <h1>最近構築したスマホゲームのサーバーの話</h1>

これは、少し前に開発/運用していたスマホゲームのサーバー構成です。 大きく5つのブロックに分けています。

[peg-image src="https://lh3.googleusercontent.com/-9pYT3oOxQi0/VvIxO4SIarI/AAAAAAAAHvQ/Rnv3xEmDVyc9FAgD9N39qGtaOV8hzvNrwCHM/s144-o/system_map_2015.png" href="https://picasaweb.google.com/101465714064559237741/iJepED#6265124163322145458" caption="" type="image" alt="system_map_2015.png" image_size="1618x893" ]

  • Contents 画像やパッチを配信するサーバー群。
  • Application ゲームの中枢。WebAPIのためのサーバー群。 ゲームロジックはほとんどここに置いてあります。
  • Socket リアルタイムマルチプレイのためのサーバー群。
  • Tool 管理者がなにかしら操作したり、KPIを見たりするためのサーバー群。
  • その他

Contents

画像やパッチを配信するサーバー群です。

https://contents.tnnsst35.me/1.00.00/assets/hogehoge https://contents.tnnsst35.me/1.01.00/assets/hogehoge

上記のように、Versionごとに管理、配信するようにしています。 実際にはCDNでキャッシュを返しています。

Application

ゲームの中枢。WebAPIのためのサーバー群です。

ほぼ全てのデータはMySQLに格納しており、Redisのデータ型を上手く利用できる一部のデータだけをRedisに格納しています。

MySQLのデータは、データの用途に対していくつかのグループをつくり、グループごとにデータベースを作成しています(機能による垂直分割)。 とある要因で水平分割はしていませんが、将来的にできるような想定でアプリケーション側を構築しています。

MySQLアクセスによる負荷の軽減のために、Tomcatサーバーのヒープメモリ上に、MySQLのマスタデータを一部キャッシュしています。 キャッシュタイミングはTomcat起動時で、MySQLのマスタデータが切り替わる時に、Tomcatを再起動してあげる必要があります。 ダウンタイムなしにアップデートが可能で、サーバー間によるキャッシュデータの差異をなくすために、ホットスタンバイさせているTomcatを先に再起動/最新データをキャッシュさせ、Proxyでアクセス先を変更しています。

残念ながらApplicationサーバーは、最新のVersionのみしか管理、配信できていないので、ゲームアップデート時にメンテナンスが高確率で必要など課題を残しています。

Applicationサーバー群のパフォーマンステストには、JMeterを利用しています。

Socket

リアルタイムマルチプレイのためのサーバー群です。 Node.js + socket.ioで、セッションストア兼リレーサーバーにはRedisを採用しています。 Node.jsのマルチスレッド対応にはPM2モジュールを利用しています。

Socketサーバー群のパフォーマンステストには、自作クライアントを利用しています。

Tool

管理者がなにかしら操作したり、KPIを見たりするためのサーバー群です。 実際には、ランキング集計バッチなんかも動作させています。

その他

その他に置いているサーバー群です。 Deployは、DeployサーバーのユーザーがSubversionからリソースを取得し、Contents、Application、Socket、Toolの各サーバーにrsyncで配布します。

通信ルール

クライアントとサーバーの通信には以下のルールを適応しています。

  • サーバーからのレスポンスはJSON形式。
  • サーバーからクライアントへのレスポンスに、最新クライアントVersionを付加するので、今のクライアントVersionと比較して古ければストアに飛ばす。
  • サーバーからクライアントへのレスポンスに、最新パッチVersionを付加するので、今のパッチVersionと比較して古ければ(タイトルから遷移するときにパッチ適応させるため)タイトルに飛ばす。
  • サーバーがメンテナンスの場合は、メンテナンスコードをレスポンスに含めるので、クライアントでメンテナンス表示にする。

まとめ

「ユーザーがいっぱい来たらお金をかけてがんばりましょう」というのが方針なので派手なことはしていませんが、最低限の冗長化と負荷対策、スケールアウトできる構成にしています。 残念ながら悲鳴をあげるほどゲームが流行らなかったのですが・・・。

Redis、Socketサーバー群の各ミドルウェアの採用は私が決めましたが、それ以外は前任者から引き継いだものをより柔軟に対応できるように構成を再構築したものです。

ポケモン緑をプレイ中(4日目)

            <h1>ポケモン緑をプレイ中(4日目)</h1>

4日目。プレイ時間が12時間くらい。 シルフカンパニーでサカキを倒し、ジムでナツメも倒しサイクリングロード経由でセキチクシティに到着。 パーティはこんな感じ。

[peg-image src="https://lh3.googleusercontent.com/-1DER93QLOVw/VuZJgDCItzI/AAAAAAAAHts/CiX7XzXMX0c2GPxJest2C9zJjwN9XGGOg/s144-o/IMG_3959.JPG" href="https://picasaweb.google.com/101465714064559237741/iJepED#6261773146824161074" caption="" type="image" alt="IMG_3959.JPG" image_size="3024x3024" ]

ロコンがほのおのうずを覚えたので、キュウコンに進化させました。

ポケットモンスター ピカチュウ 専用ダウンロードカード特別版 (『ポケットモンスター X・Y・オメガルビー・アルファサファイア』で利用できる幻のポケモン「ミュウ」の特典コード付) &【Amazon.co.jp限定】「ポケットモンスター ピカチュウ」デザイン PC壁紙配信(2016年3月31日注文分まで)
ポケットモンスター ピカチュウ 専用ダウンロードカード特別版

ドラゴンクエストモンスターズ ジョーカー3【Amazon.co.jp限定】「魔法使いのゆびわ★★★」を先行入手できるダウンロードコード付
ドラゴンクエストモンスターズ ジョーカー3

ポケモン緑をプレイ中(3日目)

            <h1>ポケモン緑をプレイ中(3日目)</h1>

3日目。プレイ時間が10時間くらい。 シオンタウンを攻略後、ヤマブキシティシルフカンパニーを攻略中です。 パーティはこんな感じ。

[peg-image src="https://lh3.googleusercontent.com/-3jC4NJ8DGkU/VuZJgM_CqNI/AAAAAAAAHtc/cABY39DssXg0nAmJ6HDtmU3ljqM3_-b0Q/s144-o/IMG_3958.JPG" href="https://picasaweb.google.com/101465714064559237741/iJepED#6261773149495535826" caption="" type="image" alt="IMG_3958.JPG" image_size="3024x3024" ]

ポケットモンスター 赤 専用ダウンロードカード特別版 (『ポケットモンスター X・Y・オメガルビー・アルファサファイア』で利用できる幻のポケモン「ミュウ」の特典コード付) &【Amazon.co.jp限定】「ポケットモンスター 赤」デザイン PC壁紙配信(2016年3月31日注文分まで)
ポケットモンスター 赤 専用ダウンロードカード特別版

ドラゴンクエストモンスターズ ジョーカー3【Amazon.co.jp限定】「魔法使いのゆびわ★★★」を先行入手できるダウンロードコード付
ドラゴンクエストモンスターズ ジョーカー3

ポケモン緑をプレイ中(2日目)

            <h1>ポケモン緑をプレイ中(2日目)</h1>

2日目。プレイ時間が7時間を突破! タマムシシティでエリカを倒して、ロケット団のアジトを壊滅させました。 パーティはこんな感じ。

[peg-image src="http://lh3.googleusercontent.com/-G7SCTD3XAFU/VtZERZZ5S2I/AAAAAAAAHqw/vuaNsaaCUg8/s144-o/IMG_3957.JPG" href="https://picasaweb.google.com/101465714064559237741/iJepED#6257263797945846626" caption="" type="image" alt="IMG_3957.JPG" image_size="2626x2682" ]

ロコンが新加入。バトルで使っていないポケモンはボックスにあずけました。 次はイーブイをもらいつつ、シオンタウンのポケモンタワーへGO!

ポケットモンスター 緑 専用ダウンロードカード特別版 (幻のポケモン「ミュウ」が『ポケットモンスター X・Y・オメガルビー・アルファサファイア』で受け取れる) &【Amazon.co.jp限定】「ポケットモンスター 緑」デザイン PC壁紙配信(2016年2月27日注文分まで)
ポケットモンスター 緑 専用ダウンロードカード特別版

妖怪三国志 (封入特典『コマさん孫策』武将レジェンドメダル 同梱) 早期購入者特典『コマさん孫策』フィギュアストラップ & Amazon.co.jp限定特典(缶バッジ2個セット(コマさん孫策、コマじろう孫権)) 付
妖怪三国志 (封入特典『コマさん孫策』武将レジェンドメダル 同梱)