Project Serenity is a game I have been working on for the better part of a year and a half. Although a majority of that time was spent learning different engines, 3d modeling, writing and planning. I will be using this dev blog to give insight into the different things I have learned along the way, as a way to help others and to keep myself on track!
When I initially started prototyping I was using Unity2018. There are a few concepts and technologies I was going to need in an engine as I went forward such as terrain tools, a nice lighting system and a not so steep learning curve to get some ideas mapped out. I picked Unity because I have been using it for simple prototypes since the Unity3 days. So it was a no brainer to jump in and start development.
The core of Serenity is exploring different landscapes. I wanted to build unique areas, from islands to red wood forests to desolate decaying valleys. One of the first issues I ran into was I kept needing to buy assets to help in this development. Such as Gaia to help build terrain and Amplify to build shaders. I eventually ran into an issue with an update to the tooling which ended up wiping all textures from my terrain. Even with source control, this led me to explore other options.
Some Screens from the early prototyping in Unity2018
I decided to take Unreal Engine for a spin. Being 100% new to UE4 I grabbed a few courses from the GameDev.tv guys on Udemy (they make amazing courses for UE, Unity, Godot, Blender, etc!). I really fell in love with UE. I had access to amazing terrain tools, lighting, volumetric fog. A ton of excellent features that came packaged in without the need to add third party support. After a few months I was able to prototype pretty fast using their Blueprint system. I would say one of the downsides is there does not seem to be as much community help/tutorials/support as compared to Unity's massive community (thou there was still a lot!).
So after a few months of exploring UE I had to make a decision on which engine to use moving forward. One major sticking point of UE was that all scripting is in C++. Which I found very slow to get used to, on top of learning all UE4's c++ macros. Being a long time .NET developer I am extremely comfortable in C# which is Unity's base scripting language. Combined with the impressive updates in Unity 2019 and the fact that I much prefer C# over C++ I decided to (once again) start prototyping back in Unity. Now dont get me wrong, I love Unreal Engine and everything it offers and I will be back to it at some point. But im looking for familiarity to help speed up the dev process and Unity offers that.
I am very happy with my move back to Unity. I have started trying to flush out a style and color scheme as well as work on the early parts of the story. Below are a few of the newer design. You can see how the art is moving from a realistic to a more stylized approach. I am using the LWRP currently, which is great but also being so new that its cumbersome at times to get some older shaders to work correctly. A majority of the models are done in Blender and I used Zbrush to help give them some different looks.