Hello!
The sun hasn't been particularly kind to us lately, but we remain determined to finish this game.
See the burning area around Milan? We're there. Send help.
June has mostly been a "putting the pieces together" month. The good news is that we're finally really, really close to releasing a new beta build to backers who pledged 15€ or more. The bad news is that we don't have many fancy screens to show you today, since we spent most of our time squishing bugs and updating old code. In particular, we gave our dialogue system a big upgrade!
Let us show you how it works.
Making games talk
Truth is, there aren't many efficient ways to handle branching dialogues in videogames. Spreadsheets are the most commonly used solutions, because it's easy to export data from a spreadsheet to whatever game engine you're using.
The hard life of a narrative designer.
For Selling Sunlight, we created our own dialogue system from scratch, focusing on two important features:
* Ability to store text in simple text files
* Ability to program cutscenes from the text
Selling Sunlight has a sprawling, modular structure, more akin to an open-world game than to a linear JRPG. Some quests require you to do different activities, like asking questions, buying stuff and traveling to certain places. Other quests can be completed in different ways, or have different endings depending on your attitude. Organizing all this text can get quite messy!
We designed a system that allows us to write special commands like "show this picture", or "give the player this item", directly in the dialog files. This way we can program entire cutscenes without even having to open our game engine.
A sample script, featuring a mixture of dialogues and special commands.
This dialog system is the backbone of the whole project, and we keep updating it from time to time to streamline it and add useful features.
Our old message UI, for example, didn't feature name boxes. Our new UI has space to show names, so we updated the dialog system to allow it to automatically retrieve and display the names of people involved in a conversation.
Programming all this might not sound exciting, but having a solid base means we can spend more time writing quality dialogues, and less time fiddling with code to put the dialogues in the game!
That's all for now.
May the Sun stop shining before our laptops melt ;_;
0 comments