Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.08.2025, 22:08
Ответы с готовыми решениями:

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

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

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

154
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
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
Модератор
Эксперт Java
 Аватар для alecss131
2894 / 1400 / 412
Регистрация: 11.08.2017
Сообщений: 4,483
Записей в блоге: 2
18.08.2025, 21:31
С 3 запрещенными буквами "заработало". Но теперь спамит таким
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
18.08.2025, 21:39  [ТС]
alecss131, наверное, твой провайдер имеет что-то против инди-игр) А на три буквы уже может ругаться сам itch.io.

Для винды, я оставил кубика, сделанного в годот 3, но применил все те же правки в коде, что делал для кубика на годот 4. Просто игра на годот 3 весит в два раза меньше. А вот для веб загрузил кубика на годот 4.
0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
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
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
19.08.2025, 00:06
Кубик и Сапёр работают без проблем в FireFox с ТЗБ.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
19.08.2025, 00:25  [ТС]
8Observer8, я сапера вообще не трогал. Если раньше работал в хроме, а сейчас нет, то это уже связано либо с itch.io, либо с твоей сетью.
0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
19.08.2025, 00:42
Я уверен, что это связано с блокировками на стороне провайдера системой ТСПУ (технические средства противодействия угрозам), на которую провайдер не может повлиять - только кибер-подразделение ФСБ (или кто этим занимается) раз работает с ТЗБ, а без ТЗБ не работает.

На Android (мобильного интернета у меня нет, только Wi-Fi) без ТЗБ не работает, а с включенным ТЗБ работает:

0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
19.08.2025, 00:46
Вот только интересно почему у тебя без ТЗБ работает. Может быть разным провайдерам закачиваются разные фильтры на ТСПУ.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
19.08.2025, 00:49  [ТС]
8Observer8, в любом случае, твой ответ полезен. Я теперь знаю, что экспорт в веб на годот 4 лучше работает, чем на 3-й версии. Т.е. миграция на 4-ю версию принесла пользу. Я, конечно, мог и для десктопа экспортировать на 4-й версии, но зачем это делать, размер игры будет в два раза больше. Пусть останется на 3-й.

8Observer8, я издалека, поэтому работает.
Вообще, не понимаю, что такого сделал itch.io, что его фсб блокирует (если твоя теория верна).
0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
19.08.2025, 01:32
Цитата Сообщение от Royal_X Посмотреть сообщение
Вообще, не понимаю, что такого сделал itch.io, что его фсб блокирует (если твоя теория верна).
Я сейчас думаю, что скорее всего, не ФСБ здесь замешано, а Роскомнадзор. Нагуглил, что 2024-м:

Роскомнадзор начал ограничивать доступ к определенным сервисам или функциям AWS.
Ещё я нагуглил, что периодически возникают проблемы с itch в РФ, потому что itch использует AWS. Видимо itch использует AWS для хостинга веб-приложений, которые загружает пользователь. Сам сайт itch сейчас работает нормально без ТЗБ, а загруженные пользователем веб-приложения не работают веб ТЗБ. Нагуглил тему на Reddit, что месяц назад itch вообще не был доступен в РФ некоторое время без ТЗБ, а потом доступ восстановился. Может и к веб-приложениям на itch доступ без ТЗБ тоже восстановится через некоторое время.

Добавлено через 2 минуты
В вот чем AWS не угодил Роскомнадзору - понятия не имею. Такой информации я не нашёл.
0
19.08.2025, 21:55

Не по теме:

Цитата Сообщение от 8Observer8 Посмотреть сообщение
В вот чем AWS не угодил Роскомнадзору - понятия не имею. Такой информации я не нашёл.
Зачастую чисто техническая сторона вопроса, причём пофиг кто и где блокирует. Насколько знаю блокировки "ковровые" по причинам того что нельзя легко и просто вычленить конкретный контент из сети. Плюс если нужно заблокировать 100500 разношерстных IP, могут влепить маску и забить т.к. в противном случае условный роутер сойдет с ума каждый пакет сверять с километровой таблицей.

Ну и юридически там тоже есть приколы, но эта тема уже идёт впритык с политикой, так что я пасс её обсуждать.

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
20.08.2025, 00:05  [ТС]
8Observer8, реализовал вращение камеры двумя пальцами. В апи годот InputEventScreenDrag, кстати, нет события тача двумя пальцами. Есть только индексы пальцев. Поэтому, на самом деле, камеру вращает только один палец - второй палец. Это означает, что камера будет вращаться при одновременном касании 2 и больше пальцев, а не ровно двух.
Либо придется писать уж слишком замудренный код, который отслеживает текущее количество пальцев. Хотя, может это и просто. Берем переменную, при таче InputEventScreenTouch добавляем значение, а когда убираем палец - отнимаем. Ладно, потом попробую что-нибудь делать.
Надо будет реализовать теперь вращения кубика одним пальцем.
0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
20.08.2025, 01:32
Я запустил кубик (https://royalxxx.itch.io/cube-web) на Android и увидел чёрный экран, но потом вспомнил, что надо запустить ТЗБ и кубик сразу прогрузился. Да, у меня вращение двумя пальцами работает. На всякий случай напишу, что с первого сентября в РФ вступит в силу закон о запрете рекламы ТЗБ (три запрещённые буквы). Если я правильно понял, то нельзя будет даже намекать, что существует ТЗБ. Скорее всего, даже завуалированное сочетание слов "три запрещённые буквы" будет считаться нарушением закона. Для граждан РФ штраф от 50 до 80 тысяч.

Цитата Сообщение от Royal_X Посмотреть сообщение
я издалека, поэтому работает.
Предположим, ты живёшь не в РФ и не являешься гражданином РФ, то на тебя этот закон не распространяется. Но на КиберФоруме ты не сможешь написать, как запустить веб-приложение на itch из РФ, используя ТЗБ, так как за это будет отвечать владелец КиберФорума, раз он допустил рекламу ТЗБ у себя на форуме. Скорее всего, ты можешь это написать на странице itch. Но, видимо, такую ссылку нельзя будет публиковать на КиберФоруме, так как это может быть расценено, как реклама ТЗБ - ссылка на страницу, где запрещённая реклама. В этом случае, новые люди будут писать после 1-ого сентября: "у меня не работает веб-версия на itch" и как им намекнуть, что надо использовать ТЗБ? Да, никак - нет идей.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
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
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
20.08.2025, 02:49
Цитата Сообщение от Royal_X Посмотреть сообщение
Реклама это когда ты пишешь "Скачай этот продукт, скорость хорошая, цена низкая и т п."
Это было бы актуально только для владельцев конкретных ТЗБ, кому выгодно продавать свой продукт, или покупать рекламу у блогеров, владельцев сайтов и т.д. Рекламу ТЗБ уже запрещали осенью 2024 года. Летом этого года приняли поправки о запрете рекламы для всех граждан и эти поправки вступят в силу 1 сентября 2025. Есть же ещё "скрытая реклама". Скорее всего, под рекламой имеется ввиду "скрытая реклама", то есть нельзя будет даже намекать на ТЗБ. Поисковый ИИ в гугле пишет:

Нельзя будет: Прямо и косвенно популяризировать VPN как способ обхода блокировок.
Можно будет: Использовать VPN для законных целей, например, для доступа к рабочим ресурсам или сайтам, заблокированным по собственной инициативе владельцев.
Внимание: "Намекать" на использование VPN в контексте обхода блокировок, особенно если речь идет о запрещенных материалах, может быть рискованно, так как это может быть расценено как популяризация запрещенных действий. В любом случае, стоит быть осторожным с формулировками, чтобы избежать возможных проблем.
Цитата Сообщение от Royal_X Посмотреть сообщение
Так же само, нужно тут сперва понять, был ли itch io блокирован властями РФ.
itch точно не был блокирован. Сам сайт, без запуска веб-приложений из него, работает нормально без ТЗБ. Властями частично блокированы сервисы ASW (Amazon Web Services ), за отказ исполнить требования закона о "приземлении", что негативно сказалось на других сайтах.

Цитата Сообщение от Royal_X Посмотреть сообщение
И, кстати, закон с обратной силой для владельцев сайтов. Т.е. админы должны очищать старые посты, начиная с некой даты.
Я спросил у поискового ИИ: "Запрет рекламы ... (ТЗБ) в сети после 1 сентября 2025 имеет обратную силу для владельцев сайтов?"

Нет, запрет рекламы ... (ТЗБ), вступающий в силу 1 сентября 2025 года, не имеет обратной силы для владельцев сайтов. Запрет распространяется на рекламу, размещаемую после этой даты.
Я не до конца уверен, что под рекламой подпадает "скрытая" реклама, то есть упоминание имени конкретного ТЗБ. Тем более что я не имею от этого выгоды. Могу ли я написать на КиберФоруме, что для браузера FireFox я использую вот этот конкретный ТЗБ? Является ли это рекламой? Например, я просто поделился информацией, что я использую бесплатный ТЗБ, который называется таким-то именем.

Добавлено через 5 минут
Или я даже не могу писать те три английский буквы? Или я даже не могу намекать на существование тех трёх английских буквы в таком сочетании?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
20.08.2025, 03:04  [ТС]
8Observer8,

Запрета VPN-сервисов (для профессионального и личного, но при этом исключительно добросовестного использования), а также каких-то штрафов за это никто вводить не собирается
Добавлено через 4 минуты
8Observer8, короче, новый закон вводит штрафы за:

Рекламу VPN – штрафы для граждан (50–80 тыс. руб.), должностных лиц (80–150 тыс. руб.) и юрлиц (200–500 тыс. руб.).

Умышленный поиск экстремистских материалов (из реестра Минюста) через VPN – штраф 3–5 тыс. руб.

Использование VPN для преступлений (мошенничество, наркоторговля и т. д.) – уголовная ответственность (до 5 лет лишения свободы).

***
То есть, если itch io не является экстремистским, то я спокойно могу написать даже на форуме, что если игра не открывается, используйте VPN. Или могу просто написать, мол чувак, это у тебя проблемы с сетью, а с игрой все в порядке.
Это не реклама, а совет.
В примере некого юриста было сказано, что реклама это когда пользователь дает другому ссылку на VPN. То есть, когда он отсылает к конкретному VPN сервису.

И, кстати, много чего было запрещено ещё давно. Новый закон лишь вводит штрафы.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
20.08.2025, 10:16  [ТС]
8Observer8, сделал, чтобы камера вращалась при таче только при касании ровно двумя пальцами. Теперь нужно реализовать вращение кубика одним пальцем. Но это так нудно работать с апи тача, когда каждый раз для тестирования нужно собирать игру для веб и публиковать на сайте... Будет настроение - сделаю, но не сейчас.
0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
20.08.2025, 11:55
Цитата Сообщение от Royal_X Посмотреть сообщение
когда каждый раз для тестирования нужно собирать игру для веб и публиковать на сайте...
А во время отладки сколько раз приходится собирать игру и ждать, когда движок собирёт в WASM или APK. При отладке хотя бы не нужно публиковать на сайте, потому что можно запустить локальный HTTP-сервер, а на Android в хром ввести адрес локального сервера. Например, у меня адрес выглядит так: 192.168.1.64:8080 Я поставил HTTP-сервер через NPM командой:

Bash
1
npm i http-server -g
Потом заходишь в папку с index.html и пишешь команду в консоли:

Code
1
http-server -c-1
Ключ "-с-1", чтобы браузер не кэшировал. После запуска этой команды будут выведены адреса локального сервера. Например, у меня:

Code
1
2
3
4
vailable on:
  http://192.168.1.64:8080
  http://127.0.0.1:8080
Hit CTRL-C to stop the server
На Android окрываешь например Chrome и набираешь 192.168.1.64:8080 Для перезагрузки страницы нажимаешь три точки в правом верхнем углу Chrome и нажимаешь кнопку перезагрузки (круговая стрелка).
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
20.08.2025, 12:16  [ТС]
Цитата Сообщение от 8Observer8 Посмотреть сообщение
При отладке хотя бы не нужно публиковать на сайте
на публикацию я трачу 5 сек. Архив с игрой весит 9 МБ и он моментально загружается на сайт. Потом всего лишь нужно нажать на Save.
Так что, еще вопрос, что больше займет времени - публикация на сайте или создание локального сервера.
Я просто имел в виду, что было бы легче, если устройство, на котором я разрабатываю игру, было сенсорным. Тогда я запустил бы и сразу же увидел результат. А сейчас мне приходится каждый раз делать экспорт в веб.

Добавлено через 1 минуту
8Observer8, ты, кстати, шахматы тестировал? Если уже скачивал, то удали и загрузи заново. Я сегодня выложил новую версию с некоторыми исправлениями.
0
9954 / 2956 / 497
Регистрация: 05.10.2013
Сообщений: 8,081
Записей в блоге: 242
20.08.2025, 12:46
Royal_X, вообще использовать itch, как площадку для тестирования кубика - это не очень правильно. Туда надо заливать уже протестированные версии. На данный момент, я пришёл к выводу, что лучше использовать BitBucket Pages. В отличие от GitHub Pages на Bitbucket изменения вступают в силу сразу, а на GitHub нужно ждать больше минуты. Для WASM я использую Netlify, потому что WASM-сборки весят много и мне не хочется тратить место на BitBucket Pages и на ноуте на WASM.

Цитата Сообщение от Royal_X Посмотреть сообщение
когда каждый раз для тестирования нужно собирать игру для веб и публиковать на сайте...
Меня это сильно бесит в Unity, который собираешь по 3 минуты во время отладки, если исправить что-то в коде. Godot хотя бы гораздо быстрее собирает. Плюс нужно вести параллельно оптимизированную версию на веб параллельно к Desktop-версией. Лучше бросай веб и сосредотачивайся на Desktop. Зря я тебе про веб написал и сбил тебя с пути. Я только потратил твоё время. На Android тоже не трать время, потому что кучу времени потратишь пока будет ждать сборки в APK.

Цитата Сообщение от Royal_X Посмотреть сообщение
сделал, чтобы камера вращалась при таче только при касании ровно двумя пальцами.
Когда я только начал знакомиться с Unity, то меня сразу расстроило, что у них есть контроллеры управления персонажем: FPS и TPS, но они не добавили OrbitControls. Куча игр, где нужно вращать камеру вокруг поля - Кубик-Рубика, Шашки, Шахматы, Сапёр и т.д. В Godot, видимо, тоже нет OrbitControls. Почему бы разработчикам не добавить OrbitControls, как стандартный? Например, в графическом движке Three.js и в игровом движке Babylon.js есть OrbitControls как стандартный встроенный инструмент.

Меня радует, что 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 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
Так что, еще вопрос, что больше займет времени - публикация на сайте или создание локального сервера.
Даже если ты никогда не устанавливал Node.js, то это делается один раз и в несколько кликов: https://nodejs.org/en/download Вместе с Node.js устанавливает NPM (это пакетный менеджер, как PIP на Python). Создание локального сервера - это несколько секунды, которые ты тратишь только один раз, введя команду: npm i http-server -g Запуск локального сервера занимает несколько секунд, когда ты набираешь команду: http-server -c-1 Потом ты просто открываешь local host, набирая в строке браузера http://localhost:8080/ А далее просто обновляешь страницу браузера. Я во время отладки много раз запускаю приложение, если бы я каждый раз бы закидывал файлы на itch, то я бы сошёл с ума.

Добавлено через 5 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
Я просто имел в виду, что было бы легче, если устройство, на котором я разрабатываю игру, было сенсорным. Тогда я запустил бы и сразу же увидел результат. А сейчас мне приходится каждый раз делать экспорт в веб.
Вот за это я и ненавижу Unity WebGL и WebAssembly в целом и поэтому любли JavaScript. Пусть даже SDL3 собирает за 20 секунд в WASM, а не 3 минуты. 3 минуты на Unity после изменения в коде про разработке! Это куда вообще!? У меня процесс отладки на JS сводится, как раз к тому что я просто изменяю кода, нажимаю Ctrl+S (Rollup очень быстро за доли секунд создаёт bundle), обновляю страницу на Android и тестирую на сенсоре.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.08.2025, 12:46

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
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С. Задача: Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru