For a little under a year I had been working on some kind of remake of the Elder Scrolls IV Oblivion with intentions to recreate several aspects of gameplay and the world of Oblivion to show it off as a sort of open world tech demo. Due to the scope of the project, and other projects taking priority I’ve decided to put the project on ice indefinitely. In the meantime, I’ve decided to share a lot of the art I created for the project including a finished scene.
Currently, I’ve put this project on hold as I’m now focusing my attention at Midwinter Entertainment and a new personal IP, however I’ve put it together in state that’s shareable with the public. I’ve been having this little Elder Scrolls IV: Oblivion remake/tech demo on my mind for the past few years now. Oblivion has some really iconic imagery and in my opinion has the strongest art direction of the entire Elder Scrolls catalog. Whenever I ask someone about Oblivion, what they remember is how serene and peaceful the world was. Whether that was a good game design choice or not is debatable, but the fondness people have for this games art direction stands out in the crowd of open world games Bethesda have made. I love creating nature assets as well so this is something I’ve wanted to tackle for a long time now.
During the initial stages, I wanted to see if I could pin down and then improve the art style. I’ve taken a lot of inspiration from impressionist painters such as Alfred Sisley in redefining the Oblivion art style.
After gathering tons of references from both impressionist painters and the game itself, I came up with a plan that included prioritizing assets that would sell the look and vibe of oblivion at a glance. These include oblivion gates, the open world meadows and trails that litter Cyrodil, and the architecture. I figured once I had those elements nailed, the project would be unmistakable as the Elder Scrolls IV: Oblivion.
Currently, my landscapes aren’t really anything special. I’m using World Machine and GeoGlyph to achieve the height map. I also created a splat map to define where materials go on the terrain, which subsequently defines where base layers of foliage are placed. I have a couple other things going on such as basic color variation, and customized blending to clean up where the splat map messes things up.
Much of the vegetation is rather simple. I’m using customized Megascans assets and running those scans through substance designer to achieve a new albedo map that is stylistically more beneficial to the project. I didn’t want to make it unrealistic as much as just a bit prettier and a bit less noisy.
The foliage material itself isn’t anything new other than the wind system I implemented. What I’m currently doing is blending between custom large scale movement and just the generic wind to create a jitter in the leaves. I’m also using vertex colors (the red channel) to define the strength of the wind in so the base of the plant is stationary where the rest is affected by wind. Most likely I’ll include the blue channel at some point in so I can use the jitter and large scale wind independently from one another.
Down the road, I’m planning on adding player interaction on the foliage as well. The autumn-like look was one of the shifts I wanted to make in the art design to introduce more colors to the environment. It allows for some yellows and reds to permeate the environment as you navigate around. The primary way I did this was authoring fairly neutral foliage colors and then creating color variation through world space in the material, lighting, and through the post. I’m using a custom world space color variation node that my friend and old coworker made a while back. I’ve made some changes to it here and there just to make my life a bit easier on the project, but he made the bread and butter. Here’s a link to where you can find it. So far it’s been making things look significantly more realistic.
The majority of the textures I’m using are scanned but are customized. Some are made in Substance Designer 6 entirely. My primary workflow for creating tileable textures on this project so far has been getting scanned data and then building off of that in Substance Designer to achieve a look that I want. I’ve found many instances where using scanned data will get me 70% of the way to what I want and then
I can use the extensive toolsets within Substance Designer to get it the rest of the way to what I need for the project. It’s a nice balance between getting that scanned look and still getting the exact texture I need to get the job done. When I can’t find scanned data that will work I’ll still make sure to sample my colors from scanned data for the albedo map, but often times I’ll use ZBrush to sculpt something, and then use grab doc to get a height map from that, and then use those height maps as a base to construct a material in Substance Designer.
Currently, I’m using UE4’s procedural landscape foliage placement tools. They’re very powerful and flexible for getting real-time updates across the board for all of your foliage. It’s especially helpful when trying to optimize since foliage is the primary offender for performance problems.
After doing all of the base layers through procedural means I do a bit of touching up using ue4’s default foliage placement system for a bit more randomization in so patterns don’t start appearing.
During my time so far working on this project I’ve realized UE4 is an incredibly powerful tool for creating open world games, but it certainly leaves a lot to be desired. For example, real-time global illumination, better terrain tools, tessellation that works better directly on terrains, an accurate real-world lighting model, having more options for trying other film industry proven tone mapper curves, and implementing better color grading tools commonly used in the film industry would help bring an open world game made in UE4 to the next level.
For the time being however UE4 is a very strong tool that can be customized to make incredibly high fidelity open world games that are absolutely on par or beyond what we’re currently seeing on current gen hardware. It just might be a bit harder than I’d like at the moment.