Book of Hours x Smooth Jazz
The later stages of BOOK OF HOURS get a little stuttery, and I get a mail every couple of weeks from someone who’s dismayed that their high end rig built around a 4090 RTX isn’t running BH with the buttery smoothness that it can manage for Cyberpunk 2077. We’ve tinkered over the last year and improved it since launch, but after we’d picked all the low-hanging and indeed medium-height fruit, there were still some stubborn rendering bottlenecks that just needed someone to spend a week sitting down with the Unity profiler and do some meticulous testing. I finally asked Chelnoque, our orbiting contractor, to do that, because it’s hard to carve out a week of my time and he’s better at that stuff than me anyway (I have occasional virtues, but ‘meticulousness’ is not among them).
You can see the fruits of his labours here:
and you can enjoy them in a passworded branch (perf_alpha) on Steam. I’ll tell you the password in a minute, but I’m making it slightly more obscure than usual, as a gentle filter, because I’m going on holiday next week and I don’t want to come back to too alarming a support queue!
Chel or I might write up something in the mode of this post or this one, because people are often surprisingly invested in the details, but here’s one representative example of the Knuthian rule that optimisation is rarely about what you expect: one of the problems turned out to be a quirk of some earlier optimisation code. There’s some manual culling code that ensures the game doesn’t render objects that aren’t on screen (we needed to go further than Unity’s built-in culling, for reasons) and this used an additional probably-superfluous RectMask2D component, which was disproportionately hammering perfomance for reasons neither of us particularly understand.
Anyway, none of these problems were at GPU level, which is why fancy graphics cards made no difference: this is all about Unity’s decisions about which rectangles to render, and how, before it passes draw calls up (down? off? out? in?) to the GPU, and we just have an extraordinary number of rectangles in Hush House. But there are things we’ve done about them and those things are done in the ‘perf_alpha’ branch which you can access with the password ‘thedorgeoffays’. It is considerably smoother. Your saves should pass happily between perf_alpha and either the beta or the main branch. Like swans, or the jet setters in that Mad Men episode.
These things may have unexpected consequences in the UI, like sort order being a bit odd, or some things not being clickable that should be, because Chel really had to go into the walls and move some of the wiring: metaphorically speaking you may happen across a lightbulb that only glows when you open the garage door. So please let us know (support@weatherfactory.biz) anything you see, along with a save game so we can easily reproduce it! and I’ll take a look when I’m back from Norway on the 18th. If you’re not reckless enough to try out something with ‘alpha’ in the name, and who can blame you, then you can expect the improvements to arrive on beta before Christmas if you’re lucky.
In the meantime, here is some firmly pre-alpha UI and even more firmly pre-alpha writing from the Game Three prototype which has been occupying my time lately. Dream furiously, people.
This is probably going to be one the least useful comment ever written on this website, but I’m afraid you added an extraneous space between “obscure” and “than” in the second paragraph of this post.
Alright, to make this comment a little less useless, I would like to voice my interest in reading a more detailed article about Chelnoque’s work into optimizing the game. It’s always interesting to see how things work behind the curtains.
As always, thank you for your work and for those tantalizing bread crumbs regarding the third game. Have a nice holiday!