Shadowforge – A Week of Fixes, Improvements & More Coming
This week has been heavily focused on polishing Shadowforge's core systems.
Rather than only adding new tools, I've been going back through painting, animation, brushes, lassos, shaders, palettes, exporting, UI interaction and general stability to make everything work together much more smoothly.
There have been a lot of smaller fixes, but together they're starting to make Shadowforge feel much more solid.
Painting & Brush Improvements
Fixed canvas painting being incorrectly blocked around palettes and other UI areas.
Improved separation between canvas input and UI input.
Clicking palettes, brush controls, color controls and other interface elements should no longer accidentally create lines on the canvas.
Continued improving brush transparency handling.
Transparent areas of brush textures are respected instead of being painted as part of the brush.
Continued improving brush masks without flattening the original brush colors.
Improved Blur Brush behavior so the actual shape and transparency of the selected brush are respected.
Continued improving Multi Brush.
Reworked Multi Brush positioning so mirrored and flipped brushes stay centered instead of jumping to another position.
Mirroring and flipping now affect the brush texture rather than moving the brush away from its original painting point.
Reworked the brush preview system.
The new brush preview is centered properly and now has an outline so it is easier to see over the artwork.
Continued work on making painting feel closer to a proper painting application instead of individual disconnected sprite stamps.
Animation Workflow Improvements
The animation workflow also received quite a bit of attention this week.
Fixed an issue where pressing Add Animation Frame once could add two frames. T
The problem turned out to be a duplicate script/call rather than the original legacy animation-frame system.
Fixed issues around creating the first animation frame.
Improved the controls used for copying your layer frames into the animation-frame slots.
Moving and copying your current artwork into animation frames now feels much smoother.
Added a large film-strip / animation icon to the CTRL + E docker so the animation tools are easier to find.
Continued improving animation-frame controls and interaction.
Fixed animation-frame exporting again.
Animation frames can be exported as individual image files, making it easier to take a finished animation out of Shadowforge and use it elsewhere.
The goal is to make the process feel simple:
Paint your frames → move them into the animation slots → export all of them as individual images.
Freehand Lasso Improvements
The Freehand Lasso has continued receiving major improvements.
Improved editable lasso selections.
Cornered-style transform handles.
Handles are available on the four corners and the middle of each side.
Selections can be resized larger or smaller after being created. Continued fixing movement and transformation calculations.
Improved how the lasso communicates with Shadowforge's shader and Image systems.
One of the bigger changes is that Shadowforge is increasingly treating a lasso selection as its own editable surface.
That means effects don't have to think of the entire canvas as the target anymore.
Shader & Image Effects
This has been another major focus.
Shader previews can properly target the selected Freehand Lasso surface.
Applying an Image effect can also target the lasso surface instead of modifying the entire canvas.
Improved separation between PREVIEW and APPLY. Expensive effects are no longer supposed to recalculate unnecessarily every frame.
Added safeguards to reduce freezes and large FPS drops while previewing heavier effects.
Continued improving shader previews so what you see in PREVIEW is what you actually get when pressing APPLY.
Image tools that have continued receiving work include:
Gradient Color
Tunnel Vision
Pixel Halver
Cool & Warm
Blur Brush
Pixel Halver has had additional work around:
Transparency
Scatter
Pixel size
Protecting dark outlines
Keeping the original image underneath scattered pixels
Performance
Preview safety
Cool & Warm allows darker values to move toward cooler colors while brighter areas move toward warmer colors, with adjustable strength and different modes.
There is still more planned for these tools.
Pixel Lasso
The Pixel Lasso is also continuing to be improved.
Work has been going into:
Selection handling
Moving completed selections
Applying effects to the selected surface
Preview compatibility
Mirroring and flipping
Duplicate behavior
Mask accuracy
Painting and stamping consistency
The goal is for both Freehand Lasso and Pixel Lasso to eventually behave like proper independent editable selections throughout Shadowforge.
Recent Colors & Eye Picker
The Recent Colors system has received more fixes too.
Improved Recent Colors recording.
Colors should only be collected when actually painting or picking from the canvas.
Palette interaction should not accidentally add unwanted recent colors.
Continued fixing the CTRL + P eye picker.
Picked colors can be sent into Recent Colors.
mproved behavior while the canvas is zoomed.
Continued work on keeping color picking, background-color picking and palette interaction separate from normal painting input.
UI & Input Cleanup
A lot of this week's work has been less visible but very important.
Shadowforge has many overlapping systems now, so input handling has to be much more careful than it was in the earlier versions.
I've continued cleaning up:
Palette mouse blocking
Canvas mouse blocking
Draggable windows
Docker interaction
Timeline interaction
Selection interaction
Brush controls
Shader windows
Image menus
Layer controls
Clicking one part of Shadowforge should not accidentally trigger something completely unrelated somewhere else.
Font Upload Stability
Font importing also received a stability fix.
Previously, cancelling a font upload could result in Shadowforge trying to use an invalid font reference and crashing.
Now, cancelling the font selection simply cancels the operation.
Shadowforge ignores the command and continues running normally.
It's a small change, but these are exactly the kinds of stability fixes I've been trying to clean up throughout the editor.
Exporting Improvements
Animation export has also been repaired and cleaned up.
Your animation frames can once again be exported into separate PNG images.
This works together with the improved frame-copying workflow, making it much easier to build something inside Shadowforge and then move the finished frames into GameMaker or another project.
General Cleanup
There has also been continued work on:
Surfaces
Layer handling
Drawing order
Brush rendering
Animation storage
Canvas interaction
Shader targets
Selection surfaces
Undo/redo-related systems
UI positioning
Error prevention
Older code that needed to cooperate with newer Shadowforge systems
A lot of Shadowforge was originally built feature by feature.
Painting worked.
Animation worked.
Lassos worked.
Shaders worked.
Palettes worked.
But as the editor becomes larger, those systems need to understand each other.
A palette needs to tell the painting system:
"The user clicked me. Don't paint."
A lasso needs to tell an Image effect:
"Apply this to my surface, not the entire canvas."
A brush needs to tell Multi Brush:
"Mirror my texture around this exact center. Don't move me."
An animation button needs to add exactly one frame even though several parts of the UI can access the same system.
That connection between Shadowforge's different tools has been one of the biggest focuses of this week's development.
More Is Coming
Shadowforge is absolutely not finished.
There are still bugs I want to remove and systems I want to improve.
There will also be more actual features once some of these underlying systems are where I want them.
Shadowforge has changed enormously compared with the original versions, and I'm continuing to push it toward being a much more complete painting, pixel-art and animation tool inside the GameMaker ecosystem.
Thank you to everyone who is using Shadowforge, reporting bugs and following its development.
More fixes, improvements and features are coming.
– Miki
