Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367

3D Шахматы

03.08.2025, 22:08. Показов 9110. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.08.2025, 22:08
Ответы с готовыми решениями:

Шахматная программа
Проводится набор участников для совместной работы над шахматной программой. Направление вызвало...

Готические Шахматы и Шахматы Януса
Программы - компьютерные противники, реализующие сабж? - где скачать? (можно лицензионные и платные...

разработка программы "Шахматы"
помогите пожалуйста с разработкой шахматной программы, ну или кто знает ссылки на такие разработки,...

154
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 13:21  [ТС]
Студворк — интернет-сервис помощи студентам
8Observer8, а ты пробовал wxWidgets? Там тоже есть OpenGL: https://docs.wxwidgets.org/lat... s__gl.html

Еще, можешь попробовать SFML. Там тоже есть OpenGL.


Или вообще, можно использовать GLEW. Например, тут Как правильно установить библиотеку glew для vs code ? я писал, как использовать GLEW с WinAPI.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 14:23
Цитата Сообщение от Royal_X Посмотреть сообщение
а ты пробовал wxWidgets? Там тоже есть OpenGL
Пробовал только без OpenGL. C OpenGL пробовал сочетать GUI из FLTK. wxWidgets поддерживает экспорт в WebAssembly, но он находится на стадии "very experimental", как сейчас написал ChatGPT. Когда я пробовал wxWidgets, то вообще не было экспорта в WASM.

Цитата Сообщение от Royal_X Посмотреть сообщение
Еще, можешь попробовать SFML. Там тоже есть OpenGL.
У SFML нет экспорта в WASM. Для Android пробовал собирать их официальный пример. Собралось нормально в APK и нормально запустилось на смартфоне, но только не OpenGL, а их API для рисования 2D графики. Я поискал информацию, что у SFML очень извращённый доступ к API Андройда. Мне намного больше понравился SDL3, потому что они реализовали удобную обёртку над API Андройда. У SDL3 поддержка Андройда на порядки лучше, чем у SFML. Я написал инструкцию, как собрать пример на OpenGL и пример на их API для рисования 2D графики в этой записи блога. Потом ещё SDL3 можно использовать для программирования на чистом Си, а на SFML тоже можно (есть binding), но он как-то слабо поддерживается. На Си удобнее отвечать в разделе Си киберфорума. Типа, удобно, что один инструмент для рисования на Си, С++, для Windows, Linux, Android и веб, если кто-то из студентов спрашивает на чём рисовать 2D графику на Си, C++, разных ОС и т.д., если есть задача, а инструмент несильно важен. Проще в чём-то узком разбираться для большого спектра языков, ОС, платформ. Я ещё практикуюсь иногда с Python, поэтому мне проще использовать PySDL3. Есть binding SFML на Python, но он слабо поддерживается.

Добавлено через 5 минут
Разработчики Emscripten (инструмент, который собирает в WASM) даже внедрили SDL в Emscripten.

Добавлено через 21 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
Так что, никогда не любил разработку для веб. Это настолько проблемно
Везде есть свои плюсы и минусы. Да, по сравнению с GDScript (C++ и т.д.) у JavaScript есть свои проблемы. Одна из главных проблем, что некоторые ошибки в коде на JS могут быть обнаружены только во время выполнения. Например, ошибка может находиться в теле условного оператора if. С этими ошибками можно бороться если иметь привычку писать модульные тесты, что я пока не делаю, а раньше пытался. Например, на C++ такие ошибки сразу могут быть найдены на этапе компиляции. Можно ещё использовать TypeScript, но мне он не понравился из-за лишних трудностей, которые он добавляет и несколько секунд на компиляцию меня не устраивают, потому что мне нравится часто запускать приложение во время отладки. Потом ещё есть проблема что разные HTML теги или CSS-код могут вести себя по-разному на разных браузерах, но эту проблему я решил использованием библиотеки Bootstrap.

Добавлено через 9 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
Или вообще, можно использовать GLEW
Я использовал эту библиотеку, когда начинал изучать OpenGL в 2014-м. Но потом, почему-то, не помню почему, взял вместо неё GLAD: https://glad.dav1d.de/ Потом я уже не забумывался использовать что-то другое вместо GLAD. Меня она устроила. Кстати, есть на SDL3 собирать для WASM, то GLAD не нужно использовать. Я просто в код вставляю такие условия для препроцессора, если приложение должно собираться в EXE и в WASM:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifdef __EMSCRIPTEN__
#include <SDL3/SDL_opengles2.h>
#else
#include <glad/glad.h>
#endif // __EMSCRIPTEN__
 
/* ... */
 
SDL_AppResult SDL_AppInit(/* ... */)
{
 
#ifdef __WIN32__
    if (!gladLoadGL())
    {
        std::cout << "Failed to load OpenGL functions" << std::endl;
        return SDL_APP_FAILURE;
    }
#endif // __WIN32__
 
/* ... */
 
}
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 14:23  [ТС]
Цитата Сообщение от 8Observer8 Посмотреть сообщение
по сравнению с GDScript (C++ и т.д.) у JavaScript есть свои проблемы
ну под проблемой я не имел в виду конкретно JavaScript. Я писал на JS, и он не такой уж плохой. К тому же, он быстрее питона.
Я скорее имел в виду, что поддержка WebGL разными устройствами очень разная, особенно мобильными. И очень сложно реализовать так, чтобы веб-игра работала на всех устройствах. Даже если я буду использовать низкоуровневые библиотеки, я не смогу реализовать что-то свое, которое было бы лучше Unity или Godot.
Цитата Сообщение от 8Observer8 Посмотреть сообщение
GDScript
Кстати, экспорт веб на годот 4 (в отличие от годот 3) работает, только если писать на GDScript. Это минус для многих, кто предпочитает писать на C#. Но, наверное, разрабы в будущем это исправят.
С другой стороны я не понимаю этих разрабов, которые принципиально хотят писать на C#. Скорость выполнения у этих языков одинаковая, но вот у C# компиляция долгая. Просто есть люди, которые привыкли и не хотят ничего менять. Я не из таких. Для меня яп это средство к достижению цели, а не сама цель. Я готов писать на абсолютно любом языке. И скажу, что GDScript даже неплохой язык, особенно для Godot.
0
 Аватар для MallSerg
93 / 61 / 14
Регистрация: 16.11.2018
Сообщений: 289
17.08.2025, 14:24
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Разработчики Emscripten (инструмент, который собирает в WASM) даже внедрили SDL в Emscripten.
Васм компилирует и опримизируер clang и тока после этого запускаются эмскриптен который питонит жаваскрипт.
т.е. питоновский скрипт читает список импортируемо\экспортируемых функций из бинарника васма и генерует JS который сможет собственно вызавать экспортированные из васма в JS и соответсвенно наоборот.

подробнее http://schellcode.github.io/we... emscripten
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 14:25  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
я не понимаю этих разрабов, которые принципиально хотят писать на C#
хотя, возможно такие разрабы просто профаны и идиоты, которые используют ИИ для написания кода. Ведь, ИИ очень прекрасно пишет на C#, но на GDScript пишет дичь.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 14:38
Цитата Сообщение от Royal_X Посмотреть сообщение
Я скорее имел в виду, что поддержка WebGL разными устройствами очень разная, особенно мобильными.
Если брать отдельно WebGL (1.0 и 2.0) на JS, а не WASM, то, например, WebGL 1.0 запускается без проблем даже на Windows XP и Windows 7 во всех браузерах. Я сам проверял - на очень старых браузерах работает: https://caniuse.com/#feat=webgl Даже на таком старом устройстве, как Redmi 4X c Android 7.1.1, но с выключенным antialias, который можно отключить из кода. А вот на WASM другое дело. Я пробовал собирать SDL3 с OpenGL на WASM и запускал Windows XP - не работает ни в одном браузере, по-моему. На Windows 7 работает SDL3 с WebGL 1.0 на Chrome и Opera, но не работает на FireFox. SDL3 я мало тестировал на мобильный браузерах. А вот чистый WebGL на JavaScript много раз тестировался за счёт популярности на западе Phaser и других фреймворков и библиотек, которые позиционируют себя, как mobile friendly.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 14:44  [ТС]
8Observer8, там дело не только в версиях, а еще в отдельных функциях той или иной версии. Разные устройства по-разному поддерживают эти функции.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 14:47
Цитата Сообщение от Royal_X Посмотреть сообщение
С другой стороны я не понимаю этих разрабов, которые принципиально хотят писать на C#.
Для кого-то это может быть связано с тем, что он долгое время использовал Unity, привык к C# и ему не хочется изучать новый язык. Либо он долго работал в конторе типа ушедшего из РФ американского EPAM, где, по-моему, в основном были вакансии на C#. Может для кого-то проще использовать один язык, как на работе, так и для хобби на выходных на Godot.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 14:56  [ТС]
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Для кого-то это может быть связано с тем, что он долгое время использовал Unity, привык к C# и ему не хочется изучать новый язык.
ну да, вот так они и начинают объясняться, мол почему они хотят принципиально писать на C#. Но эти аргументы не очень убедительны. Для настоящего программиста переход на другой язык это не проблема, тем более на такой легкий язык как GDScript. Просто эти люди не станут же говорить правду, что они нубы и нейросеть хорошо пишет для них на C#.
Тем более, они не пишут какие-то сложные коды. Посмотри на игры, сделанные в Godot. Там нет таких ААА игр, где нужны какие-то сложные паттерны или чего-то там им не хватает в GDScript.
Так что, если ты видишь игру на GDScript, знай, что код написан человеком, потому что нейросеть пишет говно на GDScript.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 14:59
Цитата Сообщение от Royal_X Посмотреть сообщение
Разные устройства по-разному поддерживают эти функции.
Я использую только WebGL 1.0, если пишу на чистом WebGL и JS. Не использовал какие-либо экзотические функции (расширения?) и не знаю есть ли такие в WebGL 1.0, которые не поддерживаются современными браузерами. В документации MDN Web Docs по WebGL 1.0 в конце страницы каждой функции есть список браузеров, с которыми работает эта функция. Здесь в таблицы видно, что если зелёное, то значит все функции работают в конкретной версии мобильного браузера: https://caniuse.com/#feat=webgl Там только мобильный браузер Opera Mini в пролёте, но его скорее всего, использует пренебрежимо малое количество людей. А когда использую Three.js, то доверяю этой библиотеке, потому что её за неделю скачивают большее 2 миллионов раз: https://www.npmjs.com/package/three Значит она протестированная. Я не сомневаюсь, что она работает без особых проблем на мобильных.
Миниатюры
3D Шахматы  
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 15:09  [ТС]
8Observer8, вопрос не только в браузере. Я имею в виду именно поддержку тех или иных фич мобильными устройствами. Например, очень давно у меня было устройство, которое в целом поддерживало многие фичи OpenGL ES 3.0. По идее, WebGL 2 работал в браузере Chrome и в остальных хромиумных браузерах, но не работал в Firefox. Но сам браузер Firefox тоже поддерживал WebGL 2. Дело в том, что оказалось, что устройство не поддерживало какую-то фичу OpenGL, и Firefox из-за этого переходил на WebGL 1. А вот хромиумные браузеры просто игнорировали данный факт и все равно не отключали WebGL 2.
Так же само с этими браузерными играми.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 18:14
Цитата Сообщение от Royal_X Посмотреть сообщение
Типа извращаться на низкой производительности?
Да, в контексте Unity и Godot это именно извращение с низкой производительностью в браузере. По мере дальнейшего распухания движков всё сложнее будет с производительностью на бюджетных устройствах. Возможно и они откажутся в скором будущем от поддержки WebGL и WebGPU (даже не начав поддержку WebGPU - аналог Vulkan). Поэтому я не рекомендую использовать Unity и Godot даже для браузерных 2D-игр, потому что в любой момент WebGL могут выпилить из этих движков. Могут даже через месяц оказаться от WebGL - это непредсказуемо.

По поводу низкой производительность 3D-игр на WebGL в Desktop-ном браузере - разве это так? Вот эта игра: https://kirka.io/ похоже сделана на чистом WebGL и HTML/CSS. Даже на моём старом ноутбуке она вообще не тормозит ни сколько, загружается на несколько секунд и кулеры даже не шумят. Изначально это была российская разработка, а потом они её кому-то продали. В неё очень быстро можно сыграть, если нажать кнопку в нижнем правом углу. Это шутер от первого лица с реальными людьми в стиле MineCraft. Правда, запускается только Desktop-ном браузере. Понятно дело, что Atomic Heart никто не будет делать в браузере. WebGL можно использовать для очень маленьких мультиплеерных игр, которые можно встраивать в социальные сети для лучшего привлечения игроков. На нём очень много популярных 3D игр. Можно спросить ChatGPT.

Добавлено через 12 минут
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Изначально это была российская разработка, а потом они её кому-то продали.
Я в мае этого года спрашивал у хозяина конторы про один баг в Kirka. Они написал, что они продали https://kirka.io/, чтобы сосредоточиться на https://cryzen.io/ и https://vectaria.io/ Что интересно у Kirka и Vectaria свой физический движок, они его с нуля написали, а Cryzen уже использует вроде популярный сейчас и вроде самый быстрый для веб (по его словам) физический движок Rapier.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 19:11  [ТС]
8Observer8, я заново экспортировал кубика как для винды, так и для веб на версии 3.6.1.
Добавил, чтобы игра начиналась уже со смешанного кубика. Еще, при Scramble раньше кубик вращался 25 раз, а сейчас 20 - это равно числу Бога.
Можешь проверить как версию винды, так и веб.
https://royalxxx.itch.io/cube-web
https://royalxxx.itch.io/cube
Раньше для веб был экспортирован на версии 3.6.0. Не думаю, что одна минорная версия исправила ситуацию, но если есть желание - проверь.

Конечно, было бы идеально сделать миграцию на 4-ю версию. Но я посмотрел код - там очень сложно. Кубика я писал, вдохновившись векторной алгеброй. И я очень много использовал апишные функции для векторных операций, которых в 4-й версией либо нет, либо поменялись. Лень сейчас во всем этом разбираться.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 20:29
Цитата Сообщение от Royal_X Посмотреть сообщение
Можешь проверить как версию винды, так и веб.
https://royalxxx.itch.io/cube-web
Нажимаю кнопку Run Game в Chrome на Windows 10 на ноуте. Кнопка исчезает. Примерно через 1 минуту или больше жёлтый фон позади кнопки меняется на серый и выводится сообщение на месте кнопки:



Ошибок в консоли нет:



На Android выдаётся такое сообщение спустя время:

Название: bc3941a82493fca1f837c345e5493d9a32aa77c9.png
Просмотров: 38

Размер: 2.4 Кб

Проверить веб версия на стационарке, на Линукс не могу, так как решил снести OpenSuse и поставить Ubuntu, но Windows 10 перестал грузиться. Стал переустанавливать Windows, но пишет, что надо преобразовать SSD-диск из MBR в GPT. Надо всё скидывать другой диск и конвертировать.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 20:34
Цитата Сообщение от Royal_X Посмотреть сообщение
Desktop-версия работает нормально.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 21:42  [ТС]
8Observer8, я проверил на виртуальных машинах - Win 11 в браузере Edge, и на Fedora Linux в браузере Firefox - все работает. То есть работает не только на моем ПК и на всех моих браузерах, а еще и на виртуальных машинах.



Уж если на виртуальных машинах у меня работает, то скорее всего, у тебя проблема не связана ни с браузерами, ни с ОС, а наверное с видеокартой.
Что за графика у тебя на устройстве?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,367
17.08.2025, 21:46  [ТС]
8Observer8, если есть у тебя AIDA64, то не мог бы ты зайти на вкладку Display/OpenGL и сделать скриншот
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 22:02
Цитата Сообщение от Royal_X Посмотреть сообщение
а наверное с видеокартой. Что за графика у тебя на устройстве?
Если бы с видеокартой была проблема, то Desktop-версия бы не работала. В консоль бы выдавались какие-то ошибки.

Цитата Сообщение от Royal_X Посмотреть сообщение
если есть у тебя AIDA64, то не мог бы ты зайти на вкладку Display/OpenGL и сделать скриншот
Прикрепил файл в архиве.

Попробовал запустить в FireFox. Исчезает кнопка Run Game и через минуту выдаётся следующее сообщение без ошибок в консоли:



В Edge после нажатия на Run Game появляется Progress Bar, а потом серый экран без сообщений об ошибках в консоли
Вложения
Тип файла: zip log.zip (8.4 Кб, 3 просмотров)
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 22:15
Цитата Сообщение от 8Observer8 Посмотреть сообщение
В Edge после нажатия на Run Game появляется Progress Bar, а потом серый экран без сообщений об ошибках в консоли
Я забыл посмотреть консоль на Edge. Выдаются сообщения, как в прошлый раз:



0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
17.08.2025, 22:21
Цитата Сообщение от Royal_X Посмотреть сообщение
Раньше для веб был экспортирован на версии 3.6.0. Не думаю, что одна минорная версия исправила ситуацию
Раньше на мобильном работало нормально, а сейчас перестало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2025, 22:21

Крик души (шахматы)
Я возмущен Играл с компьютером в шахматы (Опера Виджет) меня поразило какой долбоклюй их кодировал...

Задача про шахматы
Cсылка на изображение с условием: ВОТ ССЫЛКА вот не получается сделать. ну само собой что задача...

Шахматы. восемь фигур одного цвета
Задан вопрос по шахматам, можно ли расставить на доске восемь фигур одного цвета, чтобы они держали...

Шахматы.
Поле шахматной доски определяется парой чисел, каждое из которых не превосходит 8: 1е число - номер...

Шахматы: может ли белая фигура пойти на поле ef, не попав при этом под удар черной фигуры?
Поле шахматной доски определяется парой чисел, каждое из которых не превосходит 8: 1е число - номер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
28. КОнкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru