QuestNotes開発ブログ

MMOTRPG「QuestNotes(クエストノーツ)」を開発しています。不具合や要望があればぜひご一報ください。 

状態変化の終了条件追加

こちらの提案の実装で、
コンディションの終了条件追加を行いました。
前々からスリーピングが強すぎるという話があったので修正しました。
もともと、何かを受けたら状態異常を回復するというのは実装予定ではあったのですが
おざなりになっていたので、今回やっと実装しました。

f:id:questnotes:20141215033745p:plain
そのうち、

  • 毎ラウンド自分が判定を行って回復や
  • 他のプレイヤーがアクションで判定を行って回復

みたいなパターンも用意できればいいなと考えています。

合わせて、いくつか基本的な状態異常をプリセットとして用意しました。
プリセットからの値変更もできるので適宜利用してもらえればと思います。
f:id:questnotes:20141215033741p:plain

シナリオ表示の改善

こちらの提案からの実装ですが、デフォルトの表示件数だけでは
表示しきれないので「もっと見る」を追加してみました。
f:id:questnotes:20141215033748p:plain

シナリオ表示といえば、現在「おすすめ」が固定表示なのですが、
「このクエストを遊んだ人はこのクエストも遊んでいます」
的な動的なレコメンド機能を用意したいなーと思っています。

Twitterについて

開発している内容が、バグ修正が主になっていると、
なかなかブログを書く話題がなくてブログ更新が遅くなってしまいました。

Twitterについて

というわけで、今回はゲーム自体とは直接関係ないのですが、
Twitter関連について調べてみました。
f:id:questnotes:20141113022551p:plain
Twitterはもはや一大SNSになったコミニュケーションサービスですが、
QuestNtoesでもクエスト公開時などにTwitterへ通知という形で利用していたのですが、
時折Tweetする際にエラーが発生してQuestNtoesのサービス自体が停止してしまっていたのをなんとかしなければいけませんでした。

原因を調査するなりエラーハンドリングをきちんとするなりでもよかったのですが、
現在使用していたTwitterのライブラリ
「Tweetsharp」
https://github.com/danielcrenna/tweetsharp
自体がもう更新停止となっており、使い続けるのもよくないかなと思い
新しいTwitterライブラリに乗り換えてみようかなと思いました。


そこでC#、.NETのライブラリを少し探してみたところ、
「linq2twitter」
https://linqtotwitter.codeplex.com/
が更新もされており、インターフェースも良さそうだったので検討してみたのですが、
DLLの読み込みがなぜかうまく行かず断念。。。

しかたなく別のものを探していたところ
「coreTweet」
https://github.com/CoreTweet/CoreTweet
というライブラリを見つけました。
依存が少なく、国産?のライブラリということで採用してみました。
今のところきちんと動いていてくれて大変助かります。


また合わせてnugetで開発のパッケージを管理するように(いまさら)してみたのですが、なかなか便利です。

Twitterの運用

というわけで、Twitterのライブラリを更新したので、
ついでにメンテナンス情報も通知するようにしてみました。
f:id:questnotes:20141113021715p:plain

・・・現在Twitterの運用がユーザーさんとの交流窓口というよりは
情報発信Botみたいな感じになっていますが、
もうちょっと開発中の雑感や日常的?なことをつぶやくほうが
(宣伝的にも)いいのかなーとも思います。

同人ゲームは、ゲーム自体よりもゲームの開発自体がコンテンツになりうると思うので、
そういうアプローチもおもしろそうかなと思う今日このごろです。

防御の効果の修正

戦闘の計算処理を修正しました。

前々からDEF(物理防御力)の影響が大きいという話があったので、
今回いくつかの処理を修正しました。
もともとダメージ計算時にDEFは減算されており、
防御をすると更にDEF分減らせ、事実上DEFが2倍として扱える状況でした。
そのため、数値の成長的にATKとDEFを一ずつ上げていった場合には
防御側のほうが有利になりがちでした。

そこで、今回リアクションの防御時の減算を1/2にしてみました。

(判定を導入してみてはという話もあったのですが、
回避をハイリスク・ハイリターンで、
防御を確実だが安定しているリアクションとしたかったので、
今回の対応にしてみました)

