HuniePop is a unique RPG experience for PC, Mac and Linux. It's a gameplay first approach that's part dating sim, part puzzle game, with RPG-like systems and a visual novel style presentation. It's an independent effort by a western developer (though our team is all around the world) for a western audience with the goal of breathing some new life into a genre that is greatly underrepresented both in the western market and the independent games scene. Personally, I believe dating sims can stand among the most beloved game genres out there today with the right level of passion and care!
Hey guys, I want to talk about writing dialog for our dating sim/puzzle game hybrid, HuniePop. Not from a creative perspective, but from a technical/engineering perspective. Because HuniePop is built in Unity (and not a more visual novel-y engine like Ren'py), there are no out of the box tools or features that make getting dialog into the game particularly convenient (or bearable). The video above covers the basics but I wanted to write a bit more about it. So, read on if you'd like.
Out of the gate we begun writing our scenes in google docs. As you can imagine this turned out to be an extremely cumbersome process. Not only was I manually formatting everything on the document, manually coping and pasting lines into the game, but google docs has a tendency to convert certain characters (for example: apostrophes) into special "fancy" versions not supported by my in-game fonts. The bottom line is that there was simply zero automation.
So I set out in search of a better solution for our project. It had to be simple and intuitive for me as the writer, but also for the wonderful actresses who voice the characters in the game. I spent some time playing around with a variety of tools that are specifically designed for writing game dialog; tools such as chat mapper, articy:draft and even inklewriter. I found all these tools to be overly complex and contain features and widgets that really got in the way more than anything else. I couldn't find a sense of "flow" in writing with these tools either; you're frequently required to stop to click on something.
Eventually I stumbled onto a lovely text editor for Mac called Ulysses. It's not in any way designed for writing game dialog. It contains no support for branching paths, selectable player responses, conditional dialog, etc. But, through it's simplicity and versatility I was able to build a hacky, but elegant, solution using what Ulysses provides as a foundation.
The program itself is really quite enjoyable to write with. With it's minimalist feature set and markdown formatting it's easy to get into the flow of writing; your fingers rarely have to leave the keyboard. Plus, as I mention in the video, the color scheme is highly reminiscent of my code editor so I'm right at home. It didn't take me long to realize I could use different types of markdown formatting tags to denote the different types of behaviors and actions within a scene that I needed. Then I realized, if I put the entire scene in a giant nested list, I could essentially achieve branching paths (see video for more on this). Everything was looking great.
But... this clearly wasn't going to be sufficient for the voice actresses. At least with google docs the scripts we're easy to share. As it turned out, Ulysses does not have any useful export formats for games; or so I thought. I was excited to see that the program lets you export the scene as HTML, but it wasn't quite right. The web page it generates contains no line numbers or useful formatting and since at this point I've kinda twisted the program to fit my needs, the layout of the page was a bit confusing.
It was at this point I had the most exciting realization of all. I could take this tool a step further and automate the process of building these scenes into the game. So, I added a JSON exporter. Using the JSON data that the script viewer now generated, I quickly put together a utility in Unity that parses the data and constructs the scene. It is an immense time saver. I'm only sad that I hadn't really given any of this a thought prior and wasted all that time with google docs. Now, all that's left to do to complete a scene is to add the audio and toy around with expressions to get the most engaging scene possible.
Thanks for reading! Hopefully you've found something useful in this short article. If you want to keep up with the project I recommend our Twitter or Dev Blog. You can also pre-order HuniePop now through the Humble store by going to huniepop.com.
Latest tweets from @huniepop
Some girls, such as Tiffany, haven’t really changed. But others have had some significant changes to their personality or backstory.
Sep 16 2014, 12:16pm
I’ll be periodically posting these new profile images. The old ones on the Kickstarter are out of date. T.co
Sep 16 2014, 12:15pm
@YuriAmbassador It does, but you get to select your gender.
Sep 14 2014, 10:34am
This 2D/3D business has to end. All broads are great; regardless of her dimensional depth or physical existence. Open up to the best of both
Sep 14 2014, 10:27am
early logo sketches T.co
Sep 12 2014, 8:24pm
@Tienajk I'd be honored. Let me know if you need anything.
Sep 12 2014, 12:43pm
You know if the feminists win, we'll always have HuniePop for a healthy dose of sexual objectification. #GamerGate
Sep 11 2014, 2:18am
Always glad to see people who get it. (top comment on the infamous skank video) T.co
Sep 10 2014, 7:08pm
@adag_dot_me Shoot me a private message on Kickstarter
Sep 10 2014, 8:18am
dat echo: T.co
Sep 9 2014, 1:37pm