制作中のゲームデモ版 Ver 0.30 を公開しました

そろそろ公開しようと思ってはあれこれ直して、また公開しようとしてあれこれ直してたら Ver 0.20 から4か月ほど経ってしまいました。まあその分だけ Ver 0.30 より後で実装しようとしていたものも部分的に実装できたのでよかったのですが。

Ver 0.30 の制作で一番苦労したのは、ゲーム制作実況動画でもしゃべっていたのですがやはりマップを多階層にしたことによる NPC の移動の AI 制御ですね。とにかく階段付近での1階から2階への移動あたりで(逆移動も)ユニットが引っかかることが多くて1ピクセル単位で微調整していました。今も完全に解決したわけではなく解決しているかのように見せているだけなのですが、デモ版をやっている限りは特に問題ないように見えると思います。あ、Ver 0.30 公開にあたる実況解説については都合が取れないのでタイミングが良ければやる形にしたいと思います。

追加した機能などについてはゲームを公開しているページに書いたのでどちらを見ていただければと思います。とりあえずここでは目立ったものについて書いていきます。

マップの多階層化

Ver 0.20 では1階層のみで通行不可の場所は崖として配置してました。Ver 0.30 では階段を配置することにより崖を登れるようになっています。マップによっては高台を経由しないといけない場所もあります。

2016-07-13 22_52_34-CpuGameDanke1SLXna - Internet Explorer

SFショット

Ver 0.20 までのノーマルショットに変わる強攻撃の位置づけとして「SFショット」が使えるようになっています。新武器というわけではなく、通常攻撃に付加効果を与えるものになっています。「SFショット」を使うと、「FP」または「SP」を消費してノーマルショットをベースに「ダメージ増」「射程増」「連射速度増」「貫通力増」「弾速増」など様々な付加効果を得られます。

2016-07-16_02

ちなみに新武器はまだ実装していないのでお預けです。

マウス操作

まだ仮実装レベルですが、わざわざキーボードで操作するのがめんどいという方にマウスでの操作ができるようにしました。マウスカーソルに青丸が表示され、マップの空いているところをクリックすると黄色の丸が表示されてそこにユニットが移動します。敵をクリックするとその敵を攻撃します。

2016-07-16_03

Ver 0.30 ではSFショットが使えないなどいくつか未実装なものもあります。

ステージを2つ用意

今回ステージを2つ用意したのでどちらかで遊ぶことができます。ただ Ver 0.30 ではそこまで明確な違いはなく、「味方敵のレベルが違う」「敵の構成が違う」ぐらいでマップなどは共有になっています。「ステージ4-2」のほうが難易度が少したかいですが、今回のデモ版は全体的に難易度が低くなっているのでクリアはそんなに難しくはありません。また、マップについては複数用意してその中からランダムに選ばれるようにしました。毎回同じマップにならないようにしています。

ミニマップ

実況動画のほうでも説明しましたがミニマップが改良されています。地形がわかりやすくなっており、味方や敵の位置がわかるので攻略する際に活用してください。

2016-07-16_04

AI の強化

Ver 0.20 までは味方がランダムに動き回って敵がいれば戦うスタイルでしたが、Ver 0.30 では近くの敵に積極的に戦うようになりました。もともとこの機能は Ver 0.30 で実装予定はなかったのですが、ボスが隅っこにいたりするとプレイヤー1人で戦わなければならないことが多くかなり苦戦してたので急きょ実装することにしました。この AI の強化のせいで Ver 0.30 の難易度がかなり低くなってしまいました。( ^^;)

 

ゲームは以下のページで公開しています。Ver 0.20 と同様に Silverlight + XNA で実装しているので、初めてプレイされる方は、Silverlight の設定が必要になります。リンク先のページの真ん中ぐらいに設定方法が書いてあるのでそちらを参照してください。


SQL Server の Service Broker が正常に動作しない場合の対処法

Service Broker にメッセージやキューなどを登録したにもかかわらず、正常に処理されない場合の確認と対処方法について記載します。ただ、実際に動作しない原因については多岐にわたる場合がありますので、ここではその一例としてとらえておいてください。

Service Broker 自体が有効かどうか確認
select name, is_broker_enabled from sys.databases
Service Broker を有効にする
alter database [データベース名] set enable_broker with rollback immediate
なんのエラーが発生しているかを確認

最後の列にエラーの理由が載っています。

select * from sys.transmission_queue order by enqueue_time desc
データベースの所有者が正しく設定されているかを確認(null なら設定されていない)
select d.name as 'database', s.name as 'owner'
from sys.databases d
left join sys.server_principals s
  on d.owner_sid = s.sid;

設定されていなければデータベースを右クリックしてプロパティから所有者を設定 (sa とか Administrator とか本来設定されるべきもの)

SQL Server のセキュリティ-ログインに設定しているユーザーと、対象データベースのユーザーが一致しているか

他のサーバーにあったデータベースを復元すると一致していないことが多い