GeometryWars Leaderboard API

Xbox360がネットランキングを標準搭載したように、次世代XboxはWeb上からランキングデータを取得できるAPIを標準公開して欲しい。いや、公開すべき。そうすれば、あんなこともこんなことも、夢が膨らむ。残念ながら現行世代のXbox360はム・リ。ではあるものの、最近ではウェブ上からランキングを参照出来るゲームも多くなってきた、ということは需要の後押しがある、ということで次世代Xboxでの搭載は夢ではなさそう。HALO3のマッチングシステムと共に標準搭載の勢いでよろしくお願いしたい。

で、本題。ジオメトリ2もメーカー側のランキングや、ランキング付きゲーマーカードのようにウェブ上に公開可能な仕組みは用意されていた、けど、一般人が弄れるAPIは公開されていなかった。しかしBizarre Creationsはついにやってくれた。さらっとBBS上に公開したよー、とのお知らせが!

というわけで、そのBizarre CreationsのXBLAタイトル用のLeadboard取得WebServiceの解説。呼び出し方法が数字直打ちで分かりづらければ、帰ってくる値も素の配列という分かりづらさなので、私が調べた範囲で簡単に解説します。いや、数字ぽてぽて打って確認するだけで別に手間でもなんでもないですけどね。

getLeaderboardは順位のランキング。Overallって奴ですね。パラメータはgameIdとleaderboardIdはあとで解説します。rankToStartで開始する順位を、numToShowで取得する量を決めます。残念ながらrankToStartは901まで、numToShowも有効なのは100まで、ということで1000位までしか取得できません。十分ですけど。

getLeaderboardNearGamertagは任意のゲーマータグの人の前後のランキングを取得する。gamerTagはゲーマータグ、numToShowは前後の量。こちらのnumToShowは有効な値は101までになっています。自分の前に50人+自分の後ろに50人、ということですね。

さて、gameIdですけど、0はGWRE1、1はBoomBoomRocket、2はGWRE2。GWRE1のleaderboardIdは、0がEVOLVED、1がRETRO。BoomBoomRocketは割愛(笑) GWRE2は、0=Deadline,1=Evolved,2=Sequence,3=Waves,4=Pacifism,5=Kingでした。変な並び順ですけど気にしないことにしましょう。いや、めっちゃ気になるけど。

で、取得できるxmlは全部stringというそっけなさ。一番目が取得したデータの個数、それ以降は3つ区切りで「順位、ゲーマータグ、スコア」になっているようです。

ついでにRESTでの取得。http://www.bizarrecreations.com/XBLLeaderboardSvc/Service.asmx/getLeaderboardNearGamertag?gameId=2&leaderboardId=4&gamerTag=SeaWeeze&numToShow=11、このURLはgameIdが2なのでGWRE2、leaderboardIdが4なのでPacifism、gamerTagがSeaWeezeなので、まあ、私ですね、で、numToShowが11なので前後5人ずつのランキングが取得出来ます。

いやあ、素晴らしいですね。色々と素っ気なさ過ぎじゃね?って気がしなくもないですが、それが非公開のサービスを一般向けに公開してあげる、という優しさに感じられて嬉しかったりして。実際問題、こんなに大盤振る舞いで公開してくれている会社なんて無いですからねえ。今後もBizarreに続いてくれると(Bungieぐらいかな、もしやるとしても)嬉しいし、その勢いで次世代Xboxでは公開が当然、みたいな形になってくれれば、なお嬉しい。

そのためにも、せっかく公開してくれたこのサービスを使って何かを作らなければ!と思うんだけど、いざ何かっていうと何も思い浮かばない。プログラム流用で、ランキングが100落ちる度にTwitterに投稿するツールとか、どうでもいいネタしか浮かばない。というわけで、何かアイディアがあればください。

Comment (0)

Name
WebSite(option)
Comment

Trackback(0) | http://neue.cc/2009/01/05_126.html/trackback

Search/Archive

Category

Profile


Yoshifumi Kawai
Microsoft MVP for .NET(C#)

April 2011
|
March 2017

Twitter:@neuecc
GitHub:neuecc
ils@neue.cc