Pull to refresh
3
0
Афанасьев Вениамин @ULTRAWEN

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

Send message

Реактивное программирование для разработчиков игр: Введение

Reading time9 min
Views12K

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

Не отвлекайтесь на котят. Читайте о реактивном программировании!

Итак, я привлек ваше внимание?

Отлично! Я приложу все силы, чтобы не потерять его.

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments4

Динамический лут в играх: что стоит учитывать

Reading time9 min
Views17K
Destiny 2 - 'Rally the Troops'

Люди всех возрастов любят азарт, будь то Kinder Surprise, блэкджек или компьютерные игры. Представьте, у вас в игре есть две коробки: на одной написано "Вы получите 100 монет", а на второй — “Вы получите 50-1000 монет”. Сразу понятно, вокруг какой из коробок будет больше ажиотажа. А если при этом коробки покупаются за реальные деньги — мы получим политику и головную боль для разработчиков.

Однако, в этой статье я бы хотел описать личный опыт работы с динамическим лутом с точки зрения гейм-дизайнера, а также раскрыть основные инструменты, позволяющие сделать лут интересным, так как в открытом доступе информации об этом совсем немного.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments21

EventBus — Система событий для Unity

Reading time9 min
Views31K

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


Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments9

Zip-файлы: история, объяснение и реализация

Reading time76 min
Views95K


Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огромное удовольствие от создания отлаженной машины, которая берёт данные, перекладывает их биты в более эффективное представление, а затем собирает обратно. Надеюсь, вам тоже будет интересно об этом читать.

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →
Total votes 133: ↑132 and ↓1+174
Comments45

История о разработке Космосима на Unity

Reading time14 min
Views34K
В своей статье я постараюсь описать свой опыт создания игры за две недели, начиная от выбора жанра и сеттинга, заканчивая финальными титрами, а так же все грабли, на которые я наступил в процессе разработки, и на которые мне больше наступать не хочется. Тем, кто имеет достаточно большой опыт в разработке игр, статья скорее всего будет неинтересна, но начинающие разработчики, думаю смогут найти что-то интересное для себя.


Название — та часть игры, работа над которой была отложена на самый последний момент. В итоге ничего стоящего придумать, к сожалению, не удалось.
Узнать историю
Total votes 35: ↑32 and ↓3+29
Comments19

Страх и ненависть в геймдеве: от первых шагов до первых денег

Reading time7 min
Views9.3K
В этой статье хочу поделиться нашей историей в геймдеве. В ней нет ни полного провала, ни грандиозного успеха, и история в первую очередь об ошибках, растянутых на несколько лет. Плюс ко всему, лично я люблю почитать о других инди-разработчиках: возможно, и наша история покажется кому-то интересной.

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


Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments19

Физическое моделирование на GPU с использованием compute shader в среде Unity3D

Reading time17 min
Views38K
В этом руководстве я расскажу, как использовать compute shader для реализации вычислений на видеокарте — на примере модели волос:
Total votes 51: ↑51 and ↓0+51
Comments8

Управление в стиле Догвилль

Reading time8 min
Views41K
Начальник заставляет работать по ночам или в выходные? Орёт при всех матом? Позволяет себе пошлые шутки? Коллеги постоянно и настоятельно требуют помощи? Премию так и не дают, а зарплату не повышают? Ваше возмущение вызывает, в лучшем случае, смех?

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

Этот подход в общении и, особенно, управлении используют примерно все, причём – бессознательно. Даже дети и животные. Поглядим, как он работает.
Читать дальше →
Total votes 103: ↑91 and ↓12+114
Comments124

(Перевод) Введение в разработку C++ в UE4

Reading time11 min
Views178K
Часть 1. Введение. Создание класса и добавление свойств. Расширение класса С++ с помощью Blueprint.
Часть 2. Классы геймплея. Структуры. Отражение (reflection) в Unreal. Object/Actor итераторы. Менеджер памяти и сборщик мусора.
Часть 3. Префиксы в именах классов. Целочисленные типы. Типы контейнеров. Итераторы контейнеров. Цикл For-each, хеш-функции.
Часть 4. Бонусная. Unreal Engine 4 для Unity разработчиков.

image

