Feature Peek: Texting Galore! (Patreon)
Content
I'm here today with a deep dive on a new feature that's coming to A Very Full House in v0.15: a texting system! Before we jump into that be sure to go vote in the latest content poll though; votes are super close (The leaders are within 1%!) on this one so your opinion really matters!
This texting system isn't theoretical or a work-in-progress, I've already got it all finished up. So let's skip to the good stuff and take a look at some screenshots! First up we've got the hub screen, where you can see all of your known contacts.
This interface pulls from a list of contacts, which is also new in v0.15. Rather than having everything hard coded there is now a list of contacts. This makes it trivial for new NPCs to be added (by me or by mods) and have them show up. It also will let me have NPCs only show up in your contacts after you've met them.
Each conversation that you have running shows a preview of the last message that was sent, so you can see at a glance what was being talked about last. Conversations with unseen messages are marked with a red circle, along with the number of messages you've missed.
Now let's take a look at what the actual texting screen looks like:
I've put in a lot of work here behind the scenes making sure everything works the way it intuitively should. Messages are added from the top down, with the viewport automatically snapping to the bottom when the screen is opened or a new message is sent. You're able to scroll up through all of the messages that you've exchanged.
Of course this system also needs a way for you to actually interact with it. Some messages may come with a response event attached. If there is one the bottom typing area will be highlighted (it actually pulses gently to make it more notable). Clicking on that will trigger a fairly standard interaction, which can include normal dialogue, text messages, and menu choices. Here's an example of that!
When you're in an event texts are added in the same way that dialogue is shown - ie. one message at a time, with a user interaction between each message. If that's the case the "Continue..." button is shown on screen to make it clear that you don't have full control of the phone UI while the event is in progress.
Now here's the real special sauce of this feature: it's not just limited to texting text! Texts can contain any sort of Ren'py displayable, which will be properly scaled down to fit comfortably within your phone screen. Here's an example using one of the Live2D frames (which is animated; I haven't bothered to make this a .gif but just trust me).
And here's an example with a .mov (I did bother to make a gif of this one!)
Since I saw an obvious use case for it, I've gone ahead and added an option to have captions added on top of images Snapchat style. Here's a look at what that looks like:
The text and background is added in code, so there's no need to bake it into the base image. That also makes it a lot easier to reuse elements for different events, or vary captions depending on corruption level, control, etc.
I've gone to great lengths to make sure the interface for making content using this system is as straight forward as possible. Writing new text events is about as complex as writing dialogue in a normal ren'py script. The code for adding a message looks like:
TextManager.send_text(from_person, to_person, "your message goes here")
Adding an image is the same, but you put in the name of the displayable instead of your message. If a text allows a player response that's attached as a keyword parameter that points towards a Ren'py label.
There are a lot of details that I've left out here (like that texting is all properly bi-directional, and that the interface works for npcs texting each other as well), but I think this has been a pretty comprehensive overview. Now I get to do the fun work of writing content that actually makes use of this system!
Between this and the new sex frame effect (whatever it ends up being) this update should be chock-full of fun stuff!