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!
Documentation Report Checklist
mainbranch of the repository.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:
create*factories becomegame.*objects become your class in the gameActor: to make it composable across themAlso generally confusing things:
localStoragedocs and briefly mention ItemsHoldr as a wrapper around itScoring.tspart of the tutorial explain TimeHandlr'sreturn true&return falseActorfrom EightBittr vs. a separate module vs. a game's ownActorgroupHolder.groups.MyGroupName'sMyGroupNamecomes fromUserWrappr-Delayedbundle needs to be built withyarn distto be used locallyAlso important coming-up-eventually work:
Additional Info
Got another FAQ? I'd love to hear it!