CONTRIBUTING.md 4,6 КБ
Newer Older
Nikitos's avatar
Nikitos включено в состав коммита
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Контрибьютить сюда нельзя

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

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

## Почему так

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

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

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

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

Nikitos's avatar
Nikitos включено в состав коммита
26
27
28
29
Одно уточнение — про сам движок: он русский, и делает его русский автор.
В лицензии это сказано прямо: если такой расклад не нравится, движком лучше
не пользоваться. В своём форке вы вольны выкинуть этот пункт целиком, это
ваша копия.
Nikitos's avatar
Nikitos включено в состав коммита
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81

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

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

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

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

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

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

Нужны 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](docs/ARCHITECTURE.md) — как всё устроено
* [docs/HIGH_LEVEL_API.md](docs/HIGH_LEVEL_API.md) — справочник по `$`
* [docs/highlevel/](docs/highlevel/) — подсистемы по отдельности
* [docs/highlevel/_CONTRACT.md](docs/highlevel/_CONTRACT.md) — правила, по
  которым в движке живёт подсистема `$` (в форке пригодятся)
* [docs/BUILD.md](docs/BUILD.md) — сборка игры в один файл

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

## Общение

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