VERDANT is a project I began in 2021 with a friend Melancholy_Mars as a hosted horror-themed roleplay game for a couple friends to play together - Essentially a scripted roleplay escape room with interactable puzzle elements. After being on hold for a long time I went through the map and redeveloped it for Future lighting (formerly voxel) using almost all new meshes, and a heavy emphasis on the new MaterialService. A photo of this build was shown at the RDC 2022 Keynote speech.

A showcase version of the map is now available to play in Alpha for 35 robux at the link below.

The most challenging aspect of porting an existing map to a new lighting style (specifically one as intensive as future) is performance considerations, particularly in rendering. I took two main approaches to easing the rendering cost - Minimizing the amount of objects casting shadows on screen, and writing a system to “deload” non-adjacent rooms to the player.

The following image is an example on how shadow costs are minimized:

The above pillar’s mesh boasts decently complex geometry for being a simple shape (~1.5k tris), making it unideal to cast shadows. So a long brick, just barely smaller than the pillar itself, is put inside of the pillar to cast shadows instead. The illusion of the pillar casting a shadow in the room is then achieved with minimal rendering time - This is one example of an affect that is used repeatedly throughout the map.

The last example has to do with Roblox’s lack of Occlusion Culling - Where the engine chooses not to render parts that are occluded by other parts. To ease this, I wrote a system that takes the room the player is in and removes specified, non-adjacent rooms. This way the game only has to render what’s in its immediate vicinity. An example of this system is shown in the video below:

There are lots of other special systems in the game that took a lot of work to craft, I hope you can play the showcase for yourself and experience them first hand! Please enjoy the gallery of screenshots from the game’s map below: