feat: add server and frontend initial - wood chopping

This commit is contained in:
2026-09-05 16:37:45 +05:00
parent c79681dc59
commit f6c338e1b0
28 changed files with 1857 additions and 195 deletions
+9 -1
View File
@@ -15,12 +15,17 @@
| Клиенты | Svelte 5 + PixiJS 8 (8.x) + bitecs 0.4 |
| Сервер | Node.js, `node:http` + `ws` + `sirv` (без фреймворка), симуляция на bitecs |
| Twitch | `@twurple/easy-bot` (чтение команд + ответы в чат), `@twurple/eventsub-ws` (Channel Points) |
| БД | SQLite (`better-sqlite3`) через тонкий слой репозиториев |
| БД | SQLite через тонкий слой persist. M1: встроенный `node:sqlite` (Node ≥24, без нативных сборок и install-скриптов); замена на `better-sqlite3`/др. — при необходимости, не трогая остальной код |
Решения по ECS: **bitecs, новый API 0.4** (в 0.4 API переписан; старый доступен как `bitecs/legacy`).
Запасной вариант — koota (pmndrs), если новый API окажется слишком зубодробительным.
miniplex отклонён (объектный оверхед + не развивается с 2023).
**Уточнение по факту M1:** вертикальный срез сделан на plain TS за узким интерфейсом
`SimWorld` (сущностей — десятки, выгод от ECS ноль, а 0.4 требует чтения исходников).
Решение по ECS — в M2 по факту роста: bitecs 0.4, koota или остаться на plain TS,
если масштабы не потребуют.
## Архитектура
```txt
@@ -195,6 +200,9 @@ Twitch не используем. На старте все зрители с о
3. **Решено: идём полностью на бесплатном.** База — Kenney (CC0); OpenGameArt — с проверкой
лицензии каждого ассета. Платные паки (LimeZu ≈ $5) — опция на потом, если захочется
единого стиля
4. **M1 — процедурные спрайты в коде** (человечек, топор, деревья рисуются Pixi-графикой):
ноль лицензионных рисков и мгновенные правки; паки подключаем с M2, заменив
`AvatarView`/`TreeView` в `render`
## Идеи на потом