# Контрибьютить сюда нельзя

Коротко: **это личный проект, пишу его только я — Никита.**

Любой pull request будет закрыт. Не потому что он плохой — я его даже не
открою. Потому что потому.

## Почему так

* Это мой движок, и вкус тут мой. Половина решений «неправильные» — и они
  такие нарочно.
* Ревьюить чужой код я не хочу и не буду. Принимать не глядя — свинство.
* Мне проще написать самому, чем объяснять, почему надо иначе.
* Движок пишут ИИ-агенты под моим присмотром. Третьего мнения тут не
  помещается.
* Свой говнокод я и сам разберу. Чужой разбирать — не подписывался.

Так что **не тратьте вечер на патч**. Он не будет влит. Правда, без обид.

## Не нравится — делайте форк

[LICENSE](LICENSE) это прямо разрешает: берите, меняйте, распространяйте,
продавайте, указывать автора не обязательно. Форк — не «уход», а нормальный
способ сказать «я сделаю по-своему». Именно так и надо.

Одно уточнение — про сам движок: он русский, и делает его русский автор.
В лицензии это сказано прямо: если такой расклад не нравится, движком лучше
не пользоваться. В своём форке вы вольны выкинуть этот пункт целиком, это
ваша копия.

Форкните и делайте что хотите. Мне не нужно об этом сообщать и не нужно
спрашивать разрешения.

## Что всё-таки можно

* **Написать про баг** — на dem4ev48@gmail.com. Посмотрю, если будет время и
  желание. Обещать не буду ничего: ни сроков, ни что вообще отвечу.
* **Сделать форк** — см. выше, это главный путь.
* **Забрать движок в свой проект** — можно, для этого он и лежит.

Чего не надо: присылать патчи, открывать PR, просить «ну посмотри, я старался»,
предлагать переписать половину. Всё это будет закрыто.

Уязвимости — отдельная история, там порядок другой: [SECURITY.md](SECURITY).

## Если всё-таки форкаете — как собрать

Нужны CMake 3.24+, компилятор с C11 и C++20, Git. Зависимости тянутся через
`FetchContent` при первой конфигурации.

```bash
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j
./build/russiano2d              # игра из каталога game/
./build/russiano2d --game demos # меню со всеми демо
```

Тесты:

```bash
python3 tools/run_tests.py --list   # что вообще есть
python3 tools/run_tests.py --fast   # быстрый набор
python3 tools/run_tests.py          # всё (агентским нужен GPU)
```

Дальше — по документации, она в репозитории подробная:

* [docs/ARCHITECTURE.md](ARCHITECTURE) — как всё устроено
* [docs/HIGH_LEVEL_API.md](HIGH_LEVEL_API) — справочник по `$`
* [docs/highlevel/](https://github.com/Nikide/russiano2d/tree/main/docs/highlevel) — подсистемы по отдельности
* [docs/highlevel/_CONTRACT.md](https://github.com/Nikide/russiano2d/blob/main/docs/highlevel/_CONTRACT.md) — правила, по
  которым в движке живёт подсистема `$` (в форке пригодятся)
* [docs/BUILD.md](BUILD) — сборка игры в один файл

Обратно в этот репозиторий ничего не понесёте — и не надо. Живите своей
версией, она ваша.

## Общение

Если всё-таки пишете — про баг-репорты и про всё остальное коротко и без
обиняков написано в [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT).
