Light and level creation best practices

Hi everyone,

I’m currently working on a 2.5D platform game based within very confined areas. It’s basically a long flow of rooms, corridors and different floors. I’ve created the basic game-play elements within test levels which are quite small, but now I’ll start creating the levels themselves which are huge.

To achieve the lighting in the game, I must place a certain number of point lights. Unfortunately, the more point lights I put into the scene, the more draw calls I get. I’d like to get answers to my questions before I’m too far off into a false direction with my level creation.

(btw. the target platform is PC/Mac, not iWhatSoEver)

So my question:

  1. How would I light huge scene with several dozens of lights in it?

  2. If I had to use pre-calculated light-mapping (Beast), how do I have to setup my scene? Do I remove my lights after the scene has been illuminated?

  3. I’ve a lot of assets that can be placed in the scene. This also includes wall and floor prefabs. Usually a floor prefab measures 2x4m. If I take into consideration the size of my levels, I easily can have 800-1000 floor prefabs a scene. Would that be ok or would it be better to generate the level meshes within a modelling tool?

Thanks for your help :slight_smile:

Hi Metron,
Judging from your other post ( amazing) you have some experience in the game industry, while I am doing my first steps, but I will try to share some little findings I made.

  1. Static lighting : Create the desired look for static object by placing lights as needed. Bake the lightmaps and then, remove the lights. Change the shaders of the static objects to Mobile/Unlit(supports lightmaps).

  2. Static meshes : Mark them as static and check static batching in Menu → Edit → Project settings → Player. Check the docs for using occlusion. Combine geometry in your modelling app or using Batching Tools ( i am biased, since I made 'em ).

3.Dynamic lights : Are they really necessary ? If so, could they only affect the player ? You can set the objects in layers and make light affect only certain layers ( e.g. Player layer ).

4.Dynamic objects: You could combine their geometry too. There are certain “sweet spots” depending on the target platform when trying to balance the number of draw calls and the number of vertices per draw calls.

I hope you find the above suggestions helpful, best luck with your project,
-Ippokratis