Как стать автором
Обновить

Комментарии 64

Я обычно не жалуюсь на отсутствие кармы, но в такие моменты мне действительно жаль, что её не хватает, чтобы поставить «плюс». (и нет, я её не выпрашиваю, как ты подумал, %username%)
Поделился. Я добрый :)
Ого, как-то неожиданно накинули столько кармы! Спасибо! :)
Иногда сделать приятно другому человеку проще, чем кажется.
Эх, восстановить бы видео из статьи…

К сожалению, автора больше нет в живых, а на его youtube-канале походу этих видео тоже нет. Только про игру жизнь в 3D: https://www.youtube.com/user/astr0073/videos

какие жуткие необычные структуры!!! =)
Теперь наступила очередь Minecraft.
Чуть раньше Каркассон заказывали. А для Minecraft понадобится трёхмерное пространство Лобачевского, с решеткой {4,5,3} (в каждой вершине сходится 20 кубиков). Честно говоря, страшная штука.
У меня была фантазия о майнкрафте на торе или на бутылке клейна — уйти в одну сторону и прийти с противоположной стороны, в случае бутылки — отзеркаленным. Еще можно замкнуть верх и низ. Или, опять же, замкнуть со сменой ориентации, тогда совсем весело станет.
Или еще поиграть с нехаусдорфовостью. Дверь в чистом поле, заходишь — оказываешься в другом месте. Или обходить дерево и каждый раз видеть разный ландшафт.
Я как раз в затяжном процессе создания подобного клона на D. Из функций — пользовательские внутриигровые прозрачные безрамочные порталы произвольной формы, управляемые левитирующие замки/корабли/произвольные области пространства, честное освещение очень сильно оптимизированным path tracing, HDR, процедурные текстуры неограниченного разрешения, призмы, линзы и зеркала произвольных форм, радиусов и степеней кривизны, антисвет и октарин, и миры с альтернативными метриками.

В частности, например, мир на внутренней поверхности цилиндра сродни «Раме» из романа Кларка, с солнцами в виде очень ярких блоков, находящихся на поверхности «земли». К сожалению, в уходу сохранению кубической сетки, пришлось сделать так, что цилиндр на самом деле формируется из свенутого пласта «плоского» пространства, таким образом, что на каждом уровне высоты количество блоков, требуемое для того, чтобы выложить «кольцо вокруг мира», одинаковое. Т.е. плотность блоков не меняется с высотой, искажается лишь их форма.
Не совсем это, я имел ввиду, чтобы в каждом месте мой тор был плоским. Я хочу просто взять квадрат блоков 100х100 чанков и ассоциировать противоположные стороны — «склеить» одну к другой. Игрок продолжает жить в плоском мире, но когда он уходит в одну сторону, он возвращается откуда-нибудь с другой стороны. В случае с тором — с противоположной. В случае бутылки клейна он возвращается с противоположной стороны, отраженный зеркально (с его точки зрения, он вернется в зеркально отраженный мир). Интересно само изменение метрики — оно повлияет на игровой процесс, а в случае каких-то агрессивных мультиплеерных забав добавляет тактических возможностей и уловок. Если похожим образом ассоциировать («склеить») верхнюю и нижнюю границу мира, то геймплей может поменяться гораздо сильнее.
На самом деле, кроме плюшек к геймплею, интересно само ощущение нахождения в таком мире. Утратится ли ощущение свободы? Как изменится пространственное мышление? Что еще будет чувствовать человек в таком мире?
Да, и помимо этого появляется интерейснейшая задача создания генератора ландшафта на такой зацикленной области.
Можно попробовать, если я все правильно понимаю, то описанная Вами идея реализуется при помощи одних только Огромных Порталов От Земли До Неба (tm). С генерацией карты пока что беда.
Да, но в огромных порталах от земли до неба вы не отрендерите пять проходов света подряд (или отрендерите?). Здесь хорошо бы полностью перекроить механику игры, считая все координаты по модулю размеров карты.
А где можно последить за разработкой? Или даже потестировать? :)
Еще нигде, но я планирую статью на хабр с описанием, как я до такой жизни докатился, в скором времени — когда возьму отпуск на работе. Сейчас, к сожалению, разработку получается вести по несколько часов через день уже ночью, а это не способствует быстрому продвижению, к тому же помимо непосредственно игры, из-за выбора языка и особенностей архитектуры есть множество побочных задач, которые оттягивают силы от непосредственной реализации.
Тут вопрос — остаётся ли локальная геометрия евклидовой. Чтобы не слишком пугать пользователей, то лучше оставить, и тогда возникнет выбор: либо не вводить особых точек, и тогда выбор поля — либо тор, либо бутылка Клейна. Склеить плоскость, чтобы перепутались x и y, не получится, хотя повернуть плоскость при склейке по вертикали возможно. Жалко, что не получится склеить со сменой масштаба :(
А если разрешить особые точки (непробиваемые колонны до неба, обход вокруг которых замыкается не за 360 гр, а когда угодно, то получаете полную свободу. Проще всего сделать многолистный мир: при обходе колонны по часовой стрелке переходите на уровень выше, а против часовой — на уровень ниже (уровни, естественно, зациклены — ведь, как известно, мы все живём на седьмом уровне сумрака :) ). Другой вариант — любой горизонтальный отрезок между колоннами является порталом в совсем другую клетку того же уровня. Например, мир состоит из 997 больших клеток, при проходе на восток или запад попадаете в клетку n+1 или n-1 соответственно, при проходе на север — в клетку 2*n, а при проходе на юг — в n/2. Это не очень хороший вариант (клетки не эквивалентны), но это первое, что пришло в голову.
Я сначала подумал о том, чтобы реализовать классическую «Жизнь» на редстоуне в майнкрафте. Идея то классная!
Попробую. Придётся учитывать ориентацию при переходе… противно, но полезно.
Прогулка муравья. Записано 1200 шагов, после чего я долго пытался понять, чего же он наследил. Понять не удалось.
При записи «прогулки» муравей всегда в центре картинки, но двигаться может в любую сторону — ориентацию всего поля я стараюсь не менять, ха-ха…

Хорошая, годная статья. Расширяет сознание. В избранное.
Даешь больше годных математических статей!
Спасибо! Встречаясь впервые с геометрией Лобачевского, кажется, что это штука слишком абстрактна и далека от жизни. Потом оказывается, что она находит применение и в физике, и в астрономии, органично вписываясь в модели и уравнения. Далее выясняется, что ее удобно применять для создания карты интернета. И вот, уже, с помощью геометрии Лобачевского реализуется сама Жизнь. Потрясающе!
Если мне память не изменяет, из неевклидовых геометрий ту же геометрию Римана используют в космонавтике и навигации. Хотя, на первый взгляд, тоже весьма абстрактная штука.
Используют больше сферическую геометрию (тоже неевклидова), но в самом деле, куда без неё? Геодезисты вообще работают с геоидом, а там геометрия такая, что одними формулами не обойдёшься, нужны таблицы…
Замечательно. Еще пока учился, не всегда понимал, зачем нам вдалбливают всё вот это.
Теперь хотя бы применение в игре. Ну, и то, что теперь это не придётся сдавать из-под палки тоже играет свою роль :)

А откуда взялась идея? Я сомневаюсь, что человек может просто сидеть-сидеть, а потом вдруг внезапно сесть и начать писать геометрическую игру в неевклидовом пространстве…
Настоящая игра (головоломка) в неевклидовом 3D пространстве у меня была ещё несколько лет назад: astr73.narod.ru/M3dHT633/M3dHT633.html. А откуда взялась идея… уже не помню. Но когда мы впервые увидели лабиринтообразные игры на Ямахе (особенно Black Onyx — там был 8-этажный лабиринт с этажами в виде тора 16*16), то возник вопрос — а если вместо квадратной решётки взять что-то другое? Но в дело так и не пошло, не удалось придумать сценарий.
С головоломками стало несколько легче, там всё понятно — как делать и к чему идти. Кстати, есть целый большой проект головоломок на неевклидовой плоскости: www.gravitation3d.com/magictile/. Там уже более 600 вариантов «кубика рубика», и какой-то энтузиаст из Германии решил больше трети из них
Судя по комментам возможно отсюда?
Действительно, было такое. Полгода назад.
А нельзя ли не менять положение камеры, а просто увеличивать разрешение и вырезать интересующую область на краю? То есть зафиксировать положение центральной клетки, а для того, чтобы рассмотреть, что там происходит на горизонте, просто увеличивать интересующее место.
Мне кажется, что так было бы проще наблюдать за поведением колоний.
Будет только хуже. Изображение решетки на диске Пуанкаре полностью фрактально — любой фрагмент у края диска, под каким увеличением его не рассматривай, будет выглядеть, как кусочек модели верхней полуплоскости. Число различимых клеток не будет зависеть от величины зума, а большая часть полезной площади будет съедена большими клетками вдали от края. Так что выигрыша по сравнению со сдвигом камеры в сторону края диска мы не получим. Разве что можно будет использовать вытянутое по горизонтали окно… Тогда уж лучше сразу работать в модели верхней полуплоскости.
Чтобы увидеть больше клеток, я слегка сжульничал — сжал центр диска и растянул его у краёв по формуле r1=1-(1-r)^(2/3) (r — расстояние до центра). В итоге четырёхугольники у края превратились в черточки и их хотя бы стало видно. Без этого растяжения они были бы точками.
Зато в таком случае можно вообще забыть про неевклидову геометрию и всю ту математику, о которой статья. Мы просто рассматриваем некоторую (статичную) нарисованную на плоскости сетку. Эта сетка состоит из разных по размеру и форме четырёхугольных ячеек, и её происхождение не имеет никакого значения для реализации игры. Точно также можно рассматривать совершенно любые другие паутины на плоскости, ведь так?
Проблема в навигации. Сконструировать сетку для визуализации и поле, разные места которого можно рассматривать через эту сетку (причём, корректно и без противоречий) не просто. Кроме того, может возникнуть желание, чтобы поле было однородно (в любой вершине сходится именно 5 четырёхугольников, а не 4 и не 6) — и без математики такую сетку уже не построить. А замкнуть её в поверхность без края и без особых точек ещё сложнее.
Если вам не нужна такая однородность, то можете взять любую паутину. Там потребуется математика плоских графов, чтобы выделить на этой сетке вершины и области, и опять же, не было противоречий. В конечном итоге, всё пишется «на коленке», и если повезёт, то оно будет самосогласовано. Но это будет означать только, что часть нужной математики вы придумали заново, именно для конкретной задачи. Я сам часто так делаю.
Кстати, неограниченного увеличения без математической модели вы не получите. А с ограниченным быстро уткнётесь в край.
НЛО прилетело и опубликовало эту надпись здесь
Отличная статья. Спасибо! Хочу больше статей на математическую тему. Кстати, никто не подскажет, может существует какой-то ресурс, где собраны подобные статьи? Эдакий хабр с математическим уклоном. Все сайты, которые я до этого видел, либо похожи на сборник олимпиадных задач, либо ответы на ЕГЭ.
Насчёт статей не знаю, но есть какой-то форум dxdy.ru — может быть, на нём найдётся достаточно информации?
Ну вот опять что-то не то. Ресурс, наверно, полезный, но опять все по принципу «вопрос-ответ». Школьнику задали задачку в школе, он пришел на форум, спросил — получил ответ. А хочется, чтобы человек написал статью про какой-нибудь раздел математики да еще понятным языком. А ты прочитал, и сразу захотелось все изучить. Не хватает духа хабра :).
И еще, раз уж пошел такой разговор, у меня есть желание написать парочку статей на математическую тему, но у меня есть сомнения следующего рода:
— являются ли такие статьи уместны на хабре (особенно, если это чистая математика, без какого-то практического применения)
— востребованы ли они читателями хабра.
Конечно востребованы!
Не знаю. Я и насчёт этой сомневался, не слишком ли она абстрактна.
Ну вот, значит вы меня понимаете. Всегда найдется какой-нибудь умник и скажет: «Простите, все это, конечно, интересно, а какое этому может быть практическое применение?»
Когда-то был популярен arbuz.uz. Но с тех пор много лет прошло.
Ссылка обрезалась и в экран не влезла, не сократите?
НЛО прилетело и опубликовало эту надпись здесь
Она измеряется в абсолютных единицах. Как и длина. Кстати, для треугольника на сфере верна аналогичная формула: S=A+B+C-pi, площадь измеряется в стерадианах (и равна площади треугольника на единичной сфере). Конечно, по-хорошему, для сферы надо писать S=R^2*(A+B+C-pi), а для плоскости Лобачевского — S=(pi-A-B-C)/(-K), где K — кривизна поверхности, но проще принять абсолютнуб величину равной 1 и не вспоминать о ней, пока жизнь не заставит.
НЛО прилетело и опубликовало эту надпись здесь
Она будет в квадратных, но не метрах. А величинах, равных 1/sqrt(-K), где K — гауссова кривизна плоскости.
Наглядно эту величину можно представить так. Возьмём прямую и точку поблизости от неё. Через эту точку можно провести бесконечно много прямых, не пересекающих нашу, но две из них будут ограничивать этот набор — они на бесконечности будут «сходиться» с нашей прямой (одна с одной стороны, другая с другой) — они так и называются «сходящимися». На картинке их видно: они образуют стороны белого треугольника в центре.

Так вот, оказывается, что сходящиеся прямые сходятся с экспоненциальной скоростью. И величина, на которую надо сдвинуться, чтобы расстояние уменьшилось в «е» раз, и будет абсолютной единицей расстояния в данном экземпляре плоскости. Абсолютная единица площади — квадрат абсолютной единицы длины.
В сферической геометрии роль абсолютной единицы играет радиус сферы: если выражать расстояния через него, то формулы получаются гораздо красивее.
Предлагаю на каждом шаге «жизни» смещать камеру в сторону максимальной концентрации живых клеток. В этом случае они будут в фокусе или где-то рядом, и будет довольно динамично.
В сторону ближайшей плотности изменений, вероятно. Хорошая идея, я подумаю. Правда, с понятием «в сторону» есть сложности, но что-нибудь придумаю.
Здорово, что такие статьи есть. Спасибо автору. Но подача хромает, на вики куда понятнее. И эти англоязычные ссылки, зачем?
Английская вики почти всегда гораздо информативнее, чем русская. Да и не у всех ссылок есть русский аналог. Вот я и сделал единообразно.
Почему в видео границы четырехугольников рисуются прямыми? Если это геодезические, в проекции на круг они должны быть дугами. С математикой-то все ясно, а вот когда вы пишете, что ничего интересного не осталось, как раз непонятно. Что такое планер? И зачем было выходить за евклидову геометрию, если остались те же четырехугольные клеточки. В чем разница, кроме того, что в углу встречаются не 4 а 5 клеточек?
Границы рисуются прямыми просто чтобы быстрее было их считать. Меня больше интересовало не идеальное воспроизведение, а комбинаторика. Можно было, конечно, нарисовать ломаную из 32 сегментов — никто бы не заметил разницы…
Планер (он же глайдер) — объект из игры «жизнь» — конфигурация, которая через несколько поколений воспроизводится, но оказывается в другом месте (и в результате движется по полю, пока во что-нибудь не врежется). То, что клеточек встречается не 4, а 5, даёт другую комбинаторную конфигурацию (одно только отсутствие параллельного переноса чего стоит!), и было интересно, к чему это приведёт. Пока разобрался не до конца, объект ещё надо исследовать.
НЛО прилетело и опубликовало эту надпись здесь
А это нормально писать sinh как sh и cosh как ch?
В русских материалах, судя по википедии, да.
Но в международных документах все-таки принято sinh, cosh (а также tan вместо tg и другие).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории