Adobe
製品
Acrobat
Creative Cloud
Creative Suite
Digital Marketing Suite
Digital Publishing Suite
Elements
Photoshop
Touch Apps
その他の製品一覧
ソリューション
デジタルマーケティング
デジタルメディア
教育
金融機関
Web Experience Management
その他のソリューション
ラーニング サポート ダウンロード 会社情報
ご購入
アドビストア 安心のサポート& サービス
アカデミックストア 学生、教職員、個人向け
アドビライセンスストア 中小企業向け
ボリュームライセンスについて 企業、教育機関、官公庁向け
販売パートナー
キャンペーン情報
検索
 
情報 サインイン
ようこそ、 さん カート 注文状況 マイアカウント
マイアカウント
注文状況
アカウント情報の変更
コミュニケーションの設定を変更
サインアウト
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
Adobe
製品 セクション ご購入   検索  
ソリューション 会社情報
サポート ラーニング
サインイン サインアウト 注文状況 マイアカウント
先行予約の提供開始予定日Date. 商品が発送されるまで、クレジットカードには課金されません。提供開始の予定日は変更される場合があります。 先行予約の提供開始予定日Date. ダウンロードの準備が整うまで、クレジットカードには課金されません。提供開始の予定日は変更される場合があります。
個数:
ご購入には学生・教職員個人版の購入資格の確認が必要です。
小計
カートの中身を見る
Adobe Developer Connection / Flash Platformゲームテクノロジーセンター /

Flash Platformゲーム開発ファーストステップガイド

著者 Samuel Asher Rivello

Samuel Asher Rivello
  • Certified Adobe Flash Designer and Developer
  • rivello.org

Content

  • なぜFlashゲームなのか
  • ゲームの基本
  • 手順1:ブレインストーミング
  • 手順2:開発
  • 手順3:テストおよび最適化
  • 手順4:配布および収益化
  • 手順5:分析の使用
  • 手順6:アップデート
  • フレームワークおよびその他のサードパーティライブラリ
  • マルチスクリーンデザインおよびモバイル開発
  • Flashゲームのセキュリティ
  • 次のステップ
  • 謝辞

作成日

1 July 2011

ページ ツール

Facebookでシェア
Twitterでツイート
LinkedInでシェア
ブックマーク
印刷

タグ

必要条件

この記事に必要な予備知識

特別な経験は不要。Flash Platform でのゲームデザインや開発への興味のみ。

ユーザーレベル

すべて

必要な製品

  • Flash Builder 4.5 Standard (Download trial)
  • Flash Professional CS5.5 (Download trial)
  • Creative Suite 5.5

注:この記事の主な対象読者は、Flashデザイナー、Flash Platformの新規ユーザー、およびFlash Platformでのゲーム開発を評価するビジネス意思決定者です。この記事には、Flashゲーム開発に関心のある、経験豊富なActionScript開発者にとって役立つ情報も記載されています。ただし、ゲーム開発に特有の高度なActionScriptプログラミングテクニックについては、Gary Rosenzweig氏の書籍『ActionScript 3.0 Game Programming University』がお勧めです。

Flashゲーム(Adobe Flash Platformで作成されたゲーム)は、至る所で見かけます。これらのゲームは、Newgrounds.comやAddictingGames.comを始めとした多数のゲームアーケードサイトで楽しむことができます。提供されているゲームのジャンルは多岐にわたり、代表的なものとしてアクション、アドベンチャー、カジノ、パズル、ロールプレイングなどがあります。これらのゲームは、ブラウザーやプラットフォームに依存することなくインタラクティブに操作できるので、ユーザーはパソコンでもモバイルデバイスでもゲームをプレイできます。スタンドアロンのアプリケーションとして配布できるのはもちろんのこと、大規模なサイトに設置してその価値を高めたり、Facebookなどの人気の高いソーシャルネットワークに組み込んだりすることもできます。まだあまり知られていませんが、Adobe AIRテクノロジーを使用すると、FlashゲームをApple App StoreからiOSデバイス上にデプロイできます。Alien HominidやLine Riderといった優れたゲームは、とりわけ人気が高かったので、Flash Platformから任天堂WiiやMicrosoft Xbox 360などのコンソールに移植されました。気軽にプレイできるオンラインカジュアルゲームは人気を博しており、Adobe Flash Platformは、そうした洗練されたゲームコンテンツを作成およびデプロイできるツールを提供します。

私自身も10年以上にわたって、オンラインゲームの設計と開発に携わってきました。大規模なゲームの世界で何千人もの同時ユーザーと協力してきました。始めた頃は、強力ではあるものの使いにくいC++プラットフォームなど、利用可能な開発プラットフォームが数多くありました。何年かたつうちに、Flash Platformツールの使い勝手が向上し、Adobe Flash Playerも進化しました。現在では、Flash Platformがオンライン2Dゲーム作成環境のデファクトスタンダードになっています。最新リリースのAdobe Creative Suite 5.5により、Flashコミュニティは、その魅力的なコンテンツを携帯電話、タブレットおよびインターネット接続テレビへと移行させています。さらに近日リリースのStage3D(旧称Molehill API)により、3DオンラインゲームにおいてもFlash Platformが最も魅力的な選択肢になることが期待されています。

この記事では、オンラインゲームの可能性についての概要と、Flash Platformの機能を紹介します。また、エンドツーエンドのゲーム開発の課題と解決策について検討します。

なぜFlashゲームなのか

ゲーム業界は過去数十年間にわたり着実に成長を続けており、今後の見通しも非常に明るいものとなっています。ところで、数多くのゲームテクノロジーがある中で、なぜFlash Platformが最良の選択肢であると言えるのでしょうか。

拡大するゲーム市場

オンラインゲームの人気が高まったのは1990年代です。その後、コンピューターの性能が向上し、インターネットのアクセス速度が上がるにつれて、ゲーム市場は大きく拡大しました(図1を参照)。

図1. 2006~2011年のオンラインゲームによる年間収入額(単位:10億米ドル)。DFC Intelligence。
図1. 2006~2011年のオンラインゲームによる年間収入額(単位:10億米ドル)。DFC Intelligence。

オンラインゲーム市場調査会社のDFC Intelligenceは、2011年にカジュアルゲーム分野でさらなる成長があると予測しています。

  • 2011年のオンラインゲームによる予想収入額は、全世界で100~120億ドルである
  • 収入額の70%は(ビデオゲームコンソールではなく)PCに基づくものになる
  • 収入額の30%は(いわゆるハードコアゲームではなく)カジュアルゲームによるものになる

2011年の収入額のうちの約30~50億ドルは、Flash Platformで作成されたプロジェクトなどのオンラインコンピューターゲームから得られる見込みです。昨年にアメリカ人が支払ったビデオゲームのサブスクリプション料金は、30億ドルを超えました。市場調査会社のPike & Fischerが発表した新しいレポートによると、アメリカ人が1年間に支払う料金は2015年までに50億ドルに達する見込みです。

調査会社のGartnerによると、2010年に全世界のエンドユーザーから得られたモバイルゲームによる収入額は、2009年から19%増加して56億ドルを超えました。Juniper Researchは、ゲーム中の購入額がダウンロードごとの支払いによる購入額を上回るようになることで、2015年までに全世界でのモバイルゲームによる収入額が110億ドルを超えると予想しています。

また、モバイルでゲームをする傾向が強まることで、1980年代のAtariゲームのような、単純で繰り返し楽しめるゲームが再度人気を集めるようになっています。そのため、個人や少人数のチームが少ない費用でゲームを作成して、そこから大きな収益を上げることが可能になっています。

コンピューターやモバイルデバイスを対象としたゲーム開発はビジネス上大きな可能性を秘めており、その市場は今も飛躍的に成長し続けています。

Flash Playerの歴史

Flash Playerは至る所で使用されていますが、他に選択肢がない訳ではありません。歴史的に見ると、オンラインゲームを作成するにあたって高いパフォーマンスが求められた場合には、C++、Java、Shockwave 3D、Torque、Unityなどの強力なテクノロジーが使用されてきました。

他のプラグインに頼っているゲーム開発者は、必要な実行環境をユーザーが辛抱強くダウンロードしてくれることを祈る必要がありますが、Flash Platform開発者は、ユーザーが既にFlash Playerを持っていることを期待できます。Adobe Flash Playerは世界で最も普及しているソフトウェアで、成熟した市場においてインターネット対応デスクトップの99%にインストールされており、その他にも幅広いデバイス上で使用されています。300万人を超える開発者とデザイナーがFlashテクノロジーを活用しながら、主要なWebプラットフォームとモバイルプラットフォームにまたがって、リッチなインターネットアプリケーションやコンテンツを作成、配布および収益化しています。さらに、Adobe Creative Suiteを使用する開発者は、単一の環境内で画像、サウンドおよびコードの統合をスムースにします。

Flash Player 10では格段に機能が充実し、同様にFlash Platform開発環境、Flash BuilderおよびFlash Professionalにおいても機能がこれまで以上に充実してきています。新たなリリースが発表されるたびに、その有用性や使い勝手は向上しています。これらのソフトウェアは幅広い用途に利用できたので、2000年代初頭からインタラクティブな製品やサービスを提供する人々の間で急速に普及しました。アーティストは、Flash Professionalを使用してゲームのメニューや背景画像を描いています。アニメーターは、歩行動作や爆発の様子など、ニーズに合わせて様々なアニメーションを作成しています。開発者は、Flash BuilderやFlash Professionalを使用して、同僚が作成したネイティブアセットを簡単に統合しながらプロジェクト全体をコーディングできます。専門的な各種の作業を行う場合には、もちろんPhotoshop、Illustratorなどのツール群を併用でき、これらはすべてAdobe Creative Suiteに同梱されているので、アセットの統合はごく簡単に実現できます。

Flashテクノロジーは、以前は単一プレーヤー向けのゲーム環境にすぎませんでしたが、今では何千人ものユーザーが参加する強固なゲームの世界の創造に利用できます。Flash Player 6以降、Flashには、サーバーとの間で持続的な接続を確立するために必要なソケット接続機能が備わっています。この種類の接続を通じて、少人数対少人数によるマルチプレーヤー参加型のゲーム環境を実現してきました。Flash Playerの最新バージョンには、大人数によるマルチプレーヤー参加型ゲームに必要な処理能力が備わっています。クライアント側でのボトルネックは解消されました。Flash Player 10で導入されたピアツーピア通信も、マルチプレーヤー参加型ゲームの可能性を広げています。

業界リーダーの声

Flash Platformは、ゲーム業界で活躍する様々なリーダーの支持を集めています。

マルチプレーヤー参加型ゲームの開発会社ElectrotankでCEOを務めているMichael Gold氏は、次のように述べています。「Flash Playerの高い普及率とパフォーマンスにより、Flashはブラウザー利用型ゲームのデファクトスタンダードになっています。」

PushButton Labsのチームでは、ゲーム開発用のテクノロジーとして、当初使用していたC++に代えてFlashを採用しました。PushButtonの創設メンバーは、Torqueゲームエンジンを開発したGarageGamesの出身者で構成されていました。オープンソースのPushButton Engineの主任開発者であるBen Garney氏は、次のように述べています。「Flashは優れたゲーム体験を提供できます。またわずか1日で10億人もの人々に向けてゲームを公開できるという威力は圧倒的です。そして、その機能は充実する一方です。」

また、Almer/BlankのソフトウェアアーキテクトであるOmar Gonzalez氏の評価は次のとおりです。「Flash Platformでは、ロジックと、更新が容易な音声や画像のアセットがうまく分離されているので、ゲームをより簡単に作成できます。他のゲーム開発ツールセットにはない特長です。」

ゲームの基本

この節では、Flash Platformの仕組みとビデオゲーム理論の基礎について説明します。

ツールおよびランタイム

Flashゲームを開発する前に、開発に利用する選択肢を理解する必要があります。特に、どのIDE、ランタイムおよび(存在する場合)サーバーが、対象となる各プロジェクトに最適なのかをしっかりと把握することが重要です。作業開始にあたって最も単純な方法は、Flash BuilderまたはFlash Professionalを使用して単一プレーヤー向けのゲーム(つまり、リアルタイムのマルチプレーヤーサーバーを必要としないゲーム)を開発し、SWFファイル形式で公開して、Webブラウザー内のFlash Player(ランタイム)で実行する方法です。

開発チームの規模が大きくなってきたら、アセットの作成にAdobe Flash Professionalを使い続けながら、チームでの作業に適したAdobe Flash Builderなどのツールを併用することもできます。このツールは、複数のデスクトップや様々なデバイスにまたがってコンテンツを公開できるように最適化されています。

詳しくは、「Understanding Adobe Flash Platform technologies for building games(ゲーム開発のためのAdobe Flash Platformテクノロジー)」および「Flash game development tools, runtimes, and servers(Flashによるゲーム開発のためのツール、ランタイムおよびサーバー)」を参照してください。

主な構成要素

初めてゲームを作成する作業は比較的単純です。Flash BuilderまたはFlash Professionalだけを使用して、優れたゲームを作成できます。基本的なゲームには、次のいくつかの主な構成要素があります。

  • 入力:入力とは、ユーザーがゲームを操作する方法のことです。通常、カジュアルゲームは、マウス、キーボードの矢印キーまたはその両方で操作します。モバイルデバイスで最も一般的な入力方法はタッチ操作なので、Flash Platformではタッチ操作がしっかりとサポートされています。
  • スプライト:これらは画面上に表示されるビジュアルエレメントであり、例えば、飛行ゲームでは宇宙船または複葉機のMovieClipが該当します。Flashクラスの1つとしてflash.display.Spriteが実際に存在しますが、ここで言うスプライトは、一般的なビデオゲームの概念としてのスプライトを意味していることに注意してください。
  • サウンド:ゲームのプレイ中に発生する重要なイベント(例えば、宇宙船の飛行時)に本格的なサウンドを付けると、ゲームがいっそう魅力的なものになります。
  • 衝突判定:このコードにより、任意の2つのスプライトが画面上で接触したかどうかを判定します。これはほとんどのアクション系ゲームに不可欠の要素です。
  • ゲームループ:これはゲーム開発者が時折使用する用語であり、ゲームの処理を制御するプログラミングロジックを表すものです。Flashゲームでゲームループを実行するために使用するプログラミング言語は、ActionScriptです。ActionScript 3.0には、特定の間隔で関数を呼び出す方法が2つあります。1つ目は、インタラクティブなオブジェクト(InteractiveObject)によって送出されたEvent.ENTER_FRAMEイベントを使用する方法です。2つ目は、タイマーを使用する方法です。ENTER_FRAMEイベントの方法がより一般的であり、アニメーション、その他のレンダリングアップデートおよび人工知能(AI)ルーチンなどの非常に高頻度なアップデートに最適です。タイマーの動作方法はENTER_FRAMEイベントに似ていますが、フレームレートに縛られることなくイベントを送出できます。タイマーは、持続時間が数秒以上に及ぶ処理に最適です。これ以外にも、ActionScriptでは、他のプログラミング言語と同様、ゲームループを実装するためにforループやwhileループなどを利用できます。Flashゲームを開発するには、ActionScriptを学習する必要があります。ActionScriptの学習を開始する方法について詳しくは、後述の「手順2:開発」の節を参照してください。

ゲーム開発ワークフロー

個人の開発者や小規模なチームは、新しいゲームの開発時に同じ基本手順で進めます。

  1. ブレインストーミング。構想段階に戻ります。ゲームのアイデアを練ります。
  2. 開発。大部分の時間をこの作業に費やします。ActionScript 3.0を使用して、作成済みの画像および音声アセットを組み合わせます。
  3. テストおよび最適化。進捗状況を見直します。ゲームをテストし、バグがなく楽しいものに仕上がっていることを確認します。最適化を通じてパフォーマンスを向上させます。
  4. 配布および収益化。ゲームを公開し、収益を上げます。
  5. 分析。ユーザーからのフィードバックの結果と、ゲームのプレイ回数やプレイ時間などの指標を詳しく調べます。ゲームの弱点を克服します。
  6. アップデート。手順1、2、3および5を継続的に繰り返して、ゲームに磨きをかけ、ゲームのプレーヤーがいっそう楽しめるものにします。

以下の節では、これらの各トピックをさらに詳しく見ていきます。

手順1:ブレインストーミング

映像が洗練された、楽しく遊べる完成されたビデオゲームは、見掛けよりも複雑です。熟練したデザイナーや開発者は、細部を隠すことでプレーヤーがゲームに没頭できるようにします。成功を収めたゲームは、優れたアイデアと優れた実装の融合であり、つまりはデザイナーの想像力と開発者の確かな技術力によって生み出されたものなのです。しかし、こうした優れたアイデアはどこからやってくるのでしょうか。いったい何から始めればよいのでしょうか。

新しいアイデアを練り上げる方法はチームごとに異なるかもしれませんが、基本的なプロセスは次のとおりです。

  1. ゲームのアイデアを考え出す
  2. ストーリーボードおよびゲームの世界を作成する
  3. ゲームデザインドキュメントでゲームを定義する

アイデアの展開

私の場合、ゲーム作成のために斬新なアイデアを得ようとして腰を据えてブレインストーミングを始めることもありますが、ほとんどの場合は既に頭の中にたくさんのアイデアが渦巻いています。

ゲームのアイデアは、あらゆるところから得ています。多額の費用がかかったコンソールゲームや単純なモバイルゲーム、実世界でのゲームやスポーツ、映画、アニメ、本、友達との会話、夢、悪夢など、ヒントはいろいろなところに落ちています。ゲーム作りに携わる職業柄、いつでもアイデアを書き留めるようにしています。新しいゲームの構想が浮かんだらすぐにその内容をメモできるように、日記やノートを持ち歩くことをお勧めします。

