Making Of / 04 September 2024

Concord: World Art and Lighting Tools

Backstory: I had the pleasure and honor of writing and developing a lot of workflow and QOL tools for both lighting and the world art team at Firewalk studios for Concord. Below are the collection of some of the most impactful tools I was able to contribute to: 


Concord's lighting mainly used the conventional 'baked' lightmap approach for indirect diffuse lighting. We had to come up with a lot of workflow tools to aid artists in the process. Above is the collection of many debug, performance, QOL tools used by the lighting and world art teams.


1. Golden Path Nodes: Lightmap texel density automation

  • Since we baked lightmaps for all maps, we needed a robust system to determine and set lightmap resolution to maintain a consistent lightmap texel density across all the assets receiving lightmaps

  • We opted towards building a 'Golden Path Node' approach where the lighting artists place volumes to define play space and off play space areas

  • Since lightmaps are essentially textures that can have a significant disk space overhead, artists could define where to use the lightmap budget. For example, assets closer to play space would receive 2x the lightmap texel density compared to assets outside play space 

  • These volumes allowed the artist to set texel density, fall offs, exceptions etc. This way we were able to just throw in assets as we want, place these volumes and let the system automatically calculate, set the lightmap resolution on each asset in the map  

  • I designed the developed the Golden Path System for Concord. Thanks to the very talented Tomas Savickas who helped build on the volume system to add more control like shapes, blending control and live editing on maps

Example of production maps and their lightmap texel density after using the golden path tools and workflow (yellow signifies these assets are not lightmapped)


2. Static Mesh Batch Functions

  • Concord is a live service PvP competitive game that was locked at 60fps on PS5. It was crucial for us to optimize on lightmap memory, shadow casting costs and bake times as much as possible

  • Static Mesh Batch functions was another automation script which allowed users to set certain parameters like whether asset should be lightmapped or whether the asset needs to cast dynamic shadows with a click of a button

  • Lighting artists could set parameters like surface area or volume thresholds for which the tool would sweep the entire map and disable/enable shadowing based on those parameters.

  • Additionally, we also had automation scripts that would raycast to check whether assets needed to contribute to dynamic shadowing purely based on the context of their position and location

  • We had a suite of tools on Concord to achieve the ~16ms frame time. Above examples are some but not all the automations and tools we developed over the years. Huge shout out to the entire Technical Art team for collaborating on various aspects of this. Forever thankful to have worked with such an amazing team