
Комментарии 12
Спасибо за текст, GPT!
Там же один только листинг программного кода. Текста-то и нет.
Добрый вечер, не буду врать или отнекиваться, что тут не использовался GPT (будет глупо, тк сейчас почти каждый его использует) - эта статья не исключение. Но могу заверить, что большая часть статьи написано, от руки и текст не исключения (пример можно посмотреть подписание методов, тк одни описанные структурно и красиво, другие на скорую руку - одно предложение)
Также цель статьи другая не в том, чтобы я рассказал о своем коде и какой я молодец, а в том, чтобы кто-то прочитал статью (или хотя бы - заголовок), потом решил, поиграться с проектом и сделал свою игру сапёр с уникальными идеями. Или например: предложил интересную задумку для оптимизации или улучшения кода
оптимизация тут вырисовывается это шейдеры/свет, vao/vbo(/ebo), потомучто opengl 1 не дебажится в рендер доке, а так нормально, если работает и устраивает. + вы используете массив наверно, и скорее всего пускаете луч через тангенс, можно подумать о рейкасте(из центра - окна) и какой-то структуре(например дерево ограничивающих обьемов под рейкаст) как тренеровка на такой игре,
на 3д сложно писать статью это надо и код приводить в порядок, я сужу по learnopengl и описывать, и код подгатавливать, чтобы не обо всём было, да нормально, причем как делать сапёра и так понятно, в кубоиде наверно было бы интереснее, тут как первый пример приближение )
иммерсивная бродилка в кубическом мире, где надо ставить флажки и нажимать гравитометр )
иммерсивный сапёр он как в игре от близов(на фестивале есть он )), или это надо подумать как бы выглядело в 3д )))
кстати в 3д на кубиках можно поидее как вид сверху так и в мире прям бегать по кубикам флажки ставить наверно, у вас в 3д вон тоже есть )
кстати на сапёре возможно можно строить пещеры, выйгрыш что не надо искать формулы, надо только понять как организовать вход в освободившееся пространство, и замостить эту полость гладкой поверхностью и поверхность для ходьбы выделить в карту высот до террейна, как раз и сталактиты и прочее получается
Идея с пещерой от первого лица так-то отличная (тоже видел в рекомендациях), но боюсь - это пока не мой уровень. Плюс думаю все же это проще сделать через какой-то движок (пример Unity), чем чисто на языке python, а тут был план на простом примере реализовать игру
и не мой тоже, я тоже в 3д корпею щас, как раз думаю как пещеры генерить, просто я увидел, сам буквально только что, что эта игра по сути генерит то, что генерится сложными дерево образующими или фрактальными алгоритмами, просто клик и полость готова - рандомная)
ну большой движок, если вам удобно используйте, но нулевой 3д тоже нормально, у меня щас простенькая физика и террейн, не хватает пока пещер для дальнейшей итерации левелинга )

так, а какая разница если вы реализуете стрктуру, вам будет проще, всё упрётся только в нюансы физики )
вот С++ glm glew структурку прикрутил bvh, дальше надо понять генерацию, причем в движке придётся генерить же тоже, причем, с бвх значительно проще становится делать чем без, не знаю как с к мерными деревьями, но с бвх проще, потомучто с террейнами можно свою систему на основе высот придумать в теории(типо на основе карт/градиентов/сразу карту под места где ходить и её в граф как-то кидать - это я пока не знаю)
ну на пайтоне придётся использовать по итогу в большом мире numpy+numba (+ jit) наверное
градиент нужен для таких спусков/подьёмов
Скрытый текст

Согласен, идея использовать логику сапёра для генерации пещер - это круто, один клик и работает сложные алгоритмы, а BVH и карта высот отлично ложатся на эту концепцию
Ваш стек C++/glew/BVH думаю мощное решение, особенно для масштабирования. На Python с numpy+numba, конечно, проще начать, но для большой игры, как будто не подходит. Когда у вас получиться его реализовать до конца, хотел бы увидеть
да я понимаю вас, один клик и сложное работает, просто есть генерируемый ландшафт стартовая локация(2д массив в 3д мире), её подбирать надо смотря картинку, допустим картинка подходит и старт не плохой, тогда с этой картинкой надо работать сделать логичные градиенты, и встаёт вопрос, как из такой ситуации по точке на карте начать копать пещеру(именно в этой ситуации тоесть мир целостный, максимум пещера отходит в свои карты по частям, потомучто понятно что вся пещера в карту не поместится), и вот если обстрагироваться, и создать массив 3д наподобии как в глобал илюминейшн или как в майнкрафте создать воксели, кастануть сапёра в гипер кубах(зараннее подобранного размера, и каким-то способ конвертнув это в полигоны гладкие, то дешевле, другой способ это генерация трубоподобных проходов на основе фаски, тоесть тут есть над чем подумать), бвх это так чисто ну да ускоряет(на бвх по логике отсечения выбора во время рейкаста можно и менюшки вешать, тоесть меню, интерфейс, а в игре то что выбирается или куда летит спелл), но это незаметно
testcolBB1.cpp вот можете глянуть
От консоли к 3D: Как написать игру «Сапер» на Python с нуля версия 3D (часть третья)