カードデータの話

開発の詳細に入る前にカードデータにまつわる話をしておこうと思う。あのCard.txtという奴だ。なぜ、テキストファイルなのか、あのフォーマットはどう決まったのか等々話しておきたい。
結論から言おう。「既にCard.txtというものはデュエルオンライン開発前から存在し、それを流用しただけである」と。デュエルオンライン用に作成したものではない。では、何のために使われていたものなのか。
順に話をしよう。私が参考にしたApprenticeは英語バージョンしかなく、日本語が使えなかった。「メニューが英語」というレベルではなく、カード名が英語で、チャットも日本語が通らないという有様であった。そこで、Apprenticeを日本語化するツールというものが開発されていた。これはチャットで日本語が使えるようにし、カードもフィールド上は英語のままだが、その日本語での説明を別ウィンドウで表示できるようにするものであった。そして、その日本語での説明のデータとして使われていたファイルがCard.txtである。ApprenticeMTG用のソフトであるから、当然その日本語化ツールに含まれていたCart.txtはMTGのものである。それをS氏はCard.txtに遊戯王のカードのデータを入れて、Apprentice遊戯王のカードを使えるようにしていたというわけである。それを使い回したに過ぎない。元々ソフトが読むファイルなわけで、フォーマットが決まっており使いやすかったというのが主な理由であるが、他に適当なものが見つからなかったというのも本音。あと、個人的にデータはテキストの方が更新も管理もしやすいという思いもあった。
当時はCard.txtしかなかった。デッキに入れるカードだけデータ化しておけば良かったからだ。そこに融合カードだのトークンだの、制限カードだのデータを色々と追加してもらって今に至る。私自身はカードデータの更新はしたことがなく、更新して下さっている方々には頭が下がる思いである。感謝している。
UserCard.txtは開発当初からあった。オリカやデータの更新が間に合わない場合に自分でデータを追加できるようにという思いでつくったファイルである。Card.txtに追加したのでは更新するときにわけがわからなくなるので。実際、どの程度活用されているのかは知らないが…
SameCard.txtはあんまりスマートな解決策ではないが、デュエルオンラインの欠点を解消するためにつくったものである。カードデータの更新の手間が増えただけじゃないかという気がしないでもないが。これについては後々説明することにしたい(忘れなければ)。
ちょっと、実装上のぶっちゃけた話をしておくと、実はCard.txt、FusionCard.txt、Token.txt、UserCard.txtのファイルはプログラム的には区別がない。どのファイルに書いてもデータはすべてプログラムでは同じように扱われる。「管理の便宜上はわけた方がいいかな?」と思って、私の趣味でわけただけの話である。Card.txtにトークンを書いても一向に構わない。あと、カードデータが増えると、デッキ作成画面が開くのが遅くなるのだが、これも後々説明することにしたい(忘れなければ)。
デュエルオンラインのようなソフトではデータは命とも言えるものである。データなしでは何もできないのだから。そういう意味でデータ更新してくれている人には素直に感謝している。当初、カードデータの作成を支援するツールをつくろうかと本気で思ったことがあるのだが、そんなに使い勝手が良いツールになりそうになかったのでやめた。「こんなツールが欲しい」という意見があればぜひ遠慮なく要望として出して欲しい。