むち打ちエンジニおじさんの週末
『アイ ハブ ア 花』
『アイ ハブ ア 団子』
『んっっ! 花より団子』
『アイ ハブ ア 信長』
『アイ ハブ ア 協奏曲』
『んっっ! 信長協奏曲(のぶながこんちぇると)』
『花より男子〜』
『信長協奏曲(のぶながこんちぇると)〜』
『んっっ!』
『ポイっ』
『まーきのっ』
最近、はまっています。お笑い芸人・おばたのお兄さん。
今回の記事は3部構成です。
- 遊戯王(アプリ)をシステムの面から考察してみる。
- 怒らない技術という本を読んでみた感想。
- rasberry PiでLチカやってみた。
■遊戯王(アプリ)をシステムの面から考察してみる。
最近こんなアプリが出ました。
初代遊戯王のゲームです。僕が小学生の頃に始まった大人気カードーゲームです。今回はこのゲームをむち打ちエンジニアおじさんの視点(IT)から考察していきたいと思います。このアプリの大きな特徴は以下のようになっています。
- 課金ゲーである。
- アプリサイズは100M以内に抑えられている。
- 通信が発生する。(多分httpのみ)
- 大量のユーザーが集中的にアクセスする可能性がある。
まず1つ目課金ゲーです。僕は昨日と今日で6700円課金しました。すごいですね、課金ゲーを考え出した人。ps4のソフトが1本買えちゃいます。こんな記事がありました。参考程度に、非ITですが、、。
次に、2です。このアプリはアプリサイズが100M以内に抑えられています。これはwi-fi接続なしでもiOSアプリをダウンロードできるようにしている工夫です。また初回バトル後にリソースをダウンロードさせています。これも比較的軽かった印象です。まあ、実際遊んでみたところアニメーションは比較的少なめでした。バトルに集中できるのでそちらの方がいいかなあ。
3です。当たり前ですが、通信が発生しています(プレー中にも)。ここでは多分httpの通信が行われています。遊戯王のアプリがインストールされているiPhone(クライアント)から、外部サーバーにリクエストが投げられてそのリクエストによって様々なレスポンスデータが返ってきます。これはwebページを見るのと同じ仕組みで、そこではリクエストがURLになり、レスポンスが表示されているデータになります。遊戯王にはフレンド同士の通信対戦機能があるが、ここにはリアルタイム通信という機能が使用されています。仕組みは、webページを見るのと同じでサーバ/クライアント型になっています。全通信端末がクライアントとなり、ネット上にある専用のサーバに接続して通信を行っています。
そして、最後に4です。大量のユーザーが一度にアクセスする可能性があります。故に、大規模なサーバー構成で対処しなければなりません。一つのサーバーに対し許容数以上のアクセスをさせない為に、サーバーを複数台用意してロードバランサーで処理を割り振らなければなりません。また、サーバーが故障してもデータを失わせない為にRAID構成で情報を分散させます。この規模のシステム構成だと運用費で月500万円以上かかります。初期開発費は5000万~1億円くらいでしょう。プロジェクト自体は4、50人程度、クライアントサイド、サーバーサイド、グラフィック、インフラの担当に分かれます。宣伝費は500~3000万円かかると言われているそうです。以上の仮定の上での年間のシステム維持費は500万*12+50人*100万(人件費)*12=6億6千万円になります。ここから初期開発、繰延資産の必要経費や宣伝費、営業費等が上乗せされます。
結構かかりますね、、。赤字覚悟でしょう、、。
まあ、パズドラのようにヒットすればぼろ儲けでしょう。なんせアプリケーションなので原価はほとんどかかりません。以上、アプリ遊戯王の考察でした。
■怒らない技術という本を読んでみた感想。
コンビニでこんな本を見つけたので思わず買ってしまいました。
仕事、プライベートで感情的になることが最近多く感じていたので、試しに読んでみました。漫画でわかりやすく解説しているので、スラスラ読めました。一言でようやくすると、「感情的になってもいいことないよ、感情をコントロールして仕事をうまくやっていこ!」でした。。いや、当たり前だけど常に実行できていないので自分を俯瞰するのにはちょうど良い本でした。まあ、感情をコントロールしすぎて「本心は何??」って言われそうですけど。。。
■rasberry PiでLチカやってみた。
raspberry pi3を購入したので、早速電子工作をやってみました。
初めての電子工作だったので難易度の低いLEDランプを制御して点灯させてみました。raspberry piのGPIOピンとLEDをブレッドボードにさした抵抗器とシャンパンワイヤーでつないでみました。制御プログラムは赤LEDの電源ON→0.1s待機→赤LEDの電源OFF→0.1s待機→白LEDの電源ON→0.1s待機→白LEDの電源OFF→0.1s待機を100回ループさせるといった簡単なロジックをscratchのGUIで組みました。以下に動画で載せています。
https://www.instagram.com/p/BO891qlBR4j2KIK7mLEIBY5Qu6UA39V8E5GFMw0/
長くなりましたが、以上です。また書きます。