QuestNotes開発日記

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

楽器とバードとメンテとマシュマロ

楽器

楽器の効果が地味だったので、もう少し独自性を持たせてみました。
楽器全般に、「自分が状態変化を含むスキル、かつ、ダメージを含まないスキルの行動をした時、消費SP-1の修整をする。(1ラウンドに1回)」を追加し、その他の値を調整しました。

タンバリン 「自分が状態変化を含むスキル、かつ、ダメージを含まないスキルの行動をした時、消費SP-1の修整をする。(1ラウンドに1回)」追加、FLEE+1に変更
フィドル 「自分が状態変化を含むスキル、かつ、ダメージを含まないスキルの行動をした時、消費SP-1の修整をする。(1ラウンドに1回)」追加、RESIST+1に変更
リュート 「自分が状態変化を含むスキル、かつ、ダメージを含まないスキルの行動をした時、消費SP-1の修整をする。(1ラウンドに1回)」追加、HIT+1に変更
ハープ 「自分が状態変化を含むスキル、かつ、ダメージを含まないスキルの行動をした時、消費SP-1の修整をする。(1ラウンドに1回)」追加、SP+3に変更

planned
新しい提案
  • 投票数:17
  • コメント数 4

楽器を持った時のみバードの演奏(perform)状態のデメリットを打ち消してほしい

折角バードだし、楽器も種類が色々あるんだからもっと楽器を持って欲しい……!と思ったので、提案させていただきます。
現状だと弓を持ちたくなる傾向にあるので、バード独自の要素で何かメリットがあればバードで楽器を持つ意味も生まれて来るかと。
AP -1、MOVE -1どちらも打ち消す……とまではいかずとも片方だけでも打ち消せれば楽器を採用してみたくなるんじゃないか……?と、思います。

questnotes.uservoice.com
(提案ありがとうございました!。。直接の提案内容の対応にならず恐縮です)

控えめな強化(効果の追加と調整がありますが差し引きは強化となっている想定)ではあると思っていますが、これはインフレを抑えるためと、将来的な変更の際に「強かったから弱体化」よりも「弱かったので強化」のほうが受け入れられやすい印象があるので、控えめな変更となったことを斟酌いただけると助かります。。。(バランス調整は今回で最後ではありません。)
(単純な数値上昇よりも回りくどい効果なので、弱いと思えるかもしれません(実際弱いかもしれません)が、その場合はキャラクターへの装備の採用を控えてもらえれば幸いです。装備の採用率はバランス調整の判断材料のひとつにしていければと思っています)

バード

バードのスキルセットについても、実装当時から現在まででエフェクト改善で表現できる仕組みを考慮して改めてデザインできればと思っています。
楽器とバードの変更を同時に行いたかったのですが間に合わなかったので取り急ぎの変更案の共有までです。

以下を目標に変更を考えています。
・補助スキルを使った後にも手持無沙汰にならないようにする
・演奏と他のスキルのシナジーを増やす
・効果のデメリットを控えめにする
・説明文の読みやすさを改善する

バードのスキルセット変更案
docs.google.com
(実装都合などで変更される可能性もあります。)

バードの再デザインに合わせて、いくつかエフェクト表現も拡張しています。
より柔軟な表現ができるようになったかと思いますのでぜひご活用ください。

・パッシヴエフェクトの発動制限を設定できるようにする。
・エフェクトの発生源で特定コンディションやキャラクターからのを指定できるようにする。
・カウントをすべて失わせる、取得時に失う条件を指定できるようにする
・トリガーやターゲットでエフェクト変数を利用できるようにする

読み込み処理の変更概要

今月中頃はメンテが多く、ご迷惑/ご不安にさせてしまい申し訳ありませんでした。

こちらの発生経緯について共有いたします。
(若干ITの知識が必要かもしれません。。。一言でいえば(?)キャッシュの対応とプロセス落ち問題の対応が重なったのが原因です)

まず背景として、QuestNotesのキャラクターのデータはサーバーにあるので、都度クライアントはサーバーから情報を取得するのですが、これがそこそこの負荷になっていました。
(例えば、1ユーザー1キャラクターでボードに参加すると1回読み込みです。3ユーザーがそれぞれ1キャラクターでボードに参加すると、それぞれのユーザーがキャラクター情報の読み込みをするので3ユーザーx3キャラクターで9回読み込みが発生します。ざっくり参加ユーザー数の2乗の読み取りが発生するので、負荷が高くなりやすくなっていました。)
そのため少し前から読み込み処理の改善の実装に着手していました。


サーバー側は読み取りたびにストレージからキャラクター情報を読み取っていると、ストレージの読み込みはそこまで早いものではないのでボトルネックになりがちです。そこで、改善の手法としてはストレージからメモリに読み取ったら、それを破棄せずメモリ上に保持しておいて、次の読み込みはストレージを使わずにメモリから返してあげよう。というのが今回の修正概要でした。
この仕組み自体は昨今のWebサービスでは一般的な認識ですが、QuestNotesの事情として一概にキャラクターの情報と言っても毎度装備やパーティーといったすべての情報を返すと冗長になるので過不足が多くならないように情報を返すのと、プラットフォームごと(主に旧通常版)で若干読み取りの仕組みが違うのも実装をややこしくしていました。。。


そして、一回適用してみたはいいものの問題があったので巻き戻した(4/15)のですが、その翌日(4/16)別起因のプロセス落ちの不具合が発生しました。読み込み不備よりもプロセス落ちが緊急度が高かったためプロセス落ちは修正したが、修正の適用は最新のコードに行ったため読み込み処理の修正が不十分のままの状態となったため、連日メンテナンスという状態になりました。

以上、ご不便おかけて大変失礼しました。。。
(もうちょっと読み込み周りには手を入れていく必要があるので引き続きご協力お願いいたします。。)
(gitのようなブランチ管理も検討します。。。)

質問箱

そういえば、ときどき質問のメールやDMをいただくこともあるのですが、例えば将来の予定や仕様の意図等どこにも掲載していない情報をそこだけで伝えるのも贔屓しているような感じがして若干気がひけていたので、公開情報として返答できるよう場がほしく、試しにマシュマロを用意しました!
個人的でない疑問はこちらに投げていただけると助かります(返答も質問者からの伝聞で伝わっていくよりも直接メッセージが伝えられたほうがニュアンスがぶれなくて良いかなと思っていたりと、都度個別に答えることを減らして運営負荷を下げることができればと思っています)
marshmallow-qa.com

特にQuestNotesに関係ないクソマロも歓迎(?)しているのでお気軽にどうぞ!