Обновить
@EndUserread⁠-⁠only

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

Отправить сообщение

Фазовые переходы в видеоиграх и игровой баланс

Время на прочтение7 мин
Охват и читатели6K
Фазовый переход происходит, когда система пересекает линию, разделяющую две фазы [1]. Для воды и льда это 0°C (если отбросить влияние атмосферного давление и других факторов). Помимо фазовых переходов в термодинамике можно выделить фазовые переходы и применительно к видеоиграм.

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

Картинка Frequency of miracles [2]

Далее будут рассмотрены наглядные примеры фазовых переходов и возможные способы работы с ними.

Создание карт из функций шума

Время на прочтение12 мин
Охват и читатели30K
Одна из самых популярных статей на моём сайте посвящена генерации полигональных карт (перевод на Хабре). Создание таких карт требует много усилий. Но начинал я не с этого, а с гораздо более простой задачи, которую опишу здесь. Эта простая техника позволяет создавать подобные карты меньше чем в 50 строках кода:


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

Шум


Стандартный способ генерации 2D-карт заключается в использовании в качестве строительного блока функции шума с ограниченной полосой частот, например шума Перлина или симплексного шума. Вот, как выглядит функция шума:

image

Мы присваиваем каждой точке карты число от 0.0 до 1.0. В этом изображении 0.0 — это чёрный цвет, а 1.0 — белый.
Читать дальше →

Орден куколки

Время на прочтение22 мин
Охват и читатели19K
Прошу считать пятничным постом! Это как бы научная фантастика, но

правда важный дисклеймер
1. Научная фантастика понятие очень широкое. Этот рассказ-эссе я смею предложить только тем, кто нормально относится к углу {Лем, Кларк, Воннегут, Пелевин, Лэнгфорд...}. Простите меня, если в вашем представлении научная фантастика это что-то совсем иное, и я зря вторгся в вашу ленту.

2. Позиция автора может не совпадать с убеждениями лирического героя.



1. Марсианские каналы


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

Неужели действительно был так наивен, что в голове гуляло:
— Ваш платеж подтвержден, и вот вам ваша таблетка. Глотаете ее, и отныне…

Столетия, тысячелетия, миллионы лет — твои.

Пусть не таблетка, пусть инъекция, или неделя изматывающих процедур в стационаре, какая разница? Важно лишь, чтобы был миллион, оплатить это. Ну, десять. Да хоть сто! Зато уж если хватило — дело сделано.

Неужели я и правда представлял себе это так?
А если без поддавков?

Настолько ли стар твой Windows?

Время на прочтение3 мин
Охват и читатели59K
Как показывает бурное обсуждение последних статей на Хабре, посвященных Windows системам, большое количество продвинутых и не очень пользователей отдает свое предпочтение «устаревшей» Windows 7 и не торопится переходить на Windows 10. Причины бывают очень разные — от недовольства политикой конфиденциальности и большим объемом телеметрии до банальной привычки и нежелания идти на поводу у маркетологов Microsoft.

В данной статье я хочу рассмотреть случай, когда Windows 7, да и более ранние версии, требуются разработчику для качественного решения своих рабочих обязанностей. Не секрет, что в корпоративном секторе доля Windows 7 все еще очень велика, а так как компания Microsoft продлила ее расширенную поддержку до 2023 года, в ближайшее время вряд ли что-то кардинально изменится. И это не говоря о том, что встречаются и совсем древние системы с Server 2003 и 2008, на которых работает какое-то старое, но крайне нужное ПО, портировать которое никто не берется исходя из принципа «работает – не трогай». Однако, обновить Вашу «устаревшую» операционную систему можно гораздо быстрее и проще, чем кажется.
Читать дальше →

Давайте уберём кватернионы из всех 3D-движков

Время на прочтение13 мин
Охват и читатели34K
image

Для записи трёхмерных поворотов программисты графики используют кватернионы. Однако в кватернионах сложно разобраться, потому что изучают их поверхностно. Мы просто принимаем на веру странные таблицы умножения и другие загадочные определения, и используем их как «чёрные ящики», поворачивающие векторы так, как нам нужно. Почему $\mathbf{i}^2=\mathbf{j}^2=\mathbf{k}^2=-1$ и $\mathbf{i} \mathbf{j} = \mathbf{k}$? Почему мы берём вектор и превращаем его в «мнимый» вектор, чтобы преобразовать его, например $\mathbf{q} (x\mathbf{i} + y\mathbf{j} + z \mathbf{k}) \mathbf{q}^{*}$? Да кому это интересно, если всё работает, правда?

Существует способ описания поворотов под названием ротор, который относится к области и комплексных чисел (в 2D), и кватернионов (в 3D), и даже обобщается до любого количества измерений.

Мы можем создавать роторы практически полностью с нуля, вместо того, чтобы определять из ничего кватернионы и пытаться объяснить, как они работают задним числом. Это занимает больше времени, но мне кажется, что это стоит того, потому что их гораздо легче понять!

Кроме того, для визуализации и понимания трёхмерных роторов не нужно использовать четвёртое пространственное измерение.

Было бы здорово, если бы начали вытеснять использование и изучение кватернионов, заменяя их роторами. Заменить их очень просто, а код останется почти таким же. Всё, что можно делать с кватернионами, например, интерполяцию и устранение блокировки осей (Gimbal lock), можно сделать и с роторами. Но понимать мы начинаем гораздо больше.
Читать дальше →

Пять камней в огород блокчейна

Время на прочтение7 мин
Охват и читатели33K

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

Что же мешает блокчейну у нас в стране (и в мире), и нужен ли он вообще?

Социальная инженерия: неуловимый враг в мире кибербезопасности

Время на прочтение8 мин
Охват и читатели12K

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

Что такое социальная инженерия?


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

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

Структура атаки


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

Теория игр: принятие решений с примерами на Kotlin

Время на прочтение18 мин
Охват и читатели50K
Теория игр — математическая дисциплина, рассматривающая моделирование действий игроков, которые имеют цель, заключающуюся в выбор оптимальных стратегий поведения в условиях конфликта. На Хабре эта тема уже освещалась, но сегодня мы поговорим о некоторых ее аспектах подробнее и рассмотрим примеры на Kotlin.
Читать дальше →

Мы сделали памятку для китайцев, которые к вам приехали

Время на прочтение6 мин
Охват и читатели64K
Китайцы, как правило, очень добрые люди. Проблема с ними в том, что у них совершенно другая культура и они не понимают многого, что считается нормой у нас. Как и наоборот, кстати. Они бы и рады вписаться в общество и быть вежливыми, но главное для них — понять, как это. Работает это так: они пробуют что-то сделать и, если их никто не поправляет или никто на них косо не смотрит, решают, что это допустимо. Либо же повторяют то, что делает большинство.

Мы решили помочь братскому народу освоиться в России и подготовили памятку. Она доступна по лицензии CC BY-SA. Вы можете скачать её и повесить у себя в отеле, магазине, добавить в буклет или книгу.

Вот памятка:


А теперь пояснения.
Читать дальше →

Иллюзия пространства: как новый Spiderman рендерит помещения без геометрии

Время на прочтение5 мин
Охват и читатели47K

В недавно выпущенной игре Marvel's Spider-Man во многих зданиях за окнами есть интерьеры. Они выглядят замечательно, но похоже, что их реализовали с помощью хитрого рендеринга — геометрии интерьеров на самом деле не существует и она сгенерирована шейдером. Я не видел никаких официальных заявлений Insomniac о том, как они это сделали, но исходя из того, как выглядит эффект, здесь с большой вероятностью реализована техника interior mapping, которую я придумал в 2007 году в процессе работы над диссертацией. Раньше я не писал о ней в блоге, поэтому сейчас подходящий момент для объяснения любопытного небольшого шейдера, который я придумал.

Давайте начнём с просмотра геймплея Marvel's Spider-Man. Игра выглядит просто потрясающе. Сайт Kotaku записал отдельный ролик, посвящённый окнам:


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

7 практических уроков по UX

Время на прочтение9 мин
Охват и читатели9.8K
Эта статья будет представлять собой анализ нескольких уроков по UX/UI, которые мы получили, внимательно наблюдая на выставке за парой сотен людей, занимавшихся плейтестингом ранней сборки нашей игры Steamhounds.


Для понимания контекста скажу, что Steamhounds — это пошаговая игра, смесь JRPG и тактического боя на сетке. Игроки могут сражаться против ИИ, но мы по возможности стремились мотивировать их играть друг против друга, сидя рядом за разными мониторами.

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

Набор инструментов инди-разработчика игр

Время на прочтение7 мин
Охват и читатели20K
Доброго времени суток, начинающие игроделы!

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


Внимание: данный пост не рекламный, это лишь список программ, которые помогают мне в моих проектах.
Читать дальше →

Обзор кросс-платформенных фреймворков мобильной разработки

