Search
Write a publication
Pull to refresh
4
0

Пользователь

Send message

Вымышленные языки как способ построения мира игры

Reading time11 min
Views14K
image

Каждый серьёзный разработчик игр знает, что построение мира — неотъемлемая часть процесса, создающая геймплей с истинным погружением. Для его реализации есть множество разных техник: от изложения предыстория игрока стеной текста, до продуманных трюков с дизайном уровней, называемых environmental storytelling («повествование через окружение»). Второй вариант часто предпочтительнее. Распутывание лора мира по нескольким намёкам, разбросанным по уровням, де факто является игрой внутри игры. И хотя большинство игроков может их игнорировать, прочие смогут получить большое удовольствие от разгадывания этой мета-головоломки.

Игры наподобие Dark Souls известны своим богатым и довольно загадочным лором, который можно воссоздать благодаря продуманному environmental storytelling и различным подсказкам, скрытым в описаниях предметов. Некоторые другие игры заходят ещё дальше и создают для своих выдуманных цивилизаций совершенно новые языки.
Читать дальше →

Мини-игра на Rust + macroquad

Reading time11 min
Views7.6K

В данной статье я постараюсь подробно рассказать о том, как написать небольшую игру, используя в качестве инструментов язык программирования Rust и библиотеку macroquad.

Читать далее

Исследователи выявили задачу, от которой зависит судьба современной криптографии

Reading time10 min
Views27K

В 1868 году математик Чарльз Доджсон (более известный как Льюис Кэрролл) заявил, что схема шифрования под названием «шифр Виженера» является «невзламываемой». У него не было доказательств, однако имелись убедительные подтверждения этой веры: математики безуспешно пытались его взломать более трёх сотен лет.

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

Криптографы играли в эти «кошки-мышки», создавая и взламывая шифры, ещё с тех пор, как люди впервые начали передавать секретную информацию. «Тысячи лет люди пытались найти ответ на вопрос: сможем ли мы разорвать этот круг?», — рассказывает криптограф Рафаэль Пасс из Cornell Tech и Корнеллского университета.

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

Создание игр для NES на ассемблере 6502: графика фона

Reading time7 min
Views2.5K


13. Графика фона


Содержание:

  • Таблица паттернов фона
  • Составление таблицы имён
  • Таблица атрибутов
  • Дополнительные изменения
  • Использование проектов NES Lightbox
  • Домашняя работа

Прежде чем мы начнём перемещать спрайты по экрану, я хотел бы рассказать, как на NES работает графика фона. Мы изучили механику графики фона в Главе 9, а в этой главе мы рассмотрим код, необходимый для отображения фонов на экране.
Читать дальше →

Обнаружение наличия функциональности в C++ на этапе компиляции

Reading time10 min
Views6.1K

Иногда, при реализации очередной "шаблонной магии" очень хочется на этапе компиляции иметь сакральное знание о том, а если у типа нужный метод, чтобы его вызвать или нет?

Хорошо, если есть поддержка концептов или рефлексии. А что делать, если их ещё нет, или они не в полной мере поддерживаются?

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

Читать далее

Создание игр для NES на ассемблере 6502: приступаем к разработке

Reading time14 min
Views12K
image


2. Фундаментальные понятия


Содержание:

  • Работа с данными
  • Регистры процессора
  • Память
  • Как задаются данные
  • Как сделать данные человекочитаемыми
  • Соединяем всё вместе

Что такое компьютер?

Вопрос кажется простым, но он затрагивает самую суть того, что делаем мы как программисты. Пока скажем, что «компьютер» — это нечто, исполняющее программу. «Программа» — это просто последовательность команд, а под исполнением программы подразумевается, что команды выполняются с начала и одна за другой. (Если вы читаете программу и сами исполняете команды, то поздравляю! Вы — компьютер!)
Читать дальше →

Создание игр для NES на ассемблере 6502: краткая история NES

Reading time12 min
Views11K

Введение


Осенью 1990 года родители подарили мне набор Nintendo Entertainment System Action Set: серую угловатую консоль (Control Deck), два контроллера, ярко-оранжевый световой пистолет "Zapper" и картридж, на котором были Super Mario Bros. и Duck Hunt.


Консоль NES с одним контроллером. Фото Эвана Эмоса.

Control Deck подключалась к стоявшему в чулане большому ЭЛТ-телевизору RF-переключателем — по сути, это была антенна, подававшая видеосигнал из консоли на телевизор на канале 3. Это была моя первая видеоигровая консоль, и я её обожал.

В том году я проводил в чулане много времени. Поначалу и отец тоже — он проходил Super Mario Bros., выяснял местоположение секретных Warp Zones и пытался проскользнуть через опасных Hammer Bro (прим. пер.: кидающихся молотками черепах). Однажды ему удалось победить Баузера («дракона», как он его называл) и спасти принцессу, после чего он практически перестал играть в игры на NES.
Читать дальше →

Как написать рефлексию для C++

Reading time14 min
Views28K

C++ поистине противоречивый язык. Старый добрый С существует аж с 1972 года, С++ появился в 1985 и сохранил с ним обратную совместимость. За это время его хоронили ни раз и ни два, сперва Java, теперь его потихоньку продолжают хоронить Go и Rust. Все его недостатки пережеваны множество раз. Если вы пришли в мир С++ из других ООП языков, то здесь вы не найдете...

Читать далее

Ошибки, которые не ловит Rust

Reading time61 min
Views21K

Мне по-прежнему интересны языки программирования. Но сегодня уже не так сильно, и не из-за того, что они позволяют мне делать, а, скорее, из-за того, что они мне делать не позволяют.

В конечном итоге, возможности того, что можно сделать при помощи языка программирования, редко ограничены самим языком: нет ничего, что можно сделать на C++, но нельзя повторить на C, при наличии бесконечного количества времени.

Если язык полон по Тьюрингу и компилируется в ассемблерный код, каким бы ни был интерфейс, вы общаетесь с одной и той же машиной. Вы ограничены возможностями оборудования, количеством его памяти (и её скоростью), подключенной к нему периферией, и так далее.

На самом деле, достаточно лишь команды mov.

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

Кроме того, есть такие аспекты, как производительность, отладкопригодность (если такого слова нет, то его стоит придумать) и дюжина других факторов, которые стоит рассмотреть при «выборе языка».
Читать дальше →

Цифровой вытрезвитель

Reading time17 min
Views21K

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

Я верю в "частичные идеи". Бывает, человек крутит в голове половину чего-то важного. А у кого-то есть вторая половина. Чтобы мысли встретились и "клацнули", кто-то должен свою половину опубликовать. Сегодня это делаю я. Считайте это скорее приглашением к обсуждению, нежели готовым рецептом.

Читать далее

Альтернативы исключениям С++ и зачем они нужны

Reading time10 min
Views15K

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

Читать далее

Моя система физического и ментального здоровья гика

Reading time8 min
Views19K
Мне 39 лет и с 19 работаю разработчиком и руководителем проектов, женат, есть ребенок. Всё норм, единственный нюанс – тело досталось с начальными параметрами гораздо хуже средних.
Когда ребенок рождается, его состояние оценивается по шкале Апгар 0-10. 7-10 – это норма, 0-2 балла — сильные отклонения в состоянии здоровья. У меня было – 2 балла. Мне повезло, и я выжил, но получил детский церебральный паралич, вторую группу инвалидности и справку о нетрудоспособности. Руки и ноги дергаются, говорю непонятно (но привыкнуть можно),  правая рука умеет только здороваться и зажимать ctrl, хожу как зомби.

Здоровье было всю жизнь не айс, однако тело реально посыпалось около 30, плюсом к ДЦП: гастрит, колит, простатит, аритмия, множественные экструзии межпозвоночных дисков, остеопороз, постоянный мышечный спазм всего тела, нарушение зрения, бессоница и др.  Когда я спросил у кардиолога, почему у меня в таком раннем возрасте развилась аритмия, она объяснила очень просто: ДЦП постоянно фигачит все мышцы, сердце – это мышца, просто до этой мышцы добрались не сразу.

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

Моя система состоит из трех компонентов:

  • Работа над телом: кинезитерапия, йога,  дыхание,  закалка, правильное питание
  • Работа над духом: Формирование внутренних установок которые делают меня сильнее и счастливее
  • Ежегодная диагностика и работа с лучшими врачами в тех местах где у меня есть или будут проблемы.


Далее подробнее расскажу о системе.
Читать дальше →

Как побороть депрессию с помощью С++. Кто такие дескрипторы и с чем их едят

Reading time8 min
Views7.9K

Эта статья расскажет вам, как я начал бороться с клинической депрессией, используя для этого свое любимое занятие - программирование на c++. Это моя первая статья из цикла статей, который я решил назвать "Как побороть депрессию с помощью c++". Сегодня я хочу обсудить с вами дескрипторы. Дело в том, что в интернете я не нашел информации о том, что это такое и когда их нужно использовать. Спешу исправить ситуацию!

Читать далее

Книга «Этичный хакинг. Практическое руководство по взлому»

