Статистика в Slitherlink

Страшно подумать, но моему варианту игры Slitherlink уже больше 15 лет.

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

Единственное, что известно – это сколько времени заняло решить, и код уровня.

Хранилось это в простой MariaDB базе данных. С некоторыми оптимизациями и упрощениями, но табличка со ста миллионами записей была. Считать на этом медианы занимало совсем неразумное время. Это, конечно, неправильный подход, но в начале не казалось, что данных будет так много. А потом руки не доходили соптимизировать.

При этом в остальном инфраструктура была красивая – полностью в git, выкатывалась в AWS через terraform, со всей сетевой обвязкой, контейнерами в Fargate, сервисами обсчёта по расписанию, dash-board'ами, анализом медленных запросов, алертами и всем таким. Настроено было собственной головой ещё задолго до ИИ, и это было красиво. Terraform вообще рулит. Но дорого!

На этой неделе наконец добрался всё это переделать. Теперь не так красиво с точки зрения инфраструктуры, но более красиво внутри – t-digest вместо MariaDB и полные данные больше не хранятся. Получение самой разной аналитики занимает миллисекунды. Получить можно не только простую медиану (единственное, что считалось раньше), а полноценные графики и процентную разбивку. И стоит это почти в 10 раз меньше.

Обновил и саму игру – показываю теперь не раздражающую некоторых медиану, а "Top 40%" и мини-график:

А можно кликнуть и посмотреть побольше деталей:

Наверное можно придумать какую-то ещё интересную статистику и дизайн странички сделать покрасивее. Подумаю.