Weekly devlog: Refactoring edition (Patreon)
Content
Hello all! I just wanted to report that a lot of my time just freed up, so I can make the game my main focus for months! The first thing I've decided to tackle isn't a very sexy topic, bit the sooner I do it the better: I've decided to rip out the library I was using for dialogue and replace it with a different library called Fungus.
There are three main reasons I decided to switch to a new library. The first is, it took relatively high effort to create dialogue. With the old library, here's how I would create dialogue:
If you zoom in there, you'll see that for every line of conversation, I gotta pick who's talking and who's listening (Actor and Conversant). Then I gotta click on Dialogue Text and type in what what they're saying. Then I gotta click on the "Sequence" box and type what emotion the character is showing while they say it. Then I gotta right click on the node in the tree and say, "Create a child node," and do all of those steps again for each and every line. If I wanted to rearrange the order of two lines of conversation, it took a lot of clicks. It also made it challenging to read the dialogue as I was developing. You can see that the whole text of each line isn't visible on the left.
With this new library, I can type all of that in a single textbox like so:
Jessie sad LeftCenter: Hi
: Hi2
Jessie happy: Hi3
Jessie ExitLeft:
Here's a GIF of what that text does in the game:
So reason number one for why I'm switching to Fungus is game development will go a lot faster.
Reason number two is this: Almost always, when anyone discovered a bug, it was because I was doing something wrong with the library or the library had an actual bug. Right now the game has two known issues: 1) Sometimes emotion changes stop playing. Neither me nor the dev of the library knows why. 2) Sometimes (always?) after Mia's lewd scene, the background goes black and never recovers. Now that second one might be on me, but the library makes it really hard to figure out where my mistake is.
Reason number three is this: Whenever I wanted to do something in the old library that I'd never done before, regardless of how similar it was to something else I'd done, it never, ever, ever worked correctly when I tried it. It always felt like there were 1000 ways to do things wrong and 1 way to do things right, and there was no way for me to figure out how to do it the right way without reaching out to the author of the library and ask him what I'm doing wrong. With Fungus, I've already modified it to suit my needs. The ability to type in the dialogue like I showed above isn't built in to Fungus, but the library is so simple, I could figure out how to extend it on my own. I can't even fathom where to begin if I tried to pull that off in the old library.
Ha, before I started typing this out, I said to myself, "This is going to be a short one." Anyway, these technical details are probably pretty boring, but it's kind of cathartic to type out, and to me, it reinforces that I'm making the right decision here, so thanks for listening :)
Here are the actual features I worked on this week:
- Use the new UI icons
- Show pledges new UI
- Show pledges the banner WIP
- Send nugg backgrounds for banner - Did you notice the new banner?
- Add pictures of Mia sitting on you to the dropbox
- Add pictures of Mia sucking on Olivia's toes to dropbox - These are available for $1 pledges
- Install Fungus - OK, I'll admit this was a pain. I'm using a concept in Unity called assembly definitions, and Fungus came with no instructions on how to use them. Once I figured it out on my own, it was pretty smooth sailing, though.
- Install Fungus/Spine integration
- Clicking on Jessie should start a Fungus conversation
- Create a command for animating characters in dialogue (e.g., emotions)
- Create a command for moving characters around the screen
- Create a command for writing dialogue in a convenient way - This one took a lot of trial and error and false starts. Probably most of my week went into this.
- Create a command to have characters enter a scene
- When a character enters the scene, they should have an idle expression
- Figure out all the features you need that you already use in the old library
- Fade in and out of scenes
- Create an "uber scene" that contains all the backgrounds in it. - Fungus doesn't work very well when you have multiple scenes, but it's possible. Rather than fight it, I decided to take all my scenes and merge it into one big scene, then I just show and hide the parts that I want to be visible.
- When the game starts, load the start menu
- Create a dev-only tool to start at any scene I want
- When you click the Play button, go to the futuristic bedroom scene
- Create a command to set all scenes to inactive
- Check that you can create a build - Ugh, this took 3+ hours. For some reason, when I built the game it did not work the same as when I played it in my editor. The solution? Restart Unity and upgrade it. Problem solved.
- Make a post on reddit about upcoming art - Oh yeah! You should check out the post here: https://www.reddit.com/r/lewdgames/comments/d2uyln/monster_girl_farmer_why_do_cat_girls_always_sit/
Have a wonderful week everyone!