Author: Salireths
The next build, and the beginning of the game in general, is going to take place on a ship that you use to travel - to do that we needed to up our game with the interior design.
If you remember, thus far we've been experimenting with various natural environments, but we've never allocated proper attention to the interiors (aside from boxy untextured level blockouts).
The challenge here is how to make a level-building system that will allow me to produce good looking results in the matter of days.
The traditional route that I'm familiar with (like Half Life or Unreal Tournament - my previous mapping experiences) requires months of work for a single person to create great results, and that approach is ultimately designed for teams of artists and designers.
So in order to make it possible for me to produce hundreds of levels alone, we have to get inventive, make the level design itself as effortless and quick as playing a game with a creative mode.
I've had a bunch of experiments, drawing inspiration from different games, some ideas failed, while some proven to be awesome. Here is an overview of tools that we've created for just that so far.

It's not a new concept, tiles of different kinds have been used since the beginning of gaming (maybe even before), however, for some mysterious reason, everybody keeps coming up with new uses for them.

The tile system is really just a metric: I've defined rules of how big and small things can get, what grid divisions they snap to, and what can be used together. It's all to make the building process quick: a wall or floor piece can be made out of small tiles, then they get grouped together and that group is then copied to make a full room.
Most games with modular environments make entire wall sections (5 by 4 meters in Fortnite Creative for example) be separate models. For us I wanted to have something more granular than that - making tiles smaller (1 by 1 meter) will reduce the amount of mesh variations needed to produce desired visual variety. The idea is to have less 3D-art to make to get satisfying results.

Above is a "group photo" of the test tilesets: I sketches out and tried a lot of pieces, combinations, details - all just to figure out what we need for the game. It's sad that research work is often invisible and underappreciated, but it's where the most of the time has been spent and for good reasons.

To reduce the time amount required to texture each asset, I'm using one texture for a lot of assets, just the way its applied is different. Some parts of that texture are metallic, some have fancy details, while others are plain. With this kind of variety in one texture, it not only makes it very versatile and reusable, but also saves memory of your GPU.

Additionally to the variety of the texture, I've developed a very lightweight way to designate areas on the mesh that can have different materials and color schemes, while still paying the rendering cost of the same texture. Philosophers' stone is mine - I can turn any part of a texture into gold!

Specific areas on the mesh can set texture to gradually "dissolve", turning a solid wall into a see-through mesh, making it ruined, or disappear completely in an aesthetically pleasing way.
Later on I'll extend the functionality - instead of disappearing, I can add a second material that it can blend to. Going to be handy for objects covered in Shadow corruption.
While I don't have a VR headset, Half-Life: Alyx has impressed me not only with gameplay, but with its technical art innovations. Researching the new Source Engine 2 made me a bit envious of their toolset, and I wanted a piece of that in Unreal Engine 4.
Thankfully before I even realized incredible usefulness of their automatic texture alignment tools (hotspot texturing), Bram (@Leukbaars), technical artist at Valve, has published a free addon for Blender that does wonders.

I've made a special texture to work with this plugin, and just with one click it creates these results. Aligning textures like that by hand would take a painfully long time!
My plan is to make a bunch of small elements that can be used together to create unique-looking complex structures quickly and right in the editor, similar to how Fallout 4 did it with machines (timestamp: 49:56-50:00, watch just one minute).
The design sketch I did previously presents with another problem - there is a lot of curvature in the planned architecture style, it's not just 90 degree angles that are easy to snap to grid.
To make things more organic and alien looking, I asked Hopfel to make a set of tools that enable quick modeling right in the editor:

This allows to fill the gaps and create unique shapes without the need to do it in blender, breaking the flow, taking additional time to import/export and match the positions.


This tool is useful to create trims, ramps and paths. The cross-section profile of it can be changed via a user-defined curve.


Caves still count as an interior, even thought its more related to natural landscapes, there are still a big pain to make. We needed a solution to create them quickly, as we're planning to have a considerable amount of unique caves and similar natural formations in the game.

The caves in other 3D games are usually done in 3 different ways (of course there are outliers, but in general).
You might be surprised to hear that we chose approach number 3, however I'm not going to be putting the rock meshes by hand, risking my sanity and making holes in the world in the process, there is a twist. Hopfel made a Delaunay mesh filling algorithm, fancy name aside, it creates a uniform grid, placing rock meshes on equal intervals from each other automatically! No cons, only pros - problem solved!


Potential uses of this tool aren't limited to just caves, cliffs, arches, and it can be used for more "fleshy caves" too :}
Its important to make good tools and establish a pipeline before proceeding to mass-produce levels and assets, spending a little time to organize now can save oh so much of it in the long run.
Thank you for reading!
the Gateway of Realities
2020-07-31 23:28:51 +0000 UTCthe Gateway of Realities
2020-07-31 23:26:24 +0000 UTCEthan
2020-07-30 10:12:18 +0000 UTCKronas
2020-07-29 21:48:35 +0000 UTC