24への道
データ採取の実験の立ち上げと第1回電王戦のどたばたが一段落した10月はじめ頃から、将棋倶楽部24への自動参戦の検討を始めました。
この頃の私はWebプログラミングとかその辺の話がほとんどわかっておらず、24やりたいとは思っていたものの具体的に何してよいか見当がつかない状態でしたが、研究所なら誰かわかる人いるんじゃないかな、などといいかげんに考えていました。でGさんに相談していたのですが、彼も将棋のことはほとんど知らない人で、24と言われても何だかよくわからないし、重要性もピンと来なかったのでしょう、最初はなかなか立ち上がりませんでした。そこを私の方から「これはとても重要なんですよ」と何度かせっつきまして^^;、少しずつ情報収集していきました。
まずとにかくプロトコルがわからないとどうしようもないですよ、とGさんに言われまして、それもそうだと思い、何はともあれぐぐってみます。するとこんなページ(「将棋倶楽部24 プロトコル解析」)は見つかりましたがこのくらいしか見つからず、これだけでは対戦まではできそうにありません。どうやら24のプロトコルは非公開のようです。まあ公開したら勝手にソフト指ししたりする人も出てくるのでしょうから致し方ないのでしょう。
で、どうしようか考えたのですが、ちょうどこのころ、米長宅に入れるボンクラーズPCの件で24の席主である久米さんとやりとりしていたので、彼に直接頼んでみるのがいいだろう、ということで10/12にメールを送りました。24にボンクラーズを自動参戦させたいので、プロトコルを教えていただけませんか、非公開なのであればもちろん他に公開はしませんから、と。
前に居酒屋で米長さんと話した記事のときに書き忘れましたが、このとき米長さんに「ボンクラーズが24で指すのはどうでしょう」と聞いたところ、「そうだね、プロも指したがる奴がいるかもしれないね」と言ってまして、公には対局禁止状態でしたが、24で匿名で指すぶんにはあまり目くじら立てそうでもありませんでした。そのこともメールに書きました。
久米さんは連盟の特別顧問でもありますし、24自体が連盟のものになっていましたので、当然連盟には相談します。数日してOKが出まして、10/17にプロトコル情報を送ってもらいました。ただ外部に公開は困るということで、技術情報は機密として外に開示しない、が前提です。
ちなみに今の24はプロトコルが変わっていて、プログラムから接続する場合はJSONを使うプロトコルがその後新たに定義され、そちらを使うことになってたと思います。…という情報がたしか2年くらい前にネットに出ていたなと思ったんですが、今見るとこれもまた引っ込めたようですね。今はまた非公開に戻ったのかも。
ともかく、さっそくこれをGさんに知らせまして、対応を検討します。Javaのクライアントを作る必要があったのですが、研究所内でJavaに強いプログラマを一人アサインしてもらいました。私はJavaは多少知っている程度で、それほど得意ではないのです。で、私がプロトコル仕様書を見て ボンクラーズ接続用クライアントの仕様書を書き、そのプログラマさんがプログラムを書く、という体制で3週間ほど進めました。時々仕様書で不明点があると久米さんに直接聞いて何度か教えてもらったりしまして、本当に彼にはお世話になりました。この3週間の間は、24向け開発を最優先でやっていました。
で11/7にひととおりテストが通り、その日の夜から大阪道場に参戦しました。ひとつ不成りに関するバグが出ましたが、クリティカルなバグはそれだけで、おおむね順調に対戦を続けられました。
クリティカルなバグは上記の一つだけでしたが、なにしろ3週間で急ぎで作ったもので、細かいタイミング依存のようなバグはいくつかあったのでしょう、ときどきですが対局が止まることがあったし、また予想していないトラブルもあるため、できるかぎり状態を監視していました。24時間態勢とまでは言いませんが、参戦している2か月の間は、会社や家では1、2時間おきには対局が続いているかを確認していた感じです。で何かあったらサーバを再起動したりとか。
また、2chに「将棋倶楽部24ルポ中継スレッド」というのがありまして、ここがほぼ常時bonkras実況状態になっていたので、随時見ていました。なんかおかしなことがあると誰かが書いてくれるので、ここで問題点やユーザの期待を知ることも多かったです。朝、目が覚めると真っ先にルポスレッドを見て、何かトラブルがなかったかチェックする、がこの頃の日課でした。
この2か月間は、メインはPuella αの開発でしたが、24対戦の運営もかなり重要だったし、またユーザを待たせるのは最小限にしたかったので、24でトラブルがあると最優先で対処していました。このためだけというわけでもないですが、Puella α = 12年版は、当初は1月の米長戦に間に合わせようと開発を進めていたのですが、結局1月には間に合わなくなり、米長戦は11年版(ボンクラーズ)で戦い、Puella αが完成するのは12年3月頃になりました。当然、24のも11年版です。
最近ソーシャルゲームが流行っていますが、あれの運営サイドというのはたぶんこんな感じなんだろうなと思っています。稼働状況を常時チェック。トラブルがあると最優先で対処。掲示板等でユーザの反応をチェック。やってる間はけっこう大変でしたが、なかなか普段はできない得難い経験ができてよかったと思っておりますし、またやはりユーザの反応がダイレクトに返ってくるのは非常に楽しかったです。改めて、当時対局していただいた皆様に大感謝です。なんだかんだ言って、私の14年に渡るコンピュータ将棋歴のうち、この24をやってた2か月間が、一番楽しかった&スリリングだったかもしれません。
また、F社がコンピュータ将棋開発に関わっていたのは約半年の短い間でしたが、この間の最大の成果はこの24自動参戦ツールの開発だと思います。これは絶対私一人ではできず、F社の協力無しには実現しませんでした。F社/研究所にも感謝で、特にGさんとプログラマのS田さんにはこの件では大変お世話になりました。
「電王戦記録」カテゴリの記事
- Money Changes Everything(2015.05.02)
- 第2回電王戦における対局ルール決定プロセス(2015.04.22)
- マイナビ社のこと(2015.02.24)
- もし人生がジャンプのマンガだったら(2014.05.01)
- 対局後、再度の会議(2014.04.14)
素晴らしい言葉が出ましたね。 ''楽しかった''
プロが関わって暗さが。生活かかると暗さが。
投稿: | 2014年3月 2日 (日) 22時05分
自動操縦について質問したのですが、
そういうことだったんですね。参考になりました。今はもう無理なんですね。
画像キャプチャ、解析、オートパイロットという感じかと勝手に思っていました。
投稿: | 2014年3月 2日 (日) 23時35分
文章が踊っていますね。
ブログはこうありたいものです。
投稿: | 2014年3月 3日 (月) 09時43分
確かにボンクラーズの常時24参戦は、コンピュータ将棋の強さを多くの人に知ってもらった大きな意義がありましたね。
コンピュータ将棋選手権、アマトップや女流との対局、ポナンザの24短期参戦に、24でいつまでも無くならない高段ソフト指し。
どれもソフトの強さを示してはいるものの、多くの将棋ファンの注目を集めたとは言い難く、私も大した興味はありませんでした。
もし24参戦がなかったら清水さんの時と同じく、ソフトの強さに注目が集まらないまま終わったかもしれません。
24のボンクラーズで初めてソフトの強さを知り、衝撃を受けた人は多いでしょうね。私もそうでした。
あれはまさにお祭りみたいな感じでした。対局を見ると、いつも大勢の観戦者で盛り上がってた気がします。電王戦の熱気の大元と言っても良いのでは。
24の参戦ツールの裏話も面白かったです。将棋サイトはだいたいソフトのbotがあるので、もっと簡単な物かと思ってました。
サーバーとJavaで通信するツールとなると、専門の技術者の人が何週間もかける様な難しい物なんですね。
もし伊藤さんが優勝しなかったら、常時24参戦ツールのJavaプログラムを作れる人も近くにおらず
24の対局も実現せずに、電王戦の盛り上がりもなかったのかもと考えると、巡り合わせの不思議さを感じます。
投稿: 正当な評価とは | 2014年3月 4日 (火) 00時38分