File size: 1,909 Bytes
d8e2b36
 
 
 
 
 
 
 
 
 
 
6b58ece
 
d8e2b36
 
60e195a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
988c006
 
 
 
 
d8e2b36
 
 
 
988c006
 
 
d8e2b36
 
988c006
 
6b58ece
988c006
d8e2b36
988c006
d8e2b36
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
STORY_FRAME_PROMPT = """
You are a narrative game designer. Use the player data below to
create a story frame for an interactive adventure.
Setting: {setting}
Character: {character}
Genre: {genre}
Return ONLY a JSON object with:
- lore: brief world description
- goal: main player objective
- milestones: 2-4 key events (id, description)
- endings: good/bad endings (id, type, condition, description)

Translate the lore, goal, milestones and endings to the language which is used in the game and setting description.
"""

GAME_STATE_PROMPT = """
---Game Settings START---
Lore: {lore}
Goal: {goal}
Milestones: {milestones}
Endings: {endings}
---Game Settings END---

---User's actions START---
History: {history}
Last choice: {last_choice}
---User's actions END---

Game response to user's action: {scene_description}
"""

SCENE_PROMPT = """You are an AI agent for a visual novel game. 
Your role is to process incoming data and generate the next scene description and choices.
Translate the scene description and choices into a language which is used in the Game Settings.

---Game Settings START---
Lore: {lore}
Goal: {goal}
Milestones: {milestones}
Endings: {endings}
---Game Settings END---

---User's actions START---
History: {history}
Last choice: {last_choice}
---User's actions END---

The scene description must be 2-5 sentences and no more than 150 words.
Each choice text must be concise, up to 12 words.
Respond ONLY with JSON containing:
- description: current scene description based on the user's actions and the game settings
- choices: exactly two dicts {{"text": ..., "next_scene_short_desc": ...}}
"""

ENDING_CHECK_PROMPT = """
History: {history}
Endings: {endings}
Check if any ending conditions are met.
If none are met return ending_reached: false.
If an ending is reached return ending_reached: true and provide the
ending object (id, type, description).
Respond ONLY with JSON.
"""