パッケージとモジュール Package and Module
パッケージ Package
1つのbiwaプロジェクト全体をパッケージと呼ぶ。
パッケージには2種類ある。
-
library package
他のパッケージから利用されることを前提にしたライブラリとしてのパッケージ。 パッケージルート(package root)のファイルを
lib.biwaにする。 -
playable package
ゲームとしてプレイ可能であるパッケージ。 他のパッケージから参照することはできない。 1つのノベルゲームのことをパッケージなんて呼んだりするが、そのイメージ。 パッケージルート(package root)のファイルを
main.biwaにする。
パッケージ内は以下のようなディレクトリ構成になる。
/
├── .biwa_build/
├── assets/
├── src/
│ ├── lib.biwa or main.biwa
│ ├── foo.biwa
│ ├── foo/
│ ├── bar.biwa
│
├── biwa-package.json
src/以下に.biwaのソースコードを配置する。assets/以下にソースコードから利用するアセットファイルを配置する。アセットファイルのパスはassets/を基点にそれ以降を記述する。biwa-package.jsonはパッケージ全体を管理するためのメタデータファイルである。.biwa_build/はbiwaのビルドに用いられるディレクトリ。コンパイラが自動で生成する。
命名規則
以下の正規表現に当てはまるパッケージ名である必要がある。 つまり、先頭が小文字アルファベットであるようなlower_snake_caseである。
[a-z][0-9a-z_]*
モジュール Module
拡張子が.biwaであるbiwaのソースファイル1つが1つのモジュールを形成する。
src/foo.biwa があれば、以下の方法でアクセスできる。
- パッケージ内の任意の場所から
package::foo(packageはパッケージルートを指すキーワードである) - ルートモジュール(
lib.biwaまたはmain.biwa)からfoo
src/foo.biwaがあるとき、src/foo/bar.biwaを作ると、barはfooのサブモジュール(子モジュール)となる。foo::bar のように、::演算子でつなげることでサブモジュールにアクセスできる。
パッケージ全体は1つ以上のモジュールから成ると言える。