Membrane game — шикарная игра для аутистов в 20 строк кода -30


AliExpress RU&CIS

Код игры написан целиком на языке математики. Давайте его разберем.

  1. N отвечает за размер клеток.

  2. pow(1.02, iTime) создает равномерную анимацию клеток, 1.02 - скорость анимации; рано или поздно это вызывает переполнение буфера, но анимацию можно отключить сделав t=1 или сделать так чтобы она замедлялась со временем t=iTime.

  3. dx и dy - смещение позиции курсора по x и по y.

  4. float f = float((x-dx)*(x-dx)*t+(y-dy)*(y-dy)*t); // Это правила игры - в эту функцию (на самом деле не функцию) вы можете внести изменения и получить новую логику игры.

  5. float F = abs(f*sin((x)/N)*sin((y)/N)); // Создает клеточную мембрану для функции (не функции) f.

  6. int R = int(floor(F*pow(16.0, 6.0-ceil(log2(F)/4.0)))); // Адаптирует цвета мембраны добавив нули в конце шестнадцатеричной записи числа или обрезает его по правому краю. По сути это готовый индекс цвета X11, который используется в HTML или Photoshop.

Короче всё просто. Я на самом деле новичок и в математике и в GLSL, но моим друзьям понравилась эта игра, и мне интересно, как её оценит Хабр. Если у вас есть идеи, вы можете ее форкнуть. Тех, кто захочет попробовать перенести на другие языки программирования, предупрежу, что такие вычисления для каждого пикселя весьма затруднительны для процессора - надо программировать шейдеры (ну лично мой опыт, но вообще я не против)

Теги:




Комментарии (33):

  1. sav6622
    /#22911104 / +11

    При чем тут аутисты?!?

    • 4eckme
      /#22911114 / -24

      Обижаешься?

      • Error1024
        /#22911160 / +7

        Так то я довольно прохладно отношусь к идеям которые продвигает sjw сообщество, но когда вижу подобные посты и комментарии, задумываюсь, а может это действительно необходимо?

        • 4eckme
          /#22911178 / -4

          Вы же не думаете, что я создавал эту игру чтобы кого-то оскорбить?

          • floppox
            /#22911216 / +2

            Судя по всему, вы создавали эту "игру" и писали такой заголовок для того, чтоб причинить людям боль.

          • mSnus
            /#22911346 / +4

            А какой смысл вы вкладывали в заголовок?

            • 4eckme
              /#22911404 / -2

              Эту игру очень сложно понять логически. Например, непонятно почему у функции появляется мембрана. Нужно просто принять, что она появляется после этих математических преобразований. Я думаю, логика должна понравится неординарным людям. Большинство находит фракталы скучными, а математику непонятной. Да, это, конечно, не фрактал, но мембрана сделана на основе фрактала. Для меня собственно математика тоже не понятна, я не могу до конца объяснить почему визуализация игры получается именно такой, но наверное надо просто принять, что эти вещи просто такие, какие они есть, потому что они только такими могут быть. Но обычным людям это не интересно — они минусуют статью на хабре.

              • mSnus
                /#22911428 / +8

                Всё этого стоило написать в статье, тогда бы не минусовали. Совет: скройте в черновики, расскажите подробнее и про математику, и про смысл этого всего, и заголовок поменяйте, опубликуйте заново.


                Сейчас просто выглядит как какая-то непонятная хрень с провокационными заголовком, отсюда и минусы.

                • 4eckme
                  /#22911446 / -2

                  Я буквально по пунктам разложил логику. Если остались вопросы — я постараюсь ответить на них в комментариях, если смогу.
                  PS: Если что, я говорил об этом фрактале www.shadertoy.com/view/wscBD2 — его функция, немного измененная, отвечает за структуру клеточной мембраны.

                • ABy
                  /#22911476 / +2

                  Вот, кстати, поддержу. То, что смысл статьи очевиден автору, не означает что статья будет легко восприниматься читателями. Похоже на творение юного сумрочного гения, решившего вбросить сорцы и быть отвергнутым безликими посредственностями:)
                  Ну на шутки про аутистов тут смотрят не очень позитивно.

                  • 4eckme
                    /#22911500

                    Мне почти 30, не назвал бы себя юным.

                    • Moskus
                      /#22911840

                      Иронично, но именно люди с аутическими чертами, чаще всего, имеют проблемы с интерпретацией переносного смысла выражений. Повышенная склонность к структуризации восприятия вступает в конфликт с нечёткими значениями, переносным смыслом, метафорами, сравнениями.
                      Во и тут: вам говорят, что ваши действия напоминают то, что делают некоторые молодые программисты, а вы возражаете, что вам почти 30 (что, впрочем, никогда не гарантирует наличия даже базовых социальных навыков).
                      Ничего личного, просто несколько быстрых наблюдений из комментариев.

                      • 4eckme
                        /#22911876

                        Вы бы лучше форкнули, или хотя бы логику и визуализацию игры обсудили, а вы обсуждаете мои социальные навыки и слово «аутист»…
                        IT-сообщество, блин

        • unibasil
          /#22911570

          Судя по предыдущим постам и комментам к ним, автор в 27 лет сам немножечко… эээ… альтернативно одарённый (так же политкорректно говорить?).

          • 4eckme
            /#22911618 / +1

            Официально я шизофренник (для вас это имеет значение?)

            • unibasil
              /#22911628 / +5

              Само по себе — нет, не имеет. Но это многое объясняет.

      • dopusteam
        /#22911180

        Только если вы друзья, я думаю

  2. 4eckme
    /#22911172 / -7

    Случайно отклонил один комментарий. Да, действительно это скорее демонстрация возможностей WebGL/GLSL, чем игра, но весьма интересная. По сути эту же логику можно написать на любом другом языке программирования, и будет не на много больше строк, но нужна высокая производительность.

  3. floppox
    /#22911202 / +3

    Полная хрень. Людям с сенсорной чувствительностью не ходить ни в коем случае. Там все мигает. Полная психоделия.

    • 4eckme
      /#22911222 / -2

      У меня анимация не вызывает неприятных чувств, мне наоборот нравится в нее позалипать. Вообще, как я уже писал, анимацию можно отключить поставив t=1.0

      • vindy123
        /#22911392

        А вы — аутист?

        • 4eckme
          /#22911414 / -1

          Если это значит, что я восхищен игрой — то да.

          • vindy123
            /#22911568 / +3

            Слушайте, ну вы вызываете примерно столько же позитива, как папа из анекдота про "нет ножек — нет мультиков", существуй такой персонаж в реальной жизни. Если вы на самом деле не знаете, что такое аутизм — то ведь можно и загуглить, не? Тогда и в неловкие ситуации перестанете попадать.

            • 4eckme
              /#22911602 / -3

              Персонаж, не существуй.

  4. ZimM
    /#22911386 / +3

    А в чем «игра»-то? Что делать нужно?

  5. Jogger
    /#22911556 / +2

    Не игра, не шикарная, не для аутистов. Нас обманули, расходимся.

    • unibasil
      /#22911588

      Видимо, автор перепутал аутистов с эпилептиками. Последним игра зайдёт со свистом (жаль, здесь нет тега <irony>, как на d3).

  6. Nehc
    /#22911754

    Что-то мне говорит, что… Автор плохо выразился, но похоже ничего плохого не имел ввиду… Типа «игра для тех, кто знатно и с удовольствием в такое залипает». Вполне вероятно, что для этого нужно иметь некоторое слегка иное устройство мозгов. Типа как «Человек дождя»… Сча правда модно стало говорить что он «савант», а не просто аутист, но принципиально это сути не меняет.

  7. PCFreeNow
    /#22911894

    I really joined this article. Thank you for writing this great content.

  8. evr1ka
    /#22911978

    Как родитель особого ребенка почти уверен, что она в такое может залипнуть. Она вообще может залипнуть во все странное, переливающееся непонятными цветами, и звуками.
    Но она будет от этого тупеть, это не развивающее.
    Как использование фракталов в качестве законченных структур, аля клетка-мембрана выглядит занятно.
    Автору спасибо за мысль, но она требует анализа и проработки (с моей стороны).
    Могу рекомендовать быть чуть позитивнее.

    • 4eckme
      /#22912214

      Если вам интересно, мембраны обычно рвутся при использовании побитовых операций в функции f между переменными — я бы сказал, это происходит почти всегда. Но рвутся не значит перестают существовать, просто в таком случае мембрана выглядит разорванной, а клеточная структура — нарушенной, но очертания контуров обычно остаются.

  9. Tujh
    /#22913954

    Аутизм — это нарушения ЦНС результатом которых является нарушение социальных функций.
    Более того, нарушения аутичного спектра включают в себя пару сотен разных заболеваний, самые тяжёлые из которых вызывают полное расстройство личности (сидят, слюни пускают и смотрят в одну точку).
    Так при чём тут математическая игра в цветные пятна?