Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Library-ify Common Functionality #366

Open
14 tasks
dylwhich opened this issue Dec 4, 2022 · 1 comment
Open
14 tasks

Library-ify Common Functionality #366

dylwhich opened this issue Dec 4, 2022 · 1 comment
Labels
enhancement New feature or request future

Comments

@dylwhich
Copy link
Collaborator

dylwhich commented Dec 4, 2022

Create libraries with nice straightforward interfaces to replace common functionality with multiple implementations across various modes. These libraries should have black-box implementations so that no messing about with internal structs is ever necessary (or possible). Ideal candidates would be anything that is tedious or error-prone to implement and is needed by multiple modes, or that would be likely to see use in multiple nodes if not for the effort of implementing it.

Potential candidates:

  • Timing based functionality such as idle timers
  • Handling "cheat code" style input
  • Advanced input functionality, such as:
    • Handling double-press or distinguishing between a quick press vs. a press-and-hold
    • Button auto-repeating
    • Button chording
    • Using the touchpad as an arbitrary number of buttons
    • Scaling touchpad output
    • Touchpad swipes
  • Managing high score lists
  • Layout utilities such as centering text or drawing arrows
  • Easier font handling (if we don't do memory-mapped assets)
  • Advanced multi-level menus with native support for configuration values, confirmations, etc., independent of rendering
  • Separate menu functionality from menu visuals/rendering
@dylwhich dylwhich added enhancement New feature or request future labels Dec 4, 2022
@AEFeinstein
Copy link
Owner

Advanced button input, menus, and layout utils all seem pretty good to me.

High scores may be a bit game-dependent to abstract away. Last year's FPS had splits for level and difficulty. Fighter keeps W-L records, etc.

Historically I haven't given much thought to API design. It's been a lot of writing features for myself, then generifying them. I'm open to ideas, but I'd strongly recommend discussing them first before getting to writing code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request future
Projects
None yet
Development

No branches or pull requests

2 participants