Home Artists Posts Import Register

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!

Comments

Wild Bill

It really does seem like it would have been a lot simpler to just use RenPy. I know if I ever get around to making a game, it's what I'll be using, and posts like this aren't doing anything to change my mind.

AcademyOfFetishes

I personally wouldn't use RenPy. I've used it before and really disliked it. I also hate Python as a programming language. I definitely made the wrong choice with this old library, but I don't regret using Unity (yet?)

AcademyOfFetishes

To be specific (and nerdy), I HATE dynamically typed languages with a passion, unless it's for one off scripts. The fact that C# auto completes methods and tells me their type signature and complains if I use code the wrong way saves me so much time relative to a language like python that lets me type almost anything I want then makes me discover while playing that I made a mistake. Plus, if I recall, every variable in RenPy is global, which is really weird and... bad.

Wild Bill

Well, the way I look at it, Ren'Py games are strongly preferred to Unity games by players, the engine was designed around dialog content from the ground up rather than needing to use a library, you also get a long, *long* list of other features for free like saves, text speed and auto-advancing, dialog history and rollback, and your core game files are ASCII so they play nice with version control and you can use whatever editor you prefer to work with them. For all *that*, I'll put up with having to use Python over C#. For the types thing, if working with anything complicated enough for it to be an issue, I can just use Hungarian. That's often more reliable than strong type enforcement anyway. Of course all that is personal preference, if you hate Python more than I do (which is probable if you don't like dynamically typed languages; I do a lot of web work with Javascript and PHP so I'm used to dynamic typing) and aren't so bothered about the extra work you have to do with Unity, choosing it over Ren'Py would be the right choice for you.

AcademyOfFetishes

Those are advantages, I'll give you that, but I think the advantage of static typing can't be overlooked. I know I'll have more bugs throughout the development of the whole game if I'm using python than I will with C#. They may slow me down more than building those features. It's not something I would normally say, but in this case I can see it being possible. Just came off a project that uses python and I hated every second of it. It's incredibly annoying to ask the question, "What methods does this object have?" and not having the language give me the answer. I can't deal with that for a complicated project :P I don't mind JS as much, but I'd probably use typescript instead of JS 99 times out of 100. :)