Loading...
 

Design

Design & Creation Philosophy
----------------
- Consistency
- Scalability (broad)
- LOD for maps (sectors & patches)
- LOD for models (mapobjects & spline-cages)
- DRE materials
- Articulation
- Terrain (decoration & blending)
- Lightmaps

Consistency must come first. Of all titles conceivably referenced as inspiration, the consistency of the art, both in terms of its design and its creation, harmoniously coordinate from end to end and start to finish. Consistency coordinating even technically disparate elements such as maps to models, or all effects and all interface graphics. Typically the concern is about polycounts and texelation. This becomes a little more difficult for us to nail down due to the intent scalability of our workflow, so a very keen focus is required, maintaining a balance of scalability and consistency. The best way to do this is to look into the 'metrics' section of the documentation and, as development progresses, pay close attention to what other artists have created and how, on a deep technical level. A consistent outcome is achieved when a consistent workflow is utilised and a consistent team outlook is coordinated and balanced, technically and artistically.

Scalability is one of the workflow's primary considerations, and one of the primary ways to be fully scalable is with LOD. Not just as a brutal optimisation trick with only certain things, but well-crafted presentable clean LOD stages that are able to have their upper third locked and displayed as a maximum. This is done in a variety of ways covered all throughout the documentation, with patch-meshes, spline-cages and many other techniques dedicated to LOD. These techniques are not only without issues concerning texture-mapping, but are built to harness them from conception, allowing geometry in the all of the stages to tessellate and deform freely. The projects also have several iterations of base materials, volumetric populations and even considerations for physics, by virtue of the entire environment geometry itself having a separate collision mesh.

Maps rely on the use of mapobjects, patch-meshes and specific curated layers for each LOD stage. Each mapobject is already fully ranged with all LOD stages and the stage is handled simply by a filename suffix. The mapper doesn't need to worry about managing LOD stages of any mapobjects, because mapobjects are usually created by a modeller. Likewise, patch-meshes used to create map geometry are automatically increased or decreased in their tessellation factor by a script, and this is done in a way that takes minimum curvature into consideration and even the grain of topology. Further techniques are used to determine the dimensions of objects below a certain aspect at a certain distance, helping to automate great optimisations that benefit environments. With further skills from the mapper specifically considering LOD, full scalability can be achieved without so much extra effort.

Models that are vital features of a project such as characters and vehicles are created using spline-cage bases, a workflow that allows texture-mapping to be determined using the same parametric curvature as the splines themselves, although still mapped entirely unique from it. This means that texture-mapping is not only capable of any tessellations used to create each LOD stage, it will actually flow perfectly even in unconventional yet artistically useful ways. The unwrapping is never much of a worry beyond the very initial stage, even if considered a base version such as for human characters, the unwrapping layout is solid, universal and clean while allowing for any level of detail possible.

Materials still have their roots in legacy real-time rendering and have gone from only ever half-adapting to modern physically based rendering standards, into a complete direction all of our own that is more stylised while still adapting a little closer to these modern standards, but only for certain things such as reflections. These are handled in different ways that coincide with more optimised and older techniques to create a standard of reflections that is not only uniquely stylised but flexible for optimisation and scalability. From their origins in real-time rendering that is long deprecated, all materials are still created with these origins in mind and now far beyond, using flexible techniques even intended for offline CGI rendering, all with scalability in focus throughout.

With such a focus on using LOD everywhere, a central creation philosophy is needed, called articulation. Most of the time this involves building geometry atop texture features on a surface, such as hinges, frames and handles on a door, all while keeping these high-detail features from visually interfering with the underlying subject at a distance. This new articulated brushwork is usually always texture mapped using a projection of the same material just underneath it. Counterwise, although less common, very complex brushwork and kitbashed mapobjects can be baked and retopologised to then become functional and presentable at a distance, solving more than just high polycounts with difficult geometry to decimate, but being more efficient with its materials and textures, even though now new instances, it can avoid a lot of performance penalty. Articulation is much more than just a technique for a mapper, it really does apply to the entire workflow as a philosophy relevant to many disciplines within.

Due to our determination to use Radiant as prominently as possible, terrains need a more integrated approach that allow mappers to still have full hands-on flexibility in editing, right at the phase it's appropriate for them. Not only with formed terrain from a heightmap and/or procedural techniques, but also all of their decorations and vegetation, with each triangle of the terrain becoming an individual brush, and each decoration being an individual mapobject. The mapobjects get exported as objects in any other map exporting process, and the terrain is exported and treated with unwrapping and vertex-colour processes before being recombined back into the sector. A variety of different tools are used to generate and combine heightmaps and featuremaps to utilise a library of different materials and mapobjects in a way that relies mostly on image-processing and allows for a lot of procedurally extrapolated concepts to flourish. Tricks with terrain-tile geometry and unwrapping enables terrains to also be vertically proportioned, creating walls and tunnels that can later be transformed into cliff-faces and caves, and avoiding traditional lumpy terrain with stretched verticals. Because Blender is used to process these terrain-tiles, an opportunity for sculpting presents itself, both before and after the phase in which it's also possible to edit in Radiant. Because of the terrain-tile's extremely scalable geometric nature and because each mapobject will already have LOD stages all of their own, the mapper needn't be concerned with babysitting optimisation at all, while having a powerful and interactive pipeline for large outdoor organic environments easily generated.

Not to be forgotten, for the sake of optimisation and scalability once again, the use of baked lightmaps for all environment geometry. The misunderstanding and misuse of real-time dynamic lighting is a common and deadly mistake made by developers that impacts performance at the expense of material complexity, sometimes even geometric density. An environment is a nebulous concept that no one approach for lighting can be universal, will never be universally perfected, and a wide range of techniques exist with baked lightmaps having always been an important part of that until recently. I wonder if it's because they are truly unnecessary or if it's just because they are unwieldy, difficult to maintain, time-consuming to bake and are simply not considered for their optimisation benefits anymore, despite how obvious that should be. Unwrapping is extremely difficult and when throwing LOD sectors and all of their stages into the process, it seems outright impossible. We didn't believe so, and as a result, a range of techniques have been discovered and harnessed to make this work. Using lightmaps with modern techniques solves entire ambient lighting issues, allows global illumination features such as radiosity and bouncing to be baked in, even diffusion and ambient occlusion, capable of extremely high resolutions for a select group of unique sectors, and allowing all dynamic lights to be used more abundantly with negligible impacts to performance, sparing them from doing visual busywork they are overqualified for. Because lightmaps are baked in quadrants at ridiculous resolutions and colour-depths, they are originally far beyond what is capable real-time although still suitable for our offline renders. To assume lightmap means low-colour fuzzy splotches of glow is just archaic, ignorant and extremely far from the modern reality of a maximum quality bake, although the scalability and efficiency factor still strongly remaining relevant.

All of these things combined provide a clear path forward, allowing for a careful balance of scalability and performance, but not merely as just a failsafe and best practice, but as a true philosophy about compromise, the very nature of game development itself. To restrict on one end of the spectrum is to strive ambitiously on the other, to nurture cautiously with one hand is to unleash with the other. Although confusing in some ways, especially concerning spline-cages and unwrapping, the small amount of extra care and attention is very much worth the huge amount of earned flexibility and security, not just now but well into the future.

.
.
.

.
.
.