天空旅人トランジット通信 ドラクエ10

ドラクエXの最新情報・攻略・金策・狩場情報ブログ。DQ10初~中級者向けわかりやすい目線で更新。

PREV | PAGE-SELECT | NEXT

≫ EDIT

青山公士TDによる移動干渉バトル他、テクニカル夜話書き起こし DQXTVver2第8回より

青山TDによるテクニカル夜話、開演

 

140930ao01

 

りっきーD「本日はですね、DQXTV初出演ですかね、青山テクニカルディレクターをこちらに呼んでおります」

菅沼「いよっ、よろしくお願いいたします」

青山TD「みなさん、はじめまして。テクニカルディレクターの青山です。どうぞよろしくお願いします」

菅沼「あのたけやりへいでお馴染みの青山さんですよね!? ボクはたけやりへいだと思ってたんですけど、イケメンだったとは!」

一同「(笑)」

 

140930take1

 

りっきーD「そう、中身はこんなにイケメンという」

菅沼「たけやりへいでは無かったんですね~」

 

りっきーD「本日はですね、まず青山テクニカルディレクターに今日来て頂いているので、まずは青山TDに答えて頂ける質問から先にいきたいと思っております」

 

(以下、特に指定が無い場合は青山TDの発言)

 

AOYAMA Koji (@kojibm) | Twitter

 

続きを読むからどうぞ↓


↑あなたの1ポチでランクUP!



 

プログラマ部隊の頑張りで実装できたものはありますか?

 

140930ao02

 

「いりいろあるんですけれども、移動干渉を挙げたいと思います」

菅沼「移動干渉!?」

「みなさんが相撲と呼んでいる、戦闘中の押し合いのことですね」

菅沼「相撲ですね」

 

 

 

なぜ移動干渉バトルは大変なのか?

 

140930ao03

 

「ただ、なぜこれが大変なのか、無理だと思ったのかっていうのはよくわかんないと思いますので。移動干渉の説明の前にですね、ドラゴンクエスト10の移動そのものを理解してもらう必要があるので、ちょっとそれを解説したいと思うんですけれども。ちょっとこう齊藤さんと椿姫さんにご協力を頂きたくてですね」

椿姫「ハイッ!」

齊藤P「やりますよぉ!」

 

 

ドラクエ10の移動とは?

 

140930ao04

 

「手前に、せーので走ってもらえますでしょうか?」

齊藤P「同じように歩いてて同じ場所にいるのに、それぞれの画面でそれぞれのいる位置が違う、と」

菅沼「先頭が違いますよね~」

 

 

 

140930ao05

 

「ドラゴンクエスト10はご存じのようにオンラインゲームなので、サーバーとクライアントで動いているんですけれども。まずですね、手前にパッドを移動の操作すると、まずクライアントだけが少し動きます。で、ゲームなのでレスポンスは早いほうがいいので、まず自分のキャラクターは素直に動かすようにしてるんですね

 

 

 

140930ao06

 

「その後、サーバーにその位置情報を送りまして、サーバーはその後動くことになります。で、クライアントの方はずっと動き続けているので、さらに前に行っていて。サーバーで動いた後そのサーバーから今度は反対側のクライアントの方に情報が届きますので、こういう形になります。両方とも自分のキャラが前に行っている状態です」

菅沼「これあの、ボクなんかは1人で1画面でやってるからあれなんですけど、兄弟でかたやテレビかたやパソコンでっていう場合は同時に見たときにわかりますよね」

「そうですね」

 

 

 

それぞれの画面でそれぞれのいる位置が違う

 

140930ao28

 

椿姫「私が先頭で歩いてるはずなのに!」

齊藤P「そうなんだよね~。自分から見えているときと、人から見えているときと……これね、もう1人が見たときにどういう見え方するのっていうのも興味深いよね」

 

 

 

位置が違うと移動干渉できない

 

140930ao07

 

「ありがとうございました。ここでわかったと思うんですけれども、移動干渉ってお互いの位置がぴったり一致してないと、全部一致してないといけないです。バラバラだとですね、合わせられないですよね。これがまずひとつの難関だったんです」

菅沼「はいはいはいはい」

「操作性を……レスポンスを早くするのを犠牲にしないようにするために今の部分はそのままにしてあるんですけれども」

 

 

 

移動干渉モードでは、サーバー側から動く

 

140930ao08

 

実は移動干渉のモードに入ると、ちょっと動きが変わります。移動干渉のモードに入りますと、ゲームコントローラーの操作をしてもいったん動かないんですよね。方向だけを、いったんサーバーに情報を送ります

菅沼「ああ~、なるほど」

「その後、サーバーはその方向を受けて、押し合いをした上で重さとかを計算して、サーバー側で動かしてます。その後、そのサーバーが動いたのを受けてクライアントが動くという流れになるんですね

 

 

 

140930ao09

 

「だから普段は思った通り動いてるんですけれども、移動干渉が発生したときはなかなか思った通り動かないんで、ついついグッと押してしまうことになるんですね」

菅沼「それでボクが腱鞘炎になったわけですね!」

「そうですね(笑)」

