読者です 読者をやめる 読者になる 読者になる

QuestNotes開発日記

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

「おすすめ」クエスト表示の自動生成

いつの間にか2015年も終わりになりますね。
さて、年末でまとまった時間が取れたため、
いつもの作業よりもちょっと毛並みの違う作業をしてみました。

昨今、データマイニングというものが話題に上っているので、
前々から実際に手を動かしてみたいと思っていました。
そこで、「おすすめ」クエスト表示の自動生成を作ってみました。
f:id:questnotes:20151231042203j:plain
おすすめに表示されるクエストが、
今までしてきたレビューの採点を考慮して、
「”自分と似たような採点”をしている人が”高評価を付けた”クエスト」
かつ、自分のレベルと推奨レベルがかけ離れていないもの表示してくれるようになっている、かと思います。


今回実装してみたアルゴリズムは、有名らしいユーザー協調フィルタリングというものにしてみました。
http://d.hatena.ne.jp/EulerDijkstra/20130407/1365349866を参考にしました。)
少し計算量が多そうだったので、リクエスト毎に結果は出さず、
毎日朝5時頃にユーザーごとに計算してあらかじめ結果を保存しているので、一日更新になります。
(また、レビューを最低5個は作成しないとおすすめが生成できません。)

ちゃんと役立つものになっているか心配ですが、
固定のものがずっと表示されているよりはまし、になるはずかと。。


ともあれ、これによって、レビューをすることは
・経験点がもらえる(自分がうれしい)
・クエストを受けるときの参考になる(他のプレイヤーがうれしい)
・遊んでもらった感想がもらえる(マスターがうれしい)
・自分の好みのクエストがおすすめされやすくなる(自分がうれしい) ←New!
と、良いことづくめなので
ぜひレビューにご協力していただければと思います。

新クラス追加「ダンサー」

踊り子のクラスになります。
周囲に影響を与えるスキルを多く持つ補助寄りで、前衛もできなくはないクラスです。
f:id:questnotes:20151231050452j:plain
ダンサーの証を名誉点で交換できるようになりましたので、ご利用ください。
サブクラス未実装のため作成時にクラスを取得していないキャラクターのみ、ダンサーになります。

クラスのスキル一覧は以下になります。
http://www.questnotes.net/Reference/Skill/Dancer
スキルの内容自体は随時調整していきます。


ついでなので、今回採用できなかった没スキルを紹介しておきます。
現状の仕様だと表現できませんでした・・・。

・ダンシングヒーロー
次の行動をクリティカルにする
AP1 1シナリオ1回
(次の一回だけ変更するエフェクトと命中判定を操作するエフェクトがないため断念)

・アヴォイドダンス
2回、回避判定を行う。
AP2 SP3
(回避判定の振り直しエフェクトがないため断念)


(今後、新エフェクト実装時に別のクラスで採用できればと思います)

Willの仕様変更について

今回、ヒッチやAP回復のスキルを試していて、
意図した動作でなかったた以下の点を修正しました。

アクションに対しての効果+1dを
移動/ヒッチ/ノックバック/AP回復・ダメージ/Will回復・ダメージ
には適用されないようにしました。

ご不便おかけして申し訳ありません。
よろしくお願いいたします。
該当エフェクトを持つクラス
(シーフ、ウォリアーはキャラクターリセットが1/10まで200ルドになります。)

2015年お疲れ様でした

今年はマイペースに粛々と作業はしてきてたという感じですかね。
iPhoneAndroidのリリース等の知見を得られたのが大きいですね。
(とりあえずリリースしただけという状態なので課題が多く残っていますが・・・)
来年はいろいろと展開を加速していければと考えているので、
時々でもお手に取っていただければ幸いです。

今年一年もQuestNotesに興味をもっていただきありがとうございました。
それでは皆様よいお年をー

クラス取得用アイテムの追加

新規クラスを実装する前に、
クラスの取得方法をどうするかと考えまして、
アイテムを利用して取得するようにしました。
「***(クラス名)の証」というアイテムを作成しました。

f:id:questnotes:20151219041803j:plain
(冒険者の宿>コルト>名誉点の利用、で専用のショップを開けます)
f:id:questnotes:20151219045046j:plain

(最初はクラスごとに専用のクエストを用意して、
 クリアできたらそのクラスになれるというのも考えたのですが、
 少し作業量が多くなってしまいそうだったので、一律でアイテムにしました。)

クラス用アイテムの獲得には「名声点」が必要になります。
(ただ現在、「基本クラスの証のみ&サブクラス未実装」なので、
クラスなしを選択したキャラクターが通常のクラスになれるようになっただけなのです)

「名誉点」(仮)について

f:id:questnotes:20151219044648j:plain
クエストをクリアするごとに取得できる点数です。
クラス取得アイテムのような特殊なアイテムとの交換ができます。

今までユーザーが利用できる資源が
所持金か経験値(CP)しかなかったので、
それ以外の資源がほしいなーと思いました。
そこで、今回「名誉点」という要素を追加しました。
キャラクター単位ではなく、ユーザー単位に付与され、
ユーザー間の取引はできません。

今後、名誉点の使い道として、
クラス取得用アイテムの交換だけでなく、
キャラクタースロットの拡張、倉庫の枠増大、フレンド枠の増大
等のシステムの補助にも利用できるようにするのもありかなと考えています。

レベルキャップについて

クラス数が増えていくと、いろいろなクラスのキャラクターを作成しておきたくなりますが、
現在のレベルキャップの最大レベル50だと二人目の育成が大変なので、
キャラクターのレベルキャップを30にしたいなーと思ってきました。
(シナリオを作る時も、プレイヤーのレベルの幅が少ないほうが、
遊んでもらえる対象ユーザーが増えそうですし)

ただ、昨今のオンラインゲームでレベルキャップの引き上げこそあれ、
引き下げという話はあまり聞いたことがないので、若干躊躇しています・・・。
(せっかくあげていただいたレベルが消えてしまうのも申し訳ないですし)

クライアントの更新について

いくつかのプラットフォームで提供しているのですが、それぞれ更新にかかる時間が違います。
大体更新にかかる時間は以下の通りです。
Silverlight:リアルタイム
WindowsStore: 半日
Android: 半日
iOS: 一週間

その結果iOSボトルネックになって、何か新規機能を追加するとしても、
iOSの更新待ちになってしまい、更新スピードが落ちてしまいます・・・、
また、年末等は審査業務が止まるそうなので更新も足踏みしそうです。
更新が遅くなりがちで申し訳ありませんが、ご理解とご協力いただければと思います。

ゲーム内データの更新

[スキル(メイジ)]
カウンタースキル
AP3→AP2になりました。

QuestNotesタッチUI版for iOSをリリースしました!

iOS版をリリースしました!
QuestNotes on the App Store

(いきなりversionが1.0.3ですが気にしないでください。。)
f:id:questnotes:20151114022706p:plain:w300

諸々どうにかしたい点があったんですが、
ひとまず公開させていただきました。
(中身としてはAndroid等と同等のものになります。)


今回はマルチプラットフォーム化にあたり、
Silverlightで痛い目を見たので) UIフレームワークから自作してみました。
結果としては、フレームワーク作りはおもしろく、勉強にもなったのですが、
パフォーマンスや演出に課題は大きく残ってしまいました。。

ともあれマルチプラットフォームで開発していく基盤を整えるという目的は達成できたので、
良かったのかなーと思います。


今までは移植のために機能をしぼってきていましたが、
これからは、少しずつ風呂敷を広げていければと思います。

クラス追加の予定

これからやってみたいこととして、クラスの追加を検討しています。

当初、クラスのシステムは聖剣伝説3のように、
基本クラスから派生した上級クラスを作ろうかなと思っていました
(例・ウォリアーの派生クラス)

ウォリアー >ナイト パラディン
>ロード
グラディエーター >ソードマスター
デュエリスト


が、最近LeagueOfLegendsを遊んでみてて思ったこととして、
クラスの上下関係をなくして、並列の関係でたくさんクラスを用意しておいたほうが、
選択肢が広がるのかなと思いました。(+サブクラスを持てるようにする)
また、拡張性からみても、新規クラスを追加するときも独立していたほうが行い易いと思いました。

例えば、
シーフの上級クラスとしてアサシンを用意するのではなく、
単独でアサシンというクラスを用意することで
シーフ+アサシン、メイジ+アサシン、アーチャー+アサシン
という感じの組み合わせも選択できたほうが表現力が高そうかな、と感じてきました。

というわけで、ひとまずダンサーを追加予定です。

ゲーム内データの更新

[スキル(ウォリアー)]エンゲージ
自分自身にも移動不可を追加しました。
(合わせて、ウォリアー、11/22までキャラクターリセットが200ルドになります。)

iOS向けタッチUI版アプリの公開作業中

巷ではiPhone6sが発売されたそうですね。
QuestNotesもiOSで遊べるようにしたいと思っており、
iOS向けタッチUI版アプリの申請を行いました。

できれば、AppStore公開と同時にブログを書こうと思っていたら、
予想はしていたのですが審査と修正に時間がかかり遅くなってしまいました。
9月も終わってしまったので一旦ここまでの経過ということでブログを書いてみました。

AppStoreの規約に準拠するための変更点

いくつかAppStoreに対応するための変更を行いました。

・登録にメールアドレス必須はやめる
f:id:questnotes:20151002022521j:plain
個人情報の登録が強制になっていたのが理由でRejectされました。
サービス自体にも特に絶対必要という感じでないの必須項目にしないようにしました。
(連絡やパスワードの再発行には必要なので登録しておいていただけると助かりますが)

また、メールアドレスは当たり前に 所持していることを前提にしていましたが、
意外と小学生の方などは持っていない場合があるらしいので、
ないほうが参加の敷居が下がるかなと思いました。

本当はアカウント登録なしで端末のIDを使って簡易登録&自動ログインできるようにするのがベターなのですが、
そうすると、他の環境で遊ぶときのためのアカウントの変換作業が必要になり、
ユーザーIDの扱いをどうするかという問題がでてきて考えることが増えるので一旦今回の対応になります。


・シリアルIDによるアイテム取得機能の削除
f:id:questnotes:20151002022559j:plain
最近のAppStoreではアプリ外の情報によってゲーム内コンテンツを開放することが許されていないそうです。
そこで、冒険者の宿で入力できたシリアルコード入力を削除しました。

もし未使用のコードがある場合は連絡していただければ都度対応しようかと思います。
よろしくお願い致します。。

これの代替手段として、公式サイトから入力できるようにしているタイトルを見かけたことがあります。
コミケ等のオフラインイベントの連動はまたやりたいので、
そのうちシリアル入力フォームを公式サイトに作成しようかと思います。


・・・と、こんな感じに粛々とAppStore対応作業を行っているので、
10月中には、iOS版もリリースできればと思っています。

ゲーム内データの更新

また、いくつかゲーム内データを更新しました。
(合わせて、ウォリアー、アーチャーは10/10までキャラクターリセットが200ルドになります。)

[スキル(ウォリアー)]カバーリング に以下の効果を追加(巻き戻し)
DEFの半分のダメージ軽減追加
MDEFの半分のダメージ軽減追加
・軽減効果はやはりあったほうが良いと感じたので再設定しました。

[スキル(アーチャー)]ウェポンチェンジ 削除
[スキル(アーチャー)]影縫い 追加
ラウンド終了時まで、移動不可を与える。回避可
AP3 SP3 SPEED1
・アイテム指定のスキルを作りたいとは思っていたのですがずっと未実装のままなのも良くない気がしたので、
ひとまず別スキルとしてアーチャーのスキルを作成しました。
毛並みは違いますが、どちらも距離を意識したスキルになります。
余談ですが、もう一つの移動不可スキル。ウォリアーの[エンゲージ]にスキル使用者も移動不可を追加しようとしたのですが、
現在のエフェクト設定の仕様だとできなそうだったので断念。。。

[アイテム]ツヴァイハンダー
ATK+2d+1 Hit-1から
ATK+2d DEF+1 Hit-1に変更
要望からの変更です。
ハンマーは打属性という固有性があるので一旦据え置きに・・・
・・・そういえば、属性システムがいまいち有効活用できていない気もするので、
属性の仕様の変更もしたほうがいいかなーと考えています。

Windows10でのご利用にあたって

Windowsの新OS、「Window10」がリリースされたそうです。
それ自体はうれしいことなのですが、
デフォルトのブラウザがInternetExplorerからMicrosoftEdgeになりました。

そして、EdgeはSilverlightプラグインをサポートしていないため
ブラウザでQuestNotesを遊ぶことができません・・・。
f:id:questnotes:20150802042505p:plain

つきましては、通常版の動作自体には問題ありませんので、
Window10でもInternetExplorerはまだ用意されているようなので、
そちらを利用するかインストール版をご利用ください。
(タッチUI版のWindow10は今しばらくお待ちください)


・・・とうとうSilverlightが開発元のMicrosoftからも
見放されてしまったようで寂しい限りです。

まだ完全Html移行できていないので、
今しばらくSilverlightともどもよろしくお願いします!・・

効果の移し替えのエフェクトの仕様変更

今まで、リフレクション等は移し替えても効果の計算には
変更の対象のステータスで計算していたのですが、
変更の対象のステータスで計算するように修正しました。

それに合わせて、カバーリングのダメージ軽減の効果をなくしました。

ホーリーライトの仕様変更

今までダメージのみだったのですが有用性が薄いという意見を多く頂いたので
「盲目ラウンド終了時まで(blind)Flee-2、HIT-2を与える」
という効果、また、抵抗のみ可に変更しました。
閃光によって、目眩ましになるイメージになります。

単純に攻撃性能をあげてしまうと、メイジのお株を奪ってしまうで、
あくまでサポートよりの攻撃スキルとして利用してもらえればと思います。

ステータスリセット期間

上記二点の修正があったため、
ウォリアーとアコライトについては8月12日まで200ルドになります。
(メイジについてはリフレクションが固有スキルなのでそのままになります)

クエスト中にアイテムを削除したときの仕様を変更

コマンドによって持ち込みアイテムを削除した時は、
クエストクリア時に復元するようにしました。
f:id:questnotes:20150713041447p:plain

現在の持ち込みアイテムのクエスト終了時の扱いをまとめると以下になります。

クリア時 キャンセル時
コマンドによって失ったアイテム 復元 復元
使用したアイテム 失う 復元
ショップで売却したアイテム 失う 復元
トレードで渡したアイテム 失う 失う

基本的には、プレイヤーが明示的にした操作以外ではアイテムを失わないようにしました。

コマンドで削除はログに通知されるだけなので、
アイテムを削除されていることに気がつないと
「いつの間にかアイテムが消えてしまった」と思われてしまう原因になるなのかなと思いました。
もし何か不都合があれば教えていただけると助かります。

その他アイテム周りの修正

前回の所持数まわりでアイテムの仕様を変更したので、
それに合わせて既存のシステムの調整を行いました。

  • アイテムの倉庫を200個に変更しました。
  • 倉庫の要素が種別にソートされるように修正しました。
  • 倉庫からの取り出しは最大数を越えても可能に変更

これらはフィードバックをいただいた案でして、
提案には大変助かりました。
今後ともよろしくお願いします。

アイテム最大所持数を20個に変更

今までは、ステータスによってアイテムの所持重量が決まりましたが、
今回は固定値でアイテムの所持数を装備中を含めて、最大20個に変更しました。
f:id:questnotes:20150610050104p:plain
変更の理由は以下の二点になります。

・1 アイテムを所持数が多すぎる
ある程度ステータスをあげると、倉庫(=100個)以上にアイテムを持ててしまえるのは
あまり自然ではないかなと思いました。
もう少し取捨選択してアイテムをクエストに持ち込めるようにしたかったので、
所持数の制限をしてみました。
(現在は回復アイテムぐらいしかクエストに持ち込んで役たつものがないですが、
 今後もう少し色々と実装してみたいと思っています)

・2 ログイン時の通信量削減
ローカルにデータを保存していない関係で
ログイン時にアイテムの情報等のデータを取得しに行くのですが、
所持アイテム数が多いとそれだけ通信するデータ量も増えてしまっていました。
(とりわけスマートフォンなどで問題になります)
所持するアイテムが減れば、ログイン時の速度改善につながればと思います。

(最大所持数でもイベント等で受動的なアイテム取得は可能です。)
(装備時の重量ペナルティは今までと同等になります。)

今回の仕様変更で、何か不都合があれば改めて指摘していただけると助かります。
よろしくお願いします。

ステータス上昇系スキルのレベルアップ項目

ダイスが利用できる項目については、[1d-2]のレベルアップをできるようにしました。

レイジ等のスキルLV1時に+1dの修正のものは
レベル4時に 1d+3 or 2d に成長を選択できるようになります。

(ただ、マスタリー等の初期が+1のものはダイス成長を選択すると
1d+1になってしまうため、ちょっときっちりしない気もしますね・・・。
マスタリー等は最大レベルを3にするか、
初期補正が+1のものはダイス補正をできないようにするか、検討したいところです)

合わせて、各クラスのスキルの仕様を変更したため、
修練場のステータスリセットを20日まで200ルドに変更されます