現在(2020-03-15)自分で作成しているものになりますが、テキストRPGを作成しようとしています。Java言語を使用しています。
プログラム作成(アプリ作成)である程度の規模になった場合は、設計をしてからでないと収集がつかなくなります。
違う見方をすると「面白いもの」を作ろうとしたら「設計」が必要になるということです。
RPGの世界を作る
「RPGの世界」と言ってもいろんな意味があるので具体的に、小説や脚本を作るレベルでの「世界」を作ろうということです。
世界の定義
世界、小説を作る側からすると「プロット」というらしいです。漫画や、脚本でも同様らしいです。この情報は人から聞いたものなのでこのように記載しています。
どんな世界を描くか?
自分は「プログラマ」ではないので、人(作家など)がプロットを作ることを考えて、それをプログラマ的にアプローチしていきます。
どんな風に?
ズバリ、プロットを作る工程をシステム化します。これができたらかなりすごいことになると思いますが、理想通りにいかない想定です。
理由は、どうしても、「予測」する部分が発生するので、いわゆる人工知能(AI)処理が必要になるためです。
では、どうやるか?いわゆるフレームワークを作成する想定です。つまり、1つの(RPGで使用する)ストーリーを作成するための手順を作り、必要な情報(作成するストーリーのオリジナルな部分)を入力(作成)すれば、ストーリーとして使用できるレベルにまとめるツールとして作成するという意味です。手順としては以下の通りです。
- 物語を構成する項目を設定していきます。(キャラクター、世界(観)、文書のストーリー)
- 物語の世界を描くために、世界の始まり(創世神話)を作成する、必要なければこれを入力しない(NULL)に設定する
- 物語の世界に存在する世界を一覧します。(書き出します)
- 文書によるストーリー、キャラクターを作成します。
上記の内容を作成すると、自然と物語が作成できるというものです。
ぶっちゃけた話、フレームワークまで行きませんが、執筆する作品を部分的に作成していても、1つにまとめることが可能であろうと思っています。
できるかどうかはわかりません
しかし
文章作成のシロート目線からして、骨組みだけでもある程度の形になるのであれば、十二分に作品として作成することが可能になるはずです。
つまり、より多くの人のイメージや、想像した世界観を伝えやすい形にできるのではなかろうか?と考えています。
UMLを作る
結果から記載します。
上記の図が、クラス図になります。
ここの図には、クラス名とそれに対するプロパティ(世界には国がある)を表しています。世界のクラス図です。
具体的に、上のクラス図は文章に置き換えると下のようになります。
1. 世界には神話がある 2. 世界には国がある 3. 世界には自然がある
実際に世界にはもっとたくさんのものがあり、存在しています。しかし、これらを全部クラス図に落とし込むのは至難の技です、なので階層的に表現して行きます。
・世界→国→町 ・自然→気候→地形(山、川など)
クラスで表現するもの(事)は上のように階層的に表現して行くと、1つの場所に描く内容が少なくて済みます。そして、それぞれ階層化、カプセル化するので一部を変更しても、他に影響がないように修正することができます。
これが「オブジェクト指向の良いところ」になります。
UML作成関連
・UMLの書き方
・UMLツール Star UML〜ユースケース図を書いて見た〜
・UMLツール 〜Star UMLを使う〜