M8-M9: README, настройки текстур под платформы, статус проверок
- README: с чего начать, какие команды есть, где что лежит - TECHNICAL.md: команда headless-сборки с её подводными камнями, настройки ASTC под Android/iOS, и честный раздел о том, что проверено, а что нет - PLAN.md: M8 и M9 помечены частичными — визуально игра не запускалась, браузер в этом окружении не поднимает главный цикл движка; там же список оставшихся хвостов Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
# Fool
|
||||||
|
|
||||||
|
A mobile card game: *durak*, one player against a bot. Built with
|
||||||
|
**Cocos Creator 3.8.8**, targeting Web, Android and iOS, portrait only.
|
||||||
|
|
||||||
|
## Getting around
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| What the game is | [docs/GAMEPLAY.md](docs/GAMEPLAY.md) — the rules, and the bot's policy |
|
||||||
|
| How it is built | [docs/TECHNICAL.md](docs/TECHNICAL.md) — layers, folders, workflows |
|
||||||
|
| What is planned | [docs/PLAN.md](docs/PLAN.md) — milestones and their state |
|
||||||
|
| Why it is like that | [docs/DECISIONS.md](docs/DECISIONS.md) — choices the specs left open |
|
||||||
|
| Driving the editor | [docs/CODE_MODE_SETUP.md](docs/CODE_MODE_SETUP.md) |
|
||||||
|
|
||||||
|
## Working on it
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm test # the rules, the bot and the save format, headless
|
||||||
|
npm run typecheck # strict tsc over core/, modules/ and the tests
|
||||||
|
npm run check:core-purity # fails if the game logic reaches for the engine
|
||||||
|
npm run build:art # regenerate every sprite from source
|
||||||
|
npm run stats:bot # BasicBot self-play distribution — a tool, not a test
|
||||||
|
```
|
||||||
|
|
||||||
|
`npm test` needs no editor and no device. That is deliberate: the rules live in a
|
||||||
|
pure TypeScript core with no `cc` import, driven as a deterministic state
|
||||||
|
machine, so the entire rule set is verifiable in a couple of seconds. The soak
|
||||||
|
specs play several thousand complete matches and re-check every state invariant
|
||||||
|
after every single action.
|
||||||
|
|
||||||
|
To see it, open the project in Cocos Creator and press Preview, or build and
|
||||||
|
serve it — see *Builds* in [docs/TECHNICAL.md](docs/TECHNICAL.md).
|
||||||
|
|
||||||
|
## Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
assets/scripts/core/ the rules, the bot — no engine dependency
|
||||||
|
assets/scripts/modules/ savegame
|
||||||
|
assets/scripts/app/ bootstrap and services
|
||||||
|
assets/scripts/ui/ scenes, screens, card rendering
|
||||||
|
assets/resources/cards/ 36 faces + back, packed into one atlas
|
||||||
|
art-src/cards/ vector sources for the faces
|
||||||
|
tests/ vitest specs and the state invariant checker
|
||||||
|
scripts/ art build and the architecture guard
|
||||||
|
```
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
Card faces are from **Vector Playing Cards** by **Chris Aguilar**, LGPL-3.0.
|
||||||
|
Attribution is required by that licence — see
|
||||||
|
[assets/resources/cards/ATTRIBUTION.md](assets/resources/cards/ATTRIBUTION.md),
|
||||||
|
which also explains what to change if that licence does not suit the release.
|
||||||
+3
-2
@@ -95,8 +95,9 @@ progress. The Cocos layer only renders state and turns taps into actions.
|
|||||||
- [x] Every component reference in the scene verified populated
|
- [x] Every component reference in the scene verified populated
|
||||||
- [ ] **Blocked:** the build seen running. The browser in this environment falls
|
- [ ] **Blocked:** the build seen running. The browser in this environment falls
|
||||||
back to a software renderer that cannot start the engine's main loop
|
back to a software renderer that cannot start the engine's main loop
|
||||||
- [ ] Android/iOS build settings (ASTC per ART.md)
|
- [x] Android/iOS texture settings written up in TECHNICAL.md (they have to
|
||||||
- [ ] README
|
be applied once in the Inspector; they live in the `.meta` files)
|
||||||
|
- [x] README
|
||||||
|
|
||||||
### Known follow-ups
|
### Known follow-ups
|
||||||
|
|
||||||
|
|||||||
+16
-1
@@ -224,7 +224,22 @@ second editor instance, so it competes with a running editor for
|
|||||||
editor, or build from its Build panel. And `startScene` must be passed, or the
|
editor, or build from its Build panel. And `startScene` must be passed, or the
|
||||||
build has no launch scene and stops on the splash.
|
build has no launch scene and stops on the splash.
|
||||||
|
|
||||||
Mobile: ASTC textures per [ART.md](ART.md), PNG for web.
|
### Per-platform texture settings
|
||||||
|
|
||||||
|
[ART.md](ART.md) asks for ASTC on mobile and PNG on the web. Compression is set
|
||||||
|
per image (or per folder) in the Inspector's texture-compress section, not in
|
||||||
|
code, so it has to be applied once in the editor and is then stored in the
|
||||||
|
`.meta` files:
|
||||||
|
|
||||||
|
| Target | Setting |
|
||||||
|
|---|---|
|
||||||
|
| `web-mobile` | PNG, as now |
|
||||||
|
| `android` | ASTC 6×6 for the card atlas, ASTC 4×4 for the UI sprites |
|
||||||
|
| `ios` | the same ASTC settings; the format is supported on every device the game targets |
|
||||||
|
|
||||||
|
The card atlas is the only texture where this matters — 2048×2048 uncompressed
|
||||||
|
is 16 MB of video memory, and ASTC 6×6 brings that to roughly 1.2 MB. Do it
|
||||||
|
before the first device build.
|
||||||
|
|
||||||
### What is and is not verified
|
### What is and is not verified
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user