Swadge 2024 2.0.0
APIs to develop games for the Magfest Swadge
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Swadge Design Principles

The principles here should guide the development of a Swadge’s hardware and firmware. Most of the principles here are guidelines, not hard requirements. When in doubt, talk out ideas in our Slack channel, #super-circuitboards.

General Design Principles

  • Swadges should not largely rely on at-event infrastructure and should be fully usable after Magfest.
    • This principle may be broken if the feature that requires infrastructure is really cool. Talk it out in the Slack channel first before requiring infrastructure.
  • At least one Swadge mode should have wireless connectivity features, like a PvP game
    • Wireless connectivity between Swadges may be less useful after Magfest.
  • If a Swadge is turned on and left idle, it should display cool flashing LEDS.
    • This idle mode should be as power-efficient as possible
  • Swadges should have at least one secret or easter egg

Swadge Mode Design Principles

  • Modes should try to fit the current theme of the event by:
    • Using themed sprites
    • Using a themed font
    • Using the theme’s colors
  • Modes should use as much available hardware as possible, including, but not limited to:
    • LED effects
    • Sound effects
    • Accelerometer input
    • Touchpad input
  • Modes should be polished, which means:
    • No bugs
    • Looks pretty
    • Has intuitive UI
  • Modes should be simple. Overly complex modes are hard to explain and understand, and users will engage with them less.
    • Guided tutorials are good. If there is one, force users to do it once. Tutorials should also be easily accessible to do again.
    • Learning through gameplay by gradually introducing mechanics is great. This is how Nintendo gamifies learning.
  • Modes should be designed with a playtime of 1-5 minutes per session.
    • Larger games should have a way to save progress at this interval.
    • Modes should save options between sessions.
  • Modes should have an incentive to play and should celebrate🎉 when progress is made. Incentives can be:
    • Unlockable assets (pictures, songs)
    • Unlockable gameplay (new characters, new levels)
    • A story that progresses
    • Getting a high score (this is kind of boring alone, make sure there’s flair🎊)

Hardware Design Principles

  • The Swadge shape must be designed to the fit the theme of the event
    • A distinctive theme-specific silhouette is preferable
    • The shape should consider ergonomics
  • The Swadge must be designed to be worn on a lanyard.
  • There must be two Swadge variants, one for pre-order and one for purchase at Magfest
    • The two Swadge variants should have a sufficiently distinct color scheme.
    • Think of the pre-order Swadge like a Shiny Pokemon
  • The Swadge should be physically durable. Use cases include:
    • Dangling on a lanyard when dancing at a concert
    • Being shoved in a tight bag during transit
  • If the Swadge uses new or delicate parts, destructively test them until we’re confident the failure rate is near zero.
  • The Swadge should only include hardware if it is used by modes.
    • For example, do not include an accelerometer if it is used by very few modes.
  • If applicable, have a way to calibrate analog inputs.
  • Battery life should last the duration of the event with standard use.
  • Physical user interface should be intuitive.
    • D-Pad input is common and well understood.
    • A dedicated mode select button is better than a button combo or menu option.
    • Buttons should have silkscreen labels.
  • The Swadge may have 3D printable accessories
    • If we sell accessories, they must be budgeted ahead of time and ordered at the same time as the Swadges themselves.
    • If being sold, print files for accessories should be made publicly available two weeks before Magfest.
    • If not being sold, print files can be made available as early as desired.

Manual Design Principles

  • The manual should fit on an 8.5x11” sheet of paper, double sided
    • The sheet of paper may be folded
    • A high-polish manual is hard to make and even harder to sell
  • The manual should be posted to https://swadge.com/ in HTML form
    • Posting a PDF of the manual is fine, but making a web friendly version is better
  • The manual may be included in the Swadge itself if practical

Firmware Development Principles

  • Before development begins, an outline and feature milestones of the mode should be written down and shared with the team.
  • Some milestones should be designated as the ‘finished mode.’ It’s OK to have milestones after this point, like stretch goals.
  • At each milestone, the mode should be shown off to the team, to receive feedback and guide development
  • Work on optional milestones only after essential milestones are completed