Why 2D sprites need normal maps
A flat sprite under a 2D light just gets brighter or darker as a whole. A normal map tells the engine which way each pixel faces, so the side of a barrel turned to a torch lights up while the other side falls into shadow. Godot 4 (with Light2D and a CanvasTexture) and Unity's URP 2D lights both use them. Painting one by hand means painting the sprite again in strange colours, which is why most indie games skip it.
How the map is made
Shape from the outline. The tool measures how far each pixel is from the edge of the sprite and turns that into a rounded or bevelled shape, so the sprite looks like a pillow or a coin instead of a sticker. A sprite sheet works too, because every frame has its own outline. Detail from your shading. The light and dark parts you already painted add bumps and dents, with large-scale shading removed so a dark side does not become a hole. Normal map. The height is turned into a tangent-space normal map. Choose OpenGL for Godot and Unity and DirectX for Unreal. Pixel art mode keeps hard pixel steps and skips smoothing.
Using it in Godot and Unity
In Godot 4, create a CanvasTexture, put the sprite in Diffuse and the normal map in Normal Map, and use it as the Sprite2D texture. Add a PointLight2D. In Unity with URP 2D, open the sprite in the Sprite Editor, go to Secondary Textures, add _NormalMap with the normal map, and use a Light 2D with Normal Maps enabled. The Pro download includes a ready CanvasTexture file for Godot and an editor script that does the Unity step for you.
Is my sprite uploaded?
No. Everything happens in your browser.