Pull to refresh
7
@lain8dono read⁠-⁠only

Rust Evangelist

Send message

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

Reading time 6 min
Views 29K

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

Читать далее
Total votes 15: ↑11 and ↓4 +7
Comments 114

Проект LLHD — универсальный язык описания аппаратуры

Reading time 10 min
Views 11K

Буквально на днях на arXiv-е была выложена очень занятная статья швейцарских исследователей, в которой представлены подробности проекта LLHD. Это проект создания многоуровневого промежуточного представления для языков описания аппаратуры, наследующий идеологию и принципы проекта LLVM.


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


Предлагаемая иерархия инструментов (здесь и далее изображения из оригинальной статьи)


У проекта есть все шансы стать тем же, чем GCC и LLVM в свое время стали для мира открытого программного обеспечения. Сложно даже представить, насколько это может изменить ситуацию вокруг разработки железа.


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

Читать дальше →
Total votes 67: ↑67 and ↓0 +67
Comments 50

Реалистичный боевой ИИ для 2D-игры

Reading time 6 min
Views 13K
image

Хотя Close Quarters преимущественно является многопользовательской игрой, в ней всё равно должны присутствовать сложные ИИ-боты, чтобы игроки продолжали играть при плохом Интернет-соединении или отсутствии других онлайн-игроков. Кроме того, боты играют важную вспомогательную роль в некоторых режимах игры. Поэтому они должны вести себя правдоподобно и демонстрировать набор сложных поведений, в том числе использование укрытий, применение предметов в подходящее время, обход с флангов, бросание гранат и убегание от них.

Окружение и ограничения


Игровое окружение состоит из полигонов. Большинство полигонов блокирует движение, область видимости и стрельбу, однако есть и «низкие» полигоны, только блокирующие движение. Окружение плотно заставлено препятствиями и укрытиями.

ИИ тоже ограничен несколькими техническими факторами. Самый важный из них: сервер, на котором выполняются боты, когда онлайн находится мало игроков, должен быстро работать на недорогом VPS как минимум при десяти ботах. Кроме того, нагрузка на ЦП должна оставаться достаточно низкой, чтобы можно было выполнять несколько инстансов сервера на одном VPS без превышения лимита ЦП, и не при этом вызвать санкций со стороны поставщика услуг VPS.
Total votes 40: ↑40 and ↓0 +40
Comments 2

Реализация псевдо-3D в гоночных играх

Reading time 40 min
Views 50K

Введение


Почему псевдо-3d?

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

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

Стоит заметить, что не в каждой старой гоночной игре используются эти техники. В действительности описываемый в статье метод — это только один из способов создания псевдотрёхмерной дороги. В других случаях используются спроецированные и отмасштабированные спрайты или различные способы реального проецирования дороги. Степень смешения реальной математики с трюками зависит от создателей. Надеюсь, вам понравится изучение предложенного мной спецэффекта.
Total votes 92: ↑91 and ↓1 +90
Comments 18

История создания первой игры на Unity — от идеи до релиза

Reading time 7 min
Views 41K


Добрый день! Я — инди-разработчик (с недавнего времени), 2 года назад, будучи пожарным, пришла в голову мысль создать свою игру на Android. Из опыта было только создание карт под игровые движки Gold Source и Source (на них построены старые добрые: Counter-Strike, Half-Life и многое другое), взяв волю в кулак, решил что я обязательно справлюсь и занялся штудированием интернет-поисковика Google.

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

Осторожно, под катом gif-изображения.
Читать дальше →
Total votes 56: ↑54 and ↓2 +52
Comments 40

Создание искусственного интеллекта для игр — от проектирования до оптимизации

Reading time 32 min
Views 139K

Сегодня – первое сентября. А значит, многие читатели хабры начинают прохождение нового уровня одной древней известной игры – той самой, в которой требуется прокачать интеллект, и, в итоге, получить магический артефакт – аттестат или диплом, подтверждающий ваше образование. К этому дню мы сделали реферативный перевод статьи про реализацию искусственного интеллекта (ИИ) для игр – от его проектирования до оптимизации производительности. Надеемся, что она будет полезна как начинающим, так и продвинутым разработчикам игр.
Читать дальше →
Total votes 44: ↑42 and ↓2 +40
Comments 3

Я не представляю, какого черта я делаю

Reading time 14 min
Views 26K


Недавно мне представилась возможность открыть конференцию для веб-дизайнеров Generate Conf в Нью-Йорке. Мне выпал шанс поговорить о неопределенности будущего.
Читать дальше →
Total votes 24: ↑21 and ↓3 +18
Comments 16

Исследование игровых сеттингов

Reading time 13 min
Views 53K


Год назад нам понадобилось определить, какой игровой сеттинг лучше подходит для мобильной стратегии. Взять ли нам фэнтези, или какие-то научно-фантастические сеттинги? Может быть, это должен был быть сеттинг Skyforge? Однозначного ответа не было. Поэтому мы решили провести исследование аудитории портала Мини-игры Mail.Ru. Это, к слову, один из крупнейших в России порталов, посвященных именно играм, с ежемесячной многомиллионной аудиторией. Читайте далее, чтобы узнать, какие сеттинги наиболее востребованы пользователями мобильных игр.
Читать дальше →
Total votes 35: ↑29 and ↓6 +23
Comments 29

Нативная реализация OmniDirectional теней в DirectX11

Reading time 13 min
Views 24K
image

Привет. Продолжая рассказывать про различные технологии из графического геймдева — хотел бы рассказать о том, как в DirectX 11 удобно работать с тенями. Расскажу о создании Point-источника света с полным использованием инструментов GAPI DirectX11, затрону такие понятия, как: Hardware Depth Bias, GS Cubemap Render, Native Shadow Map Depth, Hardware PCF.
Исходя из легкого серфинга по интернету – я пришел к выводу, что большинство статей о тенях в DX11 неверны, реализованы не совсем красиво или с использованием устаревших подходов. В статье постараюсь сравнить реализацию теней в DirectX 9 и DirectX 11. Все ниже описанное так же справедливо и для OpenGL.

Читать дальше →
Total votes 51: ↑49 and ↓2 +47
Comments 3

Steering behavior. Виды изменения направления движения персонажа на ходу

Reading time 4 min
Views 22K
При разработке игр часто возникает необходимость реализации следования некоторому маршруту. Например, персонажу нужно проложить путь из точки A в точку B. Допустим рассчитали его по какому-нибудь алгоритму поиска пути, идем. И тут оказывается, что из точки C в точку D идет другой юнит и пересекает нам дорогу и надо бы его обойти. Что делать? Постоянно перестраивать путь – накладно, много лишних вычислительных расходов, когда достаточно слегка изменить направление уже во время движения, чтобы избежать столкновения.
Виды изменения направления по ходу движения и есть steering behaviors.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 8

IBM PC своими руками — это очень просто

Reading time 34 min
Views 199K
image

После того, как я воплотил свою давнишнюю мечту и все-таки (хотя и с опозданием почти на 30 лет) построил Радио 86РК, некоторое время мне казалось, что на этой части моей истории поставлена вполне достойная точка.

Тем не менее, обнаружилось, что болезнь до конца не вылечена, и она вернулась еще более острым рецидивом. Наверное, сказались как неожиданно успешный опыт постройки 86РК, так и то, что у меня в ходе данного процесса образовалось довольно большое количество весьма притягательно выглядящих инструментов, приборов и деталей, которым очень хотелось найти применение.
В конце концов ломка стала нестерпимой, и мне пришлось снова взяться за паяльник, а также вспомнить некоторые другие навыки из прошлого. Что из этого получилось, можно увидеть вместе с некоторым количеством картинок и очень (повторяю – ОЧЕНЬ) большим количеством букв (и даже не букв, а страниц) дальше…
Читать дальше →
Total votes 261: ↑260 and ↓1 +259
Comments 81

Лекции Технопарка. Геймдизайн от идеи до релиза

Reading time 32 min
Views 67K


Этот пост, как нетрудно догадаться, посвящен геймдизайну и разработке игр. Раньше я делал клиентские и браузерные игры, в том числе экшн Panzar. В Mail.Ru Group занимаюсь разработкой мобильных игр. Эта публикация задумана мной как некий мастер-класс по мотивам выступления в Технопарке, на котором я поделился своим опытом организации процесса построения геймдизайна. Несмотря на то, что часть материала в этой статье более актуальна для крупных компаний, я постарался учесть особенности проработки игрового дизайна в небольших студиях и начинающих командах разработки.
Читать дальше →
Total votes 52: ↑43 and ↓9 +34
Comments 25

Обещания JavaScript

Reading time 19 min
Views 204K
Всем привет, и ещё раз всех с прошедшими праздниками. Трудовые будни набирают обороты и вместе с ними растёт информационный голод мучающий нас. Мир разработки переднего конца не дремлет и готовит нам много сюрпризов в наступившем году, и уж поверьте мне, скучно не будет ни кому. Одна из новых особенностей которые нам готовят разработчики браузеров совместно с группами разработчиков пишущих спецификации — JavaScript Promises(далее в переводе — Обещания, прошу сильно не бить) — полюбившийся многим шаблон написания асинхронного кода обзаводится нативной поддержкой. Что же такое обещания и с чем их едят можно прочесть в нижеследующем переводе(слегка вольном) замечательной статьи Джейка Арчибальда.

Подробности
Total votes 83: ↑76 and ↓7 +69
Comments 39

Как писать отличные пулл-реквесты

Reading time 3 min
Views 22K
С ростом компании, люди и проекты меняются. Для продолжения развития культуры, которую мы хотим иметь в GitHub, мы сочли полезным напомнить самим себе цели, которые преследуем в коммуникациях. Мы недавно представили эти гайдлайны, чтобы помочь самим себе быть лучше, когда мы взаимодействуем через пулл-реквесты.
Читать дальше →
Total votes 55: ↑46 and ↓9 +37
Comments 10

Направленное освещение и затенение в 2D-пространстве

Reading time 8 min
Views 48K

Добрый день, Хабравчане!
Хотелось бы рассказать об одном из способов отрисовки освещения и затенения в 2D-пространстве с учетом геометрии сцены. Мне очень нравится реализация освещения в Gish и Super MeatBoy, хотя в митбое его можно разглядеть только на динамичных уровнях с разрушающимися или перемещающимися платформами, а в Гише оно повсеместно. Освещение в таких играх мне кажется таким «тёплым», ламповым, что непременно хотелось нечто подобное реализовать самому. И вот, что из этого вышло.
Читать дальше →
Total votes 95: ↑94 and ↓1 +93
Comments 39

Эволюция: графика и механика

Reading time 6 min
Views 45K


В январе этого года наш игровой департамент выпустил мобильную игру «Эволюция: Битва за Утопию». Игру хорошо приняли, людям нравится играть в нее. Я часто вижу людей с «Эволюцией» в метро. Даже начал желания загадывать, когда оказываюсь между игроками. И в этом посте, подготовленным по моему докладу на КРИ 2014, я хотел бы подробнее рассказать о процессе разработки и особенностях «Эволюции».
Читать дальше →
Total votes 57: ↑49 and ↓8 +41
Comments 15

Лицензия для вашего open-source проекта

Reading time 98 min
Views 181K
В этой статье я хочу немного поговорить об авторском праве и свободных лицензиях на ПО. Текст является результатом самостоятельного выбора лицензий и их применения к своим проектам.

Статья будет полезна тем, кто хочет:

— в общих чертах понять, что такое авторское право (но лучше обратиться к юристу);
— подобрать свободную лицензию для своего проекта;
— разобраться, что нужно писать в шапке файла исходного кода.
Читать дальше →
Total votes 136: ↑132 and ↓4 +128
Comments 117

Линейная алгебра для разработчиков игр

Reading time 19 min
Views 760K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18 +278
Comments 61

Видеоигры. Так ли все плохо?

Reading time 4 min
Views 111K

Видеоигры всегда вызывали большое количество споров. Достаточно часто они упоминаются в контексте насилия, бессмысленной траты времени, привыкания, ожирения детей и так далее. Но это только одна сторона медали. Индустрия видеоигр оценивается в $ 20 млрд. Так, может быть, хоть какая-то небольшая часть этих денег все же делает мир лучше?


image
Читать дальше →
Total votes 91: ↑76 and ↓15 +61
Comments 77

Контрольное голосование за 121 лучшую игру по версии Хабра (2013 г.)

Reading time 2 min
Views 73K

После поста "Коллективный разум ХабраХабра выбрал лучшие игры всех времен и народов на 2013 год" возникло много споров: можно ли считать позиции игр объективными? И правда, игры, упомянутые в комментария раньше других, в основном и набирали больше голосов. Этому есть несколько очевидных причин, и что это действительно так можно видеть из графика, составленного по данным от Athari:image
Читать дальше →
Total votes 86: ↑60 and ↓26 +34
Comments 138

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity