I agree with this bit. It would be great to hear on the Twitch stream things like “We’ve managed to make Unreal start in half the time”, “Shaders take 50% less to compile”, “We’ve streamlined the menu system”, “There is a new lite mode for low end machines”, “You can now write code directly in Unreal”, “Unreal IDE is 50% faster”. Things of that nature. Rather than. “We’ve added feature 1023.” Because instead (like Unity perhaps) feature 1023 could be a plugin and that the real improvements were optimising, simplifying and streamlining the Unreal interface. But that’s just my preference. Maybe a lot more people are interested in feature X.
There are two ways to make an IDE. First is the “bells and whistle’s” approach. Which is to have so many panels and menus that leaves certain audience impressed with all the functionality. The second is the streamlined approach. They used to do the first approach to sell hi-fi’s in the 80’s! But now they have the iPod with virtually no buttons at all! Turns out people don’t like complication.
When I first opened UE4 and saw the highly rendered menus and panels. I just thought “Oh dear. This is going to be slow and painful.” When I opened Unity and saw all the simple chrome menus and panels I thought “This is boring but don’t have to worry about the GPU wasting time rendering the menus”.
Also
- Make it look better on a laptop screen-size of 1366x768. (i.e. make the panels and fonts smaller).
PS. @DamirH I think you show a bit too much deference. I have noticed this a lot with people using very complicated software. Consider “dwarf fortress”. A game which is slow to load, and had virtually no instructions. Most people would say that is bad? But still defended by it’s hardcore following. And any suggestion that it could be optimised and have simple instructions scorned at as people not willing to take the requisite 100 hours to figure out how everything works. Having worked in software companies I can tell you that we don’t always know best, we don’t always take the best option over the easiest option, and we don’t always optimise everything, and we don’t always test on lower machines. So that’s why I don’t agree with people saying, Unreal knows best and that anyone who finds Unreal too complicated or slow it is their own fault.
Example: Compiling 300 shaders
Consider the example of compiling 300 shaders. How long should that take? Well if they are all on hard-disk. You execute a compile program from hard disk. And re-save them to hard-disk. Meanwhile creating a png of the material for the IDE saved to hard disk, each time updating the IDE with the new material. OK, that’s going to take a long time. But it’s the simplest way of doing it. And people will say. “OK. 300 shaders. Obviously it takes a long time. Why are you complaining? This is is a hardcore gaming engine. It’s not for wimps!”
But then you think. We really need to optimise this because we want to appeal to the general public. So we’re going to store all our shader code in RAM. Have the compiler in RAM. And compile the shader back into RAM. Do this, and 300 compiled shaders takes microseconds. Then, only when we need to see a preview of the material is a PNG created (in RAM) for the IDE. Then send the compiled shaders to the GPU in the background.
So you do all this and you find that actually the week spent making all the shaders compile 100 times faster was well worth the effort.
(Also, with physically based shaders, I thought the idea was you just had one shader for all your needs?)