Рубрика «магия» - 2

Привет, читатели!

Около года назад Хабр захлестнула волна постов на тему "%string% в N строчек на JavaScript". Уже и не вспомню, чем все закончилось, но началось все с Excel в 30 строк. Следом появилось много и других интересных вариаций на эту тему, даже игра в ноль строк на JS, но это уже совсем другая история…

Как я ни старался придумать что-то еще более компактное — ничего не выходило. Тогда было принято решение посмотреть на проблему под другим углом. Примерно в этот момент в голове промелькнул вопрос: а можно ли «сколлапсировать» код так, чтобы его не было вообще? И тут мне позвонил Дэвид Блейн.

Я попробовал добавить немного магии и вот что у меня получилось.

image
Читать полностью »

С давних времён я был большим поклонником System.Collections.Concurrent и BlockingCollection в особенности. Сколько раз это чудо инженерной мысли выручало в самых разнообразнейших ситуациях — не счесть.

С чуть менее древних времён в обиход прочно вошли async/await. Казалось бы, жизнь прекрасна, но есть одно «но»: асинхронный код миксовать с блокирующим кодом как-то не очень-то хочется. А BlockingCollection, как несложно догадаться (хотя бы из названия), в ряде случаев поток блокирует.
Читать полностью »

В последнее время я увлёкся темой зависимости от C Runtime в проектах, написанных на Visual C++. Вернее, темой избавления от зависимости от Visual C++ Redistributable, ведь если проект представляет собой небольшую библиотеку интеграции или простейшую утилиту, таскать за собой целый распространяемый пакет не очень удобно.

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

Сразу оговорюсь, что я изначально ожидаю, в целом, справедливой критики на счёт правильности подхода к проблемам и вообще в целом линковки с msvcrt.dll — да, это не поддерживаемое Microsoft решение, да, это решение больше подходит для новых проектов, и да, возможно, придётся отказаться от многих плюшек, но ведь это используют, да и кто не рискует… В общем, все, кому интересна эта тема, как и мне, — прошу под кат.

Заранее прошу прощения за заголовок: я старался перевести фразу «Linking to msvcrt.dll in Visual C++». Статья моя, это не перевод, но название всё-таки проще сформулировать на английском.
Читать полностью »

Визитки 2.0: Добавим немного NFC магииВизитные карточки – такая же привычная часть бизнеса, как и электронная почта или телефон. Многие уже давно предрекают им смерть в связи с «прогрессом» QR-кодов, соцсетей и передачи файлов, но они до сих пор живее всех живых. Мы пока не можем обойтись без бумажных карточек для передачи контактных данных нашим клиентам и партнёрам. QR-коды не стали популярными, так как требовали установки дополнительных приложений, хорошего освещения и были слишком громоздкими для хранения всех нужных данных. В соцсетях зарегистрированы не все и хранить там персональные данные порой непозволительная роскошь. А передача файлов с помощью различных технологий типа AirDrop, Alljoyn или Beam, будем честны, пока недостаточно удобна и широко распространена.

И всё-таки есть способ добавить немного магии в ваши бумажные визитки и быстро передать ваши контактные данные прямо в записную книжку телефона партнёра. Я говорю об NFC.

Собственно, с бумажными визитками понятно, что делать: сканируем и распознаем с помощью ABBYY Business Card Reader и сохраняем в контакты. Но вот для того, чтобы добавить визиткам «айтишность» и некоторый шарм, нужно что-нибудь дополнительное. В этой роли отлично сыграет NFC-метка.

Читать полностью »

Технологии в ролевых играх. Часть 1. Технология и магия
Технологии в ролевых играх. Часть 2. Технология и техноген

Технологии и антураж

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

  • Световые (светодиоды, лазеры, световоды, люминесцентный шнур, уф-подсветка)
  • Звуковые (подзвучка локаций, имитация шумов работы механизмов, прочих шумов)
  • Механические (механотронные элементы, движущиеся части механизмов)
  • Комбинированные

Так же элементы антуража можно разделить по масштабу применения на элементы уровня локации и элементы уровня игрока.

Приведём примеры. Так самые обычные светодиодные гирлянды смогли преобразить локацию «Фангорн» на ПРИ «Вторая эпоха. Время легенд»:

Технологии в ролевых играх. Часть 3. Технология в антураже и мастеринге
Фангорн, ПРИ «Вторая эпоха. Время легенд»
Читать полностью »

Технологии в ролевых играх. Часть 1. Технология и магия
Технологии в ролевых играх. Часть 3. Технология в антураже и мастеринге

Технологии в ролевых играх. Часть 2. Технология и техногенВ первой части мы рассмотрели возможности современной электроники для моделирования магических взаимодействий на ролевых играх. Однако, взаимодействия на РИ магическими не исчерпываются. Сейчас проходит достаточно много техногенных игр, в которых сама техника как таковая играет очень важную роль.

Перечислим ситуации, в которых современные технологии могут стать частью игрового процесса:

  • Игротехническое конструирование
  • Игротехническое моделирование процессов
  • Игротехническая коммуникация
  • Технические и техногенные объекты и артефакты

Рассмотрим их более подробно. Нередко в sci-fi сценариях в качестве завязки выступает ситуация, когда героям необходимо восстановить повреждённые информационные системы, энергетические агрегаты или системы связи чтобы разобраться с чертовщиной, творящейся на локации, послать о себе сообщение в центр, или попросту выжить. Эта же ситуация может быть прекрасным стартом для игры, или его частью.
Читать полностью »

Технологии в ролевых играх. Часть 2. Технология и техноген
Технологии в ролевых играх. Часть 3. Технология в антураже и мастеринге

Предисловие

Технологии в ролевых играх. Часть 1. Технология и магияЛюдям свойственно играть. С компьютерными ролевыми играми знакомы все читающие эти строки. Ролевые методики и вставки используются повсеместно — от бизнес-тренингов до всевозможных мероприятий. О ролевых играх живого действия многие как минимум слышали.

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

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

В последнее время всё чаще можно наблюдать на ролевых играх разной степени масштабности применение современных технологий для компенсации этих ограничений, ведь как сказал 40 лет назад английский писатель Артур Кларк: «Любая достаточно развитая технология неотличима от магии».

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

Почему Хабр? Во-первых, на Хабре довольно много представителей той социальной группы что называет себя «ролевиками». Для кого-то описанные вещи будут известны, кто-то узнает для себя что-то новое и интересное. Кто-то, быть может, откроет для себя мир ролевых игр живого действия. Во-вторых, Хабр — ресурс в первую очередь технический. А технологии — магия нашего мира.

Читать полностью »

Известно, что задача определения того, истинна ли некоторая функция Integer -> Bool хотя бы для одного числа вычислительно неразрешима. Однако, нечто, на первый взгляд кажущееся как раз таким оракулом (а именно, функцией (Integer -> Bool) -> Maybe Integer) будет описано в этой статье.

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

data Nat = Zero | Succ Nat (Eq, Ord, Show)

Другими словами, натуральное число — это либо ноль, либо некоторое натуральное число, увеличенное на единицу (Succ от слова successor).

Также, для удобства, определим основные операции (сложение, умножение, конвертация из Integer) над числами в таком представлении:

instance Num Nat where
    Zero + y = y
    Succ x + y = Succ (x + y)

    Zero * y = Zero
    Succ x * y = y + (x * y)

    fromInteger 0 = Zero
    fromInteger n = Succ (fromInteger (n-1))

Читать полностью »

В первой статье Введение в теорию магии был дан обзор основных тем теории магии. Теперь мы переходим к рассмотрению пространства свойств, его особенностей и характеристик.
Читать полностью »

В статье пользователя wes поднят вопрос математической модели магии. Здесь приводится одна из альтернативных точек зрения на вопрос «механики» магии и приведены простые модели.

Общие сведения

Магические действия напрямую связаны с восприятием мира. Говорить «процесс» для восприятия не совсем уместно, так как процесс – это функция времени, а время при восприятии – это один из результатов восприятия.
Такая субстанция, как «время», и связанное с ним понятия «настоящее» (происходящее сейчас) позволяют устраивать коммуникацию между людьми, и фиксировать успех или провал заклинания.
Маг может воспринимать не только настоящее, но и будущее, причем будущее бесконечновариантно. Настоящее и прошлое тоже бесконечновариантны, но пользы магу от этого мало.

Механика магии

Расстояние восприятия – сложность потенциального восприятия человеком какого-либо объекта или субъекта. Чем сложнее воспринять нечто, тем больше расстояние восприятия. Например, расстояние между магом и им самим нулевое. Для магии важно расстояние восприятия между магом и результатом его магии.
Магическое действие, связано с будущим. Возможно, самым ближайшим, наступающим через мгновение, но с будущим. (Магические действия с прошлым невозможно зарегистрировать). Магическое действие – это восприятие одного из вариантов будущего и связь его с настоящим. При этом, это только один из вариантов, есть и другие варианты будущего.

Маг тратит ману на построение связи настоящее-будущее. Чем больше маны вложено (обозначим эту величину M) в связь этого варианта с настоящим, тем вероятнее он наступит.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js