Technical Post #1 - Persistent Data in TWA:P (Patreon)
Content
Hi everyone! minute here, and I’ll be writing our first technical post.
What are technical posts?
We’ll be using technical posts to go over a wide variety of topics, all pertaining to the creation of our visual novels. From posting first drafts of our scenes, to scrapped music, to GUI and programming tutorials and theories, technical posts will be the place to see how we put everything together. What we did right, what we did wrong, and what we tried to improve on. I hope it’ll be as interesting for you all to read as it was for us to develop!
Today, I’ll be talking about The Waters Above: Prelude, and the persistent data inside of it.
Persistent data is a way for things to be saved throughout the entire game. TWA:P uses this to save your completion of stories so it’ll unlock content in the extras menu, change and update the title music, and switch between the scene select cards.
When you first start the game, "Shamayim" is the only song that plays, and the title cards are all at their default states. After you play a story, however, the title screen changes in the following ways:
- The card of the scene you just played changes
- The main menu music changes to the character's theme
- From then on, the main menu music becomes a playlist of every song you've heard so far
The above is the completion check that happens if it was your first time playing that particular scene. It saves your progress, changes the main menu music to the current character's theme, and then uses a python process to update the main menu music with only music that you heard for the first time. Afterwards it just checks how many stories you've completed, and if you've completed all 4, it'll take you to our thank you message.
Persistent data is usually saved in a per-game basis. That is, two games wont interact with each other at all since they'll have their own save data. Unless you create a multi-game variable. Why would you want to do this, you ask?
Well... Actually yeah I don't know why you want this.
In all seriousness, it's usually used for games that release in multiple chapters to save progress. For us, however, we set up the hotw demo with persistent data, so that you could call it from any other Ren'Py game.
I'm not exactly sure how to end this post. I'm very proud of the main menu and how we used persistent data, but I'm not too sure if that was a fun topic. It was for me! I guess a good way to end this post is to show how you can add your own Tara mode (Or Maddie, or Clio, or anyone!) to a Ren'py game.
Your very own Tara Mode
In your game, make sure you set this up so Ren'py knows to look for these games and their saves. Next, there's a few ways you can use this, so here's how:
Yes, Heart of the Woods uses "completed" and The Waters Above uses "complete". Sigh! I didn't realize until after release, so, that's that.
Anyway! If you do decide to use this in your own projects, please keep in mind our characters are copyrighted, so ask us before use.
I hope you all enjoyed this post on our persistent data! I've tried to cover the general idea of persistent data in this post, but if in the future you prefer content such as in-depth tutorials or guides, let me know. Thank you all so much for your ongoing support of Élan, it means the world to us. See you next time!
-minute
bonus content: having 2 versions of every screen (for the main menu and game menu) can be messy.