About this project
1. Open a sprite
2. Press a button.
3. Save the generated normal map. Done!
While pixel art and 2D games are far from dead, modern techniques like normal mapping are just about to find their way into 2D games, because they make it easy to use beautiful and atmospheric dynamic lighting effects.
haven't we seen a lot of 2D games make use of this so far?
Simply because the process of creating consistent normal maps has been too complicated and costly, especially for animated art.
This is where Sprite DLight comes in:
The tool does all the work for you in a matter of seconds. Without any effort.
How is Sprite DLight different from existing normal map generators?
There are two kinds of normal map generating tools available:
Common bump mapping tools/plugins:
They can create nice effects for textures, but they tend to mess up edges and are simply unable to create a voluminous normal map from a sprite.
Lightmap-combining normal map generators:
They can produce normal maps of a very good quality, depending on the skill of the artist who draws the required 2-5 lighting profiles. However, providing the tool with multiple hand drawn versions of each sprite is time-consuming and requires some artistic knowledge.
Finn Morgan made a huge step by bringing dynamic lighting in reach of 2D game developers with his amazing Sprite Lamp, which allows for dynamic lighting in a hand painted look by combining differently shaded images of the subject, drawn by an artist.
But what if we want to use normal maps for all characters and objects of a game?
Sprite DLight is a quick and easy solution.
No drawing needed, just press a button and have the normal map created from the original sprite!
For Sprite DLight, generating a normal map from a sprite sheet of multiple
animation frames is an easy job.
Calculating the normals takes almost no time and results in a uniform shading for all frames.
With various fine-tuning options, the generated maps can be adjusted to fit the individual look of the input image and its desired three dimensional representation.
What else can be done with Sprite DLight?
The most important ability is of course easy and fast generation of the assets required to implement
dynamic lighting in 2D games, based on standard 2D art.
But there are some more neat things you can do with the tool.
Remakes/Mods of classical games
Sprite DLight helps you to do an atmospheric remake of your favourite retro game by simply processing the original sprites.
Unfortunately, I cannot show an example here due to copyright issues, but I can say that sprites in the style of Metal Slug or classical console games look amazing with normal maps.
Skeletal animation & dynamic lighting
You can also use normal mapping in combination with skeletal animation by generating a normal map for the body parts of a character.
Even if the game engine you are working with does not support the use of shaders, you can still use normal maps generated by Sprite DLight to pre-render your game assets under various lighting conditions for different environments.
Asset generation for textures
Another use of Sprite DLight is the generation of normal maps, depth maps, ambient occlusion maps and specularity maps for textures. Using the enhancement options, you can create a voluminous normal map from a simple photograph of a surface.
When working with textures, it can be desirable to combine multiple normal maps.
A common practice is to do this by blending layers in an image editing software via overlays, which does not always produce satisfying results.
Sprite DLight combines up to five normal maps in a mathematically correct way, where the intensity of each map can be adjusted.
Sprite DLight will be available for Windows, Mac and Linux systems.
Beta testing is scheduled to start shortly after the end of the campaign.
Most modern engines, particularly 3D engines like Unity, already support normal map shaders and for a few additional engines, there are already some enthusiastic developers working on shaders to integrate with Sprite DLight's normal maps.
While Sprite DLight mainly concentrates on the former artistic part of dynamic lighting, the creation of assets, I am working on a list, containing links to forum discussions related to shader integration, as well as tutorials and approaches by other people, to provide a starting point for the integration of dynamic lighting with various game engines.
Engine integration link list
How does the presence or absence of shading affect the normals?
In most cases, the artwork you will use already has some kind of shading.
This is fine for Sprite DLight and helps to give the shapes more volume.
There are some cases where extreme shading can result in steps, but the tool provides fine tuning options to smoothen out most irregularities.
If your art mainly features flat shapes, which is often the case when using vector art or very simple pixel art, the resulting normal map will still be bulky, because the shape recognition automatically produces blunt surfaces, which can be furtherly enhanced with a volume boost slider.
While there is some kind of magic involved with Sprite DLights normal map generation algorithms, the quality of the generated map certainly depends on the input image.
Sometimes, you will end up
with small discontinuities, such as the eyes of a character being represented as
two "dimples" in the normal map, if they were dark areas surrounded by
lighter colors in the original image.
Usually, this is not critical to the overall look, but if you want the normal maps to be absolutely perfect, it can be countered with simple adjustments to a copy of the original sprite, which can then be used as the input image for Sprite DLight.
This is very easy to do, however I will provide a tutorial on it.
For optimal results, the background should consist of one plain color (JPG artifacts result in poor normal maps) and drop shadows should be removed.
How will Sprite DLight's normal maps look for my art?
Processing a sprite with Sprite DLight is always exciting.
"What will my game character look like with dynamic lighting?"
To share this experience, I'm planning to publish previews of user-submitted art even before the beta starts, so please feel free to send me a link to your art via the "Contact me" button on this project page.
I intend to regularly process some of the art I receive this way and to include it in public updates to establish a pool of examples for different styles.
If you would like to see normal maps generated from your sprites, please provide the copyright information and proper attribution for the submitted art and please state clearly that you are the copyright holder and agree that the provided artwork may be publicly shown in conjunction with Sprite DLight.
There's still a few bugs...
What you see in the video is what the tool already can do.
All major features work and I can now concentrate on polishing things up.
One of the main goals of Sprite DLight is to provide a simple and pleasant user experience, so it can be smoothly integrated into any developer's workflow.
The code now needs to be simplified and optimized in terms of performance and memory usage and I have to polish the interface and test the tool on different systems.
Some of the more trivial things like batch processing, profiles for user defined settings and drag&drop functionalities are yet to be implemented.
It has always been a dream for me to use colorful dynamic lighting on 2D characters and I am sure that some of you share
There is still some work to be done to make this tool a professional software every 2D game developer can use, and that is what I need your help for.
I will bring Sprite DLight to a releasable state regardless of whether this campaign succeeds, however, with your support, I can invest some more time to make it more professional and versatile.
Another reason for choosing Kickstarter is that I hope to find a community of sympathizers here, who can give some more feedback to make the tool the best possible.
What happens to the raised funds?
Around 10% will be taken by Kickstarter and Amazon.
An unknown amount will be eaten by taxes.
100$ go to Steam for the Greenlight submission fee.
Most of the rest will go towards my living cost for the past and future time of development, and to hardware upgrades like additional disk space and a Mac to develop the Mac version on.
Special thanks to AlbertoV from DYA Games for creating the outstanding title sprite for Sprite DLight.
Thanks to Jonas Jelli for writing the Spine Shader Tool used in the video and on this page.
Thanks to Finn Morgan from Snake Hill Games for allowing me to use his Sprite Lamp Shader for previews in the video and on this page.
Thanks to these awesome artists and game developers who gave me the permission to use their wonderful artwork to demonstrate the tool:
- AlbertoV from DYA Games (dyagames.com)
Ivann Dimitrov and Theo Torregrossa, developers of "Bravery and Greed" (facebook.com/BraveryAndGreed)
- Bodie Lee from Lunar Ray Games, developer of "Timespinner" (timespinnergame.com)
- Philipp Lauthner (lauthner.com)
- Kevin Chaloux a.k.a. Kaiseto (kaiseto.deviantart.com)
- Jasson Prestiliano and the team of Enthrean Guardian, developers of "Renegade Death"(facebook.com/renegath, enthrean.com)
- Guido Bos a.k.a. Neorice (neorice.com)
- Dave Welch from Experimental Gamer, developer of "Boot Hill Heroes" (experimentalgamer.com)
Thanks to Katrin Russell for helping me out with project planning, phrasing checks and creative ideas.
Artwork and shaders used in the video and on this page
All artwork and shaders seen on this page and in the video are not part of the software and are only used for demonstration purposes to show the functionality of Sprite DLight.
As such, all art is subject to the copyright of
the respective owner and the license under which it was published.
The sprites used in the headlines are enemy sprites from "Mean Deeps", © 2010-2014 AlbertoV (DYA Games).
Risks and challenges
Unfortunately, too many creative projects fail because they promise things they cannot deliver or there isn't enough material to convince people of a great vision.
I have enough faith in the success of Sprite DLight and the opportunities it brings for game developers, that I have decided not to launch the project until I can safely say that I can keep all the promises.
That is why I have taken the risk and the expenses to do most of the work before starting this campaign.
There is always a risk of hardware problems or things in the software that take more time to be fixed than I expect them to.
As Sprite DLight is not too far from a releasable state, these could only result in small delays, however, the estimated release date is calculated with a buffer to take unforeseen difficulties into account.
Just in case of something happening that would prevent me from completing the work on Sprite DLight, the source code will be made available.Learn about accountability on Kickstarter
Support this project
- (31 days)