Naoki Kurosawa
naoki_kuros****@ybb*****
2003年 12月 16日 (火) 11:26:17 JST
黒澤です。 このメール10日前ぐらいに書きかけてたんですが、 新システムで使うライブラリ「Nimbus」のオープンソース化に ちょっと時間を食いすぎました。 ちなみにNimbusのホームページは http://nimbus.sourceforge.jp/ です。 サイトを作っているのは私なので、質問があればご遠慮なくどうぞ。 ていうか、疑問に思う点が出てくるほど内容がない…。すいません。 > - 複数大会を実施できるシステムにする。 > というのが、今回の追加&変更の一つでしたね。 > ・通常リーグ > ・冠大会 > ・プライベートリーグ > ・プライベート大会(公開も可) > 等を考えているものです。 > 黒澤さんは、どういう風な構想なんでしょう。 > 箇条書きでもいいので語ってください。 この部分を考えるということは、システム全体の集大成を考えるのと同じこと なので、ちょうどいい時期ですね。 まず、 「プライベートリーグ」は「プライベート大会」と言い方を変えました。 英語日本語混じりなので、もっといい名前ありませんか? では、構想。 ■大会の種類 ・通常大会 定期的あるいは単発で行われる大会。 ある大会から次の大会へいくつかのデータ(順位など)を引き継ぐこともできる。 Rumble-JP主催あるいはスポンサー主催。 ・プライベート大会 一般ユーザが主催し、NRIが運営するRumble-JPサーバ上で作成・実行する ことができる大会。 ※課題 ・定期戦の「部」の問題 通常大会とプライベート大会がある、と書きましたが、 システム上では一つのテーブルに保持します。 で、大会のもつプロパティによって上にあるような区別が 可能になるようにしようと思っています。 なぜかというと、システム実装を簡単にするためです。 ■要件 1.上記のような種類の大会を平行開催できるようにすること。 2.定期戦へロボットを自動参加させられるようにすること。 3.通常大会とプライベート大会とを表示上区別できるようにすること。 通常大会は優先表示。トップページに最初から途中経過や結果などが表示され ているとか。 プライベート大会は、大会を(ドロップダウンリストとかで)選択して表示。 4.各大会のバトルの実行 分散サーバは自動的に通常大会のバトルを実行するが、 プライベート大会に対しては分散サーバ側で明示的に指定しなければ 実行されない。 つまり、プライベート大会を作成したら自分で実行するかあるいは協力者を 募ってその大会のバトルを実行しなければならない。 5.分散サーバの大会実行設定 4番の「プライベート大会を明示的に指定して実行する」ための設定。 分散サーバは、システム上で開催されている大会の内、 どの大会にどれだけのCPUリソースを割り当てるか設定することができる。 どの大会のバトルを実行するぞ、と指定できる。 割合で指定でき、「通常大会」と「指定したプライベート大会」に対して CPUリソースを振り分けられる。 ただし、通常大会を0%にすることはできない。最低10% →プライベート大会をやるのに共用のRumble-JPサーバを使う「利用料」 みたいなもの。プライベート大会をやろうとすると「冠大会&定期戦」に も協力しなくてはならないというスキームを作ることで分散サーバを増やす のが目的。 ※課題 > 賞品付の冠大会は、指定の分散サーバのみが実行できるようにする > 必要がありますよね。対戦結果を改ざんされて送られると > まずいですもんね。 やっぱこれ、考えなきゃダメですか? どうにかして、そもそも不正データを送ることができないように できませんかねぇ。 ■システム上のユーザの種類 ・未ログインのゲスト ・ログイン済み一般ユーザ ・通常大会管理者 ・システム管理者 の4種類と思っています。 #Wikiには3種類と書いてますけど、変更。 ※ ここはもうちょっと考えた方がいいかも。 ■大会というデータの持つプロパティ ・オーナー その大会を作成したユーザ、またはシステム管理者 ・大会区分 通常大会かプライベート大会か ・一般公開の可否 一般公開しないようにすると、その大会に参加している人でないと見れない ・一般参加の可否 一般参加できないようにすると、オーナによる強制参加、または、 オーナによって配布された参加キーがあるユーザしか参加できない。 ・各ユーザのロボットの自動参加システムを利用するか否か ・前大会ID 自動参加システムによって利用される。 自動参加ONになっていると、ここで指定された前大会に出場したロボットは 自動で参加する。 例 冠大会 オーナー :通常大会管理者 大会区分 :通常大会 一般公開 :あり 一般参加 :可能 自動参加システム:利用しない 前大会ID :(空) 定期戦 オーナー :通常大会管理者 大会区分 :通常大会 一般公開 :あり 一般参加 :可能 自動参加システム:利用する 前大会ID :前の定期戦のID プライベート大会 オーナー :一般ユーザ 大会区分 :プライベート 一般公開 :(オーナーの設定しだい) 一般参加 :(オーナーの設定しだい) 自動参加システム:(オーナーの設定しだい) 前大会ID :(オーナーの設定しだい) ※ 「オーナー」よりは「大会管理者」の方がいいかな? 通常大会だと誰が所有するというのではなく、スポンサーだったり Rumble-JPコミュニティだったりしますしね。 とりあえず、こんな感じです。 -- Naoki Kurosawa <naoki_kuros****@ybb*****> Sharpen up JAVA skills. - Robocode Rumble-JP Project - http://rumble-jp.sourceforge.jp/ http://robocode.ddo.jp/rumblejp/