Reading time10 min
Views29K
image Привет, Хаброжители! Практическое руководство по взлому компьютерных систем с нуля, от перехвата трафика до создания троянов. Книга «Этичный хакинг» освещает современные проблемы кибербезопасности и помогает освоить навыки, необходимые любому этичному хакеру. Сделайте первый шаг в карьере пентестера, ознакомившись с методами взлома, которые используют эксперты. Доктор Дэниел Г. Грэм — доцент кафедры информатики в Университете Вирджинии в Шарлоттсвилле. К сфере его исследовательских интересов относятся защищенные встраиваемые системы и сети. До того как начать преподавать в Университете Вирджинии, доктор Грэм был программным менеджером в компании Microsoft. Помимо всего прочего, он пишет статьи для журналов IEEE, посвященные датчикам и сетям.
Читать дальше →

Графическая логическая игра Льюиса Кэрролла

Reading time6 min
Views16K

В одном из выпусков библиотеки журнала «Квант» я обнаружил перевод книги Льюиса Кэрролла «Логическая игра» (The Game of Logic). В ней автор рассказывает об оригинальном графическом способе визуализации логических суждений с помощью размеченного особым образом квадратного поля и фишек двух цветов. Этот способ помогает легко оперировать логическими множествами и на основе некоторых предпосылок формулировать новые утверждения. Давайте попробуем разобраться, как это работает.

Читать далее

О роли комплексных чисел в науке

Reading time10 min
Views42K

Комплексные числа (z=x+iy) прочно вошли в арсенал методов исследования окружающего нас Мира - от теории элементарных частиц до космологии. К сожалению, во всех теоретических моделях, они (комплексные числа) рассматриваются в качестве технического приема, облегчающего математические вычисления. Наблюдательные данные и экспериментальные результаты «объясняются» только с помощью вещественной части комплексного выражения, полученного из теоретического расчета. Мнимую часть отбрасывают, как не реальную (не наблюдаемую).

Цель данной работы – показать, что наш Мир намного сложней и интересней, чем тот, который мы фиксируем с помощью наших несовершенных ощущений или инструментов. Он содержит кроме материальной составляющей еще и мнимую часть, такую же «реальную», как и вещественная часть.

Читать далее

ADOBE Systems — история удивительного успеха

Reading time25 min
Views13K

Из этой статьи вы узнаете:

- Как двое немолодых людей взяли себя в руки, ушли из крупной компании и основали свою.
- Как Стив Джобс стал их первым и самым значимым клиентом, а годы спустя объявил им войну.
- Как одного из них похитили и 4 дня держали в заложниках.
- И какую роль играло Министерство Обороны США не только в становлении компании, а во всей компьютерной отрасли.

Читать далее

Вселенная Стивена Вольфрама

Reading time12 min
Views52K

Примерно полтора года назад я опубликовал на Хабре перевод статьи Стивена Вольфрама: "Кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна". С тех пор Вольфрам и его коллеги по Physics Project продвинулись далеко вперед в своих исследованиях теории всего. И как мне кажется, результаты этих исследований поистине ошеломительны не только с точки зрения физики и математики, но и с точки зрения стоящей за этими научными изысканиями философии. Сегодня я представляю вашему вниманию свой пересказ новой статьи Стивена Вольфрама "Why Does the Universe Exist?", в которой подробно излагается его целостный взгляд на природу Вселенной.

Читать далее

Антикитерский механизм раскрывает свои новые секреты

Reading time17 min
Views144K

В 1900 году водолаз Элиас Стадиатис, облачённый в медно-латунный шлем и брезентовый костюм, появился из моря, трясясь от страха и бормоча о «куче мёртвых голых людей». Элиас был одним из греческих водолазов с острова Сими в восточной части Средиземного моря, собиравших морские губки. Они спрятались от жестокой бури рядом с крошечным островом Антикитерой, расположенным между Критом и материковой Грецией. Когда буря утихла, они продолжили нырять за губками и случайно наткнулись на обломки кораблекрушения со множеством древнегреческих сокровищ, которые и до сих пор остаются самыми крупными из найденных подводных останков древнего мира. «Мёртвые голые люди» оказались мраморными статуями, раскиданными по морскому дну вместе со множеством других артефактов. Вскоре после этого их открытие стало причиной первых крупных подводных археологических раскопок в истории.

Один из объектов, обнаруженный на месте раскопок, кусок размером с крупный словарь, изначально оставался незамеченным на фоне более удивительных находок. Однако несколько месяцев спустя Национальный археологический музей в Афинах вскрыл глыбу, скрывавшую внутри себя бронзовые точные шестерни размером с монету. Согласно историческим знаниям начала 20-го века, подобные шестерни не могли появиться в Древней Греции, да и ни в какой иной точке мира, ещё многие века после кораблекрушения. Находка породила ожесточённые споры.
Читать дальше →

Недорасшифрованные письменности Крита, Кипра и филистимлян. Часть 3: Формальный анализ, корпуса и палеография

Reading time12 min
Views4.2K

Пришло время вернуться к теме, отложенной из-за большого количества работы.

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

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

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

Читать далее

Information

Rating
7,515-th
Registered
Activity