Skip to content

📝 Documentation: Add (more) FAQs #323

@JoshuaKGoldberg

Description

@JoshuaKGoldberg

Documentation Report Checklist

Overview

There are a lot of design decisions in EightBittr that make much more sense in the context of 8bit retro games than in more general game engines (or, at least that I thought did when I set them up many many years ago). For example:

  • Why sections are set up the way they are with BabyIoc
    • Including: how core game property create* factories become game.* objects become your class in the game
  • Groups decoupled from actors: so actors can switch between groups
  • Sprite graphics decoupled from actors: so multiple actors can refer to the same sprite
  • Sprite graphics in the run-length encoding (RLE) format: because at the tiny size most sprites are at, it's more efficient than gif/webp/etc.
  • Very few game module & sections are built-in: for optimal load performance (smallest bundle size) in even small projects, at the slight developer experience cost during project setup time
  • Generics forwarding: because TypeScript tells us to
  • Mocha for tests instead of Jest/Ava/Vitest: to run in browser
  • Why many modules have their own Actor: to make it composable across them
  • What's in the core game vs. wrapping UI

Also generally confusing things:

  • In the items storage tutorial, include a link to localStorage docs and briefly mention ItemsHoldr as a wrapper around it
  • In the Scoring.ts part of the tutorial explain TimeHandlr's return true & return false
  • When to use Actor from EightBittr vs. a separate module vs. a game's own Actor
  • Where groupHolder.groups.MyGroupName's MyGroupName comes from
  • That UserWrappr's UserWrappr-Delayed bundle needs to be built with yarn dist to be used locally

Also important coming-up-eventually work:

Additional Info

Got another FAQ? I'd love to hear it!

Metadata

Metadata

Labels

area: documentationImprovements or additions to documentationstatus: accepting prsGo ahead and send a pull request to resolve this issue!

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions