Rookie Awards 2024 - Open for Entries!
Medieval valley
Share  

Medieval valley

by FelixTerlinden on 1 Jun 2022 for Rookie Awards 2022

I wanted to challenge myself by making a larger scale environment. It should look like part of an open-world game and thats why there had to be a castle in it! I used a mix of Megascan assets as well as a Kitbash set so I could focus on worldbuilding and I am happy with how it turned out.

3 687 0
Round of applause for our sponsors

This was the third and last project I made for my demo reel during my time at PixlVisn. While working on my second project I noticed that I really enjoyed making environments and learned lots of new software, most notably Unreal Engine. Therefore, I decided early on that I wanted to do another environment for my last project and that it should be realistic instead of stylized and on a larger scale this time. I wanted to focus on creating a world that feels alive and add a main point of interest, towards which the level leads up to, in this case a castle seemed fitting.

To achieve a realistic result, relying on references was crucial. I looked at lots of castles in different environments and climates and decided that I wanted my scene to be set in England or Scotland. This led me to do more research on castles that are specifically in that area, as well as local fauna. I chose not to match a single castle completely but make my own amalgamation out of several ones I liked. This was super fun, since I always found fantasy castles and fortification theory interesting. After having watched so many videos on how to create the perfect, impregnable castle it was great to be able to do my own take.

Of course, there were some constraints on that since the project had to be visually appealing and work from a gameplay point of view. I was still able to incorporate some elements like multiple walls of defense, a steep way up to the castle with several turns to hinder siege equipment, as well as the overall position of the castle on top of a hill.

On my last projects I limited myself to only using assets and textures I made myself. I determined in the planning stage that this approach would not be feasible for a project of this scale that was also supposed to be realistic. Of course, there were some parts that I still had to model and texture myself, such as a majority of the castle, but the use of the amazing Quixel Megascan library as well as the “Medieval Market”-Kitbash3D pack were incredibly helpful.

Once I had an idea of how I wanted my scene to be laid out I started planning it in a top-down 2D view. For this project I started getting into World Machine to generate a heightmap and this is where my planning from earlier became useful. There was a lot of back and forth between 2D planning, World Machine and Unreal Engine, where I could check which parts of the world were working the way I wanted them to and what still needed some work.

I tried to get as far as I could landscape wise with World Machine before making manual adjustments using the landscape tool in Unreal Engine. Generating a different result by changing a few parameters is simply a lot more efficient than sculpting every little hill and mountain by hand. Also, once I started hand sculpting there was not really a way back, since importing a new heightmap with some changes would undo the work I manually did on the landscape. I still did a lot of finer work in Unreal Engine, but getting the bigger shapes into place early helped me save a lot of time.

To texture the world, I used an auto-material which I found on the Unreal Marketplace. This would automatically assign different materials to parts of my heightmap depending on several parameters, such as slope or location in the world. Although that already took a huge amount of work off my shoulders a purely procedural texturing solution was not what I was looking for. I investigated the inner blueprint-workings of my auto-material and added some landscape blend layers, that allowed me to manually paint stuff like dirt, grass, water, or stone on top of the already existing base. This is how I made parts of the project like the path leading through the scene and got to adjust some elements that felt off in the original procedural generation.

After this point there was a lot of iterating upon existing aspects of the project as well as adding new ones. I knew that I wanted the player character to be led out of a forest along a path. The path was supposed to guide the player through the level and eventually end up at the castle, however I also wanted to make sure that there were enough different points of interest to make the world feel alive and worth exploring.

Most of the forest was done using a procedural foliage volume in Unreal Engine. It allows you to choose foliage actors and their parameters such as scale or density. Then they will populate a square-shaped volume, from which you can remove parts that are supposed to stay clear with a foliage blocking volume. To help with the transition from forest to field I manually added some different trees at the outskirts of the forest. This way there is not just a clean line that separates the two biomes.

I also scattered some trees as well as other foliage and rocks in the rest of the scene in places where I thought it made sense and was also visually appealing. I did not want the scene to feel too empty, however I also did not want there to be foliage everywhere and as though the whole scene was just one homogenous environment.

Making the palisade was one of the most fun parts of the project. At first, I was thinking about placing the different spikes by hand, but this would have taken forever and be a real headache if I wanted to make some changes afterwards. Instead, I decided to create a blueprint, which automatically places a spike after a certain distance along a spline curve. This way I could adjust the curve at any point and the blueprint would fill in the gaps with new spikes. It also allowed me to add some variability and give each spike a random rotation or size within a range. One huge upside of blueprints is parameters, that can be adjusted to achieve the artistic goal you are after. In my case I could find the exact spot I was looking for between a perfectly straight wall and a crooked, organic one.

Additionally to saving me time in this project, the blueprint I created can be reused whenever I need to place loads of assets with a certain distance in between them with some randomness. While working on a tool like this you might think that you are wasting time and that you could be faster doing it by hand, but in most cases, it will end up being more flexible, saving you time and being a great learning opportunity.

As mentioned before, the main software I used for this project was Unreal Engine. Additionally I used Maya, World Machine, SpeedTree and Substance Painter as well as Substance Designer. Each of those played a substantial part in the creation of this project, but without Unreal Engine none of this would have been possible. It handles resource-heavy scenes incredibly well and can display hundreds of models using 4k or even 8k textures without issues. To add to that you have useful tools such as the landscape- or foliage mode and blueprints that help with the assembly of such a scene.

I learned a lot from this project about making a large-scale environment. It was a bigger challenge than I anticipated at first and there were many things I tried that did not work out the way I wanted them to. Nonetheless I am incredibly happy with the result and everything I got to take away from this project. I tried out some workflows that I did not get to investigate before and learned to arrange, manage, and optimize a large scene to make it run in real-time.

Planning was essential at each stage of the project. Putting in some time before you start working and thinking through what you want to do and how you are going to achieve it always saves you loads of time later. It is also smart to work your way down from large to small shapes and to try to do as much work procedurally and automatically before you try going in by hand.


Comments (0)

This project doesn't have any comments yet.