|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
3D Шахматы03.08.2025, 22:08. Показов 9329. Ответов 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
Шахматная программа Готические Шахматы и Шахматы Януса разработка программы "Шахматы" |
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 18.08.2025, 21:15 [ТС] | |
|
alecss131, эти предупреждения на игру не влияют. У всех они есть. Можешь открыть любую игру на этом сайте и увидишь, что у всех там полно предупреждений. Это нормально. Даже если открыть консоль на киберфоруме, то будет много ошибок и предупреждений.
А то, что игра не загрузилась это проблемы с itch.io и твоей сетью. PR_CONNECT_RESET_ERROR - https://kinsta.com/knowledgeba... set_error/
0
|
|
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 18.08.2025, 21:39 [ТС] | |
|
alecss131, наверное, твой провайдер имеет что-то против инди-игр) А на три буквы уже может ругаться сам itch.io.
Для винды, я оставил кубика, сделанного в годот 3, но применил все те же правки в коде, что делал для кубика на годот 4. Просто игра на годот 3 весит в два раза меньше. А вот для веб загрузил кубика на годот 4.
0
|
|
| 19.08.2025, 00:00 | |
|
До меня не сразу дошло, что имеется ввиду под "тремя запрещёнными буквами", а потом как дошло. Да, сейчас кубик (https://royalxxx.itch.io/cube-web) запускается в FireFox с Тремя Запрещёнными Буквами - ТЗБ. А вот в Chrome у меня нет ТЗБ, поэтому не работает:
Сапёр (https://royalxxx.itch.io/3d-minesweeper-web) перестал работать в Chrome без ТЗБ, а несколько дней назад работал: Скорее всего, я запускал Сапёра в Chrome без ТЗБ без проблем несколько дней назад, но уже не уверен был ли это Chrome или FireFox. FireFox с ТЗБ у меня открыт только для использования ChatGPT и редких тестов. Значит, за несколько дней что-то произошло - блокировка хостинга откуда itch загружает игры в iframe. У меня несколько месяцев назад провайдер Дом.ру заблокировал все зарубежные форумы Discourse. Написал им в чате их сайта, а они написали, что ничего сделать не могут, но потом, через два дня Discourse-форумы заработали. Сам itch, то работает без ТЗБ, а вот тот хостинг откуда он грузит - нет. Может заработает, как этом было с Discourse-форумами.
1
|
|
| 19.08.2025, 00:06 | |
|
Кубик и Сапёр работают без проблем в FireFox с ТЗБ.
0
|
|
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 19.08.2025, 00:25 [ТС] | |
|
8Observer8, я сапера вообще не трогал. Если раньше работал в хроме, а сейчас нет, то это уже связано либо с itch.io, либо с твоей сетью.
0
|
|
| 19.08.2025, 00:42 | |
|
Я уверен, что это связано с блокировками на стороне провайдера системой ТСПУ (технические средства противодействия угрозам), на которую провайдер не может повлиять - только кибер-подразделение ФСБ (или кто этим занимается) раз работает с ТЗБ, а без ТЗБ не работает.
На Android (мобильного интернета у меня нет, только Wi-Fi) без ТЗБ не работает, а с включенным ТЗБ работает:
0
|
|
| 19.08.2025, 00:46 | |
|
Вот только интересно почему у тебя без ТЗБ работает. Может быть разным провайдерам закачиваются разные фильтры на ТСПУ.
0
|
|
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 19.08.2025, 00:49 [ТС] | |
|
8Observer8, в любом случае, твой ответ полезен. Я теперь знаю, что экспорт в веб на годот 4 лучше работает, чем на 3-й версии. Т.е. миграция на 4-ю версию принесла пользу. Я, конечно, мог и для десктопа экспортировать на 4-й версии, но зачем это делать, размер игры будет в два раза больше. Пусть останется на 3-й.
8Observer8, я издалека, поэтому работает. Вообще, не понимаю, что такого сделал itch.io, что его фсб блокирует (если твоя теория верна).
0
|
|
| 19.08.2025, 01:32 | |||
Добавлено через 2 минуты В вот чем AWS не угодил Роскомнадзору - понятия не имею. Такой информации я не нашёл.
0
|
|||
| 19.08.2025, 21:55 | ||
|
Не по теме:
Ну и юридически там тоже есть приколы, но эта тема уже идёт впритык с политикой, так что я пасс её обсуждать.
0
|
||
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 20.08.2025, 00:05 [ТС] | |
|
8Observer8, реализовал вращение камеры двумя пальцами. В апи годот
InputEventScreenDrag, кстати, нет события тача двумя пальцами. Есть только индексы пальцев. Поэтому, на самом деле, камеру вращает только один палец - второй палец. Это означает, что камера будет вращаться при одновременном касании 2 и больше пальцев, а не ровно двух.Либо придется писать уж слишком замудренный код, который отслеживает текущее количество пальцев. Хотя, может это и просто. Берем переменную, при таче InputEventScreenTouch добавляем значение, а когда убираем палец - отнимаем. Ладно, потом попробую что-нибудь делать.Надо будет реализовать теперь вращения кубика одним пальцем.
0
|
|
| 20.08.2025, 01:32 | ||
|
Я запустил кубик (https://royalxxx.itch.io/cube-web) на Android и увидел чёрный экран, но потом вспомнил, что надо запустить ТЗБ и кубик сразу прогрузился. Да, у меня вращение двумя пальцами работает. На всякий случай напишу, что с первого сентября в РФ вступит в силу закон о запрете рекламы ТЗБ (три запрещённые буквы). Если я правильно понял, то нельзя будет даже намекать, что существует ТЗБ. Скорее всего, даже завуалированное сочетание слов "три запрещённые буквы" будет считаться нарушением закона. Для граждан РФ штраф от 50 до 80 тысяч.
0
|
||
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 20.08.2025, 02:01 [ТС] | |
|
8Observer8, можно в личку написать и объяснить. Да и не думаю, что на форуме так много желающих потестировать мои игры.
Добавлено через 8 минут 8Observer8, этот закон будет запрещать рекламу VPN. То, что ты упоминаешь VPN это не ещё не реклама. Например, я вот обсуждаю новый закон и не боюсь писать это слово. Реклама это когда ты пишешь "Скачай этот продукт, скорость хорошая, цена низкая и т п." Также нельзя будет публиковать инструкции по обходу блокировок. Тут важно понимать, что речь идёт о блокировках, установленных властями РФ. Например, если в Иране аятолла запретил какой-то сайт, то даже после принятия закона мы можем обсуждать обход блокировок, установленных иранским режимом, в том числе посредством VPN, поскольку речь не идёт о блокировке со стороны РФ. Так же само, нужно тут сперва понять, был ли itch io блокирован властями РФ. Если не был, то можно обсуждать решения проблемы. И, кстати, закон с обратной силой для владельцев сайтов. Т.е. админы должны очищать старые посты, начиная с некой даты. Добавлено через 13 минут 8Observer8, на форуме есть даже пользователь с веселым именем https://www.cyberforum.ru/members/760079.html Вообще, есть несколько с похожими именами.
0
|
|
| 20.08.2025, 02:49 | ||||||
Добавлено через 5 минут Или я даже не могу писать те три английский буквы? Или я даже не могу намекать на существование тех трёх английских буквы в таком сочетании?
0
|
||||||
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
||
| 20.08.2025, 03:04 [ТС] | ||
|
8Observer8,
8Observer8, короче, новый закон вводит штрафы за: Рекламу VPN – штрафы для граждан (50–80 тыс. руб.), должностных лиц (80–150 тыс. руб.) и юрлиц (200–500 тыс. руб.). Умышленный поиск экстремистских материалов (из реестра Минюста) через VPN – штраф 3–5 тыс. руб. Использование VPN для преступлений (мошенничество, наркоторговля и т. д.) – уголовная ответственность (до 5 лет лишения свободы). *** То есть, если itch io не является экстремистским, то я спокойно могу написать даже на форуме, что если игра не открывается, используйте VPN. Или могу просто написать, мол чувак, это у тебя проблемы с сетью, а с игрой все в порядке. Это не реклама, а совет. В примере некого юриста было сказано, что реклама это когда пользователь дает другому ссылку на VPN. То есть, когда он отсылает к конкретному VPN сервису. И, кстати, много чего было запрещено ещё давно. Новый закон лишь вводит штрафы.
0
|
||
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 20.08.2025, 10:16 [ТС] | |
|
8Observer8, сделал, чтобы камера вращалась при таче только при касании ровно двумя пальцами. Теперь нужно реализовать вращение кубика одним пальцем. Но это так нудно работать с апи тача, когда каждый раз для тестирования нужно собирать игру для веб и публиковать на сайте... Будет настроение - сделаю, но не сейчас.
0
|
|
| 20.08.2025, 11:55 | |||||||||||||||||
0
|
|||||||||||||||||
|
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
||
| 20.08.2025, 12:16 [ТС] | ||
|
Так что, еще вопрос, что больше займет времени - публикация на сайте или создание локального сервера. Я просто имел в виду, что было бы легче, если устройство, на котором я разрабатываю игру, было сенсорным. Тогда я запустил бы и сразу же увидел результат. А сейчас мне приходится каждый раз делать экспорт в веб. Добавлено через 1 минуту 8Observer8, ты, кстати, шахматы тестировал? Если уже скачивал, то удали и загрузи заново. Я сегодня выложил новую версию с некоторыми исправлениями.
0
|
||
| 20.08.2025, 12:46 | |||||
|
Royal_X, вообще использовать itch, как площадку для тестирования кубика - это не очень правильно. Туда надо заливать уже протестированные версии. На данный момент, я пришёл к выводу, что лучше использовать BitBucket Pages. В отличие от GitHub Pages на Bitbucket изменения вступают в силу сразу, а на GitHub нужно ждать больше минуты. Для WASM я использую Netlify, потому что WASM-сборки весят много и мне не хочется тратить место на BitBucket Pages и на ноуте на WASM.
Меня радует, что OrbitControls в Three.js имеет по умолчанию поворот камеры на Android одним пальцем. Радует, что ChatGPT очень хорошо знает Three.js Радует, что я могу изменить что-то в JS коде во время отладки и тут же не дожидаясь компиляции и сборки обновить страницу на Android, чтобы протестировать. Радует, что я могу быстро в Far Manager скопировать результат работы в BitBucket Pages, сделать "git add .", "git commit -m '...'", и "git push" и сразу получить ссылку для тестирования. Я написал в ChatGPT "Create a simple cube example with OrbitControls using Three.js" и он мне сразу сгенерировал рабочий пример, где поворот кубика работает на Android одним пальцем. На JS я могу опубликовать код в песочницу, где начинающие сразу могут начать экспериментировать: https://plnkr.co/edit/qVTOBCvUqlkFeRKP Демка в брузере: https://8observer8.bitbucket.io/threejs/cube/ Добавлено через 5 минут Добавлено через 5 минут
0
|
|||||
| 20.08.2025, 12:46 | |
|
Крик души (шахматы) Задача про шахматы Шахматы. восемь фигур одного цвета Шахматы. Шахматы: может ли белая фигура пойти на поле ef, не попав при этом под удар черной фигуры? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью.
Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
|
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
|
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
|
|
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
Решение:
Создан документ со следующими. . .
|
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
Решение:
Создан документ с единственным. . .
|
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить сумму и количество положительных элементов массива, расположенных в четных строках.
Решение:
Создан документ с. . .
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|