Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957

3D Шахматы

03.08.2025, 22:08. Показов 11060. Ответов 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
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
17.08.2025, 22:34  [ТС]
Студворк — интернет-сервис помощи студентам
8Observer8, кажется, понял. во время экспорта я не ставлю галочку, чтобы текстуры экспортировались под мобильные устройства
я экспортирую только S3TC, а для мобильных текстуры должны быть сжаты в ETC2
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
17.08.2025, 22:37
Цитата Сообщение от Royal_X Посмотреть сообщение
проверь еще раз на мобильном. лучше в инкогнито, чтобы не было кеша
Да, сейчас работает. Без инкогнито загрузилась новая версия.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
17.08.2025, 22:38  [ТС]
8Observer8, проверь еще раз, пж, на телефоне
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
17.08.2025, 22:41
Цитата Сообщение от Royal_X Посмотреть сообщение
проверь еще раз, пж, на телефоне
Сейчас просто чёрный экран, а через 30 секунд - took to long to respond
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
17.08.2025, 22:43
На ноутбуке:

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
17.08.2025, 22:43  [ТС]
8Observer8, короче, у тебя на телефоне работает, когда ставлю галку на itch.io
SharedArrayBuffer support
Это очень странно. Ведь это нужно, когда экспортируешь в режиме Threads.

https://docs.godotengine.org/e... r_web.html

тут об этом написано
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
17.08.2025, 22:47
Через минуту на ноутбуке в Chrome:

0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
17.08.2025, 23:23  [ТС]
8Observer8, я так понимаю, что это оплошность со стороны разрабов годот. Веб экспорт на 3 версии корявый. У тебя не работает на ПК и телефоне, а у меня не работает на телефоне. Я попробовал разные варианты, все равно не работает...

Я сравнил логи. Nvidia и Intel поддерживают разные расширения, и тут сложно понять, какого расширения не хватает у тебя. У тебя в целом больше поддерживаемых расширений, но у нас разные поддерживаемые расширения.
Но если у тебя декстопная версия работает, а веб - нет, то это вина разрабов годот... Тем более, у тебя 100% поддержка OpenGL. Не думаю, что для игры на годот нужны расширения.

8Observer8, я бы провел расследование, почему игра, созданная на годот 3.6, в браузере на ПК не работает, и пожаловался бы разрабам годот. Но поскольку у меня все работает, я не могу это сделать.

Добавлено через 7 минут
***
вот поэтому я не люблю создавать игры по сети. Это я к тому, что некоторые тут в первых постах спрашивали, типа эти шахматы по сети или нет.

веб говно, а сеть говно в квадрате. там тоже такие же проблемы - сиди, и месяцами анализируй трафик, чтобы понять, почему пакеты не достигают места назначения, или у кого-то NAT, или *уенат, порты не открыты, ай-пи говно, брадмауэр глючит и прочие проблемы...

десктопные игры норм - если у тебя работает, у других тоже будет работать.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
18.08.2025, 00:15
Цитата Сообщение от Royal_X Посмотреть сообщение
Но если у тебя декстопная версия работает
Точно работает на Desktop. По дате вчера вечером запускал:





Цитата Сообщение от Royal_X Посмотреть сообщение
я бы провел расследование, почему игра, созданная на годот 3.6, в браузере на ПК не работает, и пожаловался бы разрабам годот. Но поскольку у меня все работает, я не могу это сделать.
3.6 - это же старая версия. Её всё равное скоро перестанут выпускать. Они уже давно переключились на v4. Я ещё в конце 2023 тестировал 4.2.1

Цитата Сообщение от Royal_X Посмотреть сообщение
веб говно, а сеть говно в квадрате. там тоже такие же проблемы - сиди, и месяцами анализируй трафик, чтобы понять, почему пакеты не достигают места назначения, или у кого-то NAT, или *уенат.
Я уточню, что веб говно в Godot и Unity. Лучше бы они выпилили WebAssembly из этих движков как можно быстрее, как сделал UE. Не знаю, как в Godot, но раньше сеть в Unity была говном - называлась UNet (Unity Networking system) - столько я с ней мучился. Но когда наконец-то я её более или менее основил, набив шишки, а её взяли и объявили deprecated в Unity 2018, а потом полностью удалили в Unity 2020. Я переключился на веб-сокеты и Node.js, потому что это универсально и есть бесплатные хостинги для Node.js. На веб-сокетах никаких проблем нет с портами и брандмауэром. Никаких потерь пакетов. Самый протестированный модуль для веб-соектов на Node.js: https://www.npmjs.com/package/ws Этот модуль настолько популярен, что его скачивают более 100 миллионов раз в неделю:



Ещё не приставляешь какое говно сеть на C++ (без Qt), где баг на баге в библиотеках для работы с веб-сокетами, которые очень слабо поддерживаются или вообще не поддерживают. Например, https://github.com/zaphoyd/websocketpp - пять лет назад был релиз, а 400 Issue открыто и новых релизов нет. Я создавал Issue - ноль реакции. Соединиться с Render.com я так и не смог. Единственную нашёл библиотеку, которая более или менее нормально работает с веб-сокетами на C++ - https://github.com/machinezone/IXWebSocket Соединяется к Render.com из SDL3. JSON-пакеты пересылает с клиента на сервер и наоборот. Больше я её не тестировал, потому что у меня она собралась только с Mbed TLS 2.28.9, а не с текущей 3-й версией и это я сохранил в Issue, но его не решают и не закрывают. Пошаговый процесс сборки для VS 2022 сохранил здесь

Я думал, сначала потренироваться на простых сетевых играх типа Крестики-Нолики на C++ и SDL3. Написал чат в браузере на C++ и SDL3: https://chat-sdl3-wasm-cpp.onrender.com/ но использовал браузерный веб-сокет. А для Desktop получается нужно использовать IXWebSocket, а для Android что-то ещё, если собирать в натив. Да проще тогда сделать на C++ сборку в WASM для веб, а потом из WASM с помощью Cordova в APK, а EXE собрать из того же WASM с помощью WebKit. В этом случае меньше работы, так как делаешь только одну версию с браузерным веб-сокетом. А проще всего делать браузерного клиента на веб-сокетах на JavaScript, который отлично работает, как на любом Desktop-браузере, так и на любом современном мобильном браузере, а при необходимости тоже можно собрать Кордовой в APK, а WebKit'ом в EXE.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
18.08.2025, 00:23
Цитата Сообщение от Royal_X Посмотреть сообщение
десктопные игры норм - если у тебя работает, у других тоже будет работать.
Если, допустим, взять Phaser, то можно писать 2D-игры на JavaScript, по типу, как их пишут на SFML или libGDX. На нём куча народу пишет - более 50 тыс скачиваний в неделю: https://www.npmjs.com/package/phaser. Тоже есть у тебя работает, то и других будет работать.

Добавлено через 3 минуты
А у Pixi.js более 275 тысяч скачиваний в неделю: https://www.npmjs.com/package/pixi.js Про Three.js я уже писал, что у него более 2 миллионов скачиваний в неделю: https://www.npmjs.com/package/three

Добавлено через 2 минуты
Как вариант, потренироваться с клиент-серверным программированием на Node.js и веб-сокетах, при этом имея бесплатный Node.js хостинг на Render.com Я пробовал соединять Godot-клиента с локальным Node.js сервером веб-сокетами. А вот пересылал ли пакеты между Godot-клиентом и с Node.js сервером на хостинге Render.com - не помню, может и не попробовал.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
18.08.2025, 00:29  [ТС]
8Observer8, я не спорю, что есть инструменты, которые позволяют создавать веб-игры без глюков.
Но мне такое не интересно. Я создаю игры для винды и было бы хорошо, если была нормальная возможность экспортировать для веб, а не заново писать на каких-то Phaser.

Добавлено через 3 минуты
8Observer8, godot 3 старая. Но до сих пор выпускают обновления. Последнее было пару месяцев назад. Они как раз шаблоны для экспорта обновляют и мелкие исправления делают.
Но оказалось, что в части веб ничего не изменилось.
4-я версия вроде норм для веб, по крайней мере у тебя работает в браузере. Но нет настроения менять проект на 4 версию.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
18.08.2025, 00:36
Цитата Сообщение от Royal_X Посмотреть сообщение
Я создаю игры для винды
У тебя цель - делать игры в одиночку и стабильно на них зарабатывать, чтобы на жизнь хватало? Хочешь организовать команду? Или хочешь найти команду, к которой можно присоединиться? Мне нравятся заниматься простыми играми ради практики в JS, Node.js, MongoDB, WebSockets, Bootstrap, HTML, CSS и т.д.

