2011年1月9日日曜日

SilverSprite事始め

先日書かせて頂いたように、ご自分のブログやホームページに、SilverSpriteゲームを配置しても、うまく動かないという方も多いのではないかと思います。私もBlogger にSilverSpriteサンプルが設置できないので、困ってました。昔はできたような記事があったのですが、設定が変わったのか、その記事通り実行してもうまくいきませんでした。

このブログでも使用している blogger は、画像以外(当然.xapは無理)はアップロードできませんし、 google sites では .xapファイルを配置してもうまくいきません。おそらく、一般的な無料のブログやホームページでも、SilverSpriteゲームが動かないことが多いのではないかと思います。

今、SilverSpriteを動かしているサイトは、大概がレンタルサーバーにファイルを設置しているっぽいです。しかし、先日ご紹介しましたGoogle App Engine を使うことで、レンタルサーバーを使わずに、自分のブログやホームページにSilverSpriteゲームを無償で配置することができるようになります。(※ただし、この方法をもちいても実行できない環境があるかもしれません。)





なお、このブログでは、重要な点、はまりそうな箇所など、SilverSpriteを始めるまでの足がかりの部分だけ補足したいと思っております。具体的にGoogle App Engineの具体的な使い方などはいろいろ検索してもらえればと思います。そうです。ずばり正直手抜きということです。

SilverSpriteやGoogle App Engineを使う前に
  • そもそも、なぜSilverSpriteが自分のブログやホームページで動かないの?
    「拡張子 .xap は、SilverSpriteのファイルです。」とサーバーとWEBブラウザ間で認識しあって.xapファイルを送信する必要があります。ファイル形式がわからないまま、.xapを送受信しても、SilverSpriteのファイルだと理解してくれないからです。詳しくは、googleでMIMEを検索してください。
  • Google App Engine って?
    Google App Engineは、プログラムやデータをおけるレンタルサーバーという理解でOKです。プログラムを設置し、WEBブラウザからサーバーにアクセスして、サーバープログラムを動かしたりする目的で利用するのが一般的です。例えば、投票システムとかそんなのですね。が…SilverSpriteで使う場合、プログラムを書く必要はありません。SilverSpriteで使う分には単純にGoogle App Engineは「.xapファイル置き場」との理解でOKです。(月間 500 万ページ ビュー以上有料などなので、実質個人では費用はかからないと思います。使用前に料金体系のご確認を…)

  • なぜGoogle App Engine に .xap を置くと、問題は解決するの?
    これが一番重要で、Google App Engineでは、アップロードするファイル1個1個に対して、このファイルはこの形式でと宣言することができます。Google App Engineを使って今回やりたいことは、.xapファイルは、SilverSprite(Silverlight)用のファイルなんですと宣言して、Google App Engineにファイルをアップすることです。
以上で、Google App Engine や、Google App Engine を使う意味がみえてきたのではないでしょうか?

手順とサンプル
まず、ここを参考に、Google App Engine にユーザー登録、Pythonのインストール、Google App SDK インストールを行い動作確認します。なんとなく使いかたは分かりましたでしょうか。このブログと違い分かりやすいですね。十分にファイルのアップロード方法などを確認してください。


Google App Engine SDKは、 C:\Program Files\google_appengineではなく、 C:\Google\google_appengineにインストールしておくことをおすすめします。理由は省略しますが、Windows VistaやWindows 7の方は、ハマる確率がありますので…。


ここまで動作確認できれば、もう動いたも同然です。一応Google App Engineにアップロードするサンプルを置いておきます。
※サンプルは、Google App Engine側にアップロードするためのプロジェクト構成サンプルと、HTMLに書くべきjavascriptのサンプルが含まれています。なお、サンプルはプロジェクト名などの問題で、そのまま使えません。あくまでも、設定ファイルはどう記述するかなどの閲覧程度にしておいてください。

サンプルには、Google App Engineのプロジェクト設定ファイル app.yamlも含まれています。
appyaml_settings
app.yamlには、今回のブログで最も重要な設定である、.xapとSilverlightの関連付けが書かれています。
設定ファイルapp.yamlで、.xapファイルに MIMEタイプ  application/x-silverlight-app  を指定しています。
あとはプロジェクトをGoogle App Engine にアップロードすれば、Google App Engineの設定は完了です。お疲れ様でした。
あとは、あなたのホームページのHTMLに、Objectタグで.xapを指定するだけです。うまくいきますように。


まとめ
このブログで言いたかったこと、それは、
  設定ファイルapp.yamlで、.xapファイルに MIMEタイプ  application/x-silverlight-app  を指定しています。
重要なので繰り返しました。本当にそれだけです。 これさえ押さえておけば、あとは何とかなると思います。恐るべき手抜き説明ですみません。
XNAでのゲーム作りを優先したいので、こんな感じで御了承くださいませ。もし、方法不明な場合、メールなどでご連絡くだされば、お答えできるかもしれません。


それでもうまくいかないよ?
それでもうまくいかないよという方。多くの方がそうかもlしれません。次の点を確認してみてください。
  • 手順とサンプルで紹介されているサイトの内容が動作することが最低条件です。よく読んでうまくいくまで頑張ってください。

  • 設置したファイルをWEBブラウザからアクセスできるか?
    例えば、 WEBブラウザから http://[あなたのアプリケーション].appspot.com/ として動作しますか?(私の場合、http://uroborosxna.appspot.com/ をアクセスすると Hello.,worldページが表示されます。)
  • Google App Engine を使う前に、ローカル環境で SilverSpriteゲームが動くことを確認してください。以下の動画のアドレスバーからもわかるように、C:\XNA\Projects\以下に置いて動作確認しています。まず、ローカル環境で動作することを確認してください。
    ローカルで動作確認


その他情報
新しい情報や、GPUアクセラレーションの設定など、書くべきことが他にもありますが、力尽きて無理でした。また時間のあるときにちょこちょこメモしていきたいと思います。

2 件のコメント:

  1. 先日コメントさせていただいた者です。
    前の自分のコメントを読んだら、催促しているようで、汗顔の至りです。

    今回の記事も非常に丁寧に解説していただき、参考になりました。今回の記事を元に自分でも検証してみたいと思います。

    C#という環境で無料で、手軽に遊べるWebゲームが作れるSilverSpriteにはかなり可能性を感じていました。普及率も悪くないようですし。Web上には、Silverlightのアプリを動作させるために、OSがWindowsのレンタルサーバを選択した、というような情報もあり、少々混乱していました。

    UROBOROS様の今後の活動も期待しております。

    返信削除
  2. ご連絡ありがとうございます。
    反対にお気遣いして頂く事になり恐縮しております。

    c#+Visual StudioのXNAは本当に使いやすい良い環境ですね。
    私も今作っているゲームが、ブラウザ上でも動かしたいと思っております。
    少しずつですが、ゲームの基礎部分も出来はじめてきましたので、なんとか完成まで頑張ってみたいと思います。匿名様もアプリやゲーム開発頑張ってください。

    今後ともよろしくお願い致します。

    返信削除