SamuZai
outsiderartisan
outsiderartisan

patreon


Postmortem 3: Things I think I got wrong. :(

This is the third in a series of postmortem posts I'm making for Succubus Stories. You can see the previous post here, and the first one here! In this post, I want to talk a little about some of the decisions I think I got wrong, stuff I regret, or things I think held the game (or me) back.

And boy, there’s actually a lot of stuff that I think doesn’t work well in SS. For one, just on a basic level, the core loop of the game is a bicycle wheel with half the spokes missing, lopsidedly spinning and about to give out at any moment. As silly as it sounds, I think there’s actually too much sex, lol. One of my core design decisions early on was to try to keep all game systems within two “degrees” of separation from what I considered to be the “succubus fantasy.” For example, sex leads to alchemy pretty directly; they’re one degree apart. Alchemy leads to gathering in the forest. That gameplay feature is therefore two degrees from sex. This is pretty arbitrary, but I thought having a clear scope would help me focus on what mattered most, and I do think it did that.

I wanted to make sure sex and eroticism remained as the core focus of the game, and that the game loop naturally fed you back into erotic content as you played, even if you weren’t actively looking for it. I think this design goal was correct, but the method (the two degrees rule) was the wrong way to go about it. SS winds up feeding you way too much sexy stuff, way too often, to the point where you can be trying to just get some basic story stuff done and the sex can come and interrupt you. On top of that, because everything is (or was, in past versions) two degrees from erotic content, the whole loop feels like it’s a bunch of small little loops all hinging on sex. Traits and perk progression isn’t really a valid alternate gameplay mode, or a change of pace--it’s just a system orbiting sex. Alchemy isn’t really a huge departure or a thing you’ll spend a lot of time on, it’s just a system that orbits sex in a slightly larger orbit.

I think a much better approach would have been to develop multiple (like one or two) really fun alternate gameplay styles or modes that are completely different from sex, but still feed you back into it naturally and maybe have some sexy stuff built-in. I think Hex ended up with a much better gameplay loop by having two major complementary gameplay modes (combat and sex) that feed into each other rather than having concentric circles around one single gameplay mode. I think the proof is in the pudding: SS needed to have that “skip encounter” option and Hex really doesn’t (and not only because the encounters are a bit shorter).

There’s also a lot of design debt in SS that simply can’t be written around. It’s the reason you can’t really do multiple romance partners, for example. Some of the decisions I made constrained my development choices far in the future in ways I didn’t see coming. SS is not my first piece of software, so I actually did manage to avoid a lot of the pitfalls common in the projects of novice software devs, but I was still new at making games, and as a game designer, I found myself being boxed in by bad decisions and naïve solutions. There’s nothing I really could have done about this as a first-time game dev; it’s a lesson learned by doing. But Hex is all the better for the struggles I had with SS.

I also regret the overall UI design in the game. When I started to make it, I honestly wasn't sure if I'd even have art at all. I kinda wanted to, but I didn't want to spend tons of time and money on it, so I initially slapped some (“borrowed”) test assets in. The way I integrated them was sort of just random images based loosely on the encounter type, in the background, behind the text. My thought was that these random images would be like background music: there to set the mood, but never the focus. 

I so vastly underestimated how much time and money just making Daz renders would take, and I also underestimated how much the art would end up being a big part of the game. I always intended to add alternative art sets, in fact I thought letting players create custom art packs could be fun, too. But the amount of art in the game swelled, I added portraits, status effects (like filth and embarrassment), additional characters, CGs outside encounters, and more. The complexity increased, and ultimately art became a huge part of the game. Redesigning the game’s UI probably seems like it'd be easier than it actually is to do, but there's almost no way to fix it without massive implications for tons of other game systems. Like seriously, how am I gonna fit a CG, a few hundred words of content, two bars, and fifteen or more options all on one screen without cutting something. I basically decided a long time ago I wasn't gonna fix the mess that is SS’s shitty UI, and that I'd just have to do better next time. Better meaning: just make it a VN. There's a reason everyone does that, lol. 

There are other issues with SS as well. I think the story gets notably darker and more serious in tone as it goes on, and also sort of narrows in scope as the stakes rise. You have a lot of really cool narrative choices, but less in the way of a sandbox to work with as the story goes on. This is kind of just how these sorts of things go, but I think with better planning, a more experienced me can create a more even and rewarding story in Hex

There’s also issues with the game’s economy and player growth; at some point around v0.9 or 0.10, player wealth and abilities got way out of control, and I failed to address this as time went on, and the game’s economy, simulation elements, and difficulty fall through the floor in a way that feels less like you got really powerful and more like you somehow cheated even if you didn’t.

I also think the way SS integrated and delivered patron-exclusive content was bad, and I think the offering box in Hex is way, way better. There are also a ton of little improvements in design; more robust and flexible systems, more efficient code, easier to maintain APIs, simpler and flatter data-structures. While I was a decently competent software dev going into this project, I of course improved my skills dramatically just from doing a whole lot of programming over the past few years, and I've gained a ton of experience and come up with better ways to do a lot of things. But that's something I'll talk more about next time!

Question: "Why did you decide to create your own game engine instead of using Ren'py or something like that?"

If you want to ask me something, go ahead and message me or leave the question in the comments and I'll throw it in a postmortem if it seems interesting!

This is kind of a dry topic, but I do like talking about this sort of thing. Still, be warned, this may be kind of long and boring.

First of all, to clarify, both Succubus Stories and Hex are Twine games. This is a little complicated, but Twine is more like an editor than anything else, and you can plug multiple different runtime engines into Twine to create games, and those runtime engines are called "story formats." If Twine is like an editor, then the story formats are more like the actual game engines; they take all your code and passages (these are nodes that usually represent "screens" in Twine) then feed it to the story format, and generate what's called a single-page web app; basically a single HTML file that includes both the game's engine and content in a single package.

Now, because all Twine really is is an editor (and not a very good one), if you know how Twine bundles your data and your chosen story format together, you can create your own tooling to do that so you can use your preferred code editor and have more freedom in how you create and structure your project. Since Twine and all of its main story formats are open source, it's very easy to look at what's happening and put things together however you want to in order to create a highly customized game engine while still leaning on the core functionality of Twine and a story format. This is what I did. I created a compiler and tooling based on a custom fork of the compiler Tweego, and created a custom story format (I called it "SubtleCube") based on one of the main Twine story formats called SugarCube.

As to why I made my own custom tooling, it was largely because I wanted to use data compression to speed up load times and make SS work better on mobiles. SS's final HTML package size is about 55% smaller than it would be if it was a SugarCube game, which makes the game load faster and run better over the web compared to other big Twine games. This wasn't the only reason I made my own tooling though, I wanted to get rid of what I saw as dead-weight in the engine, and I also wanted to add mod support, so I needed to create safe and reliable interfaces for the story format to read and load external passages from arbitrary files. Forking the format also let me make dozens of other small tweaks and implement certain important features on an engine level rather than on the game level, making those things more efficient. That said, I'd estimate at least 95% of SubtleCube's codebase is still just original SugarCube code. While I did a lot of stuff and it took a lot of work, I didn't reinvent the wheel and I'm standing on the shoulders of other much more skilled programmers.

Hex runs in an updated version of SubtleCube just called "Subtle." This version most notably implements a VN engine, as you may have noticed, as well as some other core features Hex needs on an engine level for maximum efficiency. There are other changes too, some of which got back-ported to SS's version of the engine, like fullscreen mode, improved UI components, more efficient data structures, and better asset management. I had also planned a massive audio overhaul that would allow the use of audio sprites and dynamic sound tracks, but I ran into problems getting this working on offline browser builds, so I wound up having to scrap the new audio system inches from the finish line and basically go back to the old system, so Subtle wound up losing one of its biggest features, and probably the one that I was most proud of. :/ But that's life, kill your darlings and all that. I can't have the game audio just not work on the offline browser version of the game. I could probably have degraded audio in that version, but managing even more version differences is not something I want to do.

Coming Next in Part 4: Reflecting on what I've learned...

Next up, I'll talk about what I've learned making SS! This will be the penultimate post in this postmortem series. After that, with the final part, part 5, I want to shout out some of my (adult) gaming inspirations, both before I started making SS, and inspirations that informed the ongoing development of the game!

Postmortem 3: Things I think I got wrong. :(

More Creators