FORGED / INTRO CINEMATICForged
Loot together. Level up. Face off. A couch split-screen action RPG battle royale with four classes, procedural arenas, and a storm that keeps everyone moving.
We build tools that get out of your way.
And worlds you’ll want to get lost in.
01 / THE WORKSHOP
From a cleaner desktop to your next dungeon.
Different problems. Same itch to build.
FORGED / INTRO CINEMATICLoot together. Level up. Face off. A couch split-screen action RPG battle royale with four classes, procedural arenas, and a storm that keeps everyone moving.
background → gone.Turn keyed art and sprite sheets into clean transparent PNGs. Remove magenta, checkerboard, or solid backgrounds, split assets, and make icons.
Explore TransparentMaker ↗A little more room to do your thing. Show or hide the Windows taskbar with a hotkey, including taskbars across multiple monitors.
Explore TaskbarToggle ↗UNDER THE HOOD
From the game loop to the desktop shell. Take a look at the details that make the projects work.
func _simulate(delta: float) -> void:
# Release-point countdown (fixed tick, rule #6): the attack clip is already playing;
# the strike/launch resolves the tick it crosses the clip's release frame, sampling
# the muzzle from the NOW-raised weapon pose (cf. the monster casters' windup).
if _release_t > 0.0:
_release_t -= delta
if _release_t <= 0.0:
_resolve_release()
if _active_skill_sid != "" and _release_skill == "" and _swing_cd <= 0.0:
_advance_skill_sequence()
_simulate_resources(delta)A simulation step with a clear order. Read the note ↗
def detect_background(rgba: np.ndarray) -> str:
"""Classify the background: existing alpha, magenta key, checker, or solid."""
if (rgba[:, :, 3] < 250).mean() >= 0.05:
return BG_ALPHA
ring = _border_ring(rgba)
rgb = ring[:, :3].astype(np.float32)
if _magenta_mask_flat(rgb, DEFAULT_KEY_TOLERANCE).mean() >= 0.35:
return BG_MAGENTA
spread = rgb.max(axis=1) - rgb.min(axis=1)First, understand the background. Read the note ↗
def set_full_screen_workarea():
screen_width = user32.GetSystemMetrics(0)
screen_height = user32.GetSystemMetrics(1)
full_rect = ctypes.wintypes.RECT(0, 0, screen_width, screen_height)
user32.SystemParametersInfoW(SPI_SETWORKAREA, 0, ctypes.byref(full_rect), 0)
logging.info(
f"Work area set to full screen for primary monitor: {screen_width}x{screen_height}"
)Visibility is only half the job. Read the note ↗
02 / THE STUDIO
updawg studio is a home for practical software and playful ideas. Sometimes that means fixing one small, persistent annoyance. Sometimes it means building an entire world in Godot.
The thread running through it all: curiosity, a hands-on approach, and the belief that the things we use should feel good to use.
03 / SAY HEY
Got a question, an idea, or just a very good dog photo?
admin@updawg.studio ↗