This issue has already been reported with UE-29543 and fixed internally. It should be making its way into a hotfix for 4.12. Hopefully for 4.12.1.
If you don’t want to wait for the hotfix you can fix this yourself in the binary or source builds. There is no compiling of source code that is required since you only need to adjust a single line in the .usf file. All that will happen after you manually fix is that the shaders for the project will recompile once you open the project again.
Just a heads up, looks like we’ll not be putting this into any of the HotFixes since it’ll invalidate the DDC. It’ll be fixed in 4.13.
Should anyone need the fix, use the linked AnswerHub post above to see how to fix this yourself. If anyone runs into issues or needs assistance please post on the AH post linked and I’ll help you get it sorted.
This bug breaks my marketplace products. So you’re saying I won’t be able to have 4.12 compatibility? I urge you to please reconsider this. I don’t think my customers are going to want to manually fix this.
From my understanding, unless everybody locally force-rebuilds their DDC after the Hotfix then it won’t fix the issue, since all engine & project shaders will have to recompile. You may also have to manually recompile the DDC for each project manually as well. I’m willing to bet that 90% of the people who buy it from Marketplace won’t know how to do that either, it’ll cause more hassle than it solves. But hey, demanding it might pull on Epic’s heartstrings…
IMO - I feel that because this is an engine bug, it’s kind of their (the customers) problem to resolve. Either way, they should always check for breaking changes before commiting to an engine update. Bugs suck but meh, that’s software development.
Are you saying that the patcher couldn’t just wipe the build artifacts, or bump a format version number, or do one of a zillion other things that will cause the re-build?
To me, this seems like expediency torpedoing correctness, which is something you have to do during the last few months of a game project, but not for a long-lived game engine…
How long until 4.13? Perhaps that’ll come out quicker?
So the alternative is to put marketplace developers in a position where they cannot update a product to the latest version? I’m perplexed as to how a huge bug like this could even have been missed. The fact that it is an engine bug is unquestionable. However, not every customer is going to realize that if I were to say my product is 4.12 compatible and they come across this pretty blatant bug. Not everyone reads the forums, and it is more likely to be blamed on the author than the engine. The other option is to not update at all, which could give buyers the impression that the assets are being abandoned. So either way, we are screwed.
I was disappointed to see this fix wasn’t included in todays hotfix patch.
Pretty much yeh, as far as I understand it anyway. If the DDC will rebuild itself automatically without any ill effects, then yeh - it should be patched.
I wouldn’t say it’s that big, there have been much bigger slips here and there. I would say that tbh, the fact that the ‘Roughness’ parameter completely changed in 4.12 is a bigger one (though this was fixed in the hotfix).
I’m not saying this is ideal by any means or that it’s okay, but if by fixing the issue it’s just going to cause more issues for every user whose not using this feature, what can we really expect them to do? This is all based on the assumption that the reason they don’t want to invalidate the DDC is because it will cause issues for other users etc, rather than just because everybody will have to wait a few minutes to rebuild it (in which case yeh, it should be patched really).
Lights are pretty essential to level design. My marketplace levels make use of lights with extended lengths. Unless it is fixed, I am unable to mark my products as 4.12 compatible. That’s pretty big to me. I won’t pretend to know the details on how a fix like this would be applied globally, but this does put me in a very difficult position with 3/4 of my products. =/