シーツリーの改変と、Winsock通信

12-12,2018

数日前、永久未来くんと数年ぶりに会い、
「未来くん、数年ぶりだね、
 でも数年前に話した常時通信が、まだできないんだよ・・・」
という会話をしました。

ちなみに、永久未来くんとは、
GGDの人であり、GGD CHATの管理人でもあります。

未来君とは、深い技術的な話はほとんどできませんでしたが、
でも、永久未来くんと会話をしていると、
何故か脳内がスパークしたようで、

翌日、早朝にふと目が覚めて、
気がついたら、20年前に書かれたWinsockのサイトを読み漁っていました。

そして、13:00頃、実験を試みました。
ヒルトン台地にいるかいっつぁんというNPCに窓口を実装。

もし、接続がうまくいくなら、ユーザーに『Hello!』という文字と、
『これが届いたらポセイドンに祝辞を』という文字を返すようにして・・・。

5分経過し、誰も接続してこない……。

やはりダメかと諦めて、ご飯を食べ、戻ってくると、
Kaayaさんの接続があったことが、サーバーの形跡から判明。

やった!!!!

そしてその後も、数人から接続が。

やったぞ!!
実験は成功だ!!!
ついに私は20年前の技術に追いついたんだ!!!!

しかし、ポセイドンに祝いの言葉を返してくれる人は
一人もいませんでしたが・・・・。


このような実験は、思えば、20年前から何度もやってきたことでした。
ある時は福良君に電話をかけて、ちょっとこのプログラムで繋いでみてくれない?
とか、それから数年経ってまたある時に脳内がスパークした時、
まめたんにメッセンジャーで話しかけて、ちょっとこのプログラムやってみてくれない?
とか、
数年おきに訪れるスパークのたびに、試行し、
打ち砕かれていました。
しかし、それがついに・・・
うううう、嬉しくて涙がでます。


そしてそれからは、
3日間、食うも寝るも惜しみ、
ぶっ通しでシーツリーを拡張し続け、
数十回の更新をしまくりました。


今では、シーツリーは完全に常時接続状態で、
色々なことが常時共有化されています。


これにより、この3日間で、
シーツリーの収益がぐぐーーん!!!と上がる
・・・ということなどは一切ないですが、
久しぶりに体を酷使するほど、プログラムに没頭しました。


さておき、
Winsock常時通信は、完全にまだ手探りだけど、自分なりに構築してうまくいっております。

でも、きっとこの面白さは常時接続感の高さと基本的には比例するに違いありません。
しかし、それがどこまで限界があるのか、
そしてその効率についてはまだ法則性が分からないことだらけです。
例えば、常時通信における接続負荷とは、回数なのか、それとも量なのか。

今は恐る恐るという感じでやっており、
クライアントに変化があれば、毎秒送信し、
また、特定の行動に関しては即送信。
そしてサーバー側はそれらを毎秒ごとにまとめて結合し全員にフィードバック、
ということをしています。

今は多い時でも常時20人くらいしか接続していないので、
サーバーからの送信は最大でも毎秒3Kbyteほど。

1人頭100bytesほどしか送受信せずに、構築できています。

しかし、もっともっと常時感を出したいところ。
できるなら、ばんばんくらい。


そうすると色々分からないことを試す必要があるかもしれません。
例えば、クライアント側も全部結合して1回の送信にしたほうがいいのかどうか、とか。 どうせwinsock内部でも、キャッシュを貯めてから送信しているでしょうから、あまり意味はないのかも。
それでも、毎度共通のタグなどを送信しているから、それらを圧縮する意味はあるかも。
などなど。


もちろん、このままシーツリー拡張に、生活リソースを全投入し続けても、
シーツリーの課金収益が上がるというのは、ほぼほぼ考えにくいので、
そんなことをしていたら、来月くらいにはアンディーメンテが
閉鎖していることになるので、そんなこともできませんが、
できるならもっとシーツリーをあらぬ方向へと拡張したい所です。

とりあえず、
今日はシーツリーをいじるのは午前だけにして、
午後からは、心機一転して、
例のことをやらないといけません。

例のこととは、今夜0時から始まる、のことです。