In Boars in Rome, the player wakes up in an abandoned, industrialized world left behind by society.
The project began as a university assignment that introduced me to Unreal Engine, and later grew into a team of five. I focus on environmental art, animation, materials, and visual effects, though in a small team we all contribute across disciplines.
The first step was to take the block-out given by the designer and replace the simple models with more complex and polished ones. The idea was to get an appropriate sense of scale
The next step was to add more detail to the temporary models and fill the empty spaces with texturing. More on this later.
Cube-grid was extensively used in the creation of this project. Levels are sketched with modular pieces, which are later re-topologized for the purpose of vertex painting or converted into more detailed and re-usable assets like windows, doors etc... The models in this pictures are examples.
We use this tool because, while not perfect, it's accessible, easy to learn and perfect for rough level block-outs. The idea for us is to find a middle ground for level design and art. We don't want to limit the level design with art requirements, and we don't want to limit the art with level requirements.
For example, we could easily turn every building into a prefab / actor, but we feel like every roof should be different and serve a purpose. It's more of a free form and semi-modular approach.
The idea for this master material is to cover most scenarios related to environmental texturing while making the decoration process accessible to everyone in the team. For this reason the material includes 4 layers of vertex painting, with the 1st layer being (optionally) parallaxed and the 4th layer being hard-coded as a wetness layer which can be used in rainy conditions.
I believed this would strike a balance between ease of use, performance and flexibility. At least within the context of the project.
Eventually I want to combine the Building Master Material and the Roof material together, but for now they are kept separate because they have some fundamental differences with how parallax occlusion is handled - something I plan on addressing later in development.
Similarly to the Building Master Master, the idea is to cover many different scenarios and allow the team to play around with 4 vertex painting layers, the 4th one again being dedicated to rain.
All the textures are compressed by packing all the maps into different channels. I label this texture _NAR because I am packing Normal, Albedo and Roughness. It works by reconstructing the Z value of the normal map via shaders, leaving space for Albedo and Roughness.
And here is a comparison of how this texture packing looks compared to a more traditional approach. Because I have to compress the textures with BC7 instead of BC1, the memory footprint increases. Thankfully I more than make up for the loss because I am able to compress four maps into one texture, which saves ~30 - 50% depending on how many textures you use. The differences are very minor.
Since the beginning I imaged the game to have a hand-painted feeling that captures the charm of visible brush strokes and rough textures. I'm not sure what the style is called specifically but the closest I have found is "Alla Prima", which is usually energetic, spontaneous and improvised... like our gameplay. I wanted to tie the style of the game to its energetic nature and at the same time show how there is still beauty to be found in a fallen world.
The idea and philosophy behind the 1st person animations is to capture how the motion feels like from a 1st person perspective. When we run our hands aren't placed in front of our face, but in a game this feels "right", as we need to consider some factors:
1) FOV in games ranges between 90-120. The FOV of humans is about 200
2) Perceived motion VS Real motion. If the movement were motion captured and a camera was attached to the player's body this would be the perfect recipe for motion sickness
Because of this, animations need to be tailored to 1st person. This results in many of these animations breaking when viewed from any other perspective. A good example of this is with the shadows and with reflective surfaces like mirrors. For this reason different animations need to be created for 3rd person.
When we started thinking of some possible enemies we took inspiration from Dishonored's rats. Their complexity is what made them appealing.
1) They can be distracted with food
2) They are treated more like puzzles and less like enemies
3) They open up possibilities for emergent behavior
In this case, the bugs have been created with light and food puzzles in mind, as shown in these two videos
I wanted to invest some time creating simple hair physics that interact with wind, velocity and droop realistically because we knew the boars would play a key role in the game. The technique I am using is shell texturing. The idea is that this simple system can be expanded into a master material that can work well for moss, fur, hay etc..
I wanted to make the world feel more alive and interactive. I came up with the idea of having newspapers fly up to the player's face because of the wind generated by the character running. While unrealistic, I felt like it added an extra layer of immersion that the game needed, as it grounds the character in the world.
Additionally, this system can be expanded on and used for different "paper-like" objects, such as leaves, flower petals, confetti etc...
One of the focus points of the game is the physicality of the character. We didn't want the player to feel a narcissistic injury from the game, but instead, we wanted to show how the environment affects the state of the player.
In later stages of development I want to expand on this system and add a variety of similar effects such as mud, sand, dust, wear... anything that makes it seem like the character is part of the world. I think that in a parkour game, this is essential.