HomeGamesUpdatesPricingMethodology
Steam News25 January 20242y ago

New Year New Dialogue

Hello future curators! Artmaker here. Since our last update, besides a little holiday time off, we've been doing a lot of bug testing/fixing and implementing some of the remaining features of the game.

Full notes

Full Fairmoon Museum update

Read the full published notes in a cleaner layout. The original post stays linked below.

Repeated intro

Hello future curators!

What changed

0 fixes0 additions2 changes0 removals
  • Workshop
  • Performance
changedSo I'll start with the big one: We've switched dialogue systems from Dialogue System for Unity to Yarn. The reason for this was twofold. I was getting weird issues with the Lua system in Unity randomly returning incorrect boolean values for compound comparisons (if something and somethingelse) while the raw C# functions were correct, which was concerning but I assume was my fault. By far the larger reason, however, was that the org-chat/node method of handling Dialogue was not going to be workable for a two-person team.
changedThen there's the question of sprites! Previously, I was just loading sprites as needed from the resources file, thinking that wouldn't be too big of a deal, since it was a few hundred very small (32x32) textures, but because Unity seems to want people to suffer if they need to load a large number of individual files (regardless of size) at runtime, the general ways to handle it are either performance killers (Resources.LoadAll) or took a comically long time (Addressables.LoadAsync), so we've moved our spriteswap stuff over to Unity's 2D Animation SpriteLibraryAssets... FOR NOW. I may move those to a custom ScriptableObject later due to Unity's editors for the SpriteLibrary pieces being awful and slow, but it will work the same and we'll cross that bridge if forced to.

Fairmoon Museum changes

changedSo I'll start with the big one: We've switched dialogue systems from Dialogue System for Unity to Yarn. The reason for this was twofold. I was getting weird issues with the Lua system in Unity randomly returning incorrect boolean values for compound comparisons (if something and somethingelse) while the raw C# functions were correct, which was concerning but I assume was my fault. By far the larger reason, however, was that the org-chat/node method of handling Dialogue was not going to be workable for a two-person team.
changedThen there's the question of sprites! Previously, I was just loading sprites as needed from the resources file, thinking that wouldn't be too big of a deal, since it was a few hundred very small (32x32) textures, but because Unity seems to want people to suffer if they need to load a large number of individual files (regardless of size) at runtime, the general ways to handle it are either performance killers (Resources.LoadAll) or took a comically long time (Addressables.LoadAsync), so we've moved our spriteswap stuff over to Unity's 2D Animation SpriteLibraryAssets... FOR NOW. I may move those to a custom ScriptableObject later due to Unity's editors for the SpriteLibrary pieces being awful and slow, but it will work the same and we'll cross that bridge if forced to.

Artmaker here. Since our last update, besides a little holiday time off, we've been doing a lot of bug testing/fixing and implementing some of the remaining features of the game. We also completely replaced our dialogue system, which Coderman will talk about below.

My time has been a bit split between making furniture, bug testing, and helping with the dialogue system change. As far as art goes, I will just be hammering away at furniture pieces until we have a satisfactory number for early access, then I will move on to hair or clothes. I currently have 17 furniture sets planned, of which I've completed 14. This does not include miscellaneous indoor items and outdoor items. Since I haven't gotten to those miscellaneous items yet, showing off the furniture is a bit bare bones, but here are a few random items in the level 1 house!

And now here's Coderman's update!

Exciting times in code town! That is to say, I have basically rebuilt a couples of bits so that things will be more maintainable going forward for the two of us or so that we can scale them without Unity becoming very angry.

So I'll start with the big one: We've switched dialogue systems from Dialogue System for Unity to Yarn. The reason for this was twofold. I was getting weird issues with the Lua system in Unity randomly returning incorrect boolean values for compound comparisons (if something and somethingelse) while the raw C# functions were correct, which was concerning but I assume was my fault. By far the larger reason, however, was that the org-chat/node method of handling Dialogue was not going to be workable for a two-person team.

While I can most certainly write far too many words, editing and managing those words when they're in node format is a problem. That's why I made the Dialogue parser linked in previous devlogs. The problem with that was that, while editing was easy, quick visual inspections of how the dialogue would run weren't super easy and expanding the parser to handle more complex blocks and logic would have just led to reimplementing things that Yarn already does. Likewise, it still wouldn't enable proper sequential scripting since it was still relying on the nodes. This stuff combined with branch/return conditional dialogue being complex to write led to the decision to switch things over. So that took a week or so, with testing, and now we're up and running on Yarn and nothing looks different at all to anyone playing our super secret testing builds, but behind the scenes we'll be able to handle things much better going forward.

Then there's the question of sprites! Previously, I was just loading sprites as needed from the resources file, thinking that wouldn't be too big of a deal, since it was a few hundred very small (32x32) textures, but because Unity seems to want people to suffer if they need to load a large number of individual files (regardless of size) at runtime, the general ways to handle it are either performance killers (Resources.LoadAll) or took a comically long time (Addressables.LoadAsync), so we've moved our spriteswap stuff over to Unity's 2D Animation SpriteLibraryAssets... FOR NOW. I may move those to a custom ScriptableObject later due to Unity's editors for the SpriteLibrary pieces being awful and slow, but it will work the same and we'll cross that bridge if forced to.

We're going to get the rest of the actual features put in (town systems and some housing stuff) and then I believe we will be on to just story planning and writing and making music.

Source

Steam News / 25 January 2024

Open original post

Changelog.gg summarizes and formats this update. How we read updates.