Эссе о разработке игр, мышлении и книгах

Pydicates: предикаты для Python

Опубликовал небольшую библиотеку для работы с предикатами в Python: github, pypi. Как всегда, под BSD-3.

Позволяет конструировать функции для отложенных вычислений. Например, описывать такие условия: (OwnedBy('alex') | OwnedBy('alice')) & HasTag('game-design').

Делал для себя, так как уже несколько раз в пет-проектах писал костыли для этого дела. Решил сделать один раз правильно и больше не тратить на это время.

Минимальный пример:

from pydicates import Predicate, common


def HasTag(tag):
    return Predicate('has_tag', tag)


def has_tag(context, tag, document):
    return tag in document['tags']


common.register('has_tag', has_tag)

document = {'tags': ('a', 'b', 'c', 'd')}

assert common(HasTag('a') & HasTag('c'), document)
assert not common(HasTag('a') & HasTag('e'), document)
assert common(HasTag('a') & ~HasTag('e'), document)
assert common(HasTag('a') & (HasTag('e') | HasTag('d')), document)

Больше примеров можно найти в репозитории ./examples

API описано чуть подробнее в ./examples/documents_check.py

Больше примеров можно найти в тестах.

Концепт-документ игры Сказания

Источник изображения: [MTG Fetch Lands: What Are They and How to Get Them for Chea](https://draftsim.com/mtg-fetch-lands/)

Источник изображения: MTG Fetch Lands: What Are They and How to Get Them for Chea

Ещё один концепт, на этот раз довольно старый. Не думаю, что такую игру будет просто привести к успеху, но идея мне нравится.

Далее

Python 3 Types in the Wild

Вышла статья с исследованием состояния статической типизации в Python. Я её наискосок просмотрел, всё примерно так, как я и рассказывал в эссе:

Далее несколько интересных цитат.

Далее

Что будет, если открыть код игры

Почти 6 лет как я открыл исходный код Сказки под BSD-3 лицензией. Давно пора рассказать как это отразилось на игре и её разработке.

Далее

Подписал письмо в поддержку Столлмана

Подробно описывать ситуацию не буду — она много где уже разжёвана. Начать раскопки можно с хабра.

Само письмо: https://rms-support-letter.github.io/

Подробнее о письме на русском, с толикой теории заговора.

Далее