盾の効果

f:id:questnotes:20140925022846p:plain
ついでにもう一つ戦闘関係の処理を修正しました。「盾」の扱いです。
上記のDEF処理も相まって盾の効果が想定していたよりも強くなっていたようです。
受動的な防御力と、能動的な防御力を分けられないかと考えて、
盾の効果をDEFの上昇から、軽減効果の上昇にしてみました。
(合わせて、「別の効果に対しての数値を変更するエフェクト(=サポートエフェクト)」を作成したので少し効果の表現の幅が広がりました。)

さて、修正してみたところ、早速意見を頂きました。
http://questnotes.uservoice.com/forums/112451-questnotes%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%9C%E3%82%A4%E3%82%B9/suggestions/6475709-%E7%8F%BE%E7%8A%B6%E3%81%AE%E3%83%90%E3%83%A9%E3%83%B3%E3%82%B9%E3%82%92%E4%BD%95%E3%81%A8%E3%81%8B%E3%81%97%E3%81%A6%E3%81%BB%E3%81%97%E3%81%84
・・・賛否両論ですね。。

「バランス修正の方向性」それ自体は良かったが、
「バランスを大きく変えてしまったこと」自体は不評という感じでしょうか。。。
ご不便をお掛けして申し訳ありません。。

今回の仕様変更が良かったか悪かったかはおいておいて、
仕様変更が起こった際の影響を軽減するものを
システムとして組み込んでおくことはできないものか、と考えてみました。

例えば、現在マスターが固定で設定する「推奨パーティー・レベル」を
実際にクリアしたパーティーの平均等から算出して動的に表示されるようにしてみるのはどうかなと思いました。

こうすれば、仕様変更によって敵が強くor弱くなっても、
プレイヤーに対しての齟齬は軽減されるのかなーと思いました。

・・・その他何か良いアイデアがあれば提案いただければと思います。。

今回はとりわけウォリアーに対しての大幅な下方修正となり申し訳ないのですが、
ゲーム全体のバランスを良くしていければと考えているので、
今しばらく調整の試行錯誤に付き合っていただければと思います。。

報告掲示板に画像貼り付けとスクリーンショット

以前より提案されていた以下の要望に対応しました。
不具合報告板における問題画面(スクリーンショット)の張り付け – Feedback for QuestNotes

f:id:questnotes:20140821013851p:plain:w300
画像の投稿処理自体は、ほぼ用意されていたので簡単だったのですが、
問題は画像を
"どうアップロードするのか"と"どこに保存するか"が難しい点でした。

そこで、ひとまずアップロードの処理と保存場所を流用できる
マスター用素材と同じ場所にアップロードするようにしました。
f:id:questnotes:20140821013918p:plain:w300

チャットの左側に「/screenshot」と入力して送信すると
「素材」の「その他」にスクリーンショットを保存できるようにしました。
Silverlightの制限によってインストール版でのみ可能)

トレードのUI修正

f:id:questnotes:20140821013923p:plain:w300
ひとまず作るだけ作ったような状態だったトレードのシステムを
改めて修正しました。

・UIの修正
アイテムの詳細を右クリックで確認できるようにしたり、
キャラクター情報を右クリックで表示できるようになりました。
・ロジックの修正
同一プレイヤーへの複数トレードの抑制
正しい順序で通信しなかった場合の不具合


それから開発的にやっておきたかった、
トレードの処理部分のSilverlightからの分離を行いました。
最近もろもろの事情(他の作業を優先していたり、開発用のNexus7が割れてしまったり(;;))で
スマートフォン対応を進めていなかったなーと思い、
Silverlightからの脱却も進めていかないと。。

パスワードの再設定とユーザーIDの通知

アカウントが必要なサイトには当たり前にある、
「パスワードの再設定、ID通知」をやっと実装しました。

パスワードの再設定は
メールで変更用URLの通知→ウェブサイトで変更
という流れになります。
f:id:questnotes:20140731021042p:plain

■クエスト失敗時の表示
f:id:questnotes:20140731021303p:plain
Failedが表示されるようになりました。
失敗はキャンセルとはもっと区別して、
失敗は経験値をもらえるようにしたいような気もします。
(失敗ほど学べる機会はないはず!)

f:id:questnotes:20140731021100p:plain
失敗画像
(クリア画像同等にスタンプっぽい感じを出そうしてみました。
 サムネイルに重ねると少し見にくい感じかも?)


■更新履歴 0.7.11.*
http://www.questnotes.net/Content/history.aspx

ボード参加時の読み込み処理を修正しました。

f:id:questnotes:20140712035204p:plain
今までボードの情報と参加しているキャラクターをまとめて読み込んでいたのですが、
ある程度参加キャラクターが増えてくると
目に見えて読み込みに時間がかかってしまっていたので、
読み込み処理を修正しました。

先にボードの情報のみを受取って、その時点で操作を許可して、
キャラクターについては後から読み込みを行うようにしました。

ひとまずこれで体感的な遅さは改善されたかと思います。


ただ、これでは根本的な解決にはなっておらず、
ログアウト中のキャラクターもボードに表示している限り、
どんどん通信量は増えてしまうのでなんとかしたいところです。

対応策としては以下のあたりを考えてみました。

  • 一定時間ログアウトしていたら非表示にする。
  • 一定数以上キャラクターが参加したら、最終ログアウト時間順に追い出したりする。
  • アクティブシーンでなければログアウト中キャラクターを非表示にする。


そもそもログアウト中のキャラクターを表示するのは、
戦闘中にログアウトでボードから離脱できてしまうと、
ログアウトとログインを切り替えて攻撃を回避するのを防ぐためのシステムなので、
3番目のあたりがよいかもしれません。

このあたりは別途、重さを感じるようになってきたら改めて対応していきたいと思います。

リプレイ

なんとQuestNotesでリプレイを書いてくれた方がいらっしゃいました!
http://blogs.yahoo.co.jp/showyan1979/11670423.html

TRPGの楽しみ方の一つとして「リプレイを書く&読む」というのがあると思うので、
リプレイが書きやすくなるようシステム的なサポートしていきたいですね。
リプレイを投稿できるような場所の用意や、
チャットログの書き出しなどはできるようにしたいところです。

キャラクター呼出を修正しました。

最近ちらほらグランブルーファンタジー(http://granbluefantasy.jp/)
というゲームを遊んでいたのですが、
ノンプレイヤーキャラクター(NPC)の扱いが良く出来てるなーと関心しています。

フェイトエピソードというNPCごとのストーリーの用意や固有スキルで、
NPCの価値がとても高く、魅力的になっているなと思います。

QuestNotesでももう少しNPCに価値を持たせるために
システム的な見直しをしてみました。

1・レベルの変動
固定レベルだと強すぎたり弱すぎたりと扱いにくくなりがちだったので、
現在のプレイヤーキャラクターと
同じレベルで参加するようにしました。

2・性格づけやセリフを設定
プレイヤーキャラクター同等に、性格パラメータや
セリフを設定できるようにしました。

3・キャラクター呼び出し(名称も「パーティー編成」に修正)から呼び出し可
NPCを仲間にいれるために、特定のボードまで移動しなくても、
一度仲間にしたNPCは、冒険者の宿から呼び出せるようにしました。

(また、キャラクター呼び出しにフレンドでない
 他のプレイヤーキャラクターを表示しないようにしました)

NPC追加

NPCキャラクターを追加したので、曜日ごとに現れるようにしました。
f:id:questnotes:20140630022729p:plain
日曜~水曜:メイ(クラス:メイジ、場所:酒場)
日曜~水曜:ノキン(クラス:ウォリアー、場所:ショップ)
木曜~土曜:ロット(クラス:シーフ、場所:酒場)
木曜~土曜:エル(クラス:アコライト、場所:修練場)

それぞれのNPCをリーンに配置したので活用してもらえればと思います。

後はそれぞれのキャラクターごとにフェイトエピソード的なものを
用意していければなと思います。

それから基本クラスではアーチャーがイラストがないので、
アーチャーのNPCを用意できていないのも
そのうちなんとかできればと・・・。