A lot of what makes games truly shine happens without the players consciously knowing. Characters and scenes just look really good sometimes, but without even a rudimentary understanding of programming or software, it becomes a lot more difficult to identify why something looks good. German software developer Dennis Faas believes that one key component to quality looking games is dynamic lighting effects. It just so happens that Faas has announced a Kickstarter campaign for his program Sprite Dlight that claims to make implementing dynamic lighting a whole lot easier for any developer.
Already successfully funded on Kickstarter, Sprite Dlight is designed to take a lot of the repetitiveness and reliance on artistic skills out of the picture to make dynamic lighting effects possible for any 2D images.
Deciding to leave much of the technical explanations to Faas, we wanted to sit down with him to learn how his tool worked and how it can benefit the game development community.
Jesse Tannous: Can you share some of the reasons why you developed this tool?
Dennis Faas: Many of us grew up in a time where games were restricted to two dimensions, low resolution and a limited color palette. That is probably one of the reasons why we still love pixel art and 2D games in a modern age that provides technologies for games almost as realistic as life itself. But why shouldn’t we combine the amazing look of 2D games with some of these? Imagine a pixel art character being affected by the atmospheric lighting of campfires and other light sources, depending on the angle and the distance to them. All that can be achieved with some basic 3D information for two dimensional characters and objects. While there have been approaches to make hand painting of that 3D information easier, Sprite DLight generates it automatically, based only on the already available 2D art.
JT: For the non-programmers out there can you explain what Sprite DLight actually does?
DF: Sprite DLight uses simple images of game characters or objects or even sheets containing multiple animation frames of a character and estimates 3D information for them. Based on the shapes and surface details of the input image, the tool calculates a normal vector for every pixel to determine the direction the pixel faces in 3D space. Using this additional image together with the original sprite and a light source allows for beautiful dynamic lighting effects in games. Sprite DLight also has an internal lighting preview, which makes it possible to simulate dynamic lighting on any 2D image.
JT: How do you believe Sprite DLight will improve game developer experiences or make their work simpler?
DF: Dynamic lighting is one of these dreams many developers have, but the possibilities to achieve this in an acceptable quality have been restricted to hand painting multiple versions of the same subject, which would be a huge amount of effort when doing it for all characters and objects of a game, that is why we have rarely seen it to date.
To use Sprite DLight, you don’t have to be an artist or mathematician, you just feed it with one or multiple images, adjust the settings to your needs and let the tool do the rest. I believe this technique will be used in quite some games soon, because dynamic lighting is an improvement for any game, and why shouldn’t you use it when it can be done with almost no effort?
JT: On average how much potential time could developers save by utilizing the functionality of this program?
DF: It depends on the number of assets you want to process, and it depends on the tools and the workflow you would use instead of it. I won’t go deep into detail regarding common normal map generators, as they can only achieve a “bevelish” look for a surface. For a simple game with 3 different characters, where each character has 5 different animations, consisting of 8 frames, you would have 120 frames.
If you take the route of hand painting the shading from the cardinal directions and calculating the normals based on these, it would be 120×4=480 images you would have to draw by hand, before processing them. Processing these 120 frames (and probably some environment objects) with Sprite DLight would require you to set the desired intensity and wait a few seconds until all images are done.
So, on average I would say, you could save a shedload of time.
JT: What are the biggest downsides to the program at this moment? Are they things that can be fixed?
DF: At this time, the tool is still in an early development phase, so there are of course things that are not yet optimized. For the tool, it is also sometimes hard to guess if an area inside an image is concave or convex, just as it can be for the eye.
You won’t always be able to generate perfect normal maps with it, but the feedback I got so far makes me confident that the quality is good enough for most purposes. However, there is still room for improvements and that is why I have been asked to add a feature for manual artistic control, which is already planned and introduced as the 4th stretch goal.
JT: Does this program benefit inexperienced or veteran developers more? Would this be a good learning tool for students studying game development? How?
DF: From an artistic point of view, there is a lot to learn about shading and how colors interact.
On the technical side, it could be a good match for shader programming exercises and an example for the combination of 2D and 3D technologies. As the use of Sprite DLight is very simple and straightforward, beginners will benefit from it just as much as experienced developers.
My main goal is to make dynamic lighting possible for every game developer and I am glad to provide something that helps to give indie games more atmosphere and to make them look more awesome.
If Sprite Dlight ends up performing as described then it may be on the fast track to become a favored tool of amateur developers lacking the required technical or artistic skills needed for dynamic lighting effects, while also benefiting more established studios looking to save on time and resources.
Jesse is a reporter first who just happens to love video games and enjoys writing video game related articles and interviewing industry professionals.