diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index c345318..e255811 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,44 +13,15 @@ "state": { "type": "markdown", "state": { - "file": "Welcome.md", + "file": "Lore/The World.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Welcome" - } - }, - { - "id": "40801921a07146e2", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Lore/Liora.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "Liora" - } - }, - { - "id": "518281623a6393f8", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Game Design/Focus System.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "Focus System" + "title": "The World" } } - ], - "currentTab": 2 + ] } ], "direction": "vertical" @@ -219,18 +190,20 @@ "obsidian-git:Open Git source control": false } }, - "active": "642469d5b256e7da", + "active": "768d071a2d742b85", "lastOpenFiles": [ - "WELCOME.md", - "Game Design/Focus System.md", - "Timeline.canvas", + "Assets/world_map.pdf", + "Lore/The World.md", + "Assets/world_map.svg", "Lore/Liora.md", "Lore/Sacred Forest.md", "Lore/Kestrel.md", - "Lore/Grand Forest.md", "Lore/Grand Lake.md", - "Lore/The World.md", - "Assets/world_map.pdf", + "Lore/Grand Forest.md", + "Game Design/SaveGame.md", + "Game Design/Focus System.md", + "WELCOME.md", + "Timeline.canvas", "Assets/liora_front_back.jpg", "Assets", "Lore/Liora/liora_front_back.jpg", diff --git a/Assets/world_map.pdf b/Assets/world_map.pdf deleted file mode 100644 index a6c69f1..0000000 Binary files a/Assets/world_map.pdf and /dev/null differ diff --git a/Game Design/SaveGame.md b/Game Design/SaveGame.md new file mode 100644 index 0000000..eb72b97 --- /dev/null +++ b/Game Design/SaveGame.md @@ -0,0 +1,9 @@ +The save system has to keep track of persistent variables for certain important entities, world flags and the location of dynamic objects in the world. + +## Implementation + +We create a class `SaveGame` that calls the `Save()` and `Load()` functions of all singleton systems in the game that implement them. Then the saving and loading is deferred to each component. The resulting dictionary data for each component is bundled in another dictionary that groups them under the component name. + +It is unnatural to let this system actually define the variables used by all those various systems, and it is not a bother to implement this functionality either. For the player we will have to create a component that stores the persistent data. + +World flags are managed by the world system, and they are saved to and from a dictionary as well. \ No newline at end of file diff --git a/Lore/The World.md b/Lore/The World.md index 6cd5004..77adfcb 100644 --- a/Lore/The World.md +++ b/Lore/The World.md @@ -1,3 +1,3 @@ -![[world_map.pdf]] +![[world_map.svg]] The world is split up into five distinct regions. \ No newline at end of file