gamerandomizer (1.0) | 2013-10-20 13:03 |
gamerandomizer-dominion (1.1) | 2013-10-29 21:48 |
gamerandomizer-heart-of-crown (1.3) | 2015-11-28 20:55 |
gamerandomizer-majikoi-d (1.0) | 2013-11-01 22:55 |
gamerandomizer-metadra-dungeon (1.0) | 2013-11-16 08:21 |
gamerandomizer-nippon1-allstars (1.0) | 2013-11-01 22:57 |
gamerandomizer-nitroplus (1.2) | 2014-11-08 07:10 |
gamerandomizer-tanto-cuore (1.0) | 2013-10-19 22:42 |
gamerandomizer-touhou-shisouroku (1.1) | 2014-04-04 23:06 |
gamerandomizer-trains (1.0) | 2013-10-19 22:44 |
sekaiju-no-meikyu (1.0) | 2014-05-10 10:24 |
このページでは、自力でゲームデータを作る方法を説明します。
GameRandomizerのゲームデータは XML (extensible markup language) ファイル で構成されます。 XMLデータはテキストなので、ファイルはテキストエディターを使えば編集できます。
XMLファイルはゲーム毎に、複数個のファイル ― 1個の '__game.xml' (先頭は '_' 2つ) ファイルおよび1個以上の拡張セットファイル ― を用意する必要があります。
XMLファイルはすべてUTF-8で記述してなくてはなりません。
'__game.xml' では、ゲームの基本的な情報を定義します。 以下は、'__game.xml' の記述例です。
<?xml version="1.0" encoding="UTF-8"?> <game id="dominion" revision="1" format_version="1" language="ja" country=""> <game_title>ドミニオン</game_title> <selection_size>10</selection_size> </game>
行の先頭の空白文字は、省略可能です。 2行目は次のように書くこともできます。
<game id="dominion" revision="1" format_version="1" language="ja" country="">
空白文字が許されている箇所では、改行文字を挿入することもできます。
<game id="dominion" revision="1" format_version="1" language="ja" country="">
'__game.xml' ファイルの1行目は、XML宣言でなくてはなりません。 以下の行をそのまま書いて下さい。
<?xml version="1.0" encoding="UTF-8"?>
ファイルの残り部分は、<game>...</game> ブロックです。 開始タグ <game> はいくつかの属性 (アトリビュート) を持っています。
<game id="dominion" revision="1" format_version="1" language="ja" country="">
以下に、属性を簡単なまとめを載せます。
属性 | 説明 |
id | ゲームのID |
revision | このXMLファイルの改版番号 |
format_version | XMLファイルの形式バージョン |
language | 言語コード |
country | 国コード |
'id' 属性の値は、すべてのゲームで固有のものでなければなりません。
'revision' 属性は省略しても構いません。 GameRandomizerはこの属性を無視しますが、ゲームデータを管理する ために、この属性には適切な値を入れておくべきです。 始めは '1' とし、更新する度に一つずつ上げていって下さい。
'language' と 'country' 属性は、ゲームデータが指定した言語、指定した 国向けに記述されたものであることを表します。 GameRandomizerは、Android端末の「言語・国の設定」に適合したゲームデータ だけを読み込みます。 (「設定」→「言語と入力」で、言語・国の設定を変更することができます。)
'language' の値は、ISO 639-1 言語コードの2文字形式を小文字で記述したもので なければなりません。 この例で使用している言語コード 'ja' は日本語を意味します。 言語コードの一覧は、次の場所で参照できます。
'country' の値は、ISO 3166-1 言語/地域コードを大文字で表したものでなければ なりません。 国/地域コードの一覧は、以下の場所で参照できます。
'language' と異なり、'country' は空 ("") でも構いません。 多くの場合、'country' にセットする値で最も適しているのは、空です。 もし中国語 (zh) のゲームデータを作るなら、'country' に 'CN' (中国 = 簡体中文) もしくは 'TW' (台湾 = 繁体中文) をセットして下さい。
ゲームの基本情報は、<game>...</game> ブロックの中に記述します。
<game_title>ドミニオン</game_title> <selection_size>10</selection_size>
<game_title>...</game_title> には、ゲームのタイトルを記します。
<selection_size>...</selection_size> には、GameRandomizerが何種類のカード を無作為に選ぶのかを記述して下さい。 値は0より大きな整数でなければなりません。
個々の拡張セットファイルには、ゲームの拡張セット一つ (ドミニオンで言う「陰謀」「海辺」...) を定義します。 GameRandomizerは基本セット (ドミニオンで言う「ドミニオン」) と拡張セットを区別 しないため、基本セット用にも拡張セットファイルが必要です。
拡張セットファイルの例を示します。
<?xml version="1.0" encoding="UTF-8"?> <expansion id="intrigue" game_id="dominion" revision="1" format_version="1" language="ja" country=""> <preference>1020</preference> <expansion_title>陰謀</expansion_title> <card id="courtyard"> <title>中庭</title> <price>2</price> </card> <card id="pawn"> <title>手先</title> <price>2</price> </card> </expansion>
1行目はXML宣言で、これは '__game.xml' と同じものです。
<?xml version="1.0" encoding="UTF-8"?>
ファイルの残り部分は、<expansion>...</expansion> ブロックです。 開始タグ <expansion> はいくつかの属性を持っています。
<game id="intrigue" game_id="dominion" revision="1" format_version="1" language="ja" country="">
これら属性の意味は、次の通りです。
属性 | 説明 |
id | 拡張セットのID |
game_id | ゲームのID |
revision | このXMLファイルの改版番号 |
format_version | XMLファイルの形式バージョン |
language | 言語コード |
country | 国コード |
'revision'、'format_version'、'language'、'country' は、'__game.xml' における <game> タグのものと同じです。
'game_id' タグの値は、'__game.xml' における <game> タグの 'id' 属性の値 と同じでなくてはなりません。
'id' の値は、そのゲームの拡張セットで固有のものでなくてはなりません。 拡張セットファイルのファイル名は、id.xmlでなくてはなりません。 (この例では、ファイル名は 'intriguge.xml' でなくてはなりません。)
拡張セットの基本情報は、<expansion>...</expansion> ブロック内の先頭に 記します。
<preference>1020</preference> <expansion_title>陰謀</expansion_title>
<preference>...</preference> タグの中の値は、整数でなくてはなりません。 GameRandomizerは拡張セットの一覧を表示する際、'preference' の値に したがって拡張セットを並べます。 値は、そのゲームの拡張セットに固有のものであるべきです。
<expansion_title>...</expansion_title> には、拡張セットのタイトルを記します。
<expansion>...</expansion> ブロックの残り部分で、その拡張セットが提供 しているカードをすべて定義します。
<card id="courtyard"> <title>中庭</title> <price>2</price> </card> <card id="pawn"> <title>手先</title> <price>2</price> </card>
あくまでも記述例なので、この拡張セットではカードを2種類しか定義していません。 <card>...</card> ブロック1つでカード1種類を定義します。 <card> タグは、カードを識別するための属性 'id' を持ちます。 IDはそのゲームのカードすべてで固有のものでなくてはなりません。 ただし、複数の拡張セットが同一のカードを提供している場合、それらのカード には同一のIDを割り当てなければなりません。 そうしないとGameRandomizerは、無作為に選ぶ際にそのカードを複数回 選んでしまいます。
<title>...</title> にはカードのタイトルを記述します。
<price>...</price> には、カードの価格 (コスト) を記します。 <price>...</price> に指定できる値は、整数に限定されません。 「?」、「X」、「3+」といった値もセットすることができます。
'__game.xml' ファイルの <game> タグが、次のようになっているものと します。
<game id="dominion" revision="1" format_version="1" language="ja" country="">
その場合、'__game.xml' は 'dominion/ja/__game.xml' として配置され なければなりません。
+- dominion/ +- ja/ +- __game.xml
トップフォルダ名 (「dominion」) は 'id' 属性から決定され、サブフォルダ名 (「ja」) は 'language' 属性から決定されます。 'country' 属性の値が空でない場合は、サブフォルダ名に 「_ + countryの値」 を足します。 たとえば、'language' 属性の値が "zh"、'country' 属性の値が "TW" であれば、適切な サブフォルダ名は「zh_TW」になります。
+- dominion/ +- zh_TW/ +- __game.xml
'__game.xml' と同じフォルダに、すべての拡張セットファイルを置きます。
+- dominion/ +- ja/ +- __game.xml +- dominion.xml +- intrigue.xml +- seaside.xml +- alchemy.xml
以上で、ゲームデータはGameRandomizerから利用できるようになります。