Pull to refresh
0
Send message

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

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

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

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

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

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

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


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

Шум


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

image

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

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

Reading time22 min
Views18K
Прошу считать пятничным постом! Это как бы научная фантастика, но

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

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



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


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

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

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

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

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

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

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

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

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

Reading time13 min
Views32K
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), можно сделать и с роторами. Но понимать мы начинаем гораздо больше.
Читать дальше →

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

Reading time7 min
Views33K

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

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

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

Reading time8 min
Views12K

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

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


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

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

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


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

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

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

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

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

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

Вот памятка:


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

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

Reading time5 min
Views47K

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

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


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

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

Reading time9 min
Views9.7K
Эта статья будет представлять собой анализ нескольких уроков по UX/UI, которые мы получили, внимательно наблюдая на выставке за парой сотен людей, занимавшихся плейтестингом ранней сборки нашей игры Steamhounds.


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

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

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

Reading time7 min
Views20K
Доброго времени суток, начинающие игроделы!

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


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

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

Reading time8 min
Views17K

Введение


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

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

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

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

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

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

Reading time21 min
Views52K

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


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


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


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


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

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

Reading time13 min
Views32K

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


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


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

Ready to roll out!

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

Reading time5 min
Views17K


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

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

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

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

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

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

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

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

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

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

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

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

Reading time3 min
Views24K
С ростом компании меняются люди и проекты. Не так давно в блоге GitHub появилась интересная статья, в которой автор рассказывает, как делать, а как лучше не делать Pull Request’ы. Перевод, традиционно, спрятан под катом.

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

Information

Rating
Does not participate
Date of birth
Registered
Activity