Как стать автором
Обновить
7
0

Game Developer по образованию. Пописываю на Rust-е

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

Как компилятор C++ находит правильную функцию

Время на прочтение13 мин
Количество просмотров15K

Увлекательный пересказ того, как компилятор C++ находит правильную функцию, которую надо вызвать, когда в коде вызывается функция. По сути, это просто сжатое объяснение алгоритма, уже описанного на cppreference.com, который, в свою очередь, является сокращенной версией стандарта C++.

Читать дальше →
Всего голосов 22: ↑19 и ↓3+21
Комментарии3

Самые интересные блоги и сайты для C++ программистов

Время на прочтение4 мин
Количество просмотров17K

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

Читать дальше →
Всего голосов 20: ↑17 и ↓3+20
Комментарии2

Как мы написали конкурентные структуры данных на C++ и научились их верифицировать

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.2K

Привет! В команде ВКонтакте мы переписываем рантайм движков баз данных — они становятся быстрее, надёжнее, а ещё с новым рантаймом проще писать код. Однако есть нюанс: в новом рантайме много конкурентных структур данных, в том числе нужных для работы с корутинами из С++20. Появляется интересная задача — проверять корректность этих конкурентных структур данных до выхода кода в продакшен.

Для решения этой задачи команда ВКонтакте вместе со студентами из университетов ИТМО и СПбГУ работала над научно-исследовательским проектом — верификацией конкурентных структур данных на языке C++. В этой статье подробно расскажем, как мы в рамках проекта проверяли корректность наших конкурентных структур данных и заодно исправили найденную в нашем новом рантайме ошибку.

Читать далее
Всего голосов 31: ↑31 и ↓0+37
Комментарии32

Occlusion masking: просвечиваем стены в Unreal Engine

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.7K

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

Читать далее
Всего голосов 8: ↑8 и ↓0+13
Комментарии8

Консистентность в оформлении игровых интерфейсов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.4K

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

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

А ещё в статье десятки примеров качественного оформления игровых интерфейсов с комментариями и пояснениями. Так что залетайте и хватайте полезную инфу =)

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Реализация циклической генерации подземелий «изнутри»: да что тут сложного?

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров10K

Вам нравятся старые Legend of Zelda времён SNES и GBA? Может быть, вам пришлась по вкусу Dark Souls? А, возможно, вы ещё и фанат Quake? Но что объединяет все эти игры? Для меня это в первую очередь дизайн уровней. Головоломки, удобные шорткаты и нелинейность исследования - вот то, что делает карту игры частью общего игрового процесса и вдыхает жизнь в процесс исследования мира.

В наше время расцвета жанра rogue-lite вопрос генерации игровых уровней актуален как никогда. Однако по-настоящему интересные уровни в жанре - большая редкость, я бы даже сказал, феноменальная. Чаще всего уровни представляют собой просто наборы заранее заготовленных комнат-коробок, случайным образом приставленных друг к другу, без какой-либо логичной высокоуровневой картины. Но, всё же, я знаю одну игру, которая взяла принципиально другой подход: Unexplored. На мой взгляд, она пересмотрела устоявшийся стереотип об ограничениях левелдизайна в рогаликах. Всё, что для этого понадобилось - циклическая генерация подземелий (Cyclic dungeon generation).

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

Каких же?
Всего голосов 28: ↑28 и ↓0+34
Комментарии15

Еще один пост о синхронизации в Vulkan

Время на прочтение21 мин
Количество просмотров5.2K

Так, я наиграл в Fire Emblem: Three Houses уже порядка 160 часов в течение последней пары недель, думаю пришло время вновь побыть интернет-экспертом.

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Вороной, Манхэттен, рандом

Уровень сложностиПростой
Время на прочтение34 мин
Количество просмотров18K

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

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

Осторожно, очень много картинок!

Читать далее
Всего голосов 160: ↑160 и ↓0+160
Комментарии53

Случайные блуждания и цепи Маркова в геймдизайне

Время на прочтение12 мин
Количество просмотров14K

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

Всем привет, меня зовут Лев, я геймдизайнер из WhaleKit. И в этой статье мы разберем две математические концепции: цепи Маркова и случайные блуждания. Сразу замечу, что статья скорее «поп», чем «науч», поэтому часть доказательств выведенных формул будет опущена. После теории мы перейдем к реальным кейсам, где эти инструменты могут пригодиться, например:

 1. Сколько сундуков откроет игрок, если из сундуков могут выпасть еще сундуки;
2. Сколько золота уйдет на прокачку меча, если меч может ломаться;
3. Какая вероятность победить в денежном поединке.

Читать далее
Всего голосов 44: ↑44 и ↓0+44
Комментарии5

Как вести дизайн-документацию, чтобы ваша команда понимала, что она делает

Время на прочтение5 мин
Количество просмотров14K

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

Всем привет, меня зовут Мария Аксютина, я гейм-дизайнер студии Whalekit. В этой статье я подробно расскажу, как вести документацию, чтобы она была наглядной, понятной и полезной для остальной команды.

Читать далее
Всего голосов 43: ↑41 и ↓2+46
Комментарии13

Под капотом Graveyard Keeper: Как реализованы графические эффекты

Время на прочтение5 мин
Количество просмотров55K
Всем привет! Целых 4 года я не писал на Хабр. Последняя моя серия постов была о различных инструментах и приемах, которые мы применяли на нашей прошлой игре (разрабатывая ее на Unity). С тех пор игру ту мы благополучно выпустили, а также выпустили и новую. Так что теперь можно немного выдохнуть и написать несколько новых статей, которые могут быть кому-то полезны.


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

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

Для начала, кратко перечислю из чего собирается картинка в нашей игре:
Читать дальше →
Всего голосов 179: ↑178 и ↓1+177
Комментарии98

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Game Developer, System Software Engineer
Junior
Rust
C++
Vulkan API
Computer graphics
Golang
gRPC
PostgreSQL
Redis