つくば文庫 the "Peko" project

PVNS 1.0 開発計画書

TBA-Softlab Draft, Sep 01 2004

This version:
http://softlab.tsukuba-bunko.org/peko/specs/plan-pvns10-20040901
Previous version:
http://softlab.tsukuba-bunko.org/peko/specs/WD-plan-pvns10-20040321
Latest version:
http://softlab.tsukuba-bunko.org/peko/specs/plan-pvns10

Abstract

本文書では、"Peko" Visual Novel System (以下、PVNS) 1.0 開発プロジェクトの基本計画を記述する。開発の目標、およびその成果物、ターゲットとする動作環境、リリースの方針と予定、過去のバージョンとの互換性を明確にし、開発の指針とすることを目的とする。

本文書については、プロジェクトの進行に伴い、必要に応じて改訂される。本文書の最新版は、http://softlab.tsukuba-bunko.org/peko/specs/plan-pvns10 にて参照可能。

なお、本文書に対するコメントや要望・提案などについては、PVNS 開発者メーリングリスト *members only および "Peko" project サポート窓口、または、SourceForge.jp でホスティングされている "Peko" project ページ内・Feature Requests で受け付けていますので、積極的に参加をお願いします。

Table of Contents


1. 目標

PVNS 1.0 では、Java 向け実装として、機能追加や拡張を容易に行えるゲーム実行環境の基盤を構築することを目的とする。パフォーマンスを損なわない範囲において、可能な限りモジュール化し、イベント駆動型のアーキテクチャを採用する。

実装する拡張機能として、以下のものを実現する。

カスタム XML Processing instructions
XML processing instructions を使用して、シーン中の任意の位置に、任意の処理を埋め込むことが出来る機能を実装する。
ユーザアクションに対するフッキング
ユーザのアクション (クリックや選択肢の選択など) に対して任意の処理を差し込むことが出来る機能を実装する。
シーン処理に対するフッキング
シーン処理 (PSML-Scene 要素の処理、シーンの遷移など) に対して任意の処理を差し込むことが出来る機能を実装する。

拡張機能により差し込みが可能な処理は、Java のクラスとして記述される。

一方で、既存機能の拡張は、PVNS 1.0 では積極的には行わない。ただし、要望のある機能については、状況に応じて対応する。

2. 成果物

2.1 成果物の種類

以下の物を開発する。

PVNS runtime
PVNS 本体のプログラムコード。
Documents
PVNS でゲームを開発する人をターゲットとしたドキュメント類。以下の種類のドキュメントを作成する。
PVNS Introduction
初めて PVNS に触れるユーザを対象として、PVNS の概要や基本概念の説明を行う。
QuickStart ガイド
PVNS でゲームを開発するユーザを対象として、PVNS で動作するゲームの操作方法や、基本的な開発の流れを説明する。
PSML-Scene リファレンス
PSML 1.0 Scene の簡易リファレンス。
PVNS カスタマイズマニュアル
PVNS のリソースの設定方法を説明する。
サンプルゲーム
PVNS でゲームを開発する人をターゲットとしたサンプル。PVNS の機能を紹介するチュートリアルも兼ねる。

2.2 パッケージ

以下のパッケージを生成し、リリースする。

PVNS 1.0 開発キット
PVNS 1.0 のソースコード、runtime、ドキュメント、テンプレートゲームを含むパッケージ。SourceForge.jp のリリースページで公開する。
PVNS 1.0 runtime
PVNS 1.0 runtime のみのパッケージ。SourceForge.jp のリリースページで公開する。
ドキュメント
ドキュメントのみのパッケージ。"Peko" project ページとして公開されると同時に、圧縮書庫に格納したものを SourceForge.jp のリリースページで公開する。
サンプルゲーム
PVNS 1.0 の機能を紹介するサンプルゲーム。"Peko" project ページで公開する。

3. 動作環境

PVNS 1.0 は 100% "Pure" Java プログラムとして開発を行い、依存するサードパーティ製のライブラリ以外の部分で直接環境依存のコードは記述しない。PVNS 1.0 は J2SE Platform API 1.4 により記述/コンパイルされ、Java2 Runtime Environment 1.4 上で実行される。

また、PVNS 1.0 は国際化に対応する。全ての GUI コンポーネントに表示される、全ての文字列は、外部リソースとしてプログラムソースコードの外に出される。デフォルトのリソースとして日本語リソースが提供される。

ただし、BIDI のサポートは行わない。テキストおよびコンポーネントは全て左から右方向の並びとする。

PVNS 1.0 では表3.1に示すプラットフォーム、および、表3.2 に示す言語環境を「動作検証環境」とし、動作検証およびテストを行う。

表3.1:ターゲットとするプラットフォーム
OS Family Version Architecture Java2 Platform
Windows Windows XP SP1 IA32 J2SE 1.4.2_05
Windows 2000 SP3
Linux RedHat 8.0 IA32 J2SE 1.4.2_05
RedHat 9.0
表3.2:ターゲットとするロケール
言語 ロケール ID
日本語 日本 ja_JP
英語 アメリカ en_US

3.1および表3.2に記載されていない J2SE 1.4 環境での動作は "Peko" project としては保証せず、ユーザからの動作報告があった環境を「動作報告済み環境」として公開する。

4. リリース

*リリースの予定 (milestone) を記述します。

9月上旬
外部仕様 fix
10月末 〜 11月初旬
first beta release
12月中旬
release

5. 過去のバージョンとの互換性

PVNS 0.5 との互換性について、以下の通りとする。

ゲームパッケージ構成(PVNS ゲームの論理的なディレクトリ構成)

PVNS 0.5 の上位互換であることを保証する。ただし、ディレクトリ構成の指定方法に関する互換性については、リソースの仕様に従うものとする。

ゲームデータ

PVNS 0.5 の上位互換であることを保証する。

  • シーンデータ (PSML 1.0 Scene 改訂版 DTD)
  • 画像データ(GIF,JPEG,PNG)
  • 音声データ(WAV,AU,AIFF,MP3)
  • その他(フォント)

ただし、シーンデータについて、PVNS 0.5.4 以前の PSML 1.0 Scene DTD を参照しているデータはサポート対象外とする。

リソース

リソースについては、可能な限り PVNS 0.5 を踏襲するが、基本的には互換性について保証しない。ただし、移行マニュアルやツールを用意するなど、移行のための何らかのサポートを行うこととする。

動作環境

動作環境については、対応する Java2 Runtime Environment に依存するため、基本的に互換性について保証しない。