2011年1月21日金曜日

2Dシューティングの影表示

夜の自由時間になると、やはりなぜか眠くなってしまう毎日ですが、うとうとしながら少しずつゲーム作成しています。

今回は2Dシューティングを進めました。地上物関連の追加して、破壊後に破壊痕を残せるように更新しました。また空中物には、影表示を追加しました。(画像はhamcorossam様よりお借りしております。)

通常、2Dの影などで悩むことなど無いかもしれませんが、今回2Dの影で問題になったことについて書いておきたいと思います。

UROBOROSXNA_20101221_2

2011年1月16日日曜日

SilverSprite動くかな(Ubuntu編)

ゲームを作っている合間に、VMWareを使用してPC-Unix(Ubuntu)を入れてみました。どちらかというとFreeBSDというOSの方が好みなのですが、PC-Unixユーザーには流行っており、おおく広まっている環境らしいというのが選択の理由です。
インストールした理由は、題名どおりで、PC-UnixでSilverSpriteが動くかなというのを試すためでした。
結果は…

2011年1月15日土曜日

64ビットOS上でのXNA開発環境

SandyBridge搭載のPC購入をご検討の方、うらやましい限りです。
XNAを使用している方で、次は64ビットOS環境に移行しようかと悩んでいる方向けの情報をメモします。

私は今、以下のような3年前ぐらいに購入したノートPCを使用してます。

  • Windows7 64bit
  • VIDIA® Geforce® 9600M GT 512MB
  • メモリ4Gバイト
    256MバイトのRAMディスクを作成して、そこにビルド結果のOBJやBINを出力しています。(なので、以下の実装メモリが3.71GB使用可能という表示になってます。)

しょぼいとかは言わないでください。Windowsでは、ゲームとかしないので、ブログでゲーム作成中の録画以外は全然快適に使えております。

2011年1月13日木曜日

2Dシューティングの準備

ブログ開始時から考えていた、2Dおよび3D(2.5D)のシューティングゲームを並行して作成するという件ですが、2D側をほぼ手がつけられていなかったので、昨日と今日の晩ご飯の後に、がんばって準備してみました。

c#とXNAの効率の良さのおかげで、3Dシューティングのソースコードと90%ぐらい?は共有できたのではないかと思っています。ソースの違いは、描画部分を少し変えて、マップの表示方法を変えたぐらいになります。本当に最小限ですが、なんとか懐かしいかんじのシューティングゲームっぽくなってきたので、動画をアップしてみました。

3Dシューティングと、並行して2Dシューティングもソース共有して作成していきます。

2011年1月12日水曜日

難読化 一部の関数だけ除外する

Visual Studio 2010のExpress版で頑張られている方々、私自信も含めてお疲れ様です。
Expressには、Dotfuscator が付いてこないので、少し悲しいですね。

先日Babel.netによる難読化方法を書いたのですが、一部の名前を難読化したくない場合について述べておりませんでしたので、メモしておこうと思います。

2011年1月11日火曜日

マッププロセッサにイベント機能追加

年末にゲームのマップをメタセコイアでマップを生成するように対応しました。
コンテンツパイプラインでマッププロセッサを作成し、マップデータに変換するという方法です。

今回、マッププロセッサにイベントを追加する機能を追加しました。

話はさておき、今更ですが他のシューティングゲームの動作を調査しました。大きく分けてイベントの出現方法に2つの方式を使っているようでした。

1つは、背景とイベントはまったく連動しておらず、時間によりイベントが発生するタイプです。
このタイプは、どちらかというと綺麗な背景を表示して、スピード感を得やすいような利点があり、マップと敵との関係があまり感じられないというのが短所あるように思いました。

もう1つは、背景とイベントが連動するタイプで、いわゆる地上物が配置できるタイプです。
このタイプは背景と敵配置などが連動して見た目が分かりやすい利点がありますが、背景と連動するためあまりスピード感を得らないという短所があるように思いました。

個人的に一番好きなシューティングゲームはスターソルジャーなので、今回はマップとイベントは連動させる方向で進めることにしました。

 

話を戻して、マッププロセッサに関する続きです。
マッププロセッサに、以下のような感じでイベントを配置できるようにしました。

UROBOROSXNA_20110110_1

と言っても、[Path]という通り道の上に、[#イベント名]という感じで名前をつけた球のオブジェクトを配置するだけのシンプルなものにしました。

ゲーム実行時に、カメラが[Path]の上を順次走査していくのですが、イベントが範囲内に入ったら、そのイベント文字列を引数としたを実行するという単純な仕様にしました。いろいろ考えたのですが、一番シンプルで汎用性があるので、これに落ち着きました。

具体的にイベントの内容ですが、今思いつくのは以下のようなものです。

  • 敵を出現させる。
  • カメラ(スクロール)スピードを変える。
  • 親玉を出現させ、背景をループさせるモードに移行する。
  • ステージクリアの合図。

このマップにイベントを設置するというあたりについて、もっと良い方法があるのか知りたいのですが、もしよいホームページをご存知の方がいれば情報をお願い致します。

2011年1月9日日曜日

SilverSprite事始め

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

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

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


2011年1月8日土曜日

新年ご挨拶

今さらながら、明けましておめでとうございます。
本年もよろしくお願いします。

今年に入ってから今日まで、毎夜異常に眠いがつづきプログラムどころか、WEB閲覧すらできてませんでした。

が…、ようやく今日からなんとか体も戻ってました。プログラムも早速再開しはじめましたので、昨年同様に動画や進捗情報などをあげていきたいと思います。

あとXNA以外にも、有用な情報があればメモ替わりにぐらいの軽い気持ちで、更新していこうと思います。そのほうがきっと長続きしそうですので…。

まずは、ご挨拶まで。