FaceBookで遊べるゲームを作ろう!

Beginning Facebook Game Apps Development (Beginning Apress)

Beginning Facebook Game Apps Development (Beginning Apress)

第1章 
ブラウザで遊べるゲーム HTML5Canvasタグの使用によるゲーム開発の可能性 ゲーム開発における専門用語 ゲームの視点(サイドスクロール FPS Third Person アイソメトリックなどなど。)業界用語(AAAゲームとか。AIとか。)
ゲームのジャンル(シミュレーション アクションなど)
つまるところ、ゲーム開発のすそ野がブラウザの発達とプログラミング言語の柔軟化により思いっきり広がったということ。億単位でいるFacebookのユーザに、ゲーム・エンタテインメントを提供する道筋が開放されるようになったということ。このチャンスに行動を移すための具体的に必要な手段・ノウハウを書籍にしたんだよということが書いてある。そして本書の想定する読者は、JavaScript初心者であります。言語の説明なんかもいたします。ここがわからなかったらはじまらないというところから説明するので、安心してFacebookゲーム開発のあらましがどんなものか、この本でばっちりつかんでくださいということです。(442文字)

第2章
JavaScriptの紹介。簡単な「文法」の概略的な説明。そしてJavaScriptで打ち込んだコードをすぐに実行に移せるソフトウェアの紹介(ChromeFireFoxJqueryとMooToolsのようなJavaScriptで書かれたコードの固まりの紹介。ゲーム開発に必要な最小限のステップの説明の後に、もっとも単純素朴なゲームの打ち込みができるようになっている。
「正解の数」という変数と、「当て推量の数」という変数を設定する。
ブラウザをみているプレイヤーが、「当て推量の数」に、適当な数字をクリックする。
「正解の数」という変数には、まず1から10の数をでたらめに生成させる関数を定義して、
その定義された関数が、出力した数字をあてる。
二つの変数を比較して、3つの場合に応じて、異なる文字列がブラウザの画面に出力するように
コードを書く。一つ目→「正解の数」>「当て推量の数」であるなら、Higherと出力。
二つ目→「正解の数」<「当て推量の数」であるなら、Lowerと出力。
そして3つめ→「正解の数」=「当て推量の数」YouWin!と出力。(480文字)

第3章
HTML5のタグの中のCanvasAPIの使い方の始めの一歩。
「ドット絵」の仕組みで、ブラウザに「絵」を描くことが可能になる。
描画をコンピュータが理解可能な「作業群」に分類して、その作業手順を打ち込んでいく。
本書では、四角形や三角形のサンプル的なプログラミングを行う。デカルト座標
平面上の位置を座標で表現可能にする。点の定義が出来たら、線分の定義は両端の点の
連結をコンピュータに命令すれば、グラフィックとして描画可能になる。
描いた図形の画面上での移動は、数学的には、図形として認識されている「点の集合」一つ一つに行列の積の計算をするようにすると、いかようにも「並行移動」「回転移動」が可能に
なる。この章の後半では、ブラウザをみているプレイヤーがキーボードで描画された図形を
移動させることを可能にするコードも説明。上下左右コントロールボタンをプレイヤーが
入力したと、認識したら、そのボタンに応じて、図形が、座標の位置を変更させる形で
描画される。(パラパラ漫画の原理)(443文字)

第4章 ゲームデザインの計画
デザインを練る過程を一渡り概観します。どんなゲームを開発していくかを企画するために
アイディア出しをする。自分が開発しているゲームは、どんな人が遊ぶのかということをあらかじめ想定する。具体的な形が決まったら、そのゲームの競合相手がいるか確認、いたらどういう手段をつかって差別化するか考える。ゲームの「芸風」がイラストを決める。ゲームの各開発段階において、どういうスキルが要請されているか洗い出す。ゲーム開発において使える資源は有限です。その資源だけでは実現できそうにないものはどんどん削っていって、計画に現実性をもたせていく。
Plan Project MileStone(計画の進行に、区切りをつけていく。)
FeatureFreeze→CodeFreeze→SystemTest→Beta→FinalProduct
次のステップとしては
(プログラミングの作業をする。)
(コードを走らせてみる。)
(実際に、ユーザに使ってもらう。駄目だし。)
FaceBookに展開する。)
という流れ。(437文字)

第5章 ゲームプログラミング以外のスキルで必要なことまとめ
コンピュータでの描画の二つのタイプについて。描画を行うためのソフトウェアの紹介。描画のための作業工程。スケッチ作業→推敲→作業着手(Produce)→絵の技法一般の説明。
陰影の付け方。ゲーム画面全体に奥行きを与えるテクニック。彩色。プレイヤーの視点を特定の場所に向けさせる工夫いろいろ。うごき。影をつけることで、遠近効果を出す。ゲームの音響についての一般論。どんなソフトウェアやハードウェアを使ったらゲーム開発に必要な音声素材が作成できるのかの具体的なステップが書いてある。録音機器の紹介。
グラフィックと音楽というのは、著作権という形で法律上の保護が与えられている。
知的財産権とはどういうものなのかという、導入部分も書いてある。
CreativeCommonsやAlike、GNU GeneralPublic Licence、Apache2.0。
MIT。Dual/MultiLicense
などなど。どのライセンス契約を締結するかによって、コードや素材を使っている人の
権利内容が違ってくるから気をつけるようにということ。(456文字)

第6章

一人プレー 舞台は宇宙空間 敵機は10匹 使用する宇宙船は一機
敵機は、スクリーンを動き回る。 敵機は一定の間隔でミサイルを撃ってくる。
宇宙船は、プレイヤーが操作する。プレイヤーは敵機にレーザーを撃つ。
宇宙船がミサイルに被弾するとゲームオーバー。宇宙船がすべての敵機を打ち落とすと
ゲーム終了。

今までの学習した内容を実践する。上記のゲームルールでシューティングゲーム
開発を最初から最後まで行う。もちろん、本書にはすべてのサンプル・コードが付属
しており、PCのブラウザでその内容を動かすこともできる。
ゲームの音声や、敵機や自機のイラストも著作権料がかからない素材をつかっている。
ゲームの全体のイメージがぶれないように、開発の初期段階でちゃんとした計画を
つくっておくことが大事になってきます。
開発の途上で、変更したいところがでてきたら、その都度、本当にその変更が適当か
どうか考えてから、開発の方針を決めましょう。(418文字)

第7章 TicTacToe
AIのプログラミングの仕方をすこしだけかじって、対コンピュータの3目並べゲームを
つくる。ソーシャルゲームといわれているジャンルのゲーム開発に必要な技術的な
Tipsが掲載されています。人気のソーシャルゲームとそうでないソーシャルゲーム
分ける境目がどこなのかという、開発とはすこし離れた話も登場する。
ゲーム参加者へのご褒美が充実しているかどうか、放っておいてもゲームが
進行するのかどうか。VirtualMoneyによる、グッズの買い増しとか。
すこし、生々しい話が。Zyngaという会社がIPOしているとか。
人気のゲームを開発している小さな会社が、ものすごい金額を出資してもらったとか。
(299文字)

第8章 Facebookに、自作のアプリを公開する手順
アカウントを取得して、開発したアプリをFacebookのユーザにつかってもらえるように
する手順が書いてある。ユーザのPC(クライアント)と、アプリ開発者側のPC(サーバ)をFacebookのサーバが中継するという形をとる。本書では、公開するアプリをHerokuという
サービスを使ってDeployする。Herokuがサーバになり、自分でサーバをもたなくて済む。
Facebookにアカウントを持つユーザの様々情報を(GraphAPI)というAPICallを
アプリに記述することで、ユーザの様々な個人情報をFacebookのサーバから引き出す
ことができる。本書では、筆者の所在地から一定の距離範囲内の喫茶店のリストをFacebook
のサーバに要求して、FBのサーバがそれに応答して、喫茶店のリストを筆者のPCに送りつけてくるというデモが書いてある。(371文字)

第9章 Facebookが、ゲーム開発者に用意している便利な仕掛けについて。
今話題の「Facebook Open Graphアプリ」とは何か [in the looop]
世界中の人がアクセスしているFBで、ゲームを楽しんでもらうサービスをどうやって提供していくかが、本書の課題。FBの会員になっている人は、自分の知り合いである他の会員とのコミュニケーションを楽しみたくて、FBで提供されるサービスを消費する。
FBという会社は、FBで遊べるゲームを開発する人に対して、「すこしでもゲームをお客に楽しんでもらうための開発の道具」を提供している。色々あるが、
一つ目、OpenGraphProtocol。FBの会員が、「ねえ、みんな、僕(私)は、いまパズルゲームで遊んでいるよ!」のようなメッセージを、他の友人に公開できるようにする仕組みを
ゲームを作る人が、自由に利用できる仕掛け。
Achievement。ゲームで高得点を出した人に、「ご褒美」を提供できる仕組みが利用できる。
FacebookCredit ゲームで遊ぶFBの会員が、ゲームの中で「買い物」(新しいパズルのステージなど)ができるようになる仕掛け。FBの会員は、「FBの中でつかうお金」を、「現実のお金(クレジットカード)」で「買う。」
Role Insightなど、ゲームを開発する業者が、ゲームを遊んでいる会員の動きを観察するための手立ても用意されている。(519文字)

第10章 実際に、ゲームをつくって、FaceBookの会員が遊べるところまで段取る
どんなゲームをFBの会員に提供するかの企画と立案をして、実際にコードにする。写真のイメージファイルを、3×3のマス目に分割して、でたらめにならべかえて、ユーザがそれを元に戻して、写真を復元するというパズルゲームの仕組みを解説付きで、コード化。
FaceBookのユーザは、世界中から様々な情報を、友人や第三者に向けて発信する。写真はその代表的なデータの一つ。ゲームで遊ぶ人がFaceBookの会員であるメリットを最大限活かすために、最初に作ったパズルゲームで復元していく写真を、FaceBookの会員が、自分で撮影して
自分のページに投稿するものを利用できる「仕掛け」を組み込む。以上の段取りの中で
FaceBookのサービス内容と、ゲームの娯楽性を組み合わせる手法の事例研究ができる。
ゲームのコードはJavaScript。作ったゲームをHerokuに展開。そのために書き込む必要のある
コードはPHP。(398文字)

第11章 Adding FaceBook Components
せっかく、FB会員向けにゲームを開発したのだから、「おもてなしの精神」でもっとゲームの
娯楽性を持たせる。手始めに、プレイヤーがゲームをクリアした時間を記録することができるようにコードを改変。短い時間でクリアできた人が、ランキング表示されるようにする。
パズルゲームなので、分割されているピースの数が多ければ多いほど、ゲームの難易度は高くなる。そこで、今までに書いたこのパズルゲームで、画像をいくつのピースに分割するかを
指定する「変数」に、色々な数値を入れることで、
「初級者向け」「中級者向け」「上級者向け」のパズルステージを作って、プレイヤーが
好みのレベルを選べるようにする。このゲームのプレイヤーが、「どのゲームステージ」を
「どれくらいの時間」でクリアしたのかといった数値情報を、Herokuが用意しているデータベースで管理できるようにする方法も紹介されている。個人情報の取り扱い方針の策定。
ゲーム開発者と、プレイヤーの間の取り決めの設定。ゲームをサーバに展開するときの
諸注意。(443文字)

第12章 開発して、FBに展開したゲームを、プレイヤーに知ってもらう色々な方策
WordPressというソフトウェアをサーバにいれて、ゲームの宣伝を目的としたウェブサイトをつくる。(ウェブサイトの立ち上げ方、安価なレンタルサーバ業者の紹介など。)WordPressのコードに、出来合いのコードを挿入することで、ウェブサイトの中身がFBのサイトと連動するようにする。(たとえば、FaceBookの会員の「Like」というシステムで、
何人の会員が、ゲームのウェブサイトに関心を示したかが、わかるようにする機能を付加するとか。)FaceBookの会員により届きやすいように、FanPageも作成する。
FaceBookの会員を一人でも多く、ゲームを運営しているページに誘導するための
効果的な広告の使い方などについても解説がある。(296文字)

第13章 HTML5JavaScriptでゲーム開発するときのゲームエンジンの紹介
Cocos2D Cocos2D-ObjC | The Cocos2D Objective C site
CraftyCrafty - JavaScript Game Engine, HTML5 Game Engine
LimeJSLimeJS HTML5 Game Framework
MelonJSmelonJS - Homepage
PlayMyCodePlay My Code | Play, Build and Share games online!
PixieEnginePixel Editor PixieEngine - Create Games
Paid Game Engines
ImpactJSImpact - HTML5 Canvas & JavaScript Game Engine
Isogenichttp://www.isogenicengine.com/documentation/isogenic-game-engine/

第14章 MelonJSというゲームエンジンで実際にゲームを開発する。
ここでは、第13章で紹介したゲームエンジンの中で、MelonJSというものを使って、
2Dスクロールのゲームをざっと開発する。
スーパーマリオみたいなタイプのゲーム。
自機 敵機 コイン スクロールする画面 得点 ステージの作成
効果音の挿入もあり。
プレイヤーがゲームオーバーになった時点での得点が、蓄積されて管理可能に
するプログラミングもやります。FacebookAPI(LocalStorageAPI)をここでも使います。
TileMapEditorの使い方も改めて説明があります。
いきなり、ゲームスタートではなく、「スタート画面」も作成。そこからゲームステージに
移行させるためのテクニックも書かれている。
などなど。
一通り、ゲームらしきものをつくりあげてしまう。
1章しかさかれていないが、いままでに学習したJavaScriptのゲームプログラミングの
総復習のような内容になっている。(383文字)