Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Hey Thornido, great component kit, thank you for creating this! Here are some feedback notes and requests from using it: 

What's working well

Zero-autoload, zero-cross-dependency discipline. Every addon standing alone is the single biggest reason we could plan a-la-carte adoption (upgrade tree + achievements + save core) instead of all-or-nothing.

Logic/UI split + signal-driven APIs. Clean seams for replacing the front-end while keeping the model.

The demos. Playable demos per component sold the pack better than any screenshot; I could instantly see the solid UX patterns and their usefulness.

Requests, in priority order for us

  1. Keyboard-first navigation on every UI component. Our game (and any controller-first game) hides the mouse cursor. Inventory, shop, and upgrade tree are mouse-driven today. A focus model driven by ui_* actions would make the whole pack usable in keyboard/gamepad games out of the box.

  2. Expose the model without the UI. The upgrade tree is the best example: the node/cost/prerequisite/purchase logic is exactly what we want, but we need to render it in our own idiom (typed selection, pixel font). A documented "headless" API per component (model class + signals, UI purely optional) would double where the pack fits.

  3. Central theming. One theme resource (font, colors, panel styles) consumed by all components. Right now restyling means editing scenes per component. Even just routing everything through a single Theme would help enormously.

  4. Pause-safe overlays, documented. Menus/overlays opened while get_tree().paused need deliberate process_mode choices. We hit this repeatedly in our own UI; a stated convention (and ALWAYS-mode demos for pause menus) would save integrators real debugging time.

  5. Status effects: explicit stacking policies. Refresh vs. stack vs. extend per effect, and signed/percent ticks. We have a live bug in our hand-rolled slow effect (overlapping slows save each other's modified speed) that a well-specified stacking model prevents by design.

  6. Save system: versioning + migration examples. The register(save_func, load_func) core is the right shape; a worked example of migrating a save across schema versions would make it trustworthy enough to adopt early rather than late.

  7. Loot tables: pity/guarantee rules. "Guarantee at least one X every N rolls" as a first-class table option - we hand-rolled exactly this for a guaranteed drop category and suspect every roguelite does.

  8. Cooldown radial-wipe as a standalone control. The radial wipe is the most reusable 40 lines in the pack; publishing it as a self-contained Control/shader (feed it a 0..1 progress) would let games use it for any meter, not just cooldowns.

  9. Finalize the license text. The LICENSE file describes itself as a draft. The terms are fine (in-game use incl. commercial, no standalone redistribution) - just removing the word "draft" would spare every buyer the double-check we did.

Small bug/paper-cut notes

A couple of demo scenes assume a 16:9 base resolution and clip at other window sizes.

Inventory demo: drag-and-drop works, but there's no keyboard path to the same operations (see request #1).

Hi SUPER-TRON,

Thank you so much for the detailed feedback — really appreciate you taking the time to write this up! Your notes are spot on and we'll be working on them.

We also have a new update coming soon with additional components, so stay tuned!

Thanks again for the support.