Время на прочтение8 мин
Охват и читатели18K

Введение


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

Читать дальше →

Локализация игр и приложений в Unity. Быстро и удобно

Время на прочтение3 мин
Охват и читатели39K
Привет! В этой статье я поделюсь своим опытом локализации игр и приложений в Unity, а также расскажу о своем плагине Simple Localization, который доступен в Asse Store. Уровень статьи — Easy. Кода не будет вообще, он вам не пригодится.

Читать дальше →

Коммерческие факторы ранжирования интернет-магазина и сайта услуг

Время на прочтение21 мин
Охват и читатели54K

Внимание, лонгрид!


Это подробнейший разбор коммерческих факторов, основанный на анализе через вебвизор поведения посетителей из Яндекс.Толоки, информации из официальных документов поисковых систем и выступлений их сотрудников на конференциях.


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


Чек-лист по коммерческим факторам в конце статьи.


Читать дальше →

Бот для Starcraft на Rust, C и на любом другом языке

Время на прочтение13 мин
Охват и читатели33K

StarCraft: Brood War. Как много это значит для меня. И для многих из вас. Настолько много, что я засомневался, давать ли ссылку на вики.


Как-то раз мне в личку постучался Halt и предложил выучить Rust. Как и любые нормальные люди, мы решили начать с hello world написания динамической библиотеки под Windows, которая могла бы загружаться в адресное пространство игры StarCraft и управлять юнитами.


В статье будет описан процесс поиска решений, использования технологий, приемов, которые позволят вам почерпнуть новое в языке Rust и его экосистеме или вдохновиться для реализации бота на своем любимом языке, будь то C, C++, ruby, python, e.t.c.

Ready to roll out!

Становимся дальтониками: эксперимент в сопереживании

Время на прочтение5 мин
Охват и читатели17K


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

Как дизайнеры UX, мы обязаны всегда ставить потребности и желания других выше своих собственных при планировании и разработке интерфейсов.

В свете этого я решила провести эксперимент по эмпатии и понять, каково это — быть на чужом месте. В частности, на месте моего коллеги Питера.
Читать дальше →

Туннели и VPN, устойчивые к DPI

Время на прочтение10 мин
Охват и читатели183K
Мы живем в интересное время. Я бы даже сказал, в удивительное. По одну сторону мы видим неких лиц, которые очень хотят знать, о чем между собой разговаривают другие люди, и очень хотят указывать им, что можно читать, а что нельзя. С другой стороны граждане, которые хотят отстоять свои права тайны личной переписки и свободного получения информации, и не хотят, чтобы факты этой самой переписки и получения этой самой информации были использованы против них. Бонусом страдает огромное количество сторонних сайтов, сервисов и бизнесов, которых задевает «ковровыми блокировками».

Но нет, эта статья не об обществе, а о технологиях.

image
Читать дальше →

Как мы пытались разобраться в штрихкодировании и ничего не поняли

Время на прочтение6 мин
Охват и читатели55K
Проснувшись однажды утром после беспокойного сна, я обнаружил, что компания Fasim, где мы регистрировали штрихкоды для игр «Банды умников» исчезла. Милая девушка-менеджер, которая вела все дела по штрихкодированию, просто пропала: абонент не абонент, мейлы без ответа и сайт показывает ошибку 404.

Дело в том, что когда мы решали вопрос со штрихкодами первый раз в 2013 году, то наша команда состояла из 5 человек, а штрихкоды нам нужно было сделать буквально за один день, чтобы заключить первый наш договор с большой сетью. Соответственно, для срочного решения вопроса была использована случайная ссылка из выдачи поисковика по запросу «регистрация штрихкодов». А потом мы, по инерции, просто слали тем же людям артикулы на новые игры для регистрации — другие предложения не особо отличались по цене, и всё было нормально, пока подрядчик не пропал.

Казалось бы, какие проблемы? Найдите другого подрядчика и платите ему. Но в этот раз мы постарались выяснить, откуда берутся штрихкоды, чтобы не «получилось как в тот раз». Но когда открываешь гугл и пытаешься разобраться в вопросе, начинается полный постмодернизм.
Читать дальше →

Как создать идеальный Pull Request

Время на прочтение3 мин
Охват и читатели24K
С ростом компании меняются люди и проекты. Не так давно в блоге GitHub появилась интересная статья, в которой автор рассказывает, как делать, а как лучше не делать Pull Request’ы. Перевод, традиционно, спрятан под катом.

Читать дальше →

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность