UE apparently posted this update sometime today. Good to see he's not dead, but damn. Wish there was more like him.
________________________________________________________
It's been a while. Thanks for sticking around. I'll have a bigger and more informative post later with the latest update, but here's a quick faq with some explanation for my absence.
Where have I been?:
Same as always, toiling in mediocrity, but never truly gone. The work continues, as it always does.
Why was I gone so long?:
My early plans for Bitch Breaker 2 were pretty ambitious and the more I worked on the latest update for the original Bitch Breaker the more frustrated I became with Ren'Py. Let me be clear, I love Ren'Py. It was the first engine I ever touched, and it was where I learned to code. It is genuinely a great engine for visual novels, but as development has gone on and as I've tried to do increasingly complex things in the engine, I have spent ever increasing time working around bugs and little engine quirks that cause crashes or unexpected behavior and grind development to a halt for dozens of hours. As an example, the animations for most of the CG scenes with x-rays required manually editing position data for each frame of the animation at each layer with varying rotation and sizing to account for the weird way Ren'Py handles rotation, and due to the way layering works in general most of the customization systems involving the heroine are weirdly complex and downright esoteric. If you've ever wondered why most h-games in Ren'Py don't do animation or customization the way Bitch Breaker does and have massive install sizes for the amount of content, that's why. It takes a lot of work to animate things the way Bitch Breaker does. It's far easier to use a ton of separate CGs to account for any small changes and use a standalone animation program to create pre-baked animation slides and just use those. The downside to doing that and to using prebaked animations in general that it takes up a ton of space and the animations quickly become boring and predictable since they can't really be altered in game.
But I digress. Considering that I still have a fulltime job, wrestling with Ren'Py's quirks often takes time I don't really have and that means often making the difficult choice between losing time with my family or losing sleep. So far, I've been choosing to lose sleep. Shortly after my last update, I came to the realization that, though Ren'Py is an amazing engine for visual novels, my vision for the game had stopped being a real visual novel some time ago and that in order to do the cool things I wanted to do with Bitch Breaker 2 I would likely need to change engines, and if that was the case it would be better to practice with the engine for a while before putting foundational work into a new project. One of the painful lessons Bitch Breaker taught me is that its far easier to do something right the first time than it is to fix foundational code after a pile of spaghetti code has been dumped on top of it. Now, I don't know if any of you have looked into engines lately, but for amateur devs there are really only about 4: Unreal, Unity, Ren'Py, and Godot. The only programming language I know is python, so, after a significant amount of thought (frankly too much), I began the work to port the game over to Unity.
Now, some of you likely already know where this is going. That's called dramatic irony. The work of porting a game like Bitch Breaker over to a new engine isn't easy. In fact, it's quite hard. It's incredibly time consuming work and it takes some significant willpower to make happen as a solo developer because the outcome isn't flashy or exciting. After a titanic effort, if everything goes perfectly (it won't), your ultimate reward for all of that work is that your game is the same but on a different engine. But I've always believed that you have to put work into your projects, and that it's worth working hard today so that you don't have to tomorrow. So, I put my work on the latest Bitch Breaker update on ice while I did the hard work. Around April of last year, I started porting my game over to Unity. When I began, I had really hoped that I'd be able run my project through a conversion tool and get mostly there, but unfortunately such a program just didn't exist, and even if it did, most of the workarounds I used to get around Ren'Py's issues don't play nice with Unity. So for around six months I was in crunch mode. I slept 3 hours a night, and survived entirely on coffee and nicotine. It was a really tough time. I had to make a lot of sacrifices, I wasn't the best husband or father, but I told myself that it would be worth it. After all, future updates would certainly come faster and I'd be able to do some really cool things in Unity. I missed all of the signs of a building health emergency.
Some of you may remember that in the fall of last year Unity made an absolutely shocking decision to change the way that monetization works on their engine. They also decided to retroactively alter their ToS and make overwhelmingly unpopular changes to their platform. It was a real shitshow. One that I largely missed. I was in the hospital. In the days just prior to Unity's very public pants-shitting, I suffered a "cardiac event." Technically, it wasn't a heart attack. Or maybe it was. But there was no apparent damage to the heart muscle. I suppose psychologically that's supposed to make it less impactful, but from my experience, that wasn't the case. You can tell yourself that it wasn't a technically a heart attack, but deep down you'll never believe it. That illusion of invincibility is forever shattered. You see, I am still a young man. I'm in my 30's. I have a toddler. I still have that whiff of invincibility about me that subsumes the mortal awareness of all those under 40 who haven't yet seen their parents wither and die. I'm not morbidly obese. I'm not an alcoholic. I'm not an addict. I'm relatively active. I see the sun on a daily basis. I eat fucking bran for breakfast! Nevertheless, the long nights and months of constant sleep deprivation had apparently taken their toll. I now have shocks of grey in my hair like a discount Doctor Strange, and I've been forbidden by both my physician and my wife to ever put myself through that again. I remember sitting in my hospital bed quietly very pleased that I was almost done with the port and that once it was finished I likely wouldn't need to pull all-nighters again. I was very wrong for a variety of reasons.
When I left the hospital, I didn't touch Bitch Breaker for weeks. I gave myself a much need vacation. I thought about posting an update on patreon to explain my absence and announce a delay before the next update, but I always feel like a real jerk when I make any sort of post without deliverable content. So I decided to wait until I finished the Unity port. But, when I tuned back into the world, I discovered that wasn't going to happen.
Here's the thing, I'm not making Call of Duty, or Gothic, or Stardew Valley. I'm making a cheap Leisure Suit Larry knock off that's somehow more obscene, more offensive, and even lower budget. It's a fun game and a great way to waste an afternoon, but I'm not making the sort of game that people happily add to their Steam collections or post about on their social media. Bitch Breaker is a goofy, low-brow mess of a game that even I feel embarrassed about playing. Nobody wants to launch a game like that and wonder who the hell else might be watching. Bitch Breaker is a game you play alone in the basement with the curtains drawn. Unity's changes, despite their backtracking, genuinely call that security into question. There's just no way I can use Unity for something like this, and I couldn't ask any of you to do that either. So I killed the port. All of that work was wasted. Worse, it meant that all of the new content I had built for the Unity version would require back porting to Ren'Py.
I can't really describe to you what it feels like to sacrifice time with your loved ones, to push yourself past the point of exhaustion, to literally degrade your health for a project that ultimately goes into the trash. It's not great. To be honest, it's pretty demoralizing. I cried. For a few months I couldn't even open my project folder. But eventually the unfinished nature of the project began to gnaw at me again. I just can't leave a project unfinished. This update is going to be smaller than you guys deserve. Most of the new features I was looking forward to showing off just don't work in Ren'py yet. I'm trying really hard to get them ported but it's tough. I just can't get by on 3 hours of sleep anymore and my updates were already slow before. Regardless, I'll do my best.
What's going on with Bitch Breaker 2?:
It's still in the preproduction stage. There are a lot of cool ideas and some basic outline work, but there's still a lot to do. If anyone's interested I'll upload the design document. I had hoped to make the game in Unity, but now it's looking more and more like I'll have to use Unreal, which is its own can of worms. Godot would be my preference given its open source nature, but despite making some insane strides over the past year, it isn't really feasible for a large solo project. I could stick with Ren'Py but it really feels like the flood of half-baked h-games on the platform has really oversaturated things. I think players deserve a little more than what they've been getting, and I'd really like to make a real game, something more than a linear 15 minute slideshow with minimal player agency and the same sex scenes every time.
Enough of this crap. Where is the update?:
I've almost got it ready. I'm tempted to say you'll get it in a few weeks, but since I can't really do crunch anymore, the best I can say is that if nothing goes wrong, you should get the update before the end of next month.