内観

え〜と・・・・プチロスに見舞われて以来、精神的にちょっとオンから遠ざかっています。
たかがゲームの事でどうしてここまで悶々としているのか?
自分でも不思議に思います。
不思議に思うだけでは何も解決しないのでちょっと自分の中で整理する為に考えを文書にしてみました。

=これはバグ?=
バグなのか仕様なのかと言う論点は不要でしょう。何故ならこれは間違いなく仕様ですから(嫌味ではありません)。
オンライン接続時のデータ確認に関する内部的なロジックの流れは以下のようになっているの思います。

START
 1.ログイン中フラグのチェック
  a.ONの場合
    装備品とチェックルーム以外のアイテム・メセタを削除
  b.OFFの場合
    ログイン中フラグをON
END

で、このロジックを組み込んでおく事によって何をしたいのか?
オンライン環境を利用したアイテムの複製を防ぐためです。
このロジックが無いと以下の様な方法で簡単にアイテム複製ができてしまうからです。

  1.キャラクターAがオンライン上でキャラクターBにアイテムaを渡す。
  2.Aはリセット後に再起動。
  3.Aのアイテムはリセット前に復活(アイテムaが手元に残っている)

ここまでの話でINT、もしくはWIDのパラメータにプラス修正のある方なら気が付いたと思いますが、上記ロジックには穴が有ります。
それは、装備アイテムで実行すればOKじゃない? と言う物ですがまさしくその通りですw。
ですが、当然PSOもそれには対処しています。
前述のデータ確認に関するロジックの朱書き部分、装備品とチェックルームの状態を維持する為に、オンライン中はいろんな所で自動セーブ処理(ラグオル,パイオニア2への転送、ショップ,チェックルームの利用)が行われています。
自動セーブの結果、装備品として認識されているアイテムを床に置いてみてください。
自動セーブ処理が動くはずです。


=プチロスを回避する方法は?=
論理的には簡単です。
装備品という制限を全所持品に広げれば良いのです。
今でも装備品(マグ,武器,鎧,盾,ユニット)で8アイテムが対象になっていますので、これを所持アイテム30コまで拡張するのです。
但し冒険する上での弊害も有ります。
消耗品(メイト系やアトマイザー系など)を床に置いても自動セーブが走りますし、アイテムを配分しようとシティーで床に置く際にも自動セーブが走ります。
プログラムとして可能でもゲームとしてどうかと考えると明らかにNGです。


=では、どうする?=
元々はアイテムコピーを防ぐのが目的です。
なら、コピーされたら困るアイテムのみを対象にするのはどうでしょうか?
条件は色々と考えられます、
・赤箱のみ
・赤箱と属性合計値が50以上の通常武器
・星10個以上のアイテムと属性合計値が50以上の武器
・星10個以上のアイテムと属性合計値が50以上の武器とスケープドールとグラとマテ等々
ここで対象となった物以外はロストします。
これであれば、開発工数,費用ともに大きな影響が無く最大の効果が得られると思います。


=後知恵に過ぎないが・・・・=
プチロスが起こる原因とその対処方法を自分なりに考えてきました。
今読み直してみて伝えきれていない考察部分も多くあります。
何を偉そうに書いてみても所詮は後知恵にすぎません。
しかしPSOは家庭用ゲーム機上で稼動するゲームです。
ユーザーが意図的に行うリセットに対処する為に、不測の運用障害(停電,GC本体の故障等)でデータが(物理的原因では無くゲームの仕様として)意図的に破損するなど許容できません。


=じゃ、ソニチが悪いのか?=
正直わかりませんw
開発現場を評価するには、
・このような検討を開発期間中に行えたのか?
・行うだけのリソース(時間,費用,要員)が与えられていたのか?
が必要です。
ですからその辺りの情報が無いので何とも判断できないのです。
でもね、これは私の想像ですがこの問題に関してはあまりソニチ内で検討されていないような気がするんです。
能力の問題では無くて重要度の認識が低い為にです。
極論すれば“所持アイテムは全てロスト”で仕様的には何の問題も無いのです。
しかし残念な事に今回の私のプチロスの原因はディスク読み込みエラーによるシグナル割り込みか、システムコールに対するエラー系のハンドリングとして発生しており、充分に事後処理が行える状況下で発生しています。
「ソフトウェアにはバグが付き物だ」などという事を良く聞きます、
ですが「バグが出る事とバグが出た結果の問題を最小限に押さえる事」はまったく別物です。
そしてこれは最初に述べましたがバグでは有りません。
非常に残念な事に、原因はまともな運用設計が(原因は不明だが)なされていない事です。


=結論として=
悶々としている原因は理解できました。
ユーザーとしてアイテムロストに憤りを憶え、
プロとしてこのアイテムロストが仕様として発生している事を理解し、
結果、これで最後とは限らない事が分かっているからなのです。

「いるのさ、あんなヤツが、何千、何万とな…クックック。」