Эта статья является переводом части документации по UE4. Оригинальную статью вы можете найти пройдя по это ссылке.
Далее
Total votes 44: ↑42 and ↓2+40
Comments8

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

Reading time8 min
Views44K
Три года назад ведущий геймдизайнер ArenaNet Дженнифер Шойрле завела в Твиттере очень интересный тред на тему «отличных игровых механик, скрытых от глаз игрока с целью достижения определенного эмоционального эффекта, реакции или поведения», где любой геймдизайнер мог поделиться своими внутриигровыми «фишками».

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

  • В Hellblade предупреждение перед игрой было тщательно продумано, чтобы заставить игроков поверить, будто в игре срабатывает система permadeath в случае, если игрок умирает слишком часто, хотя на самом деле ее там нет.
  • Pacman может огибать углы более резко, чем это делают призраки, тем самым наделяя игрока небольшим преимуществом.
  • Во многих шутерах последние очки здоровья стоят больше всей остальной шкалы, чтобы усилить чувство «выживания на грани». С той же целью в System Shock последняя пуля нанесет урон в 4 раза более сильный, чем остальные.
  • И, напротив, Shadow of Mordor слегка увеличивает здоровье некоторых врагов, чтобы бои длились дольше.
  • В Bioshock и Devil May Cry, находясь за спиной игрока, противники замедляют свою атаку.
  • В Xcom, если промахнуться много раз подряд, игрок получит скрытый бонус для последующих выстрелов. Кроме того, если игроки остаются пассивными слишком долго, враги усиливают свою агрессивность.
  • Похоже, что в Heartstone есть pity timers ― таймеры жалости. Многие другие игры позорно использовали их в более ранние годы.
  • В Resident Evil 4 после слишком большого количества смертей заспавнится меньше врагов, чтобы дать игроку больше шансов пройти трудный для него эпизод.
  • В любой гоночной игре реализован адаптивный ИИ, чтобы сделать соревнование более жестким.

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

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


Читать дальше →
Total votes 67: ↑63 and ↓4+78
Comments117

Шутер на миллион с нуля: путь инди-разработчика

Reading time7 min
Views19K
Последние пять лет я руковожу образовательными программами по игровой индустрии в Высшей школе бизнес-информатики НИУ ВШЭ. Мы проводим много бесплатных мероприятий с интересными спикерами, собирая аудиторию через Leader-ID. На одной из последних встреч прозвучала очередная классная история, где несколько единомышленников запустили в релиз игру, принесшую более 200 тыс. долларов.

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

Читать дальше →
Total votes 34: ↑32 and ↓2+35
Comments29

О прямоугольных координатах и гексагональных сетках

Reading time4 min
Views28K
Думаю, никому не нужно объяснять, насколько широко в играх (и не только) используются гексагональные сетки. Как для заданной шестиугольной ячейки найти координаты ее центра и вершин — достаточно очевидно. Обратное же преобразование (т.е. поиск ячейки, в которую попала данная точка с координатами x и y) уже не столь тривиально. О нём и пойдет речь в данном топике.
Читать дальше →
Total votes 72: ↑67 and ↓5+62
Comments51

Создание крюка-кошки в Unity. Часть 2

Reading time9 min
Views5.1K
image

Примечание: этот туториал предназначен для продвинутых и опытных пользователей, и в нём не рассматриваются такие темы, как добавление компонентов, создание новых скриптов GameObject и синтаксис C#. Если вам нужно повысить навыки владения Unity, то изучите наши туториалы Getting Started with Unity и Introduction to Unity Scripting.

В первой части туториала мы научились создавать крюк-кошку с механикой оборачивания верёвки вокруг препятствий. Однако мы хотим большего: верёвка может оборачиваться вокруг объектов на уровне, но не отцепляется, когда вы возвращаетесь обратно.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments0

Как смотреть видео сразу с двумя потоками субтитров

Reading time3 min
Views68K
Начнём с примеров практического применения параллельных субтитров:

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

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

3. Фильм смотрят в компании, одним нужен оригинал, другим перевод.

Конечно, всё это смахивает на небольшое маньячество, но человек, знакомый с проблемами перевода, готов мириться с некоторыми неудобствами (отъедание экранного пространства, раздвоение восприятия, небольшая морока с подготовкой материалов).
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments27

История о том, как Google Play за один час перечеркнул десять лет моих трудов

Reading time7 min
Views65K


Эта статья – открытое письмо рядового разработчика на Android сообществу в целом и руководству корпорации Google. Если кратко: мой аккаунт разработчика на Google Play снесли за какой-то час после десяти лет добросовестного сотрудничества. Под спойлер-катом выжимка из основных фактов:
Читать дальше →
Total votes 58: ↑41 and ↓17+37
Comments79

История первой «Цивилизации»

Reading time32 min
Views41K


(Прим. пер.: статья написана в 2007 году, до выхода Civilization V и VI)

В 1990 году Сид Мейер (Sid Meier) по просьбе своего начальника и партнёра продолжал поставленный на поток выпуск лётных симуляторов. Но жизнь Мейера, да и сам мир компьютерных игр вокруг него сильно изменились со времени начала его работы в 1982 году. Сид чувствовал неуёмную потребность расширения своих дизайнерских горизонтов. Настало время двигаться дальше. Несмотря на сильное сопротивление внутри созданной им компании, Мейер нарушил статус-кво и навсегда изменил путь развития компьютерных стратегий. Доказав скептикам свою правоту, он достиг успеха и сделал важнейший вклад в гейм-дизайн благодаря эпичной игре, основанной на истории человечества.
Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments37

Простите, пользователи macOS, но Apple зашла слишком далеко

Reading time6 min
Views161K

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

Тем временем я убедился, что Cogmind (и другое моё ПО) идеально работает через Wine и подобные ему пакеты. Разумеется, в Steam я никогда не говорил о поддержке Mac, потому что это не был отдельный скачиваемый файл, работающий сам по себе. Я готовился к выпуску версии 1.0, и откладывал решение о том, стоит ли принимать меры для реализации полной поддержки платформы, на будущее.

На текущий момент я уже достаточно прождал и увидел, чтобы прийти к осмысленному решению: официальная поддержка macOS просто недостижима для меня.

Почему такое решение было принято именно сейчас: если вы следите за разработчиками инди-игр, сообществами или новостями, то должны были слышать о шумихе, связанной с Apple. К сожалению, мой голос тоже присоединится к этому хору.
Читать дальше →
Total votes 156: ↑141 and ↓15+126
Comments563

Создание сеток шестиугольников

Reading time25 min
Views97K
image

Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
Читать дальше →
Total votes 92: ↑91 and ↓1+90
Comments25

PayPal – Ловушка для неопытных. Осторожно

Reading time9 min
Views452K


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

Я являюсь достаточно долго (уже несколько лет) покупаю товары на Ebay и поскольку оплата там возможна только через палку, то естественно у меня там открыт счёт. К нему у меня привязаны несколько карт (предназначенных для онлайн платежей), и банковский счёт для вывода средств (мои зарубежные партнёры время от времени подкидывают денежку). В остальном я с PayPal особенно не знаком. Как говорится, работает, работает неплохо и удобно. Счёт был в категории «Личный».

В последнее время сервис начал активно рекламировать перевод счёта в категорию «Корпоративный», расхваливая новые возможности. Меня соблазнила возможность работы нескольких пользователей в одной учётной записи. Захотелось подключить к своей учетке жену. К сожалению, нигде при этом не рассказывалось о проблемах при таком переходе. Наоборот заявлялось, что вы в любой момент можете сменить категорию счёта. Переход на корпоративный счёт прошёл без каких-либо проблем, спросили название компании и что-то ещё, сейчас даже и не помню.
Читать дальше →
Total votes 81: ↑61 and ↓20+41
Comments213

Работа с освещением в Unity — теория и практика

Reading time13 min
Views180K
В видеоиграх красивое освещение в реальном времени сильно бьёт по производительности, что особенно заметно на мобильных устройствах. Таким образом, разработчики вынуждены искать методы обхода этой проблемы. Lightmapping — технология, сохраняющая информацию об освещении в текстуру, что позволяет высвободить вычислительные ресурсы под другие нужды.
В этой статье я познакомлю читателя с теорией освещения в играх, опишу процесс создания “лайтмапа” в Unity 5 и поделюсь рядом советов.
image
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments18

Information

Rating
Does not participate
Registered
Activity