diff --git a/docs/assets/bar.jpg b/docs/assets/bar.jpg new file mode 100644 index 0000000..e36687e Binary files /dev/null and b/docs/assets/bar.jpg differ diff --git a/docs/assets/edit-town-scenario.jpg b/docs/assets/edit-town-scenario.jpg new file mode 100644 index 0000000..a1b2d04 Binary files /dev/null and b/docs/assets/edit-town-scenario.jpg differ diff --git a/docs/assets/new-choice.jpg b/docs/assets/new-choice.jpg new file mode 100644 index 0000000..5743da1 Binary files /dev/null and b/docs/assets/new-choice.jpg differ diff --git a/docs/assets/town.jpg b/docs/assets/town.jpg new file mode 100644 index 0000000..3d5ef14 Binary files /dev/null and b/docs/assets/town.jpg differ diff --git a/docs/en.md b/docs/en.md new file mode 100644 index 0000000..00f4b01 --- /dev/null +++ b/docs/en.md @@ -0,0 +1,123 @@ +# My Novel — the starting point for your own visual novel + +My Novel is the smallest complete visual novel in the game: an evening town, a bar and a home, connected by choices. It has no characters, items or battles — only scenes, short scenario files and their translations. It is meant to be copied: rename it, then grow your own story from these three places. + +Play it from **Play → My Novel → New game**. It is the content of the **My Novel** game (collection `novel_template`). + +![The bar in My Novel: the bar background with the line "The bar is warm and noisy, but there is nothing to do here tonight."](assets/bar.jpg) + +## What it contains + +```filestree +my_novel_game/ +├── manifest.json +├── scenes/ +│ ├── my_novel_town.json town entrance, the game starts here +│ ├── my_novel_bar.json bar with its ambient sound +│ └── my_novel_home.json home vestibule +├── scenarios/ +│ ├── my_novel_town.scenario +│ ├── my_novel_bar.scenario +│ └── my_novel_home.scenario +└── locale/ + ├── en.properties mod name and description + └── scenarios_.properties translations of the scenario lines +``` + +The pictures and the bar sound are not in this mod: they come from **Town Pack**, so the template stays small and shows how a game reuses shared content. The music comes from **Music Pack**; the engine mods are the 2D Shell, Dialog Engine and Audio Engine. + +## How the story flows + +The town is the hub. Every visit shows the same choice; the bar and the home each lead back. + +```text + ┌────────────────────┐ + │ my_novel_town │ (start) + │ "Where to go?" │ + └──┬──────────────┬──┘ + Go into the bar Go back home + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ my_novel_bar │ │ my_novel_home│ + └──────┬───────┘ └──────┬───────┘ + └─ Back to the town ─┘ +``` + +![The town entrance in My Novel, the first scene, with the line "Evening town. The street lamps are already lit and a cool draught runs along the cobbles."](assets/town.jpg) + +A scene file names the background and the ambient sound: + +```json +{ + "name": "my_novel_bar", + "defaultBackground": "bar/bar", + "defaultAmbient": "bar/bar_ambient" +} +``` + +The scenario with the same scene name runs when the scene is entered: + +```scenario +scene: my_novel_town +priority: 10 +--- +# The town is the hub: every visit shows the same choice. +text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro +select "Where to go?" key=my_novel/town/prompt +option "Go into the bar" key=my_novel/town/opt_bar -> :bar +option "Go back home" key=my_novel/town/opt_home -> :home + +:bar +switch_scene my_novel_bar +end + +:home +switch_scene my_novel_home +end +``` + +The English text is written directly in the scenario. Each `key=` names the line's translation in `locale/scenarios_.properties`, for example the Spanish one: + +```properties +my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. +``` + +## Make it your own + +1. **Copy and rename the mod.** Name it after your game with the `_game` suffix, for example `harbor_game`. Change the folder name and `id` in `manifest.json` to the same value, and rename the `mod_my_novel_game_name` / `_desc` keys in `locale/*.properties` to `mod_harbor_game_name` / `_desc`. +2. **Make a game for it.** In **Mods & Collections → Collections**, open My Novel's scheme and press **Duplicate**, then replace `my_novel_game` with your mod in the **Story** block. The entry scene is set in the collection (`"entry": { "scene": "my_novel_town" }`). +3. **Rename the scenes** if you like: the scene's `name`, its file, the `scene:` header of its scenario and every `switch_scene` that leads to it must match. +4. **Keep or replace the art.** Leave `town_pack` in `depends` to keep the town, or add your own `backgrounds/` and `sounds/` and point `defaultBackground` / `defaultAmbient` at them. + +## A first change: add a place + +This is a real session in the editors, run inside My Novel with the Editor Tools mod added. The scene editor created a `my_novel_park` scene, and one option plus one label were typed into the town's scenario: + +![The scenario editor with my_novel_town.scenario open: a new line `option "Go to the park" -> :park` and a new block `:park / switch_scene my_novel_park / end`; the status bar says the file was saved.](assets/edit-town-scenario.jpg) + +```scenario +option "Go to the park" -> :park + +:park +switch_scene my_novel_park +end +``` + +After saving, the town immediately offers the new way, and choosing it opens the new scene: + +![The town's choice now has three options: Go into the bar, Go to the park, Go back home.](assets/new-choice.jpg) + +To get the editors in your own game, add the **Editor Tools** mod to it in the scheme, or launch the game for one session with them: + +```text +godot --path . -- --game=novel_template --new --with-mods=editor_tools +``` + +A new line without `key=` shows its literal text in every language; add a key and translations when the story is ready to be translated. + +## If something does not work + +1. **A choice leads nowhere.** The `switch_scene` name must equal the target scene's `name`, including case. +2. **A scene has no text.** Its scenario's `scene:` header must name that scene. +3. **The text is English in another language.** The line has no `key=`, or the key is missing in that language's `scenarios_.properties`. +4. **A black background.** The background name is misspelt, or the mod that has the picture is not in `depends`. diff --git a/docs/es.md b/docs/es.md new file mode 100644 index 0000000..5bcd357 --- /dev/null +++ b/docs/es.md @@ -0,0 +1,123 @@ +# My Novel — el punto de partida para tu propia novela visual + +My Novel es la novela visual completa más pequeña del proyecto: un pueblo al atardecer, un bar y una casa, unidos por decisiones. No tiene personajes, objetos ni combates: solo escenas, archivos de escenario breves y sus traducciones. Está pensado para copiarse: renómbralo y haz crecer tu propia historia desde estos tres lugares. + +Se juega desde **Jugar → My Novel → Nueva partida**. Es el contenido del juego **My Novel** (colección `novel_template`). + +![El bar de My Novel: el fondo del bar con la línea «El bar es cálido y ruidoso, pero esta noche aquí no hay nada que hacer.».](assets/bar.jpg) + +## Qué contiene + +```filestree +my_novel_game/ +├── manifest.json +├── scenes/ +│ ├── my_novel_town.json entrada del pueblo, el juego empieza aquí +│ ├── my_novel_bar.json el bar con su sonido ambiental +│ └── my_novel_home.json el vestíbulo de la casa +├── scenarios/ +│ ├── my_novel_town.scenario +│ ├── my_novel_bar.scenario +│ └── my_novel_home.scenario +└── locale/ + ├── en.properties nombre y descripción del mod + └── scenarios_.properties traducciones de las líneas del escenario +``` + +Las imágenes y el sonido del bar no están en este mod: vienen de **Town Pack**, para que la plantilla siga siendo pequeña y muestre cómo un juego reutiliza contenido compartido. La música viene de **Music Pack**; los mods de motor son la Carcasa 2D, el motor de diálogos y el motor de audio. + +## Cómo fluye la historia + +El pueblo es el centro. Cada visita muestra la misma decisión; el bar y la casa siempre llevan de vuelta. + +```text + ┌────────────────────┐ + │ my_novel_town │ (inicio) + │ "¿Adónde ir?" │ + └──┬──────────────┬──┘ + Entrar en el bar Volver a casa + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ my_novel_bar │ │ my_novel_home│ + └──────┬───────┘ └──────┬───────┘ + └─ Volver a la ciudad ─┘ +``` + +![La entrada del pueblo en My Novel, la primera escena, con la línea «La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines.».](assets/town.jpg) + +El archivo de la escena nombra el fondo y el sonido ambiental: + +```json +{ + "name": "my_novel_bar", + "defaultBackground": "bar/bar", + "defaultAmbient": "bar/bar_ambient" +} +``` + +El escenario con el mismo nombre de la escena se ejecuta al entrar en ella: + +```scenario +scene: my_novel_town +priority: 10 +--- +# The town is the hub: every visit shows the same choice. +text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro +select "Where to go?" key=my_novel/town/prompt +option "Go into the bar" key=my_novel/town/opt_bar -> :bar +option "Go back home" key=my_novel/town/opt_home -> :home + +:bar +switch_scene my_novel_bar +end + +:home +switch_scene my_novel_home +end +``` + +El texto en inglés está escrito directamente en el escenario. Cada `key=` nombra la traducción de la línea en `locale/scenarios_.properties`; por ejemplo, la española: + +```properties +my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. +``` + +## Hazlo tuyo + +1. **Copia y renombra el mod.** Ponle el nombre de tu juego con el sufijo `_game`, por ejemplo `harbor_game`. Cambia el nombre de la carpeta y el `id` de `manifest.json` al mismo valor, y renombra las claves `mod_my_novel_game_name` / `_desc` de `locale/*.properties` a `mod_harbor_game_name` / `_desc`. +2. **Crea un juego para él.** En **Mods & Collections → Colecciones**, abre el esquema de My Novel y pulsa **Duplicar**; después sustituye `my_novel_game` por tu mod en el bloque **Historia**. La escena de entrada se fija en la colección (`"entry": { "scene": "my_novel_town" }`). +3. **Renombra las escenas** si quieres: el `name` de la escena, su archivo, la cabecera `scene:` de su escenario y cada `switch_scene` que lleve a ella deben coincidir. +4. **Conserva o sustituye el arte.** Deja `town_pack` en `depends` para quedarte con el pueblo, o añade tus propios `backgrounds/` y `sounds/` y apunta a ellos con `defaultBackground` / `defaultAmbient`. + +## Un primer cambio: añade un lugar + +Esta es una sesión real en los editores, hecha dentro de My Novel con el mod Editor Tools añadido. El editor de escenas creó una escena `my_novel_park`, y en el escenario del pueblo se teclearon una opción y una etiqueta: + +![El editor de escenarios con my_novel_town.scenario abierto: la línea nueva `option "Go to the park" -> :park` y el bloque nuevo `:park / switch_scene my_novel_park / end`; la barra de estado dice que el archivo se guardó.](assets/edit-town-scenario.jpg) + +```scenario +option "Go to the park" -> :park + +:park +switch_scene my_novel_park +end +``` + +Tras guardar, el pueblo ofrece de inmediato el nuevo camino, y elegirlo abre la escena nueva: + +![La decisión del pueblo ahora tiene tres opciones: Entrar en el bar, Go to the park, Volver a casa.](assets/new-choice.jpg) + +Para tener los editores en tu propio juego, añádele el mod **Editor Tools** en el esquema, o lanza el juego por una sesión con ellos: + +```text +godot --path . -- --game=novel_template --new --with-mods=editor_tools +``` + +Una línea nueva sin `key=` muestra su texto literal en todos los idiomas; añade una clave y traducciones cuando la historia esté lista para traducirse. + +## Si algo no funciona + +1. **Una decisión no lleva a ninguna parte.** El nombre del `switch_scene` debe ser igual al `name` de la escena destino, mayúsculas incluidas. +2. **Una escena no tiene texto.** La cabecera `scene:` de su escenario debe nombrar esa escena. +3. **El texto sale en inglés en otro idioma.** La línea no tiene `key=`, o la clave falta en el `scenarios_.properties` de ese idioma. +4. **Fondo negro.** El nombre del fondo está mal escrito, o el mod que tiene la imagen no está en `depends`. diff --git a/docs/ja.md b/docs/ja.md new file mode 100644 index 0000000..379251a --- /dev/null +++ b/docs/ja.md @@ -0,0 +1,123 @@ +# My Novel — 自分のビジュアルノベルの出発点 + +My Novel はプロジェクトでいちばん小さな完成したビジュアルノベルです。夕暮れの町、バー、家が選択肢でつながっています。キャラクターもアイテムも戦闘もなく、あるのはシーン、短いシナリオファイル、その翻訳だけ。コピーされることを前提としたモッドです。名前を変えて、この三つの場所から自分の物語を育ててください。 + +**プレイ → My Novel → ニューゲーム** から始めます。**My Novel** ゲーム(コレクション `novel_template`)のコンテンツです。 + +![My Novel のバー:バーの背景と「バーは暖かくにぎやかだが、今夜ここですることは何もない。」の行。](assets/bar.jpg) + +## 中身 + +```filestree +my_novel_game/ +├── manifest.json +├── scenes/ +│ ├── my_novel_town.json 町の入り口。ゲームはここから始まる +│ ├── my_novel_bar.json 環境音付きのバー +│ └── my_novel_home.json 家の玄関 +├── scenarios/ +│ ├── my_novel_town.scenario +│ ├── my_novel_bar.scenario +│ └── my_novel_home.scenario +└── locale/ + ├── en.properties MOD の名前と説明 + └── scenarios_.properties シナリオの各行の翻訳 +``` + +画像とバーの音はこの MOD には入っていません。**Town Pack** から来るので、テンプレートは小さなまま、ゲームが共有コンテンツを再利用するようすを見せられます。音楽は **Music Pack** から。エンジン MOD は 2D シェル、会話エンジン、オーディオエンジンです。 + +## 物語の流れ + +町が中心です。訪れるたびに同じ選択肢が現れ、バーも家も必ず戻ってきます。 + +```text + ┌────────────────────┐ + │ my_novel_town │ (開始) + │ 「どこへ行く?」 │ + └──┬──────────────┬──┘ + バーに入る 家に帰る + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ my_novel_bar │ │ my_novel_home│ + └──────┬───────┘ └──────┬───────┘ + └─ 町に戻る ─┘ +``` + +![My Novel の最初のシーンである町の入り口と、「夕暮れの町。街灯はもうともり、石畳を涼しい風が吹き抜けていく。」の行。](assets/town.jpg) + +シーンのファイルは背景と環境音を指名します: + +```json +{ + "name": "my_novel_bar", + "defaultBackground": "bar/bar", + "defaultAmbient": "bar/bar_ambient" +} +``` + +シーンと同じ名前のシナリオは、そのシーンに入ったときに再生されます: + +```scenario +scene: my_novel_town +priority: 10 +--- +# The town is the hub: every visit shows the same choice. +text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro +select "Where to go?" key=my_novel/town/prompt +option "Go into the bar" key=my_novel/town/opt_bar -> :bar +option "Go back home" key=my_novel/town/opt_home -> :home + +:bar +switch_scene my_novel_bar +end + +:home +switch_scene my_novel_home +end +``` + +英語のテキストはシナリオに直接書かれています。各 `key=` はその行の翻訳を `locale/scenarios_.properties` で指名します。たとえばスペイン語では: + +```properties +my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. +``` + +## 自分のものにする + +1. **MOD をコピーして名前を変える。** 自分のゲームの名前に `_game` 接尾辞を付けたものにします。たとえば `harbor_game`。フォルダー名と `manifest.json` の `id` を同じ値に変え、`locale/*.properties` のキー `mod_my_novel_game_name` / `_desc` を `mod_harbor_game_name` / `_desc` に変えます。 +2. **ゲームを作る。** **Mods & Collections → コレクション** で My Novel の構成を開いて **複製** を押し、**ストーリー** ブロックの `my_novel_game` を自分の MOD に置き換えます。開始シーンはコレクションで指定します(`"entry": { "scene": "my_novel_town" }`)。 +3. **シーンの名前を変える(任意)。** シーンの `name`、そのファイル、シナリオの `scene:` ヘッダー、そこへ通じるすべての `switch_scene` が一致していなければなりません。 +4. **アートを保つか置き換える。** 町を残すなら `depends` に `town_pack` を残します。自分の `backgrounds/` と `sounds/` を追加し、`defaultBackground` / `defaultAmbient` をそちらへ向けてもかまいません。 + +## 最初の変更:場所を一つ追加する + +これはエディターでの実際の作業です。My Novel に Editor Tools MOD を追加した状態で行いました。シーンエディターがシーン `my_novel_park` を作り、町のシナリオに選択肢を一つとラベルを一つ打ち込みました: + +![my_novel_town.scenario を開いたシナリオエディター:新しい行 `option "Go to the park" -> :park` と新しいブロック `:park / switch_scene my_novel_park / end`。ステータスバーはファイルが保存されたと伝えています。](assets/edit-town-scenario.jpg) + +```scenario +option "Go to the park" -> :park + +:park +switch_scene my_novel_park +end +``` + +保存すると、町はすぐに新しい道を示し、選ぶと新しいシーンが開きます: + +![町の選択肢は今や三つ:バーに入る、Go to the park、家に帰る。](assets/new-choice.jpg) + +自分のゲームでエディターを使うには、構成で **Editor Tools** MOD を追加するか、一ゲーム分だけそれらと一緒に起動します: + +```text +godot --path . -- --game=novel_template --new --with-mods=editor_tools +``` + +`key=` のない新しい行はどの言語でもリテラルのテキストを表示します。物語を翻訳する準備ができたら、キーと翻訳を追加してください。 + +## うまくいかないとき + +1. **選択肢がどこにも行かない。** `switch_scene` の名前は、大文字小文字を含めて対象シーンの `name` と一致しなければなりません。 +2. **シーンにテキストがない。** そのシナリオの `scene:` ヘッダーが、そのシーンの名前を指している必要があります。 +3. **別の言語でテキストが英語のまま。** 行に `key=` がないか、その言語の `scenarios_.properties` にキーがありません。 +4. **背景が真っ暗。** 背景名のつづりが間違っているか、画像を持つ MOD が `depends` に入っていません。 diff --git a/docs/ko.md b/docs/ko.md new file mode 100644 index 0000000..7fdf0a2 --- /dev/null +++ b/docs/ko.md @@ -0,0 +1,123 @@ +# My Novel — 나만의 비주얼 노벨의 출발점 + +My Novel은 프로젝트에서 가장 작은 완성된 비주얼 노벨입니다. 저녁의 마을, 바, 집이 선택지로 이어져 있습니다. 캐릭터도 아이템도 전투도 없고, 장면과 짧은 시나리오 파일, 그 번역만 있을 뿐입니다. 이 모드는 복제하기 위해 만들어졌습니다. 이름을 바꾸고, 이 세 장소에서 나만의 이야기를 키우세요. + +**플레이 → My Novel → 새 게임**에서 시작합니다. **My Novel** 게임(컬렉션 `novel_template`)의 콘텐츠입니다. + +![My Novel의 바: 바 배경과 “바는 따뜻하고 시끌벅적하지만, 오늘 밤 여기서 할 일은 없다.” 줄.](assets/bar.jpg) + +## 들어 있는 것 + +```filestree +my_novel_game/ +├── manifest.json +├── scenes/ +│ ├── my_novel_town.json 마을 입구, 게임이 여기서 시작됨 +│ ├── my_novel_bar.json 자체 환경음이 있는 바 +│ └── my_novel_home.json 집 현관 +├── scenarios/ +│ ├── my_novel_town.scenario +│ ├── my_novel_bar.scenario +│ └── my_novel_home.scenario +└── locale/ + ├── en.properties 모드 이름과 설명 + └── scenarios_.properties 시나리오 줄의 번역 +``` + +그림과 바 소리는 이 모드에 없습니다. **Town Pack**에서 오기 때문에, 템플릿은 작게 유지되면서 게임이 공유 콘텐츠를 재사용하는 방식을 보여 줍니다. 음악은 **Music Pack**에서 옵니다. 엔진 모드는 2D 셸, 대화 엔진, 오디오 엔진입니다. + +## 이야기가 흐르는 방식 + +마을이 중심입니다. 방문할 때마다 같은 선택지가 나타나고, 바와 집은 언제나 돌아가는 길로 이어집니다. + +```text + ┌────────────────────┐ + │ my_novel_town │ (시작) + │ “어디로 갈까?” │ + └──┬──────────────┬──┘ + 바에 들어간다 집으로 돌아간다 + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ my_novel_bar │ │ my_novel_home│ + └──────┬───────┘ └──────┬───────┘ + └─ 마을로 돌아간다 ─┘ +``` + +![My Novel의 첫 장면인 마을 입구와 “저녁의 마을. 가로등은 벌써 켜졌고, 시원한 바람이 자갈길을 따라 분다.” 줄.](assets/town.jpg) + +장면 파일은 배경과 환경음을 지정합니다: + +```json +{ + "name": "my_novel_bar", + "defaultBackground": "bar/bar", + "defaultAmbient": "bar/bar_ambient" +} +``` + +장면과 같은 이름의 시나리오는 그 장면에 들어설 때 실행됩니다: + +```scenario +scene: my_novel_town +priority: 10 +--- +# The town is the hub: every visit shows the same choice. +text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro +select "Where to go?" key=my_novel/town/prompt +option "Go into the bar" key=my_novel/town/opt_bar -> :bar +option "Go back home" key=my_novel/town/opt_home -> :home + +:bar +switch_scene my_novel_bar +end + +:home +switch_scene my_novel_home +end +``` + +영어 텍스트는 시나리오에 직접 쓰여 있습니다. 각 `key=`는 그 줄의 번역을 `locale/scenarios_.properties`에서 가리킵니다. 예를 들어 스페인어는: + +```properties +my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. +``` + +## 내 것으로 만들기 + +1. **모드를 복제하고 이름을 바꾸십시오.** 게임 이름에 `_game` 접미사를 붙여 지으세요. 예: `harbor_game`. 폴더 이름과 `manifest.json`의 `id`를 같은 값으로 바꾸고, `locale/*.properties`의 키 `mod_my_novel_game_name` / `_desc`를 `mod_harbor_game_name` / `_desc`로 바꾸십시오. +2. **게임을 만드십시오.** **Mods & Collections → 컬렉션**에서 My Novel의 구성을 열고 **복제**를 누른 뒤, **스토리** 블록의 `my_novel_game`을 내 모드로 바꾸십시오. 시작 장면은 컬렉션에서 정합니다(`"entry": { "scene": "my_novel_town" }`). +3. **장면 이름을 바꾸십시오(선택).** 장면의 `name`, 그 파일, 시나리오의 `scene:` 헤더, 그곳으로 이어지는 모든 `switch_scene`이 일치해야 합니다. +4. **아트를 유지하거나 교체하십시오.** 마을을 그대로 두려면 `depends`에 `town_pack`을 남기세요. 아니면 자신의 `backgrounds/`와 `sounds/`를 추가하고 `defaultBackground` / `defaultAmbient`가 그쪽을 가리키게 하세요. + +## 첫 번째 변경: 장소 추가하기 + +이것은 편집기에서의 실제 세션입니다. My Novel에 Editor Tools 모드를 추가한 상태에서 진행했습니다. 장면 편집기가 `my_novel_park` 장면을 만들고, 마을 시나리오에 선택지 하나와 라벨 하나를 입력했습니다: + +![my_novel_town.scenario가 열린 시나리오 편집기: 새 줄 `option "Go to the park" -> :park`과 새 블록 `:park / switch_scene my_novel_park / end`. 상태 표시줄은 파일이 저장되었다고 알립니다.](assets/edit-town-scenario.jpg) + +```scenario +option "Go to the park" -> :park + +:park +switch_scene my_novel_park +end +``` + +저장하면 마을이 곧바로 새 길을 내놓고, 그것을 고르면 새 장면이 열립니다: + +![마을의 선택지는 이제 세 개: 바에 들어간다, Go to the park, 집으로 돌아간다.](assets/new-choice.jpg) + +자신의 게임에서 편집기를 쓰려면 구성에서 **Editor Tools** 모드를 추가하거나, 한 세션 동안 그것들과 함께 게임을 실행하세요: + +```text +godot --path . -- --game=novel_template --new --with-mods=editor_tools +``` + +`key=` 없는 새 줄은 모든 언어에서 글자 그대로의 텍스트를 보여 줍니다. 이야기를 번역할 준비가 되면 키와 번역을 추가하세요. + +## 잘 안 될 때 + +1. **어떤 선택지가 아무 데도 가지 않습니다.** `switch_scene`의 이름은 대소문자까지 대상 장면의 `name`과 같아야 합니다. +2. **장면에 텍스트가 없습니다.** 그 시나리오의 `scene:` 헤더가 바로 그 장면의 이름을 가리켜야 합니다. +3. **다른 언어에서 텍스트가 영어입니다.** 줄에 `key=`가 없거나, 그 언어의 `scenarios_.properties`에 키가 없습니다. +4. **검은 배경.** 배경 이름의 철자가 틀렸거나, 그림을 가진 모드가 `depends`에 없습니다. diff --git a/docs/ru.md b/docs/ru.md new file mode 100644 index 0000000..fdb19fa --- /dev/null +++ b/docs/ru.md @@ -0,0 +1,123 @@ +# My Novel — отправная точка для вашей собственной визуальной новеллы + +My Novel — самая маленькая законченная визуальная новелла в проекте: вечерний город, бар и дом, связанные выборами. Здесь нет персонажей, предметов и боёв — только сцены, короткие файлы сценариев и их переводы. Мод задуман как образец для копирования: переименуйте его и вырастите собственную историю из этих трёх мест. + +Запускается через **Играть → My Novel → Новая игра**. Это контент игры **My Novel** (коллекция `novel_template`). + +![Бар в My Novel: фон бара и строка «В баре тепло и шумно, но сегодня здесь нечего делать.».](assets/bar.jpg) + +## Что внутри + +```filestree +my_novel_game/ +├── manifest.json +├── scenes/ +│ ├── my_novel_town.json въезд в город, игра начинается здесь +│ ├── my_novel_bar.json бар со своим фоновым звуком +│ └── my_novel_home.json прихожая дома +├── scenarios/ +│ ├── my_novel_town.scenario +│ ├── my_novel_bar.scenario +│ └── my_novel_home.scenario +└── locale/ + ├── en.properties имя и описание мода + └── scenarios_.properties переводы строк сценария +``` + +Картинок и звука бара в этом моде нет: они берутся из **Town Pack**, чтобы шаблон оставался маленьким и показывал, как игра переиспользует общий контент. Музыка — из **Music Pack**; моды-движки здесь — 2D-оболочка, диалоговый движок и звуковой движок. + +## Как течёт история + +Город — центр. Каждый визит показывает один и тот же выбор; бар и дом каждый раз ведут обратно. + +```text + ┌────────────────────┐ + │ my_novel_town │ (старт) + │ «Куда пойти?» │ + └──┬──────────────┬──┘ + Зайти в бар Вернуться домой + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ my_novel_bar │ │ my_novel_home│ + └──────┬───────┘ └──────┬───────┘ + └─ Вернуться в город ─┘ +``` + +![Въезд в город в My Novel — первая сцена — и строка «Вечерний город. Фонари уже горят, по мостовой тянет прохладой.».](assets/town.jpg) + +Файл сцены называет фон и фоновый звук: + +```json +{ + "name": "my_novel_bar", + "defaultBackground": "bar/bar", + "defaultAmbient": "bar/bar_ambient" +} +``` + +Сценарий с тем же именем, что у сцены, запускается при входе в неё: + +```scenario +scene: my_novel_town +priority: 10 +--- +# The town is the hub: every visit shows the same choice. +text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro +select "Where to go?" key=my_novel/town/prompt +option "Go into the bar" key=my_novel/town/opt_bar -> :bar +option "Go back home" key=my_novel/town/opt_home -> :home + +:bar +switch_scene my_novel_bar +end + +:home +switch_scene my_novel_home +end +``` + +Английский текст написан прямо в сценарии. Каждый `key=` называет перевод строки в `locale/scenarios_.properties`, например испанский: + +```properties +my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. +``` + +## Сделайте её своей + +1. **Скопируйте и переименуйте мод.** Назовите его по своей игре с суффиксом `_game`, например `harbor_game`. Папку и поле `id` в `manifest.json` смените на одно и то же значение, а ключи `mod_my_novel_game_name` / `_desc` в `locale/*.properties` — на `mod_harbor_game_name` / `_desc`. +2. **Сделайте для него игру.** В **Mods & Collections → Коллекции** откройте схему My Novel и нажмите **Дублировать**, затем в блоке «Сюжет» замените `my_novel_game` на свой мод. Стартовая сцена задаётся в коллекции (`"entry": { "scene": "my_novel_town" }`). +3. **Переименуйте сцены**, если хотите: имя сцены в поле `name`, её файл, заголовок `scene:` её сценария и каждый `switch_scene`, который туда ведёт, должны совпадать. +4. **Оставьте или замените графику.** Оставьте `town_pack` в `depends`, чтобы сохранить город, — или добавьте собственные `backgrounds/` и `sounds/` и направьте `defaultBackground` / `defaultAmbient` на них. + +## Первое изменение: добавьте место + +Это настоящая сессия в редакторах, запущенная внутри My Novel с подключённым модом Editor Tools. Редактор сцен создал сцену `my_novel_park`, а в сценарий города вписали один вариант и одну метку: + +![Редактор сценариев с открытым my_novel_town.scenario: новая строка `option "Go to the park" -> :park` и новый блок `:park / switch_scene my_novel_park / end`; строка состояния сообщает, что файл сохранён.](assets/edit-town-scenario.jpg) + +```scenario +option "Go to the park" -> :park + +:park +switch_scene my_novel_park +end +``` + +После сохранения город сразу предлагает новый путь, и выбор открывает новую сцену: + +![Выбор в городе теперь из трёх вариантов: Зайти в бар, Go to the park, Вернуться домой.](assets/new-choice.jpg) + +Чтобы редакторы были в вашей игре, добавьте в её схему мод **Editor Tools** или запустите игру на один сеанс с ними: + +```text +godot --path . -- --game=novel_template --new --with-mods=editor_tools +``` + +Новая строка без `key=` показывает свой буквальный текст на любом языке; добавьте ключ и переводы, когда история будет готова к переводу. + +## Если что-то не работает + +1. **Выбор ведёт в никуда.** Имя в `switch_scene` должно совпадать с полем `name` целевой сцены, включая регистр. +2. **У сцены нет текста.** Заголовок `scene:` её сценария должен называть именно эту сцену. +3. **На другом языке текст английский.** У строки нет `key=`, либо ключ отсутствует в `scenarios_.properties` этого языка. +4. **Чёрный фон.** Имя фона написано с ошибкой, или мод с картинкой не указан в `depends`. diff --git a/docs/vi.md b/docs/vi.md new file mode 100644 index 0000000..6627b81 --- /dev/null +++ b/docs/vi.md @@ -0,0 +1,123 @@ +# My Novel — điểm khởi đầu cho tiểu thuyết tương tác của riêng bạn + +My Novel là tiểu thuyết tương tác hoàn chỉnh nhỏ nhất trong dự án: một thị trấn lúc chiều tối, một quán bar và một ngôi nhà, nối với nhau bằng các lựa chọn. Nó không có nhân vật, vật phẩm hay chiến đấu — chỉ có cảnh, những tệp kịch bản ngắn và bản dịch của chúng. Mod được làm ra để copy: đổi tên nó, rồi nuôi lớn câu chuyện của riêng bạn từ ba địa điểm này. + +Chơi từ **Chơi → My Novel → Trò chơi mới**. Đây là nội dung của trò chơi **My Novel** (bộ sưu tập `novel_template`). + +![Quán bar trong My Novel: nền quán bar với dòng “Quán bar ấm áp và ồn ào, nhưng tối nay chẳng có gì để làm ở đây.”.](assets/bar.jpg) + +## Bên trong có gì + +```filestree +my_novel_game/ +├── manifest.json +├── scenes/ +│ ├── my_novel_town.json lối vào thị trấn, trò chơi bắt đầu ở đây +│ ├── my_novel_bar.json quán bar với âm thanh nền riêng +│ └── my_novel_home.json tiền sảnh ngôi nhà +├── scenarios/ +│ ├── my_novel_town.scenario +│ ├── my_novel_bar.scenario +│ └── my_novel_home.scenario +└── locale/ + ├── en.properties tên và mô tả mod + └── scenarios_.properties bản dịch các dòng kịch bản +``` + +Hình ảnh và âm thanh quán bar không nằm trong mod này: chúng đến từ **Town Pack**, để mẫu vẫn nhỏ gọn và cho thấy một trò chơi tái sử dụng nội dung chung thế nào. Nhạc đến từ **Music Pack**; các mod engine là Vỏ 2D, engine hội thoại và engine âm thanh. + +## Câu chuyện chảy thế nào + +Thị trấn là điểm trung chuyển. Mỗi lần ghé lại thấy cùng một lựa chọn; quán bar và ngôi nhà đều dẫn đường quay về. + +```text + ┌────────────────────┐ + │ my_novel_town │ (bắt đầu) + │ "Đi đâu đây?" │ + └──┬──────────────┬──┘ + Vào quán bar Về nhà + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ my_novel_bar │ │ my_novel_home│ + └──────┬───────┘ └──────┬───────┘ + └─ Quay lại thị trấn ─┘ +``` + +![Lối vào thị trấn trong My Novel, cảnh đầu tiên, với dòng “Thị trấn lúc chiều tối. Đèn đường đã sáng và một làn gió mát lùa dọc những viên đá lát.”.](assets/town.jpg) + +Tệp cảnh nêu tên nền và âm thanh nền: + +```json +{ + "name": "my_novel_bar", + "defaultBackground": "bar/bar", + "defaultAmbient": "bar/bar_ambient" +} +``` + +Kịch bản trùng tên với cảnh sẽ chạy khi bước vào cảnh đó: + +```scenario +scene: my_novel_town +priority: 10 +--- +# The town is the hub: every visit shows the same choice. +text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro +select "Where to go?" key=my_novel/town/prompt +option "Go into the bar" key=my_novel/town/opt_bar -> :bar +option "Go back home" key=my_novel/town/opt_home -> :home + +:bar +switch_scene my_novel_bar +end + +:home +switch_scene my_novel_home +end +``` + +Văn bản tiếng Anh được viết ngay trong kịch bản. Mỗi `key=` gọi tên bản dịch của dòng đó trong `locale/scenarios_.properties`, ví dụ bản tiếng Tây Ban Nha: + +```properties +my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. +``` + +## Biến nó thành của bạn + +1. **Copy và đổi tên mod.** Đặt theo tên trò chơi của bạn với hậu tố `_game`, ví dụ `harbor_game`. Đổi tên thư mục và `id` trong `manifest.json` thành cùng một giá trị, và đổi các khóa `mod_my_novel_game_name` / `_desc` trong `locale/*.properties` thành `mod_harbor_game_name` / `_desc`. +2. **Làm cho nó một trò chơi.** Trong **Mods & Collections → Bộ sưu tập**, mở sơ đồ của My Novel và bấm **Nhân bản**, rồi thay `my_novel_game` bằng mod của bạn trong khối **Câu chuyện**. Cảnh mở đầu được đặt trong bộ sưu tập (`"entry": { "scene": "my_novel_town" }`). +3. **Đổi tên các cảnh** nếu muốn: `name` của cảnh, tệp của nó, dòng đầu `scene:` trong kịch bản của nó và mọi `switch_scene` dẫn tới nó phải khớp nhau. +4. **Giữ hoặc thay phần hình ảnh.** Giữ `town_pack` trong `depends` để giữ nguyên thị trấn, hoặc thêm `backgrounds/` và `sounds/` của riêng bạn rồi trỏ `defaultBackground` / `defaultAmbient` vào đó. + +## Thay đổi đầu tiên: thêm một địa điểm + +Đây là một buổi làm việc thật trong trình soạn thảo, chạy bên trong My Novel với mod Editor Tools được thêm vào. Trình soạn cảnh đã tạo cảnh `my_novel_park`, và một lựa chọn cùng một nhãn được gõ vào kịch bản của thị trấn: + +![Trình soạn kịch bản đang mở my_novel_town.scenario: dòng mới `option "Go to the park" -> :park` và khối mới `:park / switch_scene my_novel_park / end`; thanh trạng thái báo tệp đã được lưu.](assets/edit-town-scenario.jpg) + +```scenario +option "Go to the park" -> :park + +:park +switch_scene my_novel_park +end +``` + +Sau khi lưu, thị trấn lập tức đưa ra lối mới, và chọn nó sẽ mở cảnh mới: + +![Lựa chọn của thị trấn giờ có ba mục: Vào quán bar, Go to the park, Về nhà.](assets/new-choice.jpg) + +Để có trình soạn thảo trong trò chơi của riêng bạn, thêm mod **Editor Tools** vào sơ đồ, hoặc khởi động trò chơi một phiên cùng chúng: + +```text +godot --path . -- --game=novel_template --new --with-mods=editor_tools +``` + +Dòng mới không có `key=` hiện văn bản nguyên văn trong mọi ngôn ngữ; thêm khóa và bản dịch khi câu chuyện sẵn sàng để dịch. + +## Khi không hoạt động + +1. **Một lựa chọn không dẫn đi đâu.** Tên trong `switch_scene` phải bằng `name` của cảnh đích, kể cả chữ hoa chữ thường. +2. **Một cảnh không có văn bản.** Dòng đầu `scene:` trong kịch bản của nó phải gọi đúng tên cảnh đó. +3. **Văn bản hiện tiếng Anh ở ngôn ngữ khác.** Dòng đó không có `key=`, hoặc khóa thiếu trong `scenarios_.properties` của ngôn ngữ đó. +4. **Nền đen thui.** Tên nền viết sai chính tả, hoặc mod đang giữ bức hình không có trong `depends`. diff --git a/docs/zh.md b/docs/zh.md new file mode 100644 index 0000000..f37d9b3 --- /dev/null +++ b/docs/zh.md @@ -0,0 +1,123 @@ +# My Novel — 你自己的视觉小说起点 + +My Novel 是项目中最小的完整视觉小说:傍晚的小镇、一家酒吧和一处住宅,由选项连接起来。它没有角色、物品和战斗——只有场景、简短的剧本文件和它们的翻译。它生来就是供人复制的:改个名字,然后从这三个地点生长出你自己的故事。 + +从“开始游戏 → My Novel → 新游戏”进入。它是 **My Novel** 游戏(合集 `novel_template`)的内容。 + +![My Novel 中的酒吧:酒吧背景和一行文本“酒吧里温暖又喧闹,但今晚在这里没什么可做的。”.](assets/bar.jpg) + +## 里面有什么 + +```filestree +my_novel_game/ +├── manifest.json +├── scenes/ +│ ├── my_novel_town.json 城镇入口,游戏从这里开始 +│ ├── my_novel_bar.json 酒吧,带自己的环境音 +│ └── my_novel_home.json 住宅门厅 +├── scenarios/ +│ ├── my_novel_town.scenario +│ ├── my_novel_bar.scenario +│ └── my_novel_home.scenario +└── locale/ + ├── en.properties 模组名称和描述 + └── scenarios_.properties 剧本各行的翻译 +``` + +图片和酒吧的环境音都不在这个模组里:它们来自 **Town Pack**,这样模板才保持小巧,也示范了游戏如何复用共享内容。音乐来自 **Music Pack**;引擎模组是 2D 外壳、对话引擎和音频引擎。 + +## 故事的流向 + +小镇是枢纽。每次到访都显示同样的选择;酒吧和住宅各自通向返回的路。 + +```text + ┌────────────────────┐ + │ my_novel_town │ (起点) + │ “去哪儿?” │ + └──┬──────────────┬──┘ + 走进酒吧 回家 + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ my_novel_bar │ │ my_novel_home│ + └──────┬───────┘ └──────┬───────┘ + └─ 回到小镇 ─┘ +``` + +![My Novel 的城镇入口,也就是第一幕,配文“傍晚的小镇。路灯已经亮起,一阵凉风沿着石板路吹过。”.](assets/town.jpg) + +场景文件写明背景和环境音: + +```json +{ + "name": "my_novel_bar", + "defaultBackground": "bar/bar", + "defaultAmbient": "bar/bar_ambient" +} +``` + +与场景同名的剧本会在进入该场景时运行: + +```scenario +scene: my_novel_town +priority: 10 +--- +# The town is the hub: every visit shows the same choice. +text "Evening town. The street lamps are already lit and a cool draught runs along the cobbles." key=my_novel/town/intro +select "Where to go?" key=my_novel/town/prompt +option "Go into the bar" key=my_novel/town/opt_bar -> :bar +option "Go back home" key=my_novel/town/opt_home -> :home + +:bar +switch_scene my_novel_bar +end + +:home +switch_scene my_novel_home +end +``` + +英文文本直接写在剧本里。每个 `key=` 指向该行在 `locale/scenarios_.properties` 中的翻译,比如西班牙语: + +```properties +my_novel/town/intro = La ciudad al anochecer. Las farolas ya están encendidas y una corriente fresca recorre los adoquines. +``` + +## 把它变成你的 + +1. **复制并重命名模组。** 用你的游戏名加 `_game` 后缀命名,例如 `harbor_game`。把文件夹名和 `manifest.json` 里的 `id` 改成同一个值,并把 `locale/*.properties` 中的键 `mod_my_novel_game_name` / `_desc` 改成 `mod_harbor_game_name` / `_desc`。 +2. **为它建一个游戏。** 在 **Mods & Collections → 合集** 中打开 My Novel 的结构并按 **复制**,然后在“故事”分组里把 `my_novel_game` 换成你的模组。入口场景在合集中设置(`"entry": { "scene": "my_novel_town" }`)。 +3. **按需重命名场景:** 场景的 `name`、它的文件、其剧本的 `scene:` 头以及每一个通向它的 `switch_scene` 都必须一致。 +4. **保留或替换美术。** 想保留小镇,就把 `town_pack` 留在 `depends` 里;或者添加自己的 `backgrounds/` 和 `sounds/`,并让 `defaultBackground` / `defaultAmbient` 指向它们。 + +## 第一处修改:添加一个地点 + +这是一次真实的编辑器操作,在 My Novel 里加入 Editor Tools 模组后进行。场景编辑器创建了 `my_novel_park` 场景,再在小镇剧本里敲入一个选项和一个标签: + +![打开 my_novel_town.scenario 的剧本编辑器:新增一行 `option "Go to the park" -> :park` 和一个新块 `:park / switch_scene my_novel_park / end`;状态栏显示文件已保存。](assets/edit-town-scenario.jpg) + +```scenario +option "Go to the park" -> :park + +:park +switch_scene my_novel_park +end +``` + +保存之后,小镇立刻给出新的去路,选择它就会打开新场景: + +![小镇的选择现在有三个选项:走进酒吧、Go to the park、回家。](assets/new-choice.jpg) + +想在自己的游戏里用上编辑器,可以在结构中加入 **Editor Tools** 模组,或者带着它们启动一次游戏: + +```text +godot --path . -- --game=novel_template --new --with-mods=editor_tools +``` + +没有 `key=` 的新行在任何语言下都显示字面文本;等故事准备好翻译时,再加键和译文。 + +## 如果不奏效 + +1. **某个选择哪儿也到不了。** `switch_scene` 的名字必须等于目标场景的 `name`,大小写也要一致。 +2. **某个场景没有文本。** 它剧本的 `scene:` 头必须写这个场景的名字。 +3. **别的语言下文本是英文。** 这一行没有 `key=`,或者该语言的 `scenarios_.properties` 里缺这个键。 +4. **背景全黑。** 背景名字拼错了,或者拥有这张图的模组不在 `depends` 里。 diff --git a/locale/en.properties b/locale/en.properties index 6fd29f8..56e082c 100644 --- a/locale/en.properties +++ b/locale/en.properties @@ -1,2 +1,2 @@ mod_my_novel_game_name = My Novel -mod_my_novel_game_desc = The novel template's own scenes and scenarios: a town with a bar and a home, connected by scene switches. Backgrounds and sound come from the town pack. +mod_my_novel_game_desc = The novel template's content: an evening town, a bar and a home connected by choices. Copy it, rename it and grow your own story from these three places. diff --git a/locale/es.properties b/locale/es.properties index b9d2187..768ae37 100644 --- a/locale/es.properties +++ b/locale/es.properties @@ -1,2 +1,2 @@ mod_my_novel_game_name = Mi novela -mod_my_novel_game_desc = Las escenas y escenarios propios de la plantilla de novela: una ciudad con un bar y una casa, unidos por cambios de escena. Los fondos y el sonido vienen del paquete de la ciudad. +mod_my_novel_game_desc = El contenido de la plantilla de novela: un pueblo al atardecer, un bar y una casa unidos por decisiones. Cópialo, renómbralo y haz crecer tu propia historia desde estos tres lugares. diff --git a/locale/ja.properties b/locale/ja.properties index 8d400b6..bd3a718 100644 --- a/locale/ja.properties +++ b/locale/ja.properties @@ -1,2 +1,2 @@ mod_my_novel_game_name = マイノベル -mod_my_novel_game_desc = ノベルテンプレート独自のシーンとシナリオ:バーと家のある町を、シーン切り替えでつないでいます。背景と音は町パックのものです。 +mod_my_novel_game_desc = ノベルテンプレートのコンテンツ:選択肢でつながった夕暮れの町、バー、家。コピーして名前を変え、この三つの場所から自分の物語を育てましょう。 diff --git a/locale/ko.properties b/locale/ko.properties index 2be32e2..6713981 100644 --- a/locale/ko.properties +++ b/locale/ko.properties @@ -1,2 +1,2 @@ mod_my_novel_game_name = 마이 노벨 -mod_my_novel_game_desc = 노벨 템플릿 자체의 장면과 시나리오: 바와 집이 있는 마을을 장면 전환으로 연결합니다. 배경과 소리는 마을 팩에서 가져옵니다. +mod_my_novel_game_desc = 노벨 템플릿의 콘텐츠: 선택지로 이어진 저녁의 마을, 바, 집. 복제하고 이름을 바꿔 이 세 장소에서 나만의 이야기를 키우세요. diff --git a/locale/ru.properties b/locale/ru.properties index f0e9942..35470e4 100644 --- a/locale/ru.properties +++ b/locale/ru.properties @@ -1,2 +1,2 @@ mod_my_novel_game_name = Моя новелла -mod_my_novel_game_desc = Собственные сцены и сценарии шаблона новеллы: город с баром и домом, связанные переходами между сценами. Фоны и звук берутся из городского пака. +mod_my_novel_game_desc = Контент шаблона новеллы: вечерний город, бар и дом, связанные выборами. Скопируйте, переименуйте — и вырастите свою историю из этих трёх мест. diff --git a/locale/vi.properties b/locale/vi.properties index d121c3e..c5052d3 100644 --- a/locale/vi.properties +++ b/locale/vi.properties @@ -1,2 +1,2 @@ mod_my_novel_game_name = Tiểu thuyết của tôi -mod_my_novel_game_desc = Các cảnh và kịch bản riêng của mẫu tiểu thuyết: một thị trấn có quán bar và ngôi nhà, nối với nhau bằng chuyển cảnh. Phông nền và âm thanh lấy từ gói thị trấn. +mod_my_novel_game_desc = Nội dung của mẫu tiểu thuyết: thị trấn chiều tối, quán bar và ngôi nhà nối nhau bằng các lựa chọn. Copy nó, đổi tên, rồi nuôi lớn câu chuyện của riêng bạn từ ba địa điểm này. diff --git a/locale/zh.properties b/locale/zh.properties index b78a908..23d50fa 100644 --- a/locale/zh.properties +++ b/locale/zh.properties @@ -1,2 +1,2 @@ mod_my_novel_game_name = 我的小说 -mod_my_novel_game_desc = 小说模板自己的场景和剧本:一座有酒吧和住宅的城镇,通过场景切换相连。背景和声音来自城镇素材包。 +mod_my_novel_game_desc = 小说模板的内容:傍晚的小镇、一家酒吧和一处住宅,由选项相连。复制它、改个名,就从这三个地点生长出你自己的故事。 diff --git a/manifest.json b/manifest.json index 04fa158..46fa970 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "name": "My Novel", "version": "1.0.0", "author": "ct", - "description": "The novel template's own content: a town where you can go into a bar or back home, and a way back from both. Only scenes, scenarios and text; backgrounds and sound come from town_pack. Rename it after your game (_game) and grow your story from here.", + "description": "The novel template's content: an evening town, a bar and a home connected by choices. Copy it, rename it and grow your own story from these three places.", "category": "story", "depends": ["shell2d_base>=1", "dialog_base>=1", "audio_base>=1", "town_pack>=1", "music_pack>=1"] }