|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
|
3D Шахматы03.08.2025, 22:08. Показов 11109. Ответов 154
Метки нет (Все метки)
Создал за несколько дней шахматную оболочку для движка Stockfish 17.1. Кому не лень, предлагаю тестировать, задавать вопросы или просто прикалываться
![]() Ссылка на игру: https://royalxxx.itch.io/chess-3d Размер архива: 47 МБ (размер игры: 199 МБ) Почему создал? Не нашел ни одной нормальной трехмерной игры, которая работала бы с движком. Есть 3д шахматы с очень красивой графикой, но с корявыми движками и без движковых настроек. Например, как Chess Titans из винды, Chess Ultra или программы ChessBase - там вообще на трехмерной доске не играбельно. И наоборот, есть хорошие 2д оболочки для работы с uci движками, но без красивого 3д вида. К тому же, давно не публиковал игру в https://royalxxx.itch.io/, хочу добавить туда эту игру. Как установить: Разархивировать исполняемый файл в любое место, желательно в отдельную папку, поскольку после первого запуска в папке, где будет лежать данный файл, создадутся два других файла: engine_path.cfg - в этом файле можно указать путь к шахматному движку. Но не обязательно это делать, если движок Stockfish 17.1 будет лежать рядом с игрой. Но если на компе уже есть данный движок (допустим, вы используете для другой шахматной оболочки), то можно будет указать в этом файле путь к вашему движку и не понадобится дублировать движок.settings.cfg - это файл настроек. Не для редактирования, поэтому я его зашифровал. Если удалить данный файл, то игра вернется к дефолтным настройкам.Таким образом, нужно разархивировать игру в отдельную папку, бросить в эту папку движок Stockfish 17.1, скачанный из официального сайта, и запустить игру. Почему Stockfish 17.1? Это сильнейший движок в мире. Почему я не распространяю движок в комплекте с игрой? Stockfish 17.1 доступен бесплатно на официальном сайте https://stockfishchess.org/download/. Причем, там доступны разные версии под разные инструкции процессора. Чтобы не распространять вместе с игрой все движки (64-bit, POPCNT, AVX2, BMI2, AVX-512, VNNI-256, VNNI-512) - а каждый весит до 80 МБ, я решил, что лучше будет, если каждый сам скачает то, что подходит его устройству. Например, я использую BMI2-версию, поскольку она быстрее версий 64-bit, POPCNT и AVX2, а вот AVX-512 и другие мой проц не поддерживает. Версия 64-bit самая медленная, но поддерживается всеми 64-битными процами, POPCNT тоже будет поддерживаться многими, даже устройствами 15-летней давности. AVX2 это версия, для современных процессоров и дефолтная для скачивания на сайте стокфиша. Если ваш процессор поддерживает BMI2, как у меня, то ставьте эту версию, она быстрее AVX2. Ну а если у вас поддерживает и AVX-512, то ставьте последнюю. Stockfish 17.1 Игра работает только с Stockfish 17.1. С другими движками или с другими версиями Stockfish (например, 16) игра не будет работать. Вкладка игры: - можно играть с движком или с другим человеком. Если включен переключатель движка, после хода игрока, движок сделает ход. - кнопка Engine Move (или клавиша G) заставляет движку сделать ход, независимо от состояния переключателя движка - кнопка Hint (клавиша H) выводит подсказку - Flip View (клавиша F) поворачивает доску - Reset View (клавиша R) восстанавливает положение камеры. Кстати, камера поворачивается нажатой правой кнопкой мыши. - New Game (клавиша N) - Copy FEN копирует в буфер обмена FEN текущей позиции Вкладка Engine: Тут настраивается сам движок. Внимание: если вы что-то поменяли, для применения настроек нужно обязательно нажать на кнопку Set Options. На этой вкладке можно настроить: Threads - количество потоков процессора . Вы не можете выставить больше, чем количество процессоров на вашем устройстве. Даже на одном потоке движок очень силен. Если прям хочется получить максимальные Nps, то выставляйте максимум. С другой стороны, если все процессоры будут работать на вычислениях, то возможно не хватит ресурсов для игры. Depth Limit - максимальная глубина ходов (а скорее полуходов) для движка. По умолчанию, выставлен максимум 145. Skill Level - сила движка, по умолчанию 20 - максимум, т.е. будет играть на полную силу. Вместо настройки силы движка посредством Skill Level, можно использовать более понятную опцию - лимитирование по рейтингу Эло от 1320 до 3190. Стокфиш этот рейтинг потом переводит в нужный Skill Level. Hash - размер хештаблицы. Дефолтно 16 МБ. Сделал так, чтобы не можно было выставить больше, чем доступный размер ОЗУ без учета файла подкачки. Сколько не жалко, столько и дайте движку памяти. Это усилит движок. А вообще, можно посмотреть на то, как быстро заполняется хеш и если вы видите, что хеш на пределе, то можно увеличить размер. Time - время на ход для движка в секундах. Чем больше вы дадите, тем глубже движок сможет анализировать. Обратите внимание, что для подсказок можно выбрать свои собственные Depth и Time. Например, вы можете дать на подсказки больше времени, чтобы подсказка была сильнее, чем ваш соперник-движок)) Depth vs Time Если движку дать очень много времени, но выставить глубину, то это даст гарантию, что все ходы движка будут иметь одинаковую гарантированную глубину. Если движку дать очень большую глубину, но выставить время, то это гарантирует, что движок сделает ход за заданное время, но глубина будет колебаться - например, в эншпиле будет больше, чем в дебюте. Не рекомендую давать движку одновременно и много времени и разрешать искать до очень большой глубины, поскольку вы рискуете ждать очень долго. Интерфейс: Цвет фона, панелей полностью настраиваются. Также можно настроить материалы доски, фигур и прочего (выделения клетки, доступных ходов, подсказки, шаха, мата...). Графика: Window Mode - режим экрана Scale - соотношение от нативного разрешения. При 1.0 - будет нативное разрешение. 0,5 - будет половина от нативного, и т.д. Влияет на качество и производительность. Antialiasing - сглаживание. Дефолтно на 2х. Можно увеличить, но имейте в виду, что может повлиять на fps. VSync - вертикальная синхронизация. Я добавил возможность лимитирования fps, поскольку заметил, что для данной игры необязательно играть на 120 или 240 fps. Это игра не про графику, зачем насиловать GPU. С помощью данной фичи можно лимитировать fps и снизить нагрузку на GPU. Например, я выставляю 60. Кстати, заметьте, что VSync тоже лимитирует fps на уровне частоты монитора. Для удобства и правильной настройки, я также добавил отображение fps в реальном времени. Вывод движка: После каждого обдумывания движка (ход или подсказка), выводится: -Оценка позиции в пешках или в количестве полуходов до мата. Положительные - в пользу Белых, отрицательные - Черных. -Глубина хода -Скорость движка в узлах в сек - Nodes per second (NPS) - удобно для настройки потоков или тестирования производительности устройства -Процент заполнения хеш-таблицы. Если видите, что таблица быстро заполняется, то можно увеличить размер хеша. -Реальное время обдумывания движка. Сохранения: Игра сохраняет все настройки. Также, будет сохранена текущая игра, но только если был сделан выход из игры не во время работы движка. Что не реализовано: 1. Не реализовал все ничейные ситуации. В ничейных ситуациях сейчас игра прерывается только при пате. У меня возникли некоторые сомнения касательно необходимости реализовать другие ситуации: - Недостаточность материала - возможно, в будущем даже добавлю авто определение недостаточного материала... - Троекратное повторение одной и той же позиции - это правило актуально, когда играешь с человеком. - Обе стороны сделали 50 последних ходов без взятия и без хода пешкой - это правило работает, только когда игрок заявил, иначе игра продолжается до 75 ходов. Это правило тоже актуально, когда играешь с человеком. - Игроки согласились на ничью - тоже не вижу смысла в реализации фичи, когда движок просит ничью... - Один из игроков просрочил время или сделал второй невозможный ход - в моей игре таймеров нет, поскольку это только актуально, когда играешь с человеком. Вообще, думаю вместо реализации всей этой ахинее, актуальной только на турнирах с людьми, сделать так, что когда оценка нулевая на определенной большой глубине, то просто выводится инфа, что стоит прекратить бессмысленную игру. 2. Не реализовано создание игры из кастомной позиции. Могу быстро реализовать настройку позиции по FEN, но вот реализация настройки позиции путем выставления вручную фигур требует некоторого времени. Возможно, добавлю в будущем. 3. Подключение дебютных книг. Не собираюсь реализовать, поскольку не вижу смысла. 4. Подключение EGBT Syzygy для движка. Реализуется легко, но движок и без них очень быстро анализирует в эндшпиле. 5. Поддержка Chess 960. Возможно, добавлю в будущем.
1
|
|
| 03.08.2025, 22:08 | |
|
Ответы с готовыми решениями:
154
Шахматная программа Готические Шахматы и Шахматы Януса разработка программы "Шахматы" |
|
97 / 90 / 10
Регистрация: 22.12.2024
Сообщений: 613
|
||
| 22.08.2025, 21:35 | ||
|
0
|
||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
|
| 22.08.2025, 21:36 [ТС] | |
|
Noname2331, чтобы играть было интересно, советую настраивать движок, а именно ограничить рейтинг Эло движка. Также в игре есть подсказки - кнопка Hint - или можно нажать H. При желании, можно и поменяться местами с движком.
1
|
|
|
97 / 90 / 10
Регистрация: 22.12.2024
Сообщений: 613
|
||||
| 22.08.2025, 21:46 | ||||
![]() ![]() Добавлено через 4 минуты
0
|
||||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
|
| 22.08.2025, 21:49 [ТС] | |
|
Noname2331, тут видно, где это
https://img.itch.zone/aW1hZ2Uv... B9eBEZ.png там выпадающий список по умолчанию выбран chessboard - это материал доски. Но если доска в режиме dark wood или light wood, то ты не увидишь изменения. Нужно выбрать material для доски. А так, выбираешь в списке нужный элемент, а потом можешь менять цвет, metallic, roughness
0
|
|
|
97 / 90 / 10
Регистрация: 22.12.2024
Сообщений: 613
|
||
| 22.08.2025, 21:57 | ||
|
Отличный проект, лайкос
0
|
||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
||
| 22.08.2025, 21:59 [ТС] | ||
|
Собсна, я про всё это писал в описании в шапке
0
|
||
|
97 / 90 / 10
Регистрация: 22.12.2024
Сообщений: 613
|
||
| 22.08.2025, 23:24 | ||
|
0
|
||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
|
| 23.08.2025, 00:14 [ТС] | |
|
Noname2331, возможно, надо было поставлять Stockfish вместе с игрой. Но до сих пор эта идея мне не нравится. Дело в том, что если я даже буду поставлять Stockfish, то это будет самая медленная версия - Stockfish 64-bit, чтобы он гарантировано работал на всех устройствах. Однако, если оставить скачивание движка на юзера, то он может скачать более быструю версию, в зависимости какие инструкции поддерживает его процессор. Например, у многих будет работать popcnt версия. Также, все современные устройства поддерживают avx2 (кстати, это рекомендуемая версия на сайте). Если popcnt быстрее базовой версии, то avx2 быстрее popcnt. А вот bmi2 быстрее avx2. И так, на официальном сайте можно скачать максимально быструю версию, которая будет совместима с процессором пользователя. Причем, игра предупредит, если версия не будет подходить.
0
|
|
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
||
| 23.08.2025, 14:05 [ТС] | ||
|
Только нужно через код сбрасывать значения статических переменных. Или вообще не нужно использовать статические переменные. Подробнее в Effects of disabling domain reload when entering Play mode: https://docs.unity3d.com/6000.... ading.html Это реально экономит много времени. А время самое ценное у человека.
0
|
||
| 23.08.2025, 15:26 | |||
|
Это не очень сложно переписывать с WebGL на Python и C++, но всё же требует определённого времени. Но пока я решил только сосредоточиться на JavaScript и т.д. для программирования графики и мини-игр, чтобы не распыляться. Ещё немного иногда использую Python, но только для мелких вспомогательных программ для себя. Например, для автоматизации моделирования и анимаций в Blender через написание своих маленьких плагинов внутри Blender или для расстановки коллайдеров в Blender с экспортом в JSON. Мне достаточно Blender 2.67.
0
|
|||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
||
| 23.08.2025, 15:35 [ТС] | ||
|
0
|
||
| 23.08.2025, 16:01 | ||
|
Я какое-то время следил на темами в разделе 3D-моделирование, но сейчас не распыляюсь на это, поэтому у меня был Blender 4.x. Потом я понял, что Blender нужен мне только для моих дел и не хочется распыляться на 4.x. Удивительно, как?!, но ChatGPT очень хорошо знает 2.67, его же тогда не было - скорее всего, он сканирует старую информацию. Я давно очень много видео курсов скачал на английском по 2.6 - 2.7. Мой ноут не замечает 2.67, а 2.68 начинает шуметь - даже почищенный и с заменённой термопастой. Если мне нужно запечь тени и текстуры в текстуру, то я отрою 2.79. Я не планирую идти в студию 3D-моделирования. У меня очень примитивные задачи, с которыми справляются 2.67 и 2.79. Если я напишу какой-то полезный плагин на Python Blender API и захочу им поделиться, то я скачаю текущую версию Blender и с помощью ChatGPT перепишу на текущую версию.
0
|
||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
||
| 22.03.2026, 12:33 [ТС] | ||
|
На сегодняшний день есть несколько разновидностей Stockfish 18 в зависимости от поддержки тех или иных процессорных инструкций. Ниже приводятся эти варианты от слабых к более сильным. Если хотите поставить самый сильный движок, который подойдет под ваш процессор, предлагаю просто скачать все и проверить, начав с конца списка (от сильных вариантов к слабым). Отмечу, что порядок движков по силе, который приводится ниже, был составлен разрабами движка. Т.е. это не сравнение силы процессорных инструкций, а именно сравнение шахматных движков на тех или иных процессорных инструкциях. Например, как по мне, процессоры с AVX2 круче, чем процессоры с BMI2, тем не менее, разрабы Stockfish посчитали, что их движок сильнее на BMI2, чем на AVX2. Видимо, для шахматного движка манипуляции битами важнее, чем векторные вычисления. 64-bit - самая слабая версия, но будет работать на всех 64-битных процессорах. POPCNT AVX2 BMI2 AVX-VNNI и AVX-512 - не знаю, какой их этих двух сильнее, разрабы движка лишь написали, что они обе немного сильнее BMI2. AVX-512 в целом мощнее и поддерживает 512-битные регистры, тогда как у AVX-VNNI 256-битные. Однако, AVX-VNNI лучше проявляет себя при работе с нейросетями, а Stockfish, как известно, это уже гибридный движок с nnue весами. VNNI-512 - про этот вариант ничего не было написано разрабами движка, но если они указали, что AVX-512ICL самый сильный вариант, то VNNI-512 должна быть на втором месте по силе. AVX-512ICL - самый сильный вариант Я проверил у себя, оказалось, что самый сильный вариант, который будет работать с моим процессором, это AVX-VNNI, который будет приблизительно на том же уровне, что и AVX-512, и будет сильнее 64-bit, POPCNT, AVX2 и BMI2.
0
|
||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
|||
| 25.03.2026, 20:22 [ТС] | |||
settings.cfg. Что касается движка, то путь к нему указывается уже через UI в самой игре или можно вообще ничего не указывать, если движок лежит рядом с игрой.Путь к движку теперь хранится в файле settings.cfg вместе с другими настройками.
0
|
|||
|
Нарушитель
6699 / 3100 / 1064
Регистрация: 01.06.2021
Сообщений: 11,982
|
|
| 26.03.2026, 14:45 [ТС] | |
|
0
|
|
| 26.03.2026, 14:45 | |
|
Крик души (шахматы) Задача про шахматы Шахматы. восемь фигур одного цвета Шахматы. Шахматы: может ли белая фигура пойти на поле ef, не попав при этом под удар черной фигуры? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|