Добавлено через 4 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
godot 3 старая. Но до сих пор выпускают обновления.
Не понимаю, зачем они это делают? Нельзя ли прекратить поддержку 3-й версии и сосредоточиться на 4-й? Сколько они ещё будут выпускать обновления для 3-й? Как-то это странно.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
18.08.2025, 00:39  [ТС]
8Observer8, я ни на разработке игр, ни на программировании не зарабатываю. У меня в жизни другая специальность. Это все мое хобби.

Касательно 3 версии, то я полагаю, что есть очень много игр на этой версии, и не все разрабы готовы перейти на 4 версию, потому что это не так уж просто. Проект полностью ломается. Есть типа функция авто миграции, но она ломает проект.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
18.08.2025, 00:53
На Unity тоже такое случается, что Б
Цитата Сообщение от Royal_X Посмотреть сообщение
я ни на разработке игр, ни на программировании не зарабатываю.
Я понимаю, что сейчас не зарабатываешь на этом, просто думал, у тебя планы есть. Какая-то цель в этом направлении. А может сам путь выведет куда-то.

Цитата Сообщение от Royal_X Посмотреть сообщение
У меня в жизни другая специальность.
А что за специальность, если не секрет?

Цитата Сообщение от Royal_X Посмотреть сообщение
и не все разрабы готовы перейти на 4 версию, потому что это не так уж просто
Видимо, действительно, разрабы очень сильно перекроили API 4-й версии. На Unity переход между 5 -> 2017 -> 2018 и т.д. был, скорее всего, намного менее болезненным для профи, потому что предыдущие версии выпускались недолго.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
18.08.2025, 01:16  [ТС]
8Observer8, я сегодня хотел кубика конвертировать под 4 версию, открыл проект (после авто конвертирования с 3 на 4) и был просто в шоке, все было сломано. Не только код, но и сами игровые объекты. Кое-как по-быстрому исправил ошибки в коде (пришлось даже написать велосипеды вместо удаленных функций из апи), но управление было сломано, хотя ошибок не было. То есть, по-быстрому не получилось. Нужно было разобраться во всем заново. И я подумал "да ну его ***", пусть кубик на 3-й версии и останется. Изменил немного год, чтобы игра запускалась уже со смешанным кубиком и на этом всё.
Ну а новые проекты я конечно же делаю на 4-й версии. API 4-й версии мне больше нравится, да и сам движок заметно улучшили.
***
Мне годот нравится своей лицензией. А то с этими псевдо-бесплатными инструментами вечно проблемы.
Например, недавно мне пришлось урезать из программы на Qt часть фич, ибо я нарушил лицензию. Оказалось, что Qt Charts имеет лицензию GPL, и нет для этого модуля возможности выбрать LGPL. GPL обязывает открыть весь код. Прогу мою даже удалили из Sourceforge. Пришлось удалить все связанное с Qt Charts и заново публиковать.
В следующий раз буду осторожен. Большинство модулей Qt можно использовать как под LGPL, так и под GPL. Но вот некоторые модули нужно избегать, как вот Qt Charts или Qt Graphs, поскольку они только под GPL. Короче, нужно в документации проверять. Либо при установке модуля быть внимательным, когда ставишь галочку о принятии лицензии.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
18.08.2025, 13:10
Цитата Сообщение от Royal_X Посмотреть сообщение
Оказалось, что Qt Charts имеет лицензию GPL
QCustomPlot (2D) тоже GPL. Многие библиотеки для Qt для построения графиков и визуализации данных имеют две лицензии: GPL и коммерческую. Одно время практиковался с Qwt (LGPL), но она не для 3D и трудно сделать "как хочется", как на шейдерном простом OpenGL 2.0, где полный контроль в 2D и 3D, хотя в начале больше времени требует - на текст, например. На OpenGL можно визуализировать данные, заниматься геометрией - визуализировать задачи или результаты решений геометрических задач (или задач по линейной алгебре) в 2D и 3D, анимировать объяснения условий задач или их решения, стоить UML-диаграммы, блок-схемы и т.д., имея один инструмент в виде OpenGL для большого круга задач и не прыгать с одной библиотеки на другую, если что-то не устроило. Правда, LGPL не позволяет собирать в статику, но потом я понял, что статика больше места тратит на жёстком, когда приложений становится много, а динамические библиотеки можно держать в одной папке, по крайней мере, на своей машине, а EXE, в этом случае, мало места занимают.

Добавлено через 22 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
на Fedora Linux
Я пробовал запускать Fedora с Ventoy. Была мысль попробовать поставить это дистрибутив, но не решился. Ты меня надрозумил. Буду ставить в дополнение к Ubuntu. Это должно быть что-то другое, что базируется на Red Hat Linux, а не Mint и Zorin OS, которые базируются на Ubuntu. Раньше пробовал только OpenSuse и Mint. Хотелось ещё Zorin OS попробовать - посмотреть насколько она похожа на Windows по интерфейсу. Может попробую.

Добавлено через 13 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
Изменил немного год, чтобы игра запускалась уже со смешанным кубиком и на этом всё.
Прикрепи сборку кубика из 4-й версии в виде архива. Я локально попробую. За одно вспомню, сколько весит сборка в WASM из Godot и сохраню эту инфу.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
18.08.2025, 13:30  [ТС]
8Observer8, я очень долго выбирал самый лучший дистрибутив линукса для моей виртуальный машины и выбрал Fedora. Создатель линукса тоже на федоре.
Fedora это semi-rolling: ядро, системные пакеты, обновления безопасности и все важное обновляются раз в полгода, что гарантирует стабильность - т.е. федора не относится к нестабильным дистро. Но вот остальные пакеты такие же свежие, что и в rolling дистрибутивах. А это для меня очень важно - во всяких ubuntu, debian, mint, manjaro не самые свежие. Мне нравится, когда все программы и пакеты имеют крайнюю версию.
Федора с двумя официальными интерфейсами (гном и кде), я поставил оба и можно между ними переключаться на экране входа.

Цитата Сообщение от 8Observer8 Посмотреть сообщение
Прикрепи сборку кубика из 4-й версии в виде архива.
так я же выше уже несколько раз написал, что я не сделал миграцию на 4-ю версию. Да и забей ты на этот кубик. Главное, что десктопная версия работает. А веб это просто приятное дополнение для тех, у кого работает.

Цитата Сообщение от 8Observer8 Посмотреть сообщение
GPL и коммерческую
да, я знаю. Но поскольку у меня бесплатная Qt, так сказать, qt для опенсорсных проектов, то коммерческая лицензия сразу отпадает. Я могу выбирать для своих проектов либо LGPL, либо GPL.
Дело в том, что при LGPL ты не обязан открыть код всей программы, ты должен только открыть код библиотеки Qt, если ты что-то менял в ней. А вот при GPL ты обязан открыть код всей программы. Ну и есесена, в обоих случаях нужно использовать динамическую линковку (для LGPL можно поставлять объектные файлы).

Цитата Сообщение от Royal_X Посмотреть сообщение
открыть код всей программы
у меня нет желания открывать коды моих программ. Я и так никакой выгоды не получаю. С какой стати я должен открыть коды? Поэтому пусть их GPL пойдет лесом.
Смысл опенсорса в том, чтобы возле проекта с открытым кодом собралось сообщество и все дружно развивали проект.
А когда программист-одиночка сам все пишет и от него потом требуют открыть код, чтобы другие воровали код и потом выдавали за свой, - это беспредел)

Я когда пишу программы или создаю игры, то никуда не смотрю, сам все пишу. Даже на туториалы не смотрю. Когда-то смотрел видео-туториалы по созданию тетриса и кубика на Unity, но там разраб такое неоптимизированное говно творил, что я решил самостоятельно все реализовать. Разрабы из туториалов будто с головой не дружат. Или для них просмотры и подписчики важнее, а что за игра получится - то второстепенно...

