それですよね。その位置情報はどこでどういうふうに保存してるのがネックです。
部屋はインスタンスだから、入る前の座標は必ずどこかに置いてあるでしょう。
ミストの家ならミスト○区と立ち位置のXY(Zも?)座標はキャラのテーブルに保存してあるでしょう。
座標データでも、ミストと家は大して変わらないはず。国に関わらず家の3種類の中身は一緒だから、座標データは「ミスト-区-座標XYZ」から「S家-部屋ID-座標XYZ」に置き換えるだけで今までと変わらないはず。
問題はbtkさんの言う通り、部屋インスタンスがまだ存続してるかどうか。
もうすでに消されたら、その場合またハウジングのテーブルからその部屋の情報を読み込んでインスタンスを構築してから、キャラをその中に放り込めばいいです。
当然、部屋インスタンス構築の時間はかかるけど、その数秒待たされてもよっぽど短気な人でなければ特に問題になる要素ではないと思います。直接部屋に戻れる喜びと比べると。
おおむねそういう事情ですよね。
ただ部屋インスタンスとIDなど諸コンテンツのインスタンスの最も違うところは、部屋の出入りが激しい点。
ダンジョンなど、人がいなくなればすぐ消してもいいが、部屋だと出てからすぐ戻ってくることは多々有ります。
私はよく部屋内で一人で生産してますから必要な設備やNPCは置いてあるが、材料切れなどがある場合は外のマケボか3都市のNPCに買いに行きます。そして買い忘れもよく有るから数分間の間に部屋を何度も出入りしてます。他に似たようなシチュエーションも有るでしょう、部屋に入る前に隣人さんに挨拶されたりしたからとりあえぜ出てってちょっとだけの世間話してから中に戻るとか。そのため部屋から出た途端にそのインスタンスを全部破棄することはしないと推測してます。
せめて私ならそうはしません。
アクティブから非アクティブはしますがセッションまるごと削除して、また構築して、んでまた削除の繰り返しはかなりの非効率だと思います。
そのため、人が居なくても数分間の間はまだ生きてるでしょう → 5〜10分間の「アイドリング」。
もし鯖がこのアイドリングすらできないほど圧迫してるなら話は別です、IDの様な「鯖待ち」は未だに合ってないし聞いた話もないからそれほどではないと思います。
なぜそうしないのかが分からないけど、おそらくスケジュール的にこういうシステムを作る時間がなくて、一般IDのシステムを流用しただけでしょう。
でも話が逸れましたね。
アイドリングとか、キャラクターの位置情報とかより、キャラクターがログインしてすぐ、部屋インスタンスを構築すれば、昔のように「そのまま部屋に入る」って形はできると思います。
ですよね、やっぱりネットゲームする人の中に同業者も多いから聞きたいです。
クライアントはLUAっぽいですが、バックエンドは何使ってるのかすごく知りたいです。
データ量はかなり多いからただのSQLでは持たないでしょうね。
