Two Month Chump [demo build 0.3.9broken] (Patreon)
Content
WARNING: THIS BUILD IS FUCKED (as in unplayable). ONLY DOWNLOAD IT IF YOU'RE DESPERATELY INTERESTED IN WHAT I'VE BEEN WORKING ON.
Hello again gentlemen. I have returned from my mysterious month of no updates to bring you something that is just barely an update. What can I say; it's been a journey. Today, in lieu of an actual playable build that I know is what you all want to see, I thought I could at least go in-depth on what I've been doing over these last two months and some of the problems that I ran into along the way.
I realise of course that this will be disappointing to you and I apologize to anyone who was looking forward to a shiny build this month. However I will simply beg that you trust me that we are on the verge of something incredible here. I can feel it in my heart of hearts and I am working extremely hard to make it a reality.
THE JOURNEY: The State of Unreal
As you are likely aware already, Hyperdeep runs on Unreal Engine. You may also be aware that there is a much-publicized update to Unreal Engine on the horizon: UE5. UE5 promises to bring with it untold technological advancements in pursuit of eye-rapingly high resolution "nanite" geometry and gut-disembowellingly realistic "lumen" lighting, among other things.
It's only those "other things" that are of interest to me personally. Hyperdeep doesn't rely on high-resolution static geometry or realistic lighting, because it's a stylized game that deliberately misuses the Unreal Engine rendering pipeline to make the lighting look less realistic. No, the one key feature that I've been on tenterhooks for is the new full-body inverse kinematics solver packaged with UE5.
Inverse kinematics (IK), and specifically full-body IK are absolutely fundamental to the gameplay and look of Hyperdeep. This is what allows HD-chan's head to move around freely in the environment while the rest of her body follows smoothly behind, all while keeping her hands and feet planted where they should be. Of course, you may now be asking: "what's so special about UE5 IK if you're already using it today?". The answer to that is simply a matter of quality of output. Until this point I have been using a combination of UE4's built in full-body IK solver, and the third-party plugin "Power IK". These both work QUITE well, but they require quite a lot of hand-holding and manual adjustment to make the output pose look as good as it does. The updated UE5 solver simply outputs more attractive results with less manual tweaking, and so I knew that if I wanted to tackle the next stage of Hyperdeep's development (adding more poses), I really would be better off getting my hands on the new solver.
UE5 is, in fact, available already in "early access" form. Moreover, the latest builds of Fortnite are apparently made in it already, so it must be ready for primetime to a certain degree. I like to think of Hyperdeep as the Fortnite of dick sucking, and so I thought: what better time to take the plunge and try migrating to UE5? (aside from the obvious "better time" when the full version is released)
THE JOURNEY: Stranger in a Strange Land
I have very poor quality, capped internet at home, and so the first step of migrating to UE5 was to hack my neighbour's wifi router and use that to download the new version instead. Once the download finished I unplugged my wireless adapter and dissolved it in lye in case the filth came round.
Next, I had to migrate the Unreal project file to the new engine version. Epic provides built-in functionality to do this, and I have used it several times in the past, and it has never worked ever. So I delved into the project code and started ripping out as many plugins and custom functionalities as possible to hopefully give the compiler an easier time. Eventually it worked, and I was gifted by the sweet sight of the Hyperdeep project running in the UE5 editor.
Much hubbub has been made by developers using Unreal Engine about the new UI that UE5 brings with it. The UE4 editor looks twenty years old and has big skeuomorphic buttons and weird ugly colors. UE5 brings a sleak, modern style, with buttons that all look the same and colors that blend into each other so you can't see where anything is. They also didn't update the underlying UI engine, and so all of the weird UI bugs that exist in UE4 are still there in UE5.
So that was a disappointment, but it wasn't really what I had migrated to UE5 for. I booted up the control rig editor and threw together a quick test blueprint with the new full-body IK solver to test it out, and wouldn't you know it it worked great. It's difficult to articulate exactly what's different in the results, but the new solver simply feels more "organic". I fell in love at first sight and was ready to get cracking migrating HD-chan's main kneeling pose to the new system when I noticed something odd: jagged vertices on HD-chan's face.
This was odd, because as you will be aware from a previous devlog, I added tessellation to Hyperdeep not long ago in order to smooth out those jagged vertices. I checked my viewport and couldn't find the usual toggle to display tessellation. I checked the material for HD-chan's skin and the tessellation options there were gone too. I took to Google and was horrified to find out that apparently Epic removed tessellation in UE5! It was "deprecated" they said. I had had no idea of this before migrating, and obviously nobody includes a list of useful features being removed from something as part of their marketing material. I trawled the forums and found a petition demanding that Epic bring the feature back with seven signatures. I didn't bother signing...
THE JOURNEY: Long Road Home
I love tessellation, like a child, and I sure as fuck wasn't going to abandon it in my move to UE5. I knew however that there was no way I could migrate the technology forward, or reimplement it myself in UE5. That's the kind of graphics programming people get paid the big bucks for. So, I hatched a plan: "If I can't bring tessellation forward, I'll just have to bring full-body IK back!"
Mercifully, the new full-body IK solver in UE5 (along with many other features) is implemented as a plugin, separate from the core engine itself. This means that I could compartmentalize the code I wanted to steal from UE5 easily and try to package it up as a plugin for UE4 instead. Would this work? I had no idea, but I didn't really see any other option...
I won't bore you with the details but yes, with some modification it did work. The "exclude bones" function doesn't work at all for some unfathomable reason, but apart from that the functionality is identical to that in UE5. Result!
THE JOURNEY: Wait...
Oops I spent weeks working on what eventually amounted to mostly wasted time and didn't get an update out. My advice to you if you are considering migrating to UE5: do not. That being said, I have come back from my voyage with a grand prize of the new IK solver. Time will tell if this was all worth it.
----------------------------------
To reiterate the alarming message at the beginning of this post, this build is extremely broken and I frankly don't recommend you play it. If you really want to see how the new solver and controls affect the core gameplay then by all means take a quick look, but basically everything else doesn't work right now. If I haven't discouraged you and you are going to check out this build then take a look at the new vertical camera angle for the default pose (the controls work very differently to before), and the various "positions" (same menu as hand positions) that are NOT complete but demonstrate the capability somewhat.
[Changelog]
Mechanics:
+ All mouse control now handled through new "control surface" technique (should generally feel better, less glitching, smoother insertion, etc.)
+ Additional poses (WIP, broken, for demonstration purposes only)
Visuals:
+ HD-chan's model significantly tweaked to look nicer in a variety of positions (feet completely redone)
+ Boob physics significantly altered for even more jiggliness (WIP)
+ New full-body IK solver implemented
Customization:
- Not available in this build