add community health files
- LICENSE (MIT) - CONTRIBUTING.md - CODE_OF_CONDUCT.md - SECURITY.md - .github/PULL_REQUEST_TEMPLATE.md - .github/ISSUE_TEMPLATE/bug_report.md - .github/ISSUE_TEMPLATE/feature_request.md - .github/FUNDING.yml
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Как вносить изменения
|
||||
|
||||
Спасибо, что хочешь улучшить проект! Это живая база рогалика, и любая помощь
|
||||
пригодится. Пожалуйста, следуй правилам ниже — они сохраняют архитектуру.
|
||||
|
||||
## Прежде чем писать код
|
||||
|
||||
1. Прочитай [`CLAUDE.md`](./CLAUDE.md) — там золотые правила архитектуры.
|
||||
2. Почитай [`docs/HOWTO.md`](./docs/HOWTO.md) — там рецепты для типовых задач.
|
||||
3. Посмотри [`docs/ARCHITECTURE.md`](./docs/ARCHITECTURE.md) — пойми потоки данных.
|
||||
|
||||
## Процесс
|
||||
|
||||
1. Создай issue (баг или фича) — чтобы обсудить до начала работы.
|
||||
2. Форкни репозиторий и создай ветку от `main`:
|
||||
```bash
|
||||
git checkout -b feature/что-делаешь
|
||||
```
|
||||
3. Пиши код, следуя стилю проекта:
|
||||
- TypeScript strict, без `any`
|
||||
- Комментарии по-русски, объясняют «почему», а не «что»
|
||||
- Маленькие чистые функции; классы — для сущностей/состояния
|
||||
4. Убедись, что всё зелёное:
|
||||
```bash
|
||||
bun run check # typecheck + tests
|
||||
```
|
||||
5. Если менял логику — **добавь/обнови тест** в `tests/`.
|
||||
6. Если менял геймплей/рендер — **проверь в браузере** (`bun run dev`).
|
||||
7. Обнови доки, если поменялось поведение или структура.
|
||||
8. Создай Pull Request с описанием изменений.
|
||||
|
||||
## Золотые правила (нарушать = ломать)
|
||||
|
||||
1. **Ядро без рендера и DOM.** В `src/core/` нельзя импортировать `three`,
|
||||
обращаться к `window`/`document`/`canvas`.
|
||||
2. **Рендер ничего не меняет в игре.** `src/render/` только читает и рисует.
|
||||
3. **Случайность только через `Rng`.** Никаких `Math.random()` в `core/`.
|
||||
4. **Время — в шагах (1/60 с).** Не двигай ничего в rAF или рендере.
|
||||
5. **Числа — не в коде.** Константы — в `src/config.ts`, параметры забега —
|
||||
в `src/core/rules.ts`.
|
||||
6. **Освобождай ресурсы three.js** — `dispose()` геометрию/материалы при удалении.
|
||||
7. **Перед коммитом — `bun run check`.**
|
||||
|
||||
## Чего не делать
|
||||
|
||||
- Не добавлять тяжёлые зависимости (физдвижки, фреймворки).
|
||||
- Не переписывать архитектуру «ядро ↔ рендер».
|
||||
- Не коммитить `dist/` и `node_modules/`.
|
||||
- Не превращать игру в полноценное 3D без обсуждения.
|
||||
Reference in New Issue
Block a user