Тем более, думать о том, как будешь воплощать идею в код, это самая интересная часть программирования. Помню, я замечательно проводил время, думая над алгоритмом вращения кубика)

Ты говорил, что у тебя есть список игр, которые ты хочешь реализовать. Я тебе посоветую не смотреть на туториалы, а сделать самостоятельно. Вот, увидишь, что разработка станет в разы увлекательнее.
0
9993 / 2965 / 497
Регистрация: 05.10.2013
Сообщений: 8,150
Записей в блоге: 244
18.08.2025, 13:47
Цитата Сообщение от Royal_X Посмотреть сообщение
так я же выше уже несколько раз написал, что я не сделал миграцию на 4-ю версию.
Это я понял, но ты писал, что с кривым управлением, но запускается. Я просто хотел проверить будет ли просто запускаться у меня после такой миграции. Управление - фиг с ним в данном контексте. Подозреваю, что должно запускаться, раз Сапёр запускался, но тут был этап миграции. Но с другой стороны - не прикрепляй, потому что кто-то зайдёт, запустит и будет писать, что управление кривое. Будет считать, что после миграции с 3-й на 4-й и ручной правки у меня запустилось, тем более ты теперь с нуля пишешь сразу для 4-й.

Цитата Сообщение от Royal_X Посмотреть сообщение
Ну и есесена, в обоих случаях нужно использовать динамическую линковку.
Я всегда думал, что на GPL требует раскрытия исходников и позволяет собирать в статику. Я спросил у ChatGPT: "Does GPL allow to build Qt apps statically?". Он написал, что да, позволяет:

Allowed: You can statically link Qt if you accept that your entire app will be GPL and you distribute the full source
Он даже пишет, что LGPL позволяет, но с оговоркой, что если разработчик предоставит пользователю возможностью линковать библиотеки Qt динамически на ряду со статической сборкой, если я правильно понял:

- Allowed only if you provide a way for the user to relink your app with a modified version of Qt.
- In practice, this means you’d have to distribute your object files or some other mechanism so that the end-user can rebuild your app against their own Qt build.
- Most companies don’t want to deal with this hassle → that’s why static linking under LGPL is rarely used in practice.
Хотя нейронки нередко ошибаются, а мне лень проверять.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6697 / 3096 / 1064
Регистрация: 01.06.2021
Сообщений: 11,957
18.08.2025, 19:27  [ТС]
8Observer8, да, GPL можно статически. Я выше неправильно написал. Но код нужно полностью открыть.
LGPL либо динамическая линковка, либо статическая, но нужно еще предоставить объектные файлы. Просто в LGPL тоже прямо не говорится, что нужна динамическая линковка. Там просто сказано, что нужно предоставить пользователю возможность линковать библиотеку самостоятельно. А логика говорит, что можно даже статически линковать, но распространять с объектными файлами, чтобы юзер мог компилировать.
Если же придется вместе с исполняемым файлом распространять какие-то объектные файлы, то мне кажется, что лучше делать уже динамическую линковку и не усложнять себе жизнь.

8Observer8, я перенес проект кубика на 4-ю версию. Ничего особо не менял. Только реализовал более мягкое вращение камеры.

Теперь у тебя должно работать.

У меня, кстати, на телефоне тоже игра начала работать. Однако, толку от этого мало, поскольку я не реализовал управление через тач. Нормальных примеров реализации тача нет, только документация. Это означает, что нужно постоянно писать код - тестировать, менять код - тестировать. Но это жесть. После каждой маленькой правки экспортировать в веб и проверять - это очень времязатратно. С другой стороны, если реализовать тач, то потом можно и для андроид экспортировать.

https://royalxxx.itch.io/cube-web
0
Модератор
Эксперт Java
 Аватар для alecss131
2903 / 1408 / 413
Регистрация: 11.08.2017
Сообщений: 4,514
Записей в блоге: 2
18.08.2025, 21:09
Цитата Сообщение от Royal_X Посмотреть сообщение
https://royalxxx.itch.io/cube-web
У меня не работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.08.2025, 21:09

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
После закрытия оутлука продолжает висеть процесс в диспетчере задач
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й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru