サーバの開発目的

言うまでもなく、

  1. 対戦の接続を簡単にする
  2. プライベートIP同士の対戦を簡単にする

がサーバの開発目的である。個人的には「軽いチャットが欲しかった」というのもあるけど。
とりあえず、1つ目の目的を最初のバージョンで実装した。最初にリリースしたサーバは1日でつくったと言えば、驚いてくれる人はいるだろうか。チャットを接続の自動化だけなら、正直さほど難しくはなかった。前々から構想はあったので、私の頭の中では設計は終わっていたし。
「接続を簡単にするのは、独自にサーバを立ち上げない限りどうにもならない」という思いは開発当初からあったことで、それを実装しただけだった。IGMなんていうものもあったので、これがもっと使えるものならそれでも良かったんだが。こちらの細かいバージョンアップに対応してもらえるわけじゃなかったのであきらめた。
しかし、サーバの重要性は2つ目の目的こそにあったと思う。今までやりたくでもできなかった人と対戦できるようになったのだから。今でも観戦できないのは問題なんだけど。プログラム的にはさほど難しいことをしているわけではない。サーバ経由で対戦している人をデータで管理しておいて、その間のデータのやり取りをしているに過ぎない。技術的にはたいしたことではない。デュエルオンラインの方は、両方ともクライアントモードで(通常のポートとは違うポートで)サーバに接続しているだけでプログラム的にはほとんど変更なしだし。
もっとも、この「両方クライアントモード」というのが観戦機能の実装を困難にしているのだが。ちょっと解説しておくと、観戦はサーバモードのデュエルオンラインに第3者が接続したときに起動し、サーバモードのデュエルオンラインからデータを送ることで実現している。したがって、両方クライアントモードではデータを送る人がいなくて、また別の観戦モードなるものをつくらないといけないのである。それが結構面倒というわけだ。もちろんいずれは実装したいと思っているのだが。
手前味噌だが、サーバの登場はデュエルオンラインの環境を一変させたと思っている。サーバの無かった時代を思い出すのも難しいくらい。それだけに、私自身がサーバを運営できる環境にないのが残念である。