Announcing Devious Devices 5.0 (Patreon)
Content
I have some exciting news today for you all: A new major version of Devious Devices is on the way and since it is going to be a major version, you can expect some great new features.
I will start by announcing that DD5 will no longer ship as separate modules. All components of Devious Devices have been merged in one single download, bringing DD5 for Skyrim LE on par with how the SE version and DD for Fallout 4 are already distributed. The reason for this is simple: With the addition of DD Contraptions, the framework now has FOUR core components, resulting in FOUR separate places users had to download stuff from, and FOUR support threads I had to check. It was not only inconvenient for users, but also became more and more unmanageable for me. A Kimy still doesn't scale. Now, people can download everything DD related in one-go and install it in one go as well, and there is one central place to find support and report bugs.
"Wait, did you say EVERYTHING DD-related?"
Yes, I did.
The DD5 All-in-One downloader will also contain both the DD For Him and the Beast Races Refit expansions (as optional but recommended components), adding official support for male characters and beast races to DD. This is not only convenient for users, but should also give these components a bit more deserved exposure. Maybe we will see some male submissive followers, soon? And last, but not least, gag voices for sex scenes also have been integrated, so no 3rd party mods are required for this any longer.
If Devious Devices was not the most comprehensive bondage framework for Skyrim (and I believe, any game) before, it is certainly now!
And that's only the start of what DD5 will bring to the table.
For a long time, DD had a reputation of being an awesome bondage framework, but also for being a bit of a performance hog. Devices were equipped and unequipped reliably, but the code making this happen was slow and didn't scale well, because to work around certain quirks with Skyrim's engine, it iterated through a character's entire inventory upon each and every device operation, which tended to make equipping or unequipping devices a slide-show at times.
So I had a look at these core functions and re-implemented them from scratch (based on the one I used for Fallout 4 DD). Let's just say that the difference is noticeable. I would love to run a profiler on the code to get the actual number, but the new code feels at least 5 times faster than the old. And the best thing is that device operations no longer require passing the rendered device and keyword to the API in most cases - which in real life DD use-cases often have to be determined for a given inventory device and are very CPU-expensive to compute. The total performance gain from both effects are absolutely significant, particularly in the many situations when multiple devices are being equipped or unequipped at the same time.
Ok, to get that elephant out of the room, the changes caused some regressions. While the new implementation is 99.5% backwards compatible with older DD versions, a few details have changed. This is largely due to Skyrim being a buggy mess. I suppose said buggy mess was the reason why the device code was written the way it was written, because it works around certain engine issues. I just guess back in the days it didn't matter so much that the code was slow, because it was first written for chastity belts and these only (DD has over a dozen different device types these days, so speed is much more a factor now). What the existing system did was guaranteeing consistent equip states for NPCs, which is otherwise broken in Skyrim (NPCs tend not to register equipped gear as actually equipped in the inventory). The new code no longer makes that guarantee, so I had to work around this in several places. As an unwelcome side-effect, certain events (such as OnRemoveDevice() ) are no longer getting reliably fired when a NPC unequips a device. I checked all DD content mods I have in my load order and didn't find a single one actually listening to these events for NPCs, including my own DCL. They do for the player only, which still works reliably. But of course I cannot rule it out that there is a mod out that does it.
Another thing that no longer works is the corset code (for the same reason). I solved that by doing what I should have done years ago: I deleted it. It always was problematic because it broke a central DD design paradigm, where each inventory device maps to exactly one rendered device, resulting in a plethora of bugs where corsets were not removed from a character (I wish a had a dollar for every bug report I got related to the corset code!) What happens now is that if a belt is worn, a corset will be worn over it, showing the bottom part of the belt (the corset model is drawn over the belt because it has a higher priority). Which is what you'd expect anyway? There is no clipping otherwise. In hindsight, I wonder which problem the corset code was even trying to solve...
Now, for the sake of being open, while I ran quite a number of test scenarios on the new code (with satisfying results) the new implementation has not yet seen large-scale testing. So there is still room for unpleasant surprises, given that what I did to the code was equivalent to performing open-heart surgery. But I am quite confident that any problems people might experience can be fixed or worked around without having to revert to the old implementation. A very similar implementation has been in use for Fallout 4 DD for years, at least (albeit FO4 is not as much of a buggy mess as Skyrim, so there is that)
So, what else is new?
Did I mention the over hundred new straitjacket variants made by UnevenSteven? Or that quite a few device events now feature sexy moan sounds? Oh, and the manipulate lock feature has been overhauled, so the manipulated flag can now be checked and altered by script. Some people apparently have ideas for some fun with that!
Oh, and I saved the best news for last: DD5 is mostly completed. No need to wait for it for years! I might recruit beta testers for it fairly soon!
For those of you in North America, I wish you a great Labor Day weekend. For everyone else, have a great regular weekend, and see you in the DD5 beta soon! :)