XNA:ラストスパート
2009年07月03日
その後の追加作業で、XNA TANKの完成度は99%というぐらいにまで出来上がってきました。
マルチプレイのテストのために、コントローラーを1個買ったりもして、P2の操作系にバグがあることも確認・修正ができました。(コード的にP3とP4も同じバグを持っていたので修正できました)
残っている作業は、「How to Play」メニューで表示するマニュアル部分なのですが、これもあと1ページだけです。ちなみに、英語版のマニュアルと日本語版のマニュアルの二通り用意しています。
ゲーマータグのリージョン情報で国情報を取得して、Japanなら日本語のヘルプを表示、それ以外なら英語のヘルプを表示しようと思っています。
ゲーマータグがサインインしていない状態でプレイする場合は、上記の方法で国情報が取得できないので、他の方法でも本体の国情報が取得できないか調査中です。
あと、もっとも重要な作業である
「正式タイトル名」を決める
というのが残っているのですが、なかなかイカス名前が思いつかなくて悩んでいます。
「ユニバーサルタンクアサルト」という名前を候補にあげていたのですが、海外のゲームで
「タンク ユニバース」という名前のゲームがあり、似たような名前になってしまうのでボツになりました(汁
ともあれ、制作は最終局面を迎えています。
今週の日曜に友人(例の50インチTVの人)の家で4人同時プレイのテストをする予定なので、ゲームバランスを含めた貴重なデータ収集が行えそうです。
最近はほぼ毎日のように弱雨が降っていますが、こちらも負けずにヌメヌメと最後の作業をしていきたいと思います。
余談ですが、北米でKoDuがリリースされたようですね。400MSポイントらしいです。
べっ、別にKoDuの事が気になってたりしてるわけじゃないんだからねっ!
マルチプレイのテストのために、コントローラーを1個買ったりもして、P2の操作系にバグがあることも確認・修正ができました。(コード的にP3とP4も同じバグを持っていたので修正できました)
残っている作業は、「How to Play」メニューで表示するマニュアル部分なのですが、これもあと1ページだけです。ちなみに、英語版のマニュアルと日本語版のマニュアルの二通り用意しています。
ゲーマータグのリージョン情報で国情報を取得して、Japanなら日本語のヘルプを表示、それ以外なら英語のヘルプを表示しようと思っています。
ゲーマータグがサインインしていない状態でプレイする場合は、上記の方法で国情報が取得できないので、他の方法でも本体の国情報が取得できないか調査中です。
あと、もっとも重要な作業である
「正式タイトル名」を決める
というのが残っているのですが、なかなかイカス名前が思いつかなくて悩んでいます。
「ユニバーサルタンクアサルト」という名前を候補にあげていたのですが、海外のゲームで
「タンク ユニバース」という名前のゲームがあり、似たような名前になってしまうのでボツになりました(汁
ともあれ、制作は最終局面を迎えています。
今週の日曜に友人(例の50インチTVの人)の家で4人同時プレイのテストをする予定なので、ゲームバランスを含めた貴重なデータ収集が行えそうです。
最近はほぼ毎日のように弱雨が降っていますが、こちらも負けずにヌメヌメと最後の作業をしていきたいと思います。
余談ですが、北米でKoDuがリリースされたようですね。400MSポイントらしいです。
べっ、別にKoDuの事が気になってたりしてるわけじゃないんだからねっ!
XNA:XNA TANK最後の仕上げ
2009年06月23日
制作が最終段階に差し掛かりました。
先日の事ですが、シングルプレイ用のエンディング画面も一応の完成となり、「ゲーム」と言える完成度になりつつあります。
残りの作業は、作業の見落とし部分の発見と修正、テクスチャーなどの絵に関する作業など、ゲーム全体の完成度を高めるための作業となります。
あと、バグ探しですが、今の所クリティカルなバグは見つかっていませんが、まれに怪しい挙動をする部分などが確認されているので、原因を調べて修正作業を行う事になっています。
一応、追加作業のリストを作ったのですが、梅雨の時期らしく地味にヌメヌメとやっていこうと思います。(汁
先日の事ですが、シングルプレイ用のエンディング画面も一応の完成となり、「ゲーム」と言える完成度になりつつあります。
残りの作業は、作業の見落とし部分の発見と修正、テクスチャーなどの絵に関する作業など、ゲーム全体の完成度を高めるための作業となります。
あと、バグ探しですが、今の所クリティカルなバグは見つかっていませんが、まれに怪しい挙動をする部分などが確認されているので、原因を調べて修正作業を行う事になっています。
一応、追加作業のリストを作ったのですが、梅雨の時期らしく地味にヌメヌメとやっていこうと思います。(汁
XNA:タンク用のクラス大改修
2009年06月19日
タンク用のクラスに大改修を行いました。
今までは、各タンク用にクラスがあって、タンク毎の攻撃力や移動速度などの固有のパラメーターを設定する予定でしたが、よくよく考えると、パラメーター部分以外の9割以上のコードが全く同じなので、無駄が多いというか、、、
美しくない!
ということで、5個あったタンク用のクラスを一つのクラスで使いまわす事にしました。
タンク用の各種パラメータを持つ構造体を、新設したタンククラスに引き渡すことで、タンク01にもタンク02としても使える、汎用タンククラスを作ったという事になります。
結果も上々で、今のところ問題無く動作しています。
ゲームバランスに関する数値の調整も、パラメーター用構造体の各数値を弄るだけなので、編集作業も楽になると思います。
これが、各クラス別々にやろうものなら、、、、、面倒です(汁
XNA TANKの制作も最終段階に差し掛かり、PGのリファクタリングや、マップの細部を弄るなど、細かい作業が多くなってきました。
今までは、各タンク用にクラスがあって、タンク毎の攻撃力や移動速度などの固有のパラメーターを設定する予定でしたが、よくよく考えると、パラメーター部分以外の9割以上のコードが全く同じなので、無駄が多いというか、、、
美しくない!
ということで、5個あったタンク用のクラスを一つのクラスで使いまわす事にしました。
タンク用の各種パラメータを持つ構造体を、新設したタンククラスに引き渡すことで、タンク01にもタンク02としても使える、汎用タンククラスを作ったという事になります。
結果も上々で、今のところ問題無く動作しています。
ゲームバランスに関する数値の調整も、パラメーター用構造体の各数値を弄るだけなので、編集作業も楽になると思います。
これが、各クラス別々にやろうものなら、、、、、面倒です(汁
XNA TANKの制作も最終段階に差し掛かり、PGのリファクタリングや、マップの細部を弄るなど、細かい作業が多くなってきました。
XNA:対戦スコアの表示
2009年06月11日
主にFPSのゲームでは、対戦中にTABキーを押すと、対戦中の全プレイヤーのスコアが表示されます。
XNA TANKもそれに習い、ゲーム中にBackボタンを押している間だけ自分の画面(ビューポート)にランキングと各プレイヤーのスコアを表示する事にしました。
スコアを表示するだけなら簡単だったのですが、ランク順に表示して、なおかつ
「スコアが同じプレイヤーを同じ順位にする」
という部分の集計アルゴリズムを考え付くのに時間がかかってしまい、今日やっとこさその作業が完了しました。
たとえば、プレイヤー1とプレイヤー2が同じスコアでの場合
1st Player1 Score:2
1st Player2 Score:2
2nd Player4 Score:1
3ed Player3 Score:0
という感じの表記になります。
単にスコアをソートして上から順番に順位をつけると
1st Player1 Score:2
2nd Player2 Score:2
3ed Player4 Score:1
4th Player3 Score:0
という表記になってしまい、美しくありません。というか、ランキング表記としては誤表記です。
一昨日ぐらいに良いアルゴリズムを思いついて作業に取り掛かったのですが、そのアルゴリズムにミスがあって、修正案を考えてさらに丸1日かかってしまいました(汁
まあ、色々思考錯誤して時間を使ってしまったわけですが、無事構想どおりのスコア表示が出来たので、今は満足してます。
ランキング表示がうまく働いたのを確認した瞬間はなぜか心拍数が上がってドキドキしました。
あのトキメキのような感覚は一体、、、、、ハァハァ
XNA TANKもそれに習い、ゲーム中にBackボタンを押している間だけ自分の画面(ビューポート)にランキングと各プレイヤーのスコアを表示する事にしました。
スコアを表示するだけなら簡単だったのですが、ランク順に表示して、なおかつ
「スコアが同じプレイヤーを同じ順位にする」
という部分の集計アルゴリズムを考え付くのに時間がかかってしまい、今日やっとこさその作業が完了しました。
たとえば、プレイヤー1とプレイヤー2が同じスコアでの場合
1st Player1 Score:2
1st Player2 Score:2
2nd Player4 Score:1
3ed Player3 Score:0
という感じの表記になります。
単にスコアをソートして上から順番に順位をつけると
1st Player1 Score:2
2nd Player2 Score:2
3ed Player4 Score:1
4th Player3 Score:0
という表記になってしまい、美しくありません。というか、ランキング表記としては誤表記です。
一昨日ぐらいに良いアルゴリズムを思いついて作業に取り掛かったのですが、そのアルゴリズムにミスがあって、修正案を考えてさらに丸1日かかってしまいました(汁
まあ、色々思考錯誤して時間を使ってしまったわけですが、無事構想どおりのスコア表示が出来たので、今は満足してます。
ランキング表示がうまく働いたのを確認した瞬間はなぜか心拍数が上がってドキドキしました。
あのトキメキのような感覚は一体、、、、、ハァハァ
XNA:BotのAI進化
2009年06月07日
今日というか、日が変わってるので昨日なのですが、BotのAIに新しい機能を追加しました。
現在のターゲットになっているタンクが、壁越しに居る場合、弾を撃たないアルゴリズムを実装しました。
以前は、壁越しだろうがお構いなく、射程距離とタンクの向きがターゲットに向いていれば、無条件で弾を発射していたという無能な部分を一つ改善できたことになります。
BotのAIに関しては、まだまだ利口ではないのでキモイ動きをしますが、ジワジワと調教していきたいと思います。ハァハァ
あと、タイトル画面のバックにランダムで表示していたマップのオーバービューですが、マップの稼動部分(斜め下に移動するスロープとか)の動きの部分もPG作業が完了しました。
テクスチャーの抜き色が抜けてない問題を抱えていますが、レンダリングステートの勉強不足だと思うので、修行して修正したいと思います。
今日も3時回ってしまった、、、、寝なくては、、、
現在のターゲットになっているタンクが、壁越しに居る場合、弾を撃たないアルゴリズムを実装しました。
以前は、壁越しだろうがお構いなく、射程距離とタンクの向きがターゲットに向いていれば、無条件で弾を発射していたという無能な部分を一つ改善できたことになります。
BotのAIに関しては、まだまだ利口ではないのでキモイ動きをしますが、ジワジワと調教していきたいと思います。ハァハァ
あと、タイトル画面のバックにランダムで表示していたマップのオーバービューですが、マップの稼動部分(斜め下に移動するスロープとか)の動きの部分もPG作業が完了しました。
テクスチャーの抜き色が抜けてない問題を抱えていますが、レンダリングステートの勉強不足だと思うので、修行して修正したいと思います。
今日も3時回ってしまった、、、、寝なくては、、、
XNA:マルチプレイモード用のBot
2009年06月06日
ラスボス様の動作と攻撃に関するPGが一応完了したので、あとは攻撃パターンや組み合わせなどの「ラスボスらしい強さ」にするためのバランス調整のみとなりました。
バランスにかんしては、全ての作業が完了後に、動作テストも兼ねて行う予定なので、最後にやる予定です。
で、次にやる作業を考えていたのですが、「マルチプレイの時に、プレイヤーが4人以下の場合はBotを参戦させて、常に4機による先頭にする」という項目があったので、それを始末する事にしました。
BotのAIに関しては、シングルプレイモードですでにある程度は出来ているので問題無しとして、プレイヤーエントリー画面でエントリーした後に、空いているプレイヤーをBotとして挿入する部分とか、その他細々した部分でPG作業が多くなってしまって、思ったより作業量が多かったです。
23時ごろから作業し始めて、今夜中の3時なので、4時間ぐらいかかった事になります(汁
Botのリスポン時に、バッファーオーバーフローを起こしたり、弾薬箱が取れなくなるバグが出てきたりと、あっちを触るとこっちで問題発生みたいな、ヤバい状況で作業してました。
とりあえず一段落ついて、Bot同士で撃ち合ったりするようになったので一安心です。
バランスにかんしては、全ての作業が完了後に、動作テストも兼ねて行う予定なので、最後にやる予定です。
で、次にやる作業を考えていたのですが、「マルチプレイの時に、プレイヤーが4人以下の場合はBotを参戦させて、常に4機による先頭にする」という項目があったので、それを始末する事にしました。
BotのAIに関しては、シングルプレイモードですでにある程度は出来ているので問題無しとして、プレイヤーエントリー画面でエントリーした後に、空いているプレイヤーをBotとして挿入する部分とか、その他細々した部分でPG作業が多くなってしまって、思ったより作業量が多かったです。
23時ごろから作業し始めて、今夜中の3時なので、4時間ぐらいかかった事になります(汁
Botのリスポン時に、バッファーオーバーフローを起こしたり、弾薬箱が取れなくなるバグが出てきたりと、あっちを触るとこっちで問題発生みたいな、ヤバい状況で作業してました。
とりあえず一段落ついて、Bot同士で撃ち合ったりするようになったので一安心です。
XNA:ラスボス様の制作
2009年05月29日
最近進捗を書いていなかったのですが、現在ラスボス様のステージとラスボス様本体の制作をしています。
同時に、ラスボス様専用の攻撃を作ってたりもしてます。
ラスボス様は、他のタンク共とは少し気色の違うお方なので、作業が難航していました。
今日っていうか、もう日が変わってるので昨日なのですが、やっとこさ大きな山を越えたという感じです。
山を越えたとは言っても、ラスボス様と専用ステージのモデルデータはまだ仮組み状態で、ラスボス様用のPG作業もまだまだ残件が残っています。
月末になると、やたらと「〆切り」みたいな空気が漂うので、かなり必死で作業している今日この頃です(汁
同時に、ラスボス様専用の攻撃を作ってたりもしてます。
ラスボス様は、他のタンク共とは少し気色の違うお方なので、作業が難航していました。
今日っていうか、もう日が変わってるので昨日なのですが、やっとこさ大きな山を越えたという感じです。
山を越えたとは言っても、ラスボス様と専用ステージのモデルデータはまだ仮組み状態で、ラスボス様用のPG作業もまだまだ残件が残っています。
月末になると、やたらと「〆切り」みたいな空気が漂うので、かなり必死で作業している今日この頃です(汁
XNA:効果音の減衰
2009年05月11日
XNA TANKの効果音は、エミッターとリスナーの設定をして、一応3Dピジショニングサウンドに対応させています。
自分の右側で音が鳴れば、スピーカーの右側から音が鳴るというアレです。
が、音の大きさが距離に関係なく一定の音量で鳴っていたので、今回はそれをなんとかするべく。
「せっかくだから、俺は音の減衰をやるぜ」
というわけで、遠くで音が鳴った時は効果音が小さく、近くで鳴った時は大きい音で鳴るようにしました。
参考にしたのは、例の如くXNA Game Studio 3.0 ドキュメントのサンプルなのですが、音の減衰はプログラム側より、XACT側で行う作業の方が多く、XACTのRCPの使い方が判ったらすぐに音の減衰に関しては習得できると思います。
ヘルプリファレンスの「減衰およびドップラー ピッチ シフトの概要」と「方法 : 減衰とドップラー (3D オーディオ エフェクト) の適用」を参照して、ぜひ皆さんも音の減衰に挑戦してみてください。
自分の右側で音が鳴れば、スピーカーの右側から音が鳴るというアレです。
が、音の大きさが距離に関係なく一定の音量で鳴っていたので、今回はそれをなんとかするべく。
「せっかくだから、俺は音の減衰をやるぜ」
というわけで、遠くで音が鳴った時は効果音が小さく、近くで鳴った時は大きい音で鳴るようにしました。
参考にしたのは、例の如くXNA Game Studio 3.0 ドキュメントのサンプルなのですが、音の減衰はプログラム側より、XACT側で行う作業の方が多く、XACTのRCPの使い方が判ったらすぐに音の減衰に関しては習得できると思います。
ヘルプリファレンスの「減衰およびドップラー ピッチ シフトの概要」と「方法 : 減衰とドップラー (3D オーディオ エフェクト) の適用」を参照して、ぜひ皆さんも音の減衰に挑戦してみてください。
XNA:ステージ5動画アップ
2009年05月01日
ステージ5のプレイ動画を撮ったので、YouTubeにアップしました。
今回もアナログな撮影で画質が酷いです。すいません(汁
撮影は、ケータイのSO905i(640×480、スーパーファイン画質)で撮影しました。
一応台の上に載せて撮影したので、ブレは無いと思います。
今回もアナログな撮影で画質が酷いです。すいません(汁
撮影は、ケータイのSO905i(640×480、スーパーファイン画質)で撮影しました。
一応台の上に載せて撮影したので、ブレは無いと思います。















![Microsoft XNAガイドブック [XNA ゲームプログラミングの基礎] Microsoft Xna Game Studio Express Creator\'s Guide](http://images.amazon.com/images/P/4862460593.09.TZZZZZZZ.jpg)

