TGViewer
Гепардово гнездо Гепардово гнездо @gepardchan · 617 subscribers
Post #154 1.23K
Итак, расскажу о том, что я сделал еще давно, но про что все никак не доходили руки написать пост.

Несколько лет назад, когда я разрабатывал шахматного бота под названием SoFCheck, мне понадобилось как-то проверять, действительно ли я улучшаю силу его игры, а также сравнивать его с другими ботами. Для этого я написал на Free Pascal утилиту под названием battlefield, которая запускает матчи между двумя ботами, считает всякие статистики и говорит, кто круче и насколько. Работал battlefield в целом довольно неплохо.

Не так давно мне захотелось сделать battlefield интереснее, чтобы можно было не только смотреть результаты матча, а наблюдать за партиями в реальном времени. Так появился day20. Он, как и его предшественник, тоже позволяет запускать матчи и смотреть статистики. Но теперь можно еще наблюдать за партиями в реальном времени.

Построен day20 довольно просто. Основной код написан на Go, в качестве базы — SQLite, а фронт сделан с помощью Go'шного стандартного шаблонизатора, HTMX и горстки обычного JS. Такой сетап, конечно, не дает масштабироваться до небес и не дает много девяток, но зато просто деплоится и задачу в целом выполняет: для запуска нужно всего два бинарника и все :)

Почему два? Дело в том, что day20 состоит из двух частей: основного сервера и сервера комнат. Первый общается с базой и с пользователем и рисует красивый UI. А второй принимает команды от основного сервера и запускает сами матчи. Такое разделение позволяет поднять основной сервер на не очень мощной машинке в облаке и крутить его постоянно. А самих ботов, которые требуют сильно больше CPU, можно запустить хоть на ноутбуке (либо на временной виртуалке). Серверов комнат, кстати, может быть сколько угодно (пока хватит ресурсов основного сервера принимать сделанные ходы и посылать новые матчи), что позволяет запускать много партий параллельно.

А теперь самое интересное: в ближайшие два дня вы можете зайти на https://day20.gepar.do и посмотреть все это в действии :) Там сейчас крутится матч между ботом от Антона @Wind_Eagle под названием Quirky (во много раз сильнее моего SoFCheck'а, кстати), и примерно равного ему по силе бота под названием Avalanche. При разработке Quirky, кстати, day20 неоднократно использовался для оценки его силы.
  • 👍 26
  • 🤯 6
More from @gepardchan
  1. Dec 10, 2024https://habr.com/ru/post/472970/ Статья 2019 года, то есть довольно старая, с учетом того,…
  2. Nov 30, 2024Сегодня читал про то, как Debian везде перешел на 64-х битный time_t. Изменение войдет в р…
  3. Nov 26, 2024https://www.ryanliptak.com/blog/every-rc-exe-bug-quirk-probably/ Не знаю, как вы, а я прос…
  4. Nov 22, 2024Еще про проклятые фичи баша https://yossarian.net/til/post/some-surprising-code-execution-…
  5. Nov 21, 2024Про переписывание истории В баше (а точнее, в GNU Readline, который используется башом), е…
  6. Nov 17, 2024Вдогонку про Юникод и Rust Во-первых, спасибо всем, кто читал и распространял мой пост про…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →