Ver0.1の配布物に含まれるドキュメントのコピーです。
----
== この「etc.txt」について
ドキュメントは、使う側にとってはどうでもいい、私的なメモ書きに近いものがまとめられています。
まずは[readme.txt(Ver0.1)]をご覧ください。
----
== Ver0.1リリースの意味
そもそも、Ver0.1は正直「基盤」にはなってません。
これを使ってゲームを作っても、たぶん"RO"gue Ver0.1以上のものにはなりません。
それでもVer0.1リリースに踏み切ったのは、以下のような理由からです。
* 一度開発を区切りたかった
* 設計をリファクタリングしたい
* それはもう、上から下まで
* RSpecを導入したい
* あれを使うと世界が変わる
* リポジトリをGitに移行したい
* 開発者が私一人でも、大きなメリットがあるため
* 「"RO"gue Ver0.1」の要求仕様は満たしており、実物がある
* たとえ、RDGC Ver0.1がどんなにへたれな設計だったとしても
* SourceForge.JPを使っておいて、そろそろリリースがないのはまずい
* 借りたのが1月頭で、2ヶ月も初期リリースがないって・・・
----
== Ver 0.1の次期バージョン
リポジトリをGitに変更し、RSpecを定義した段階で、一度"RO"gue Ver0.1を再実装して動作を確認する予定です。
その時点のものを一度リリースするつもりですが、それを「Ver0.1.x」と呼ぶのか、「Ver0.2-alpha」と呼ぶのかは未定です。(おそらくは後者)
----
== Ruby1.9対応について
Ver0.1ではRuby1.9系に対応していません。理由はシンプルで、Ruby1.9系にArray#choiceが存在しないからです。
Ruby1.9系ではArray#sampleが定義されていますが、Ruby1.8.7にArray#sampleが存在しないため、どちらかに統一することが難しいのです。
一応、rdgc.rbの頭で以下のようなコードを書けば、どちらにも対応は可能です。(環境を作ってないので確認はしてませんが)
{{{ code ruby
# Array#choiceで統一した場合=現仕様
if RUBY_VERSION >= '1.9.1'
class << Array
def choice
self.sample
end
end
end
# Array#sampleで統一した場合
unless RUBY_VERSION >= '1.9.1'
class << Array
def sample
self.choice
end
end
end
}}}
ただ、これはどちらかというとRuby本体側で対応すべき問題と考えており、
Ruby1.9のコードが動作するというRuby1.8.8で解決すると思われます。
また、Ruby1.9系は正直初心者向けではないと思っているので、
その意味でも1.8系に合わせています。
(仕事では1.9で統一する方向で動いてますが)
以上の理由により、Ruby1.8.8がリリースされ、Array#sampleが使えるようになった時点で、
#choiceを#sampleに統一し、対応バージョンも1.8.8/1.9.1以降とします。
ただし、その前に世の中が、
「今さらRuby1.8?(笑」的な流れになった場合、この限りではありません。
(むしろそうなってくれるといいな・・・)
<追記>
Array#choiceは現状1.8.7にしか存在しないため、
'''ver0.2以降ではArray#sampleに統一します。'''
----
== 文字コードについて
DXRubyは渡された文字列をCP932(Shift_JIS)で解釈します。
よって、RDGCやその上で動くコードもCP932にすればいいのですが、
ご覧のとおり、UTF-8を使っています。
(DXRubyで描画する部分は変換メソッドを経由している)
Ruby1.9であれば、マジックコメントでソースごとに解釈されるため、
CP932とUTF-8の混在が可能なのですが、Ruby1.8系では統一が必要なため、
結果的にUTF-8で開発していただくことになります。
これが面倒ということでしたら、
CP932(Shift_JIS)版のRDGCのリリースも検討しますので、
ぜひご相談ください。
あるいは、やはりRuby1.9をターゲットに据えた方がいいのかも・・・?
----
== インストールについて
現時点でのRDGCにはインストーラーがついていませんし、Gem化もしていません。
それは以下のような理由からです。
* 頻繁にRDGC自体のソースを確認する必要があるため
* 仕様が完全に定まっていない
* まともなドキュメントもない
* 今のところ、内部の動作を外部から差し替える仕組みがない
* あったとしても、ゲームである以上、基盤そのものに手を入れたいケースがある
* むしろ、RDGCは踏み台であってほしい
* exe化するのに都合が悪いため
* Gemを使っていると、Gemそのものを同梱しようとする可能性が高い
* 試してないのでわかりませんが・・・
* そもそも、画像や音楽データの方が、コードよりはるかにでかい気も
* そう考えるとGem化してもいいのだろうか・・・
* Ver1.0までに考えます