菅沼「なるほどなるほど」

 

 

 

140930ao10

 

「で、それは一応解決して……これはこの方法が出来るまで出来ると思って無かったんですけれども。よく出来たなぁと思いました。プログラマーが本当、担当のプログラマーがすごい頑張ってくれて出来るようになりました」

 

 

 

140930ao11

 

「今ちょっと解説しなかったんですけれども、移動干渉に入った瞬間は位置がズレてるんですけれども、あれ実はですね、ゆっくりこう、近づいてるんです

菅沼「あっ、そうなんですか」

「だからたまに間違って、というかちょっと上手くいってなくて、早足で近づいたりすることもあるんですけれども。あの辺はちょっと誤魔化しがそうなってるんですね

菅沼「少しずつ、解決していくってことですね、なるほど~」

「そうですねハイ。では移動干渉はそのあたりで……」

齊藤P「スイマセン、わたしの隣で『何言ってるかぜんぜんわからない』って」

椿姫「ちょっと待って! バラさないで、バラさないでよぉ(泣)」

 

 

 

装備枠の拡張はいつ頃になりそうですか?

 

140930ao12

 

「こちら技術的な観点からの回答なんですけれども、現状、データベースというところが限界で」

 

 

 

データベースを年内に増強予定です

 

140930ao13

 

「データベースというのはみなさんのセーブデータを、レベルとかアイコンとかを扱ってるところなんです。保存している場所ですね。で、今少しメンテナンスのお知らせとかで流して頂いてるんですけれども、増強を予定しておりまして、うまくいけば年内か来年頭ぐらいには拡張できるかもしれないです

菅沼「オオーッ。これもう、すべてのデータベースですもんね。例えばもうプレイを1年2年ずっとやってないよという方のデータもきちっと残ってるわけで。またいつ復活するかカムバックするかわからないですもんね~」

「そうですね」

 

 

 

140930ao14

 

「イメージなんですけど、現状のデーターベースはですね。ドラゴンクエスト10はサーバーの移動を自由にしている関係で、すべてのデータが1個のデータベースに納まってるんです」

関連:サーバー移動自由、全キャラワールド共通 ドラクエ10の地味な良い仕様1

 

「この数字見てピンと来ないと思うんですけど。20億のデータに対して、全部に対してじゃないんですけれども、毎秒だいたい4万回ぐらいの処理をしてるんですが、20億っていうのはイメージとして、エクセルっていうの使ったことありますかね? 表計算ソフトですね。あれの縦の行が20億行あるイメージなんですけれども。よくわからないですよね(笑)」

菅沼「20億行……?」

 

 

 

現状でも、最大級の設備を使っています

 

「ようは、ちょっとバケモノマシンなので。これより性能のいいのをっていうとですね、なかなか金出しゃいいっていう訳にもいかなくてですね。いま検証とかを進めているところです」

菅沼「最大級の物を使ってても、もうちょっとパンパンですよっていうことなんですね」

「そうなんですね」

齊藤P「いまコメントでね、Exadataっていうすごい具体的な名前を出した人がいるんですけど(笑) これアレですよ、本当に銀行とかで使ってるレベルのDBなんで」

菅沼「うわー」

齊藤P「これを買うとき本当もう、なんだろ、夜中一晩泣きましたからね

一同「(笑)」

齊藤P「いやいや、そのぐらいね。本当、だからゲームでそんなに使ってないと思いますよ」

椿姫「そのデータベースを処理するマシンみたいなのが高いってこと?」

「そうですそうです。ただ、お金出せば済むレベルじゃなくなってきててですね、なかなか、ハイ、大変な状態になってます」

菅沼「そのおかげで我々のデータがきちっと残ってるんでね、本当ありがとうございます」

 

Oracle Exadata Database Machine

 

 

 

3DS版の現状をどう思っていますか?

 

140930ao15

 

「発売直後は、本当ご迷惑をおかけしました。申し訳ありませんでした。ちょっと日付ははっきり覚えていないんですけれども、たぶん9月の9日ぐらいからは安定して動いているんではないかと思うんですよ」

 

 

 

140930ao16

 

「それでですね、少し先ほどコメントがあったと思うんですけれども、3DS版でうまく動かないっていう方がけっこういらっしゃるのかなぁと思ってですね。ええと、通信速度が、少し普段のWii版WiiU版Windows版と比べると、帯域が、通信速度が求められるようになってまして」

 

 

 

3DS版は、より通信速度が必要

 

140930ao17

 

「Wii版とWiiU版とWindows版は30kbpsぐらいで動いてます。上の3つは座標のデータとか数値のデータだけを送っているのでけっこう小さいデータを送っているんですね。なんですけど、3DS版とDゲーム版に関しては映像のデータを送るので、動画配信をしている形なので少し大量にデータが要ります。で、メガとキロっていうのは、上のKがキロですけど、キロとメガは1000倍違うので、(Wii版他と3DS版の通信量は)だいたい50倍くらい違います

菅沼「そんなに違うんですね」

「なので普段問題ないんだけど、ニコニコ動画を見始めると遅くなるとかはある可能性があります」

菅沼「マンションとかにお住まいの方で、ネットのピークタイムといいますか、みんなが同時にネットやってるときっていうのは、やっぱりちょっとこう難しかったりとかっていうのもあるんですかね」

「場所によってはあるかもしれませんね」

 

 

 

3DS版も、現在は快適に遊べるはず

 

椿姫「3DS版の発売直後、みんな殺到しましたからね。売り切れてたしね」

菅沼「そうですね、それも大きいですよね」

椿姫「そりゃ、わーっとみんな行くと重たくなりますよね」

菅沼「それだけ人気っていうことですからね」

齊藤P「今はもうピークタイムでも快適に遊べるはずです。後はもう皆さんの個々人の環境次第でっていうところはあるんですけれども」

椿姫「ウチ無線弱いけど昨日やったら全然快適でした」

 

 

 

ダブルすれ違いの処理量は大丈夫!?

 

140930ao18

 

「この質問を見たときに、ちょっとですね」

 

 

 

気づいてくれて、ありがとう

 

140930ao19

 

ダブルすれ違い、そうなんですよ。とてつもなく重い処理なんですね。よくわかったなというところに感動しましてですね、取り上げさせて頂きました。ここからですね、算数の勉強に入りたいんですね」

菅沼「算数の勉強に!? ふ~む」

齊藤P「女優さーん、寝ないでね~。寝ちゃダメだよ~」

 

 

 

ダブルすれ違いの判定システム

 

140930ao29

 

「ダブルすれ違いっていうのは、同じエリアの近くの場所に条件を満たす人がいるかどうかを判定するじゃないですか。3人の場合は1人につき2回判定をします。それを3人分それぞれ行わなければいけないので、2×3で計6回ですね」

 

 

 

140930ao30

 

「これが10人になると1人につき9回、9×10で90回。いいですかみなさん、ついてきてますかね」

菅沼「ここまでは大丈夫」

齊藤P「今ちょっと鼻で笑っちゃってる人いるんですけど大丈夫ですかね。ワケわかんなくて鼻で笑ってる人」

椿姫「10×9までは大丈夫」

一同「(笑)」

 

 

 

140930ao22

 

「100人の場合は、99×100で大体1万回ぐらい

菅沼「このぐらいになるとグレン1ですね人数的にね」

「いや、グレン1はですね、1000人いるんで……」

菅沼「ウッヒャー」

 

 

 

グレン1は計算100万回になっちゃう!?

 

140930ao23

 

「こっちですね」

菅沼「これがグレン1か~~」

100万回計算になるんです、これ

 

 

 

コンピューターでもさすがに無理

 

140930ao24

 

「コンピューター早いですけど、さすがに100万回は厳しい

菅沼「そりゃそうですよぉ~」

「で、どうやってるかっていうとなんですけど」

 

 

 

所属エリアでチェックを分割

 

140930ao31

 

「これ自体はドラゴンクエスト10特有のことではなくてですね、オンラインゲームではわりとやられてることなんですけれども。エリアの中を分割して、で、自分はどこのグループに所属するかっていうのをそれぞれ分けて、そのグループ内だけでチェックします

 

 

 

140930ao26

 

「なので、これで大幅に計算量が減らせてます。これはちょっとウソ画面で、四角でもないし形としてはもっと特殊な形をしてるんですけれども、概念としてはこういう感じです」

菅沼「これ自分が動くとエリアが変わるので、そのエリアごとにチェックが入るってことですよね」

「そうですね、移動したら自分がいるエリアっていうものをどんどん切替えていく形ですね」

菅沼「なるほどなるほど。いやでもこれでも大変な計算だと思うんですけれどね」

 

 

 

140930ao27

 

「以上です」

りっきーD「青山TDありがとうございました!」

菅沼「勉強になりました大変。こんな大変な中で我々が快適にね、遊ばして頂いてるということがね」

齊藤P「せんせーい、すいません寝てる人がいます」

椿姫「ヤダ、誰? 誰?」

菅沼「こらぁ劣等生」

椿姫「パァ♪」

 

DQXTVver2第8回 ダイジェスト

 

 

関連記事

 

反響が大きかった記事

 

 

天空旅人トランジット通信は移転しました!

 

天空旅人トランジット | だいたいドラクエ10について。執筆者に「ゆめ」さんが加わりました!天空旅人トランジット | だいたいドラクエ10について

 

新アドレスは『hagumeta.net』です。

 

もしよかったら、ブックマーク、RSS登録、feedlyへの登録などをよろしくお願いします。

 

更新情報はツイッターでもお知らせしています。
@yukidomariをフォローして頂けると嬉しいです!

 

 

| DQXTVver2.x | 04:03 | comments:1 | trackbacks:0 | TOP↑

COMMENT

プレイヤーイベント実践ガイドの質問への回答に
「1か所に全員集合している場合の方が、散らばっているよりも多少高負荷」
とあったけど、それはこのすれ違い処理によるものも大きいのかな。

| | 2014/10/01 10:12 | URL |











非公開コメント

TRACKBACK URL

http://hagumeta.com/tb.php/855-041dda39

TRACKBACK

PREV | PAGE-SELECT | NEXT