Skip to content

Патиссон гейм — сервер общей фермы 2.0

Choose a tag to compare

@fedor655 fedor655 released this 07 Aug 07:00
· 1 commit to patisson-2.0 since this release

🌾 Патиссон гейм — сервер общей фермы

Выделенный сервер: держит мир — грядки, погоду, часы, амбар и кошелёк — для всех, кто к нему подключился. Ничего не рисует, видеокарта не нужна, из зависимостей только numpy.

Скачайте PatissonGame-2.0-server.zip (190 КБ), распакуйте и запустите start.bat (Windows) или ./start.sh (Linux/Mac). Внутри — файл ЧИТАЙ.txt со всем остальным.

Как подключиться

В игре: главное меню → «Играть по сети» → адрес вида 192.168.1.50:7777 и любое имя. Если сервер на этой же машине — 127.0.0.1:7777.

Что общее

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

Пока на ферме никого нет, время стоит. Это не экономия, а следствие наблюдения: пустой сервер, оставленный тикать, за полтора дня терял пугало, и вороны склёвывали каждую спелую грядку.

Мир пишется на диск раз в минуту и читается при старте — посаженное вчера найдётся завтра.

Сколько просит

Измерено: 47 МБ при старте, 32 МБ в покое, одно ядро загружает едва заметно (15 тиков в секунду на пустой ферме почти ничего не делают). Если рядом на машине живёт что-то важное, поставьте службе потолок памяти — тогда при любой неожиданности система прибьёт игру, а не почту:

[Service]
User=patisson
ExecStart=/путь/venv/bin/python -m patisson2.net.server --port 7777
Restart=always
MemoryMax=192M
Nice=10

Порт 7777 надо открыть. Проверяйте не ufw status, а iptables -S INPUT | grep 7777: если правила на машине писались руками, ufw отрапортует успех, а правило в живую цепочку не попадёт — на это ушёл час.

Что проверено

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

Сам архив принят так, как его получит человек: распакован в чистую папку, запущен start.bat, к нему подключились двое, посадка одного появилась у другого.


Игра для Windows — в релизе v2.0.0. Исходники — ветка patisson-2.0.