日々ゲームのアイデアを探し求めている方なら、もう頭の中はいろいろなアイデアでいっぱいのはずです。そうなったら、続いてそのリストの中から候補を絞り込み、最も有望なアイデアを1つ選び出します。

個人的には、良いゲームを作る上で最も実用的なアイデアは、新しい要素と実績のある要素を組み合わせたものであると感じています。例えば、世界を新しい外観で創造してキャラクターも新規に作成しますが、ゲームメカニクスについては、スペースインベーダー、フロッガー、パックマンなどの古典的なゲームのものを使用します。ゲームのプレーヤーは、このような、新しい部分と馴染み深く安心できる部分が組み合わさった「控えめな驚き」を好むようです。

ゲームが楽しいものになるかどうかを知る方法はあるのでしょうか。なかなか知るのが難しいことですが、経験を積むにつれて直感が働くようになります。それでも、その直感が外れることもあります。ゲームを初めて作成する場合には、楽しくプレイできることがわかっているゲームを真似するところから始めます。その後、作業を続けながらアイデアを変更して、より独自性のある、ゲームのプレーヤーにとって新鮮なものに変えます。

ストーリーボードの作成

ストーリーボードのプロセスでは、まずキャラクター、ゲーム画面、ゲームメカニクスなどの概要を作成します。ゲームメカニクスとは、ゲームをユニークなものにする要素を定義するための、中心的なルール群のことです。1つのゲームは、協調する様々なゲームメカニクス(例えば、ターン、キーボード入力、リスクと報酬、上限のあるプレーヤーのヘルスなど)を特徴とします。

この段階では、画像をきれいにする作業はまだ行わず(図2を参照)、浮かんだアイデアを視覚的に伝えることだけを目的にします。これは、新しいアイデアを生み出したり既存のアイデアを洗練させたりするのに役立ちます。この段階の途中で、アイデアを発展させてさらに膨らませてもかまいません。別の方法、選択肢、複数の解決策、ゲームの様々な側面を検討することも可能です。ストーリーボードは、チームの意思疎通にも大いに役立ちます。このアイデアの共有プロセスには、アーチストだけでなく全員が関与する必要があります。

図2. Gaia OnlineのzOMGにおける背景のスケッチ(左)と完成版の背景画像(右)。
図2. Gaia OnlineのzOMGにおける背景のスケッチ(左)と完成版の背景画像(右)。

ストーリーボードを作成するときには、ゲームをプレイするユーザー層について検討することが大切です。ユーザー層がゲームの内容を規定することもあれば、ゲームの内容がユーザー層を規定することもあります。おそらく、どちらからも影響が少しずつあるのでしょう。私に関して言うと、ゲームの魅力や使い勝手が向上すると感じた場合には、独自のアイデアの各側面について妥協することにも柔軟であるようにしています。重要なのは全員を楽しませようとしないことですが、作ったゲームが人気を得るかどうかも気になるところです。そのため、ゲームの映像や操作方法の各側面について慎重に検討します。

ゲームの構想が具体化してきたら、ゲームの世界にも詳細を追加します。ゲームのプレーヤーが直面する課題を説明します。それに対する報酬を説明します。ゲームにはキャラクターを登場させますか?プロットやストーリーはどのようにしますか?キャラクターのやる気をどのように高めますか?動作を見るゲームプレーヤーの視点は、上からにしますか、それとも横からにしますか?ゲーム内に重力は存在しますか?キャラクターが怪我をしたり命を落としたりすることはありますか?もしあるなら、その方法はどのようなものですか?ゲームの世界が現実的であるかどうかは重要ではありませんが、そこには因果関係がある必要があります。つまり、ユーザーが理解できる、わかりやすく一貫性のある原因と結果が存在する必要があります。ユーザーは、ゲームで遊びながらすぐに概念的な用語を理解し、ゲームの世界について学んでいきます。さらに、あれこれ憶測するようになります。これらの憶測を受け入れて、ゲームをより魅力的なものにします。

デザインドキュメントの作成

デザインドキュメントは、映画の台本のようなものです。この時点から新しいアイデアに制限を設け、ゲームの最終的な形を決定します。このタイミングは、ゲームに良い影響または悪い影響を及ぼし得る、難しい決断を下すのにも適しています。

  • どのユーザー層を対象にしますか。そのユーザー層に適している背景色は明るい色ですか、それとも暗く憂鬱な色ですか。プレーヤーは、経験豊富であり操作が難しくても辛抱強くゲームを続けてくれますか、それとも手軽なゲームを求めていますか。
  • 対象となるデバイスは何ですか。大きなウィンドウのブラウザーですか、それとも小さな画面の電話ですか。異なるデバイスに同じ表示内容を使い回さないでください。デバイスごとに固有の特性を理解し、ゲームの表示内容をカスタマイズします。
  • どの話し言葉を含めますか。ゲームの翻訳はどのように行いますか。どのロゴ、画像、メニューおよびその他のテキストが影響を受けますか。ゲームを複数の言語にローカライズする場合、言語データをどこに格納しますか。ゲームの開発が既に完了してからこの課題に取り組むことは非常に難しいので、デザイン段階でこのことを考慮に入れておきます。

チーム開発環境では、デザインドキュメントは特に重要です。このドキュメントには、ゲームの映像、ゲームメカニクスおよびメニューに関する最終決定事項の全一覧が明示されているので、開発中にチームメンバーの全員が同じ考えを共有するのに役立ちます。チームの事情に応じて、デザインドキュメントの完成後にその変更を許可しない場合と、開発段階の主な節目において変更を認める場合があります。

計画と開発の期間中には、核となる構想を繰り返し確認することが重要です。楽しく遊べるゲームか?対象ユーザーにとって魅力的な内容か?対象デバイスに適したものか?実装するアイデアについて、他の人々、特に対象ユーザー層のメンバーから必ずフィードバックを得るようにします。

Flashゲームの開発を成功に導くための検討事項

ゲームを作成する方法や理由は人それぞれであっても、だれしも、楽しく遊べて多くのプレーヤーの人気を集めるゲームを作ってみたいと考えたことがあるはずです。重要な検討事項の1つは、ゲームを簡単に入手してプレイできるようにすることです。ユーザーは、時間がかかる複雑なセットアップを行うことなく、すぐにゲームを開始できる必要があります。ユーザーに対してゲームの操作方法を伝える説明文を表示するのではなく、インタラクティブなチュートリアルを用意することを検討します。

人気ゲームポータルAddictingGames.comのクリエイターであるIra Willey氏によると、次の各ガイドラインに従いながら、没入型のゲームコンテンツと卓越したパフォーマンスを備えたゲームを提供すれば、繰り返しプレイしてくれるプレーヤーを引き付けることができるとのことです。

  • 一目見ただけで魅力的で覚えやすい名前を選びます。
  • オリジナリティを出します。ゲームを他のものと差別化して記憶に残るようにします。
  • ソーシャル機能を追加してマルチプレーヤー参加型のゲームにし、リモートユーザーどうしが交流できるようにします。
  • 簡単すぎることもなく難しすぎてイライラすることもないように、ゲームの難易度を調整します。
  • 質の高いサウンドと効果を追加します。ミュートボタンと音量調節ボタンも必ず追加します。
  • ゲームを最適化してファイルサイズを小さくし、ダウンロードしやすくします。
  • 登録機能があるゲームでは、ゲストとしてプレイできるようにします。
  • ゲームの幅を広げるため、ユーザーがレベルを作成して共有できるようにすることを検討します。

役立つヒントと推奨事項について詳しくは、Ryan Wolniak氏のeBook『Getting Your Flash Game Sponsored』を参照してください。

手順2:開発

ゲームの作成中、プロセスを有機的に繰り返すことは非常に有益です。デザイン段階においては、ゲームの細部をすべて把握しきれないことがよくあります。画像の最終的なサイズがわかるのは、関連するコーディングの終了後であったりします。画面上に敵を10人表示したところ多すぎたので、後から8人に減らしたいと思うときもあります。難易度の設定は、ゲームをかなりプレイしてからでないと判断できないものです。効果音についても、実際にはかなり耳障りであることがわかったので、変更したいと感じることがあります。作業を進めながらゲームの構想を柔軟に微調整することで、可能な限り最高のゲームを作成できます。

以下は、Flashテクノロジーでゲームを開発するときの基本的な手順です。

  1. 完成したゲームデザインドキュメントを用意します。ゲーム画面のレイアウトと操作ルールを追加し、楽しめる要素を忘れず入れます。
  2. ゲームエンジンを分割します。ゲームを小さな部分に分けて計画し、管理しやすくします。
  3. 小規模なスタンドアロンのデモプロジェクトを作成します。入力コントロール、物理特性、三角法など、難しい部分の動作を個別に検証します。
  4. アセットを作成および収集します。画像はFlash Professionalまたは他のCreative Suite製品で作成でき、音声はオンライン上のものを安価または無料で入手できます。
  5. メニューを作成します。ゲームには、導入部、説明文、ゲームオーバー画面など、ゲーム本体以外の画面が存在することがよくあります。
  6. プレイします。適宜ゲームをテストし、楽しく挑戦しがいがあるゲームであることを確認します。

ゲーム開発プロセスの重要な部分は、実際にコーディングする作業です。前述したように、FlashゲームのコーディングにはActionScript言語を使用します。ActionScriptは時間をかけて発展してきたプログラミング言語であり、現時点ではバージョン3が最新です。Flashゲーム開発者になるには、(ActionScriptバージョン1または2ではなく)ActionScript 3.0を学習する必要があります。学習方法は人それぞれなので、自分に最も合ったやり方で学ぶのが良いでしょう。とは言え、ここでは入門用としてお勧めの書籍を数冊紹介しておきます。

  • 『ActionScript 3.0 for Adobe Flash Professional CS5 Classroom in a Book』。この書籍では、ActionScript 3.0がわかりやすく紹介されています。ビデオシリーズの『ActionScript 1:1 with Doug Winnie』もお勧めです。
  • 『Essential ActionScript 3.0』。この書籍には、ActionScript 3.0プログラミング言語をより深く理解するための情報が記載されています。
  • 『ActionScript Cookbook』。この書籍では、ActionScriptで最も一般的なプログラミングタスクのコード例とソリューションのいくつかが紹介されています。

ActionScriptに慣れてきたら、身に付けた知識をFlashゲーム開発に適用する方法を学習するのが良いでしょう。その際には、Flashゲーム開発に関する様々な書籍の中から1冊を選んで参考にします。これらの一部の書籍には、ActionScript言語の概要が含まれているものがあります。一方、読者が既にActionScriptの知識を持っていることを前提として、コードの解説から始まるものもあります。

  • 『Real-World Flash Game Development: How to Follow Best Practices AND Keep Your Sanity』
  • 『ActionScript 3.0 Game Programming University』
  • 『Foundation Game Design with Flash』
  • 『Flash Game Development by Example』

最後に、継続的な学習をすることを強くお勧めします。Flashゲーム開発ブログをフォローし、ActionScriptフォーラムやFlashゲーム開発クックブックに参加し、Kirupa.comやActionScript.orgなどのActionScript専門Webサイトを購読および閲覧し、Flash PlatformゲームデベロッパーセンターやActionScriptテクノロジーセンターで新しいチュートリアルをチェックします。

ActionScriptを使用していくつかゲームを開発したら、様々なFlashゲームエンジンの中から1つを選んで、一般的なプログラミングタスクの実行に役立てたり、ゲームコード用のフレームワークを利用したくなるかもしれません。Flashゲームエンジンについて詳しくは、Flash Platformゲームデベロッパーセンターのゲームエンジンページを参照してください。

チームのダイナミクスおよび組織

ゲームはいったいだれが作成するのでしょうか。この問いに答えるために、Mochi Mediaによる調査を参考にしてみましょう。この会社は、ゲーム開発者が各自のゲームを収益化するのに役立つツールを提供していますが、最近、包括的なFlashゲーム市場調査を実施しました。その結果は、だれがどのようにゲームを作成しているのかに関して興味深い視点を提供しています。

調査で判明した主な事実は、以下のとおりです。

  • Flashゲーム市場には、新しい開発者が押し寄せています。回答があった開発者の2/3近くは、過去2年間にゲームの作成を開始しました。
  • ほとんどの開発者は独立しており、スタジオやその他のゲーム開発会社に勤務している人は8%のみです。大部分の人は単独でゲームを作成していますが(60%)、独立したチームで働いている人もかなりの割合で存在します(29%)。
  • 開発者の約35%は、フルタイムでゲームを作成しています。
  • 全回答者のうちの20%は、毎月1,000ドルを超える収入を得ています。毎月の収入が5,000ドルを超えている人の割合は、5%にとどまっています。
  • ゲーム開発サイクルは短く、調査に参加した開発者の約50%が1~3か月間でゲームを開発しています。
  • 圧倒的多数の回答者は、Flash Platformのみを使用しています。

Flashゲーム開発者の70%が趣味または副業としてゲームを作成していることも興味深い点です。こうした開発者は、他に本業で主な収入を得ていることになります。この調査ではFlashゲーム開発者の60%が単独で働いていますが、ゲームを作成したらそれに関して助言を得ることを強くお勧めします。デザイン、開発、および売上獲得に必要なビジネス展開のすべてに秀でた人はまれだからです。

ゲーム会社のための開発

Flashゲーム業界では、多くの開発者が請負契約者または常勤労働者として働いています。これらの人材には、ゲームアイデアのクリエーター、ゲームアセットである画像とアニメーションを描くアーチスト、音声デザイナー、そしてもちろん、すべての部分を1つにまとめるプログラミング技術を持ったFlashおよびFlexゲーム開発者が含まれます。また、ゲームのマーケティングおよびプロモーションを担当するビジネス展開の仕事もあります。

雇われて働くことは、安定して生計を立てるのに向いており、時に非常にやりがいがあって楽しいものです。それでも、より自由に創造性を発揮しながら多くの収入獲得を目指すなら、思い切って自分でゲームを作成して収益化してみるのが良いでしょう。

クリエイティブな制作

Flashゲームのアート制作については、TangledDreams.comのAutumn Rain Turkel氏の言葉が参考になります。ご自身の長年の経験に基づいて、アーチスト向けに次の2つの重要なヒントを示してくれています。

  • プロジェクトに最初から関与します。アーチストの抽象的な創造性は、ブレインストーミングによってゲームの構想を練るときに役立ち、開発者によく見られる分析的アプローチとうまく調和します。
  • 対象プラットフォームの制限を念頭に置いて作業します。

Autumn氏のようなアーチストの辛抱強さとチームワークは、開発者にとってありがたいものです。開発者の側も、元のアセットの品質を維持してプロジェクト全体のビジョンが保たれるように、最善を尽くしながらアセットを統合する必要があります。

デザインワークフローと技術的なワークフローの統合

Flash PlatformおよびAdobe Creative Suiteでは、アートをプロジェクトに統合するための様々なワークフローを柔軟に採用できます。Flash Professionalは、画像、アニメーション、音声およびビデオに使用されている、一般的に使用される多数の形式をサポートしています。PhotoshopファイルやIllustratorファイルをFlash Professionalに取り込むこともできます。

必須ではありませんが、アーチストがFlash Professionalで直接作業した方が効率的です。開発を後でFlash Builderで行う場合でも、開発者は、Flash Professionalで作成されたアーチストのSWFファイルを取り込むことができます。この方法により、作成中にアートアセットをツール間で簡単にやり取りしたり、実行時にアセットをすばやく拡大縮小または回転させたりすることができます。

完成したアートは、主に2種類の方法でゲーム内に読み込むことができます。1つ目は、アセットをFlashライブラリに埋め込む方法です。これは最も簡単なワークフローですが、SWFファイルのサイズが大きくなるのでユーザーによる最初のダウンロードの時間が長くなります。2つ目は、アセットを実行時に、レベル間で、または必要になった分だけ読み込む方法です。最適なソリューションは、プロジェクト、アセットの量および対象デバイスに応じて異なります。

詳しくは、私のブログの記事「Using Embed & AssetManager for Flash/Flex Workflow」を参照してください。

Flash BuilderおよびFlash Professionalによるゲーム開発の適用例

以前書いた記事「An introduction to developing games on the Adobe Flash Platform(Adobe Flash Platformでのゲーム開発の概要)」では、ゲーム理論が実際のゲームにどのように適用されるかを説明しました。その記事では、読者の理解を深めるために、Flyerという簡単なゲームを作成しました。このゲームの操作方法は、1980年代のアーケードゲームであるFroggerに似ています。ユーザーの宇宙船は、画面の下側から動き出します。この宇宙船を4つの矢印キーを押して操縦します。画面の上側に到達したら勝ちです。上にたどり着くまでに敵(複葉機および飛行船)と衝突したら負けです。

手順3:テストおよび最適化

ゲームを作成している間、特にプロジェクトが完了したときには、ゲームをテストして改良および最適化することが重要です。

テスト

プロジェクトの規模およびチームの人数に応じて、様々な形態でテストを実施できます。個人の開発者であれば、自分および何人かの友達のみでゲームをプレイしてテストを済ませる場合もあるでしょう。自分が作った作品を自分で客観的に評価するのは難しいものです。新しい問題や新しい解決策を見つけることができるように、目と心をしっかり開いてテストに取り組む必要があります。ユーザーによるテストでは、開発者が予想もしない問題や課題が見つかることが多々あります。

大規模なゲーム開発チームには、しばしばゲームのテスターで構成される専属の品質保証(QA)チームが存在します。このグループがゲームをプレイして、変更および提案の一覧を作成します。予算が許すなら、Flashゲームのテスティングサービス会社にテストを依頼するという方法もあります。

チームの規模にかかわらず、次の根本的な質問に答えられるものが良いテストプロセスになります。

  • ゲームを楽しくプレイできますか。
  • ゲームに既知のバグはありませんか。
  • すべての対象プラットフォーム(ブラウザー、デスクトップ、モバイルなど)で、意図したとおりにゲームが動作しますか。

すべての質問に「はい」と答えられるなら申し分ありません。作業は終了です。ゲームの配布準備は整っています。しかし、通常は前の段階に戻ることが必要で、改良を加えるためにアート、プログラミング、レンダリングおよびゲームメカニクスを変更することを求められます。

Webゲームの場合は、様々なコンピューターとWebブラウザーでゲームをテストします。すべての環境で動作が適切であることを確認します。自分のコンピューターでゲームの動作に問題がなかったとしても、対象となる各ユーザーがそれぞれ異なるコンピューターやデバイスを使うことに十分注意してください。

携帯電話やタブレットの場合には、テストがさらに難しくなることがあります。デバイス間に(画面サイズ、画面密度、入力方式などの)違いがあることに加え、膨大な数のデバイスが出回っていることが、この作業を複雑にする要因となっています。Flash BuilderおよびFlash ProfessionalにはFlash Playerのデバッグ版が付属しており、これによって開発およびテストの実施時に追加情報(出力トレース、再描画領域など)を確認できます。Flash ProfessionalにはエミュレーターのパッケージであるDevice Centralも付属しており、これを利用して人気のあるモバイルデバイスをコンピューター上でシミュレーションできます。このツールは非常に便利ですが、可能であれば物理デバイス上でもテストを実施してください。

この作業を行うときに重宝するのがDeviceAnywhere社のサービスです。この会社には数千台もの物理デバイスがあり、ユーザーはこれらを利用してリモートからテストを実施できます。この会社はテスティングサービスも行っているので、QAプロセスの一部または全部を依頼することもできます。

Flash Builder 4.5を使用すると、Flash Builderが実行されているコンピューターにUSB経由でデバイスを接続できるので、ゲームを開発しながらデバイス上でテストを実施できます。この様子については、Ed Rowe氏のビデオ「Guided Tour of Mobile Application Development with Flash Builder 4.5(Flash Builder 4.5によるモバイルアプリケーション開発のガイドツアー)」をご覧ください。

最適化

開発者のTed Patrick氏は、初期の頃からFlashを扱って仕事をしてきました。Flash Playerの内部構造についても知識を持っています。Ted氏はご自身のブログで、Flash Playerをレース場に例えて説明しています(図3を参照)。このレース場には、明確に異なる2つのセクションがあります。その1つはActionScriptを実行するためのもの(イベント処理用のサブセクションを含む)で、もう1つは画面にコンテンツをレンダリングするためのものです。Flash Playerは、実行されている間、SWFファイルで1秒あたりのフレーム数(FPS)として指定された初期設定速度でこのレース場を周回します。Flash Playerは、命令の内容にかかわらず、この設定速度を常に維持しようとします。指定されたFPSはレース場の最高速度です。処理がこの上限よりも速くなることはありませんが、遅くなることはあります。

図3. Flash Playerのコード実行およびレンダリングルーチンの図(ted.onflash.orgより)
図3. Flash Playerのコード実行およびレンダリングルーチンの図(ted.onflash.orgより)

重要なポイントは、コードの実行を遅延させる組み込みの方法はなく、レンダリングの実行を遅延させる組み込みの方法もないということです。Flash Playerはロスレスです。現在のフレームレート設定によって指定されたフレーム間の時間よりも長くかかる命令であっても、その命令のすべてを、与えられたフレームループ内で処理します。そのため、端的に言うと、問題を避けるために、Flash Playerに処理能力を超える処理を命令しないことが必要です。

問題が発生したかどうかを知るにはどうすればよいでしょうか。コードの実行またはレンダリングが重い場合、Flash Playerがその命令を処理しようとしているときに、Flash Playerのフレームレートが一時的に欠落(さらにはフリーズ)します。ゲームのアニメーションが明らかにぎくしゃくし始め、ゲームが全体的に遅くなって応答しなくなることもあります。最適化はそれ自体が1つのアートですが、これらが、何らかの最適化が必要であることを示す基本的なヒントです。

実際に問題が発生する前から、ボトルネックとなる可能性がある箇所を検討することが重要です。負荷の高い計算処理を行うコード(物理的処理、AI、データ解析)または大量のレンダリング(3D、ピクセルレベルの操作、多数のスプライト移動)を実行する場合には、それらの部分の最適化に重点的に取り組みます。

コード実行の最適化には、以下のような技法を利用できます。

  • ベンチマークテスト。特定の問題を解決するために2つ以上の方法を試し、それぞれのパフォーマンスを比較します。CPU使用率が最小になり、パフォーマンスが向上する、最も効率的なソリューションを見つけます。
  • メモリの節約。できるだけ小さなオブジェクトをインスタンス化してジョブを実行します。使用しなくなったイベントリスナーおよびオブジェクトを削除します。
  • AS3のパフォーマンスの改善。不必要なコードを実行しないように、if、break、continueなどの構文を使用します。このトピックについて詳しくは、この節で後述するリンクを参照してください。
  • レンダリングの最適化には、以下のような技法を利用できます。
  • 表示リスト。Flash Playerの表示リストは、画面上のすべてのDisplayObjectインスタンスから成るネイティブツリー状の階層です。表示されるすべてのオブジェクトがレンダリングされるので、必要でないオブジェクトを削除することでパフォーマンスが向上します。表示リストについて詳しくは、「Display list programming in ActionScript 3(ActionScript 3での表示リストのプログラミング)」を参照してください。
  • cacheAsBitmap。各DisplayObjectはフレームごとに再レンダリングされるので、計算が冗長になることがあります。状況に応じてDisplayObject.cacheAsBitmapプロパティをtrueに設定すると、これらの計算の結果が保存されて再利用され、パフォーマンスが向上します。
  • cacheAsBitmapMatrix。一部のデバイスのみで使用でき、cacheAsBitmapよりもさらにパフォーマンスが良くなる場合があります。
  • ブリット処理。ブリット処理は、Flash Playerの表示リストの使用に代わるものです。このプロセスは、オブジェクトを1つのイメージのみに手動で描き、その1つのイメージのみを画面に追加します。一部の状況においては、これによりパフォーマンスが飛躍的に向上することがあります。ブリット処理の技法について詳しくは、「Rendering animated models in mobile games(モバイルゲームでのアニメーションモデルのレンダリング)」を参照してください。
  • Stage3D。Stage3Dは、新しく登場した低レベル、GPUアクセラレーション対応型の3D APIセットです。これにより、Adobe Flash Platformランタイムを介して複数の画面にまたがる高度な3D体験を提供できます。詳しくは、「Using Stage3D(Stage3Dの使用)」を参照してください。
  • M2D。これは、新しいGPUハードウェアアクセラレーション対応のFlash用APIであるStage3Dの上に構築された、2Dスプライトライブラリです。詳しくは、「M2D: A 2D Library for Molehill」を参照してください。
  • StageVideo。StageVideoでは、ビデオをレンダリングするためにハードウェアアクセラレーションを有効にします。詳しくは、「Using the StageVideo class(StageVideoクラスの使用)」を参照してください。

このトピックについて詳しくは、Thibault Imbert氏による資料「Optimizing Performance for the Adobe Flash Platform」およびFlash Platformゲームデベロッパーセンターの「Performance and Optimization(パフォーマンスおよび最適化)」を参照してください。

手順4:配布および収益化

カジュアルゲームの収益モデルは多岐にわたります。通常、オンラインゲームは無料でプレイできますが、その操作ページにはしばしばバナー広告が表示されます。サイト所有者は、サードパーティサイトにトラフィックを誘導して収益を上げます。無料でプレイできるゲームのうちには、ゲーム内に商品の広告が表示されるものもあります。これらの”アドバゲーム”は基本的に1つの大きな広告であり、プロダクトプレイスメントに似た技法を用いています。劇場用映画のWebサイトやおもちゃのWebサイトでは、販売促進キャンペーンの一環として、アドバゲームが用意されていることがよくあります。例えば、このビデオでは、映画のプロモーション用に開発されたGreen Hornetゲームが紹介されます。

カジュアルゲームから収益を得る別の方法として、フリーミアムビジネスモデルを利用したものがあります。このシナリオでは、ユーザーは無料で体験版をプレイできますが、機能が充実した完全版をプレイする場合にはお金を払う必要があります。この他、サブスクリプションやマイクロトランザクションといった収益化方法もあります。

ゲームの配布および収益化の戦略は、ブレインストーミング段階で決定するのが最適です。画面サイズや入力方式は対象デバイスごとに異なるため、配布戦略はゲームに影響を及ぼします。選択する収益化戦略によっては、ゲームのコンテンツ(または少なくともメニュー)にも影響があります。必要に応じて、広告の統合、スポンサーのリンクまたはボタン、バーチャルアイテムの販売などの部分を実装します。

配布

配布戦略では、作成したゲームをプレーヤーの手に届ける方法を規定します。大規模なプロジェクトでは、ゲームを新しいユーザーに届けるために明確なマーケティングキャンペーンを行う傾向にあります。

Webベースのユーザーは、ブラウザーでゲームをプレイするか、または利用可能な任意のサイトからスタンドアロンのゲームをダウンロードすることができます。モバイルプラットフォーム用のアプリケーションに比べて、市場は比較的開かれています。

多くのモバイルプラットフォームでは、ユーザーは、デバイスのアプリケーションマーケットプレイスの囲い込まれた市場に入る必要があります。このマーケットはデバイス製造元またはモバイルキャリアが管理しており、アプリケーションの購入およびダウンロードが可能になっています。

Mobile Gamesレポートで執筆者のDaniel Ashdown氏は、次のように述べています。「ユーザーがゲームを見つけてくれるかどうかは、鶏が先か卵が先かという問題とも言えます。ダウンロードが増えると有名になりますが、既に有名であることはダウンロードを増やす大きな要因であるからです。その結果、少数のゲームが非常に多くダウンロードされる一方で、大多数のゲームはほとんどダウンロードされないことになります。」

ゲームをマーケットプレイスに送り込む戦略はデバイスごとに大きく異なりますが、基本的には、最初に最高の印象を与えるようにします。人気が出たゲームの人気は継続するからです。他のゲームは、すぐにゲームプレーヤーから忘れ去られます。

ゲームを首尾よく配布するには、様々な課題を乗り越える必要があります。幸いなことに、これを手助けしてくれる企業があります。詳しくは、Flash Platformゲームデベロッパーセンターの「Distribute, measure, and monetize(配布、評価および収益化)」ページに一覧表示されている企業を参照してください。配布戦略には、明確な対象ユーザー層、およびそのユーザー層によって使用される可能性がある複数のデバイスを含める必要があります。Flash Platformは、対象ユーザー層に到達できるように多数の配布先に対応しています。

Flash Playerを介したFlash Platformの配布先:

  • Webブラウザー(PC、Mac、Linux、モバイル)
  • Adobe AIRテクノロジーを介したFlash Platformの配布先:
  • デスクトップ(PC、Mac、Linux)
  • Android(スマートフォンおよびタブレット)
  • Apple iOS(スマートフォンおよびタブレット)
  • BlackBerry Tablet OS(タブレット)
  • インターネット接続テレビおよび電化製品

ゲームのニーズおよびアーキテクチャに応じて、一度に全プラットフォームに公開することも、プラットフォームごとに変更を加えることもできます。詳しくは、Christian Cantrell氏の「One Application, Five Screens (Including iPad)(1つのアプリケーション、5つの画面(iPadを含む))」およびJonathan Campos氏の「Architecting your application for multiple devices(複数のデバイスに合わせたアプリケーションの設計)」を参照してください。

販売促進

ゲームのライセンシングなど、一部の収益化戦略には配布戦略が含まれます。しかし、そうでないモデルを選んだ場合には、どのように完成品をゲームプレーヤーの手に届けるのでしょうか。

大規模なソーシャルゲーム会社(Zynga、EA、Playdomなど)は、自己宣伝およびバイラルマーケティングに実績があります。Flashゲームの内外で、ユーザーはゲームの活動や進み具合を他の人と共有したり、友達を誘って一緒に遊んだりすることができます。Flashゲーム空間に新しく登場したHeyzapは、ゲーム開発者がゲームを配布するのに役立ちます。もちろん、販売促進を自分で行うこともできます。

プロジェクトの販売促進のため、Webサイトを作成したり、ソーシャルネットワーク(Twitter、Facebookなど)を利用してトラフィックを生み出したりすることができます。GamerSafe、Heyzap、Mochi Mediaなどの企業のサービスを利用すると、各自のゲームに関するコミュニティを構築して維持することもできます。いずれの企業でもAPIおよび優れた機能を数多く含んだサービスを提供しており、ゲームのユニバーサルなセーブ、トロフィーシステム、ハイスコア、マイクロトランザクション、バイラルプロモーション、セキュリティなどの機能を利用できます。ゲーム内へのソーシャルネットワークの統合について詳しくは、「Distribute, measure, and monetize(配布、評価および収益化)」を参照してください。

ゲームのビデオをYouTubeやVimeoに追加するのも有益です。こうすると、ゲームの噂が口コミで広まりやすくなります。

Newgrounds.comのゲームポータルでは、Flashゲームを投稿してプレーヤーから評価を得るのに役立つ、とりわけ公正なシステムを利用できます。広告を統合する前にゲームを投稿することによって、プレーヤーに基づく評価、レビュー、非公式のバグレポート、パフォーマンス統計情報など、貴重なフィードバックを得ることができます。ゲームを短期間だけ提供する場合でも、修正や改善が必要な箇所の一覧を作成できます。ゲームの完成度を上げると販売価格が高くなり人気も上がるので、製品をライセンサーに売り込む前にこのフィードバックに対処することを検討します。

収益化

完成したゲームプロジェクトを収益化するには、主に2つの方法があります。無料でプレイするゲームを提供する方法と、有料でプレイする高品質のゲームを提供する方法です。

無料のゲームは、次のような方法で収益化します。

  • 広告。ゲームの周りのHTMLページまたはゲーム自体の内部にバナー広告を配置します。広告料金は、通常、広告が表示された回数(インプレッション)または発生したトラフィックの量(クリック)に基づいてゲーム開発者に支払われます。
  • スポンサー。料金を支払ったスポンサー企業の広告、リンク、ロゴおよびマーケティングメッセージをゲーム内に表示します。
  • ライセンシング。料金を支払ったスポンサー企業の(通常はより目立たない)広告、リンク、ロゴおよびマーケティングメッセージをゲーム内に表示し、単一のWebサイトのみでゲームを利用できるようにします。例えば、Kongregate.comなどの大規模なゲームポータルでは、その独占的なコンテンツとしてゲームの使用を許諾することがあります。

次のような方法で高品質のFlashゲームをビデオゲームコミュニティに直接販売することによって、お金を得ることもできます。

  • 通常販売。ゲーム全体を一括前払いで販売します。
  • フリーミアム。無料で体験版または機能限定版のゲームを提供し、その後、ユーザーが定額料金を支払って完全版ゲームにアップグレードできるようにします。
  • マイクロトランザクション。キャラクター、能力、レベルまたはその他のコンテンツを入手するために、実際のお金をゲーム内の仮想通貨に変換するようにユーザーに働きかけます。マイクロトランザクションとフリーミアムゲームが一緒に使用されることもあります。
  • サブスクリプション。プレーヤーは定期的に料金を支払うことでプレイを継続できます(通常は月払い)。

詳しくは、私の記事「How to Make Money with Online Games(オンラインゲームで収入を得る方法)」およびFlash Platformゲームデベロッパーセンターの「Distribute, measure, and monetize(配布、評価および収益化)」ページを参照してください。

手順5:分析の使用

プロジェクトのユーザーが見つかったら、貴重なフィードバックが得られるようになります。多くのゲームポータルでは、ゲームプレーヤーがゲームについてコメントしたり評価を下したりすることができます。この情報を注意深く分析し、ゲームの改善に役立つものがないかをチェックします。

だれがゲームを閲覧、プレイ、繰り返しプレイしているのかを評価することは、良い出発点になります。しかし、これらの結果から学習することができて初めて、より人気のあるコンテンツを短期間で作成できるようになります。ポータルによっては統計を閲覧できるところがありますが、独自の統計を統合することをお勧めします。これを手助けしてくれる企業があります。Mochi MediaはActionScript 3のAPIを提供しており、これにより分析およびその他のサービスのホストを利用できます。PlayTomicでは、標準的なゲームイベント(ゲームの開始、ゲームの停止、終了したレベルなど)および定義可能なカスタムのゲーム内イベントを評価できます。ゲームのカスタム分析の評価結果は、ゲームの難易度を微調整する必要があるときに特に役立ちます。例えば、ほとんどのユーザーがゲームのレベル10に出てくるボスを倒せない場合は、少し簡単になるようにゲームをアップデートできます。

手順6:アップデート

どの配布方法を選択する場合でも、後でコンテンツをアップデートできるようにしておく必要があります。主要なすべてのゲームポータルはアップデートに対応しており、同様に、ゲームの提供先候補である多数のモバイルマーケットプレイスもアップデートに対応しています。

バグの修正、分析に基づいたゲームの改善、レベルやキャラクターなどの新しいコンテンツの追加のいずれであるかにかかわらず、初期リリースの後にゲームをアップデートすることで製品寿命を可能な限り伸ばせます。サブスクリプションに基づく収益化戦略では、しばしば、不定期にコンテンツをリリースして会員ユーザーの満足度を維持することが行われます。

フレームワークおよびその他のサードパーティライブラリ

Flash Platformには、洗練されたゲームを開発してレンダリングすることができる基盤が備わっています。Flashコミュニティからは、このプラットフォームの魅力をいっそう高める充実した補完物が惜しみなく提供されています。オンライン上を検索すると、プロジェクトに役立つ様々なツール、ActionScript 3.0ライブラリおよびその他のリソースを無料または安価で見つけることができます。

  • デザインパターン。パターンそれ自体はコードライブラリではありません。むしろ、レシピ(一般化されたソリューション)のようなもので、これを使って料理(プログラム)するとご飯(コード)ができあがります。
  • フレームワーク。フレームワークはスケルトンであり、ここに独自のコードを肉付けします。多くの場合、(特に新しい開発者は)フレームワークに従うことで、より読みやすく保守しやすく拡張可能なプロジェクトを作成できます。
  • パーティクル。パーティクル機能は、火、爆発、煙、塵などをシミュレーションするためのものです。
  • 3D。サードパーティライブラリを利用すると、ソフトウェアレンダリングおよびハードウェアレンダリングの3Dゲームを開発することが可能です。
  • 物理特性。ゲーム開発に物理特性を取り入れることの重要性について詳しくは、私の記事「Developing physics-based games with Adobe Flash Professional(Adobe Flash Professionalを使用した物理ゲームの開発)」を参照してください。
  • リアルタイムのマルチプレーヤー。リアルタイムのマルチプレーヤーゲームでは、別々のコンピューターまたはデバイスを使用する2人以上のプレーヤーが協力または対戦しながら同時にプレイできます。リアルタイムのマルチプレーヤーゲームの開発には、ソケットサーバー、Electrotank、LiveCycle Data Services、Flash Media Serverなどのサービス、またはその他のサーバーサイドテクノロジーが一般に使用されています。

詳しくは、Flash Platformゲームデベロッパーセンターの「Gaming engines, 3D, and Stage 3D(ゲームエンジン、3DおよびStage 3D)」ページを参照してください。

マルチスクリーンデザインおよびモバイル開発

Flash Platformでのインタラクティブな開発は、Webブラウザーを対象にして始まりました。大部分のコンテンツは引き続きブラウザー内で利用されますが、Flash Platformにはさらに多くのことができるようになっています。Adobe AIRを利用すると、開発者は、ローカルコンピューターとの読み書きや全画面表示でのコンテンツ実行が可能な、デスクトップ向けのスタンドアロンアプリケーションを作成できます。2009年にアドビは、大手のモバイルキャリアおよびデバイス製造元とともに、Flash Player 10およびAdobe AIRテクノロジーを多数のデバイスに搭載し、Flash Platformの能力を携帯電話、モバイルタブレット、インターネットTVなどに解き放ちました。

現在、Flash ProfessionalおよびFlash Builderを利用する開発者は、ActionScript 3.0により多数のデバイスを対象にしてプロジェクトを作成できます。ただし、複数のデバイスに向けたデザインおよび開発では、いくつか新しい課題があります。

到達範囲および生産性

伝統的に開発チームは、デバイスまたはプラットフォームごとに、新しいコード、新しいAPI、さらにしばしば新しいプログラミング言語を使用して中心機構を作り直す必要がありました。1つの便利なプラットフォームから、単一のコードベースで作成したコードを多数のデバイスに公開できることは、長い間、開発者にとって夢のような話でした。Creative Suite 5.5およびFlash Builder 4.5があれば、Flash Platformによりゲーム開発者はこの夢に近づくことができます。

複数のデバイスに対応したコンテンツを開発者がより簡単に作成できるようになると、デバイス製造元およびキャリアにも恩恵があります。アドビは他の業界リーダーの後援を受けて業界全体のイニシアチブであるOpen Screen Projectを主導していますが、そこではすべての参加企業が1つの明確なビジョンを共有しています。そのビジョンとは、「任意のデバイスでどこからでもシームレスに堪能できる、リッチなインターネット体験を消費者に提供する」というものです。

前述のとおり、Flash Playerは、成熟した市場においてインターネット対応デスクトップの99%にインストールされており、その他にも幅広いデバイスで使用されているので、Flash Platform開発者は、ユーザーが既にFlash Playerを持っていることを当てにできます。iOSデバイスではFlash Playerでコンテンツを実行できませんが、それでもAdobe AIRテクノロジーを使用することで、ゲームをFlashで開発してiOSデバイスにデプロイできます。この方法について詳しくは、「Flash Professional CS5.5 - Publishing content to iOS devices(Flash Professional CS5.5 - iOSデバイスへのコンテンツの公開)」および「Developing for iOS with AIR for Mobile 2.6(AIR for Mobile 2.6によるiOS向けの開発)」を参照してください。

複数の画面サイズに合わせたデザイン

複数の画面サイズを対象としたアプリケーションの作成時に直面する障害は、気が遠くなるほど厄介だと思われがちです。使用可能な全領域に収まるようにコンテンツのサイズを変更するだけでは、ゲームのニーズはなかなか満たされません。重要なのは、小さなデバイス上であってもテキストが読めることです。また、ボタンはマウスポインターではなく指で押せるように、適切なサイズに変更する必要があります。1つのデバイス内でも、ユーザーはビューを横向き(幅がある)モードまたは縦向き(高さがある)モードに切り替えることができます。この動作をサポートするかどうか、そしてサポートする場合はどのような方法にするかも決める必要があります。詳しくは、Allen Ellison氏のすばらしい記事「Flash sizing Zen: Making Flash fit on mobile devices(Flashのサイズ変更の理解:モバイルデバイスに合わせたFlashの表示の調整)」を参照してください。

モバイル向けのデザイン

Flash Platformには、あるプラットフォームから別のプラットフォームにプロジェクトを再デプロイするときに役立つ機能が備わっています。それでも、単純にプロジェクトを移植するだけでは不十分な場合があります。最も魅力的なゲーム環境を提供するには、対象となるそれぞれのプラットフォームを別個のものとして扱い、デバイスごとの入力方式およびその他の機能を受け入れるようにします。少なくとも、対象となるデバイスおよびフォームファクター(電話、タブレットおよびコンピューターモニターのフォームファクターは異なります)でゲームをテストする計画を立てる必要があります。

入力方法

入力方法は進化しています。コンピューターブラウザーおよびデスクトップを対象とするコンテンツではキーボードおよびマウスによる入力のみに焦点を合わせてきましたが、他のデバイスでは事情が大きく異なります。初期のモバイルデバイスには小型のキーパッドが備わっていたので、新しい入力ソリューションが必要でした。2007年になると、iPhoneの革新的なタッチスクリーン入力が登場し、指を入力デバイスとして使用する時代が到来しました。モバイルタブレットデバイスにも多くの課題と可能性があります。一部のデバイスには専用の戻るボタンと音量調節ボタンが付いていますが、これらがないデバイスもあります。人気のある各種デバイスの入力方式には確かに共通性が見られますが、デバイスごとに最適の入力ソリューションを検討し、必要に応じてゲームをカスタマイズすることをお勧めします。現在、Flash Platformでは、ブラウザーベースのFlash Player 10.1以上、iPhoneまたはiPod touch向けに公開したSWFコンテンツ、およびAIR 2以上において、マルチタッチおよびジェスチャーがサポートされています。このトピックについて詳しくは、Christian Cantrell氏の記事「Multitouch and gesture support on the Flash Platform(Flash Platformでのマルチタッチおよびジェスチャーのサポート)」およびMike Jones氏の連載「Virtual Controllers for Touch-based Devices」を参照してください。

その他の機能

革新的な入力方式に加えて、ゲームに使用可能なその他の機能が多くのデバイスに備わっています。主な機能およびそれぞれの検討事項は、以下のとおりです。

  • 加速度計。一部のデバイスは、加速度計を使用してその回転角を感知します。これを入力デバイスとして使用できます。Flashゲームで加速度計を活用する方法については、このビデオをご覧ください。
  • アプリケーションのマルチタスク処理。ゲームが最小化および最大化されたときの動作はどのようにするのがよいでしょう?モバイルゲームの場合、電話がかかってきたら自動的に一時停止すべきでしょうか?
  • 一時的な接続。ユーザーは常にインターネットに接続されているわけではありません。ゲームは常時接続を必要としますか?オフラインモードおよびオンラインモードを用意しますか?
  • GPS/ジオロケーション。ジオロケーション機能を備えたデバイスでは、現在の位置情報を特定できます。これを使用すると、ゲーム環境を変更したり、コンテンツをロック解除したり、近くにいるゲームプレーヤーを紹介したりできます。
  • 写真、ビデオおよび音楽のライブラリ。ライブラリを使用すると、キャラクターカスタマイズのためにメディアを取り込んだり、プレーヤーのお気に入りトラックでゲームのサウンドトラックを充実させたりできます。
  • マイク。声を入力として使用します。ゲーム内でデバイスのマイクにアクセスする方法については、このビデオをご覧ください。
  • 永続化。多くのモバイルユーザーは、ちょっとした空き時間ができたときにゲームで開始から終了まで一気に遊びます。ゲームでその進捗状況が保存されるようにすれば、ユーザーは前回の箇所からすばやくゲームを再開できます。
  • スリープモード。一部のデバイスは、操作していないときにスリープモードになります。ゲームの反応はどのようになるでしょう。ユーザーが別のことに気を取られてデバイスを机の上に置いた場合、ゲームを一時停止しますか、それとも電池を消費し続けますか?
  • 静止カメラ(前面または背面)。カメラを使用すると、ユーザーが自分の顔またはその他のイメージをゲームに追加できるようになります。ゲームにカメラの入力機能を追加する方法については、このビデオをご覧ください。
  • ビデオ録画。ソニーのEyeToyまたはMicrosoft Kinectのように、ビデオを入力デバイスとして使用します。
  • ビデオ出力。一部のデバイスは、モニターまたはHDTVディスプレイに接続できます。

その他の検討事項

選択する対象デバイスによっては、ユーザー向けにゲームを公開するときに特別な権限が必要になることがあります。通常、オンラインで開発者(個人または企業)として申し込むことで、公開するコンテンツがその開発者からのものであることを保証するためのセキュリティ証明書を入手する必要があります。場合によっては、料金の支払いが必要になることがあります。この手続きはデバイスごとに1回だけ行います。作成するすべてのゲームに対して行う必要はありません。最終的には、これにより、ゲームを購入してプレイしてくれるゲームプレーヤー向けに、より信頼できる環境が提供されます。このプロセスには少し時間がかかる場合があるので、開発プロセスの早い段階で申し込むのが良いでしょう。

モバイル向けの最適化

モバイルデバイスの処理能力は通常のコンピューターよりも低いので、モバイルデバイスを対象としたプロジェクトを最適化することは特に重要です。ゲームのパフォーマンスを最大化するには、対象デバイスにおいてベンチマークテストを実行し、コードおよびレンダリングルーチンを最適化します。詳しくは、「手順3:テストおよび最適化」を参照してください。

また、モバイル&デバイスデベロッパーセンターにある「Optimize Flash content for mobile browsers(モバイルブラウザー用Flashコンテンツの最適化)」および「Flash Platform for TV(TV用Flash Platform)」も参照してください。

Flashゲームのセキュリティ

この節では、「セキュリティ」という用語を知的財産の保護およびゲームの不正使用の回避という意味で用いています。ゲームを作成する場合、コンパイル済みコードのセキュリティと、ユーザーがプレイしている間のゲームのセキュリティは、いずれも注目の話題です。

コンパイル済みコードのセキュリティ

通常、FlashゲームはSWF形式にコンパイルされるので、HTMLページのソースコードを表示してコピーするよりも中身の取得が難しくなっています。しかし、コードの解析を可能にするデコンパイラーも存在します。ほとんどのクライアントサイドテクノロジーと同様、Flashはリバースエンジニアリングおよびハッキングに対して脆弱です。ソースコードを調べることによって、悪意のあるプレーヤーは、ゲームを不正に使用する方法を見つけようとします。採用しているビジネスモデルによっては、これが問題にならないこともあります。しかし、ソーシャルコミュニティ、ハイスコア追跡または仮想通貨を提供している、より大規模な多くの企業にとっては、セキュリティは重要です。サーバー上ではより堅固な保護が可能なので、そこにゲームデータを保持することがしばしば行われています。また、SWFファイルをロックするのに役立つツールもあります。Amayetaなどの企業が作成している、こうしたツールを使用すると、ハッカーを妨害できますが、ハッカーを完全に止めることはできません。各種のテクノロジーを組み合わせると、クライアントコンテンツのセキュリティを高めることができます。Roguishの社長であるElliot Mebane氏は、次のように述べています。「我々は、SWFゲームをC++シェルでラップして配布しています。C++でネイティブに開発した別のゲームと比較してもパフォーマンスは劣りませんし、権限管理などのセキュリティ上の恩恵も得られます。」

実行時のセキュリティ

悪意のあるプレーヤーは、スニファーなどのツールを使用して、ゲームによって送受信されるネットワークトラフィックを監視します。これにより、正規の呼び出しになりすましてゲームに入り込み、ハイスコアの結果を偽ったり、コンテンツを不正に早くロック解除したりします。これを防ぐ技法の1つとして、すべての転送データを暗号化する方法があります。

Cheat EngineやQuick Memory EditorなどのツールによるRAMハッキングもよく知られています。ユーザーは、Flashゲームをプレイしながらこの種のツールを使用することがあります。このツールでは、コンピューターのRAMを分析して、現在のスコア、ライフの数またはその他の重要な情報の格納場所を特定します。このためにユーザーは、現在の値が何を表すのか(画面にスコアが表示される場合は簡単に特定が可能です)およびその値がどのように変化するのかを知る必要があります。続いてユーザーは、各自のスコアをゲーム内で実際に獲得することなく手作業で不正に操作します。これを難しくするには、画面上に表示するすべての変数の値を暗号化することによってその内容がユーザーに筒抜けにならないようにします。

次のステップ

この記事では、広範なトピックを取り上げましたが、これ以外にも興味深い情報がたくさんあります。上の各節で紹介した様々な参照先リンクをたどって、さらに学習を継続されるのも良いでしょう。

Adobe Developer ConnectionのFlash Platformゲームテクノロジーセンターは、記事、チュートリアルおよびその他の興味深い資料を見つけるのに最適の場所であり、あらゆる技術レベルのWebゲーム開発者が利用できます。開発を始めたばかりの場合は、ここで学習を進めたり刺激を受けたりすることができます。経験豊かな開発者の方も、いっそう印象的なゲームの開発に役立つ新しいリソースを見つけられることが多く、さらに、自ら有益な記事を執筆してコミュニティに提供することもできます。

実践的な経験の代わりになるものはありません。最初のゲームに取り掛かるのは大変かもしれませんが、重要なのはとにかく始めてみることです。前述したFlyerゲームのような小さいプロジェクトを選んで、最初のFlash Platformゲームをぜひ作ってみてください。

最後に、Say Design社CEOのJohn Say氏の言葉を紹介します。「90年代後半にFlashにActionScriptが登場して以降、Flashは着実に成長を続け、バナー広告から始まったその用途は現在随分と広がりを見せています。10年を経過した今、私は、Flashがそのパフォーマンスと機能の両方を絶え間なく向上させながら、クロスプラットフォームのオンラインゲーム分野を劇的に変えていくことを確信しています。」

Adobe Flashテクノロジーで作成されたゲームは、本当に至る所で見かけます。カジュアルゲーム業界の未来も明るそうです。Flash ProfessionalおよびFlash Player 10の機能はかつてないほど充実しており、開発者から要望があった事項については、(すべてではないものの)そのほとんどが実装されています。こうしたインタラクティブなカジュアルゲームの背景にある基本理論とその適用方法を理解すれば、ゲーム作りに取り掛かるのがいかにたやすいかがわかるはずです。今すぐぜひ始めてみてください。

謝辞

この記事を執筆するにあたり、貴重な知見と助言を与えてくれたすべてのコミュニティリーダーに感謝の意を表します。また、毎日私に楽しみと刺激をもたらしてくれるすべてのゲームデザイナーとゲーム開発者にも特別の感謝を送ります。

 

製品

  • Acrobat
  • Creative Cloud
  • Creative Suite
  • Digital Marketing Suite
  • Digital Publishing Suite
  • Elements
  • モバイルアプリ
  • Photoshop
  • Touch Apps

ソリューション

  • デジタルマーケティング
  • コンテンツオーサリング
  • Web Experience Management

業種別ソリューション

  • 教育
  • 金融機関

サポート

  • ヘルプ&サポート
  • 注文と返品
  • ダウンロードに関するヘルプ
  • ユーザー登録に関するヘルプ

ラーニング

  • ADC: Adobe Developer Center
  • Adobe TV
  • Design Magazine
  • Photoshop Magazine
  • Focus In

ご購入方法

  • アドビストア
  • アカデミックストア
  • アドビライセンスストア
  • ボリュームライセンスについて
  • 販売パートナー
  • キャンペーン情報

ダウンロード

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(英語)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント&セミナー
  • Legal(英語)
  • セキュリティ
  • お問い合わせ
国・地域および言語の選択 日本(変更)
国・地域および言語の選択 閉じる

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

利用条件 | プライバシーポリシーとCookie (更新)

Reviewed by TRUSTe: site privacy statement