-
-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Labels
area: documentationImprovements or additions to documentationImprovements or additions to documentationstatus: accepting prsGo ahead and send a pull request to resolve this issue!Go ahead and send a pull request to resolve this issue!
Description
Documentation Report Checklist
- I have pulled the latest
mainbranch of the repository. - I have searched for related issues and found none that matched my issue.
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 becomegame.*objects become your class in the game
- Including: how core game property
- 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
localStoragedocs and briefly mention ItemsHoldr as a wrapper around it - In the
Scoring.tspart of the tutorial explain TimeHandlr'sreturn true&return false - When to use
Actorfrom EightBittr vs. a separate module vs. a game's ownActor - Where
groupHolder.groups.MyGroupName'sMyGroupNamecomes from - That UserWrappr's
UserWrappr-Delayedbundle needs to be built withyarn distto be used locally
Also important coming-up-eventually work:
- QuadsKeepr quadrants instead of a quad tree: Overhaul collision detection, such as with a quad tree #189
- Bloated Actor objects: Use a small Box interface instead of a full Thing for collision detection #190
- Canvas instead of WebGL: PixelDrawr: Investigate using WebGL #206
Additional Info
Got another FAQ? I'd love to hear it!
Metadata
Metadata
Assignees
Labels
area: documentationImprovements or additions to documentationImprovements or additions to documentationstatus: accepting prsGo ahead and send a pull request to resolve this issue!Go ahead and send a pull request to resolve this issue!