Making an advanced lighting system





6,840 visits, 16,354 views


This tutorial hasn't been translated.



This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Hello, in this tutorial I want to try something different. Instead of explaining step by step how to reproduce it, I want to show the final system and explain each part bit by bit. Also, I absolutely need to make this tutorial as soon as possible because with the new Javascript in Construct 3 announcement, I am very eager to delete everything and rewrite the system in JS.

So what are we looking at?

The final result 👀

What will NOT be in this tutorial🚨

I will NOT talk about the following things:

  • Anything that is considered basic knowledge, namely anything you can find in the Construct 3 Manual or in any of the beginner tutorials That includes but is not limited to:
    • Lerp
    • Containers
    • Drawing Canvas
    • 8 direction movement
    • Shadow light
    • Additive and subtractive
    • Basic eventing knowledge
  • How to make a similar animation system as the one I used for my own tutorial.

The reasons I won't talk about these is that this is a pretty advanced system and it will require base knowledge to be able to understand and replicate everything. I also won't give any source files because it depends on many other necessary systems, and most of them will depend on the game where the lights are needed.

Everyone will have to craft their own system and most advanced systems won't simply be plug and play, and this one is a fine example of that.

EDIT: Nevermind, user eonian made a standalone file based on this tutorial and sent it to me so I could share it, so here it is:


  • Order by
Want to leave a comment? Login or Register an account!
  • This great! Thanks!

  • trying to follow your tuto, great so far but I'm confuse on the page 5:

    OBJECT POOLING and PLACE THE SHADOW screencap don'tseem to show the same nested script.

    On the first one you see the event showcaster>>> pick instance with UID=uid with direct action linked to it and other events following (not sub event) and in the 2nd screenshot you see that the condition showcaster>>> pick instance with UID=uid has some other sub event.. which one is correct?