I am strongly considering to switch the project from Unity to Unreal. Since the Unreal Engine is now completely free and because I think that the PBR shaders in Unity are giving bad results, it is really likely that I make the change. Light reflection is just plain wrong and it is a known bug. I am not making that up. I know Unity plans in its road map to solve the problems I have encountered, but I think that Unreal, in this aspect, is much more mature. Unity is a great tool for beginners and to make fast prototypes. There is no question about it. But I feel like I am hitting a wall here…
So far, my experience with Unity has been really positive. Three years ago, it was clearly the easiest way to enter the hobby of game development. Knowing nothing about game making, except from programming, it helped a lot to handle the tedious aspects of asset management. The Unity store is clearly another strength of this game engine. It is really easy to assemble a playable prototype together. I’d say, that although the asset store is great, there are a lot of functionalites missing from the engine itself: the ability to model basic shapes, visual programming, more advanced shader management…
I am not blaming the tool though, and I am not denying that great games are being made with it… But for my case, and especially the Hexode project, it has become awkward to work with. Unreal on the other hand offers a more integrated experience. I have to say that it is unexpectedly easy to use. The shader model, the blueprint system and all the other stuffs are really user friendly, yet you feel that the engine is capable of doing the heavy lifting.
And boy, does things look beautiful in there! With default settings, light reflection appears correct. Not only that, but the result is just gorgeous! For some reasons, I was convinced Unreal was a tool for C++ engineers. The truth is, it is a tool for tech artists! No need to say that it is a pleasant surprise to me.
It is really a choice I will have to make soon. Changing from Unity to Unreal implies I have to port all the code I have made. But this is not so much to do. The biggest thing is the hexagonal coordinate system but I have become so used to write this that it can be done in no time for me. The point is that I want a good looking game and Unity is really getting in my way. I don’t say the shader problems can’t be solved but why should I loose my time on it when those problems have been solved long ago by the Unreal engine? Once again, I was really impressed with Unreal, it is not as I thought before, only a tool for specialists.
So I will see… But the project goes on regardless of the chosen engine!