Fallout New Vegas

Video information

Added on

Uploaded by

Radioactivelad

About this video

If you've ever done any level-making in bethesda's engine, you're familiar with how lights can "bleed" through walls. This looks unsightly and can cause visual glitches if an object is receiving light from too many sources at once. Additionally, active light sources are one of the biggest performance drains in the engine and having too many can quickly reduce FPS regardless of your machine. To make matters worse, light objects are unaffected by the game's built-in culling systems.

So, I devised this relatively simple solution! In this cell I use a Trigger box encompassing the entire bottom half of this cell to manage the lights directly. When the player enters the box, a OnTriggerEnter script block runs: the lights on the ground floor are disabled, and the basement lights are turned on. When the player exits the box, a OnTriggerExit script block runs: the basement lights are disabled, and the ground floor lights are turned on.

As the player character in the bottom right jumps, exiting the Trigger Box at the height of their jump, you can see the lights switching on each floor accordingly

By leaving lights on in the transitional areas, that is the utility hallway, and the top platform of the stairs, the player can't tell anything is happening as they move between floors.

This technique gives you as a level-designer so much more freedom with lighting as you no longer have to worry about lights in one room bleeding in to another, while also saving performance by reducing the number of active lights.

Additionally, this technique could be used to make "impossible" levels, by disabling and enabling static objects as the player moves through transistional areas. (Though there are many limitations with this in regards to navmeshing.)

1 comment

  1. harimau93
    harimau93
    • member
    • 19 kudos
    Locked
    Sticky
    ..
  2. Battenburga
    Battenburga
    • supporter
    • 24 kudos
    This is very cool, not something I had thought of before. Thanks!