Pull to refresh
15
Karma
0
Rating
Станислав Комаровский @inborn_killer

User

Как сделать мобильную игру командой из 2 человек с нулевым бюджетом и получить фичеринг в Google Play

Reading time 6 min
Views 12K
Development of mobile applications *Game development *Start-up development Games promotion *Logic games
Recovery mode


Мы с мужем давно хотели делать игры вместе, но времени на это никогда не хватало. Мы оба работали: он — UI-программистом в геймдеве, я — продакт-менеджером в social media, затем в финтехе, и сил на собственную игру не оставалось.

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

Как мы придумывали


Хотя у нас было множество идей (и даже прототипов) интересных и сложных игр, мы решили начать с чего-то очень простого, чтобы потратить как можно меньше времени на разработку и как можно быстрее получить бесценный опыт релиза и продвижения инди-игры. Поэтому после некоторых раздумий мы остановились на мобильном пазле с честной физикой.

Мы сами довольно много играем и всегда отмечаем то, что нам нравится, и что — не очень. Основной момент, который нас раздражает в современных мобильных казуалках — это однообразие их механик, обилие попапов с предложениями что-нибудь купить и длинными описаниями, а также перенасыщенный UI с кучей каких-то плашек, бабблов и объёмных шрифтов. Поэтому в нашей игре мы постарались сделать всё наоборот.
Total votes 38: ↑24 and ↓14 +10
Comments 40

Как мы писали сетевой код мобильного PvP шутера: синхронизация игрока на клиенте

Reading time 13 min
Views 30K
Pixonic corporate blog Development of mobile applications *Designing and refactoring *Game development *Unity3D *
В одной из предыдущих статей мы провели обзор технологий, которые используются на нашем новом проекте — fast paced шутере для мобильных устройств. Теперь хочу поделиться, как устроена клиентская часть сетевого кода будущей игры, с какими трудностями мы столкнулись и как их решали.


Читать дальше →
Total votes 50: ↑49 and ↓1 +48
Comments 31

Анализ исходного кода и защиты от копирования Prince of Persia

Reading time 13 min
Views 26K
Game development *Reverse engineering *
Translation
image

Часть 1: введение


17 апреля 2012 года Джордан Мекнер опубликовал исходный код Prince of Persia.

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

Очевидно слабая для программирования игр среда Apple II на самом деле была фундаментом несравнимых ни с чем инноваций и творчества: самомодифицирующийся код, внутренний загрузчик, умный формат гибких дисков и смещение таблиц поиска. В каждом своём модуле Prince Of Persia хранит сокровища инженерной мысли.

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

Как обычно, я вёл подробные записи и на их основе создал эту статью. Надеюсь, она вдохновит других на чтение исходного кода и усовершенствование своих навыков разработки.
Total votes 72: ↑71 and ↓1 +70
Comments 25

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

Reading time 40 min
Views 48K
Game development *Algorithms *
Translation

Введение


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

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

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

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

Генерирование полигональных карт для игр

Reading time 24 min
Views 53K
Game development *Algorithms *
Translation
Я хотел научиться генерировать интересные игровые карты, которые не обязательно были бы реалистичными, а также попробовать техники, с которыми раньше не работал. Обычно я создаю карты с другой структурой. Что можно сделать с тысячей полигонов вместо миллиона тайлов? Отчётливо различимые игроком области могут быть полезны для геймплея: местоположения городов, места квестов, территории для захвата или колонизации, ориентиры, точки поиска пути, зоны с разной сложностью и т.д. Я генерировал карты с помощью полигонов, а затем растеризировал их вот в такие карты:

image

Во многих процедурных генераторах карт, в том числе и некоторых моих предыдущих проектах, для генерирования карты высот используются функции шума (midpoint displacement, фракталы, diamond-square, шум Перлина и т.д.). Здесь я их не применял. Вместо неё я использовал структуру графов для моделирования элементов, определяемых ограничениями геймплея (высота, дороги, течение рек, места квестов, типы монстров) и функции шума для моделирования того, что не ограничивается геймплеем (форма побережья, расположение рек и деревьев).
Читать дальше →
Total votes 100: ↑99 and ↓1 +98
Comments 11

Отрисовка векторной графики — триангуляция, растеризация, сглаживание и новые варианты развития событий

Reading time 13 min
Views 23K
Development of mobile applications *Game development *

В далёком 2013м году вышла игра Tiny Thief, которая наделала много шуму в среде мобильной Flash (AIR) разработки из-за отказа от растровой графики в билдах, включая атласы анимации и прочего — всё что было в сборке хранилось в векторном формате прямиком из Flash редактора.
Это позволило использовать огромное количество уникального контента и сохранить размер установочного файла до ~70 мегабайт (*.apk-файл из Google Play). Совсем недавно снова возник интерес к теме отрисовки векторной графики на мобильных устройствах (и вообще к теме отрисовки вектора с аппаратной поддержкой), и меня удивило отсутствие информации "начального" уровня по этой теме. Это обзорно-справочная статья по возможным способам отрисовки вектора и уже существующим решениям, а так же о том, как подобные вещи можно сделать самостоятельно.


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

Пишем игровую логику на C#. Часть 2/2

Reading time 11 min
Views 23K
Game development *C# *Unity3D *
Tutorial
Это продолжение предыдущей статьи. Мы шаг за шагом создаем движок, на котором будет работать игровая логика нашей экономической стратегии. Если вы видите это впервые — настоятельно рекомендую начать с Части 1, так как это зависимое продолжение и требует ее контекста.

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



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

Пишем игровую логику на C#. Часть 1/2

Reading time 12 min
Views 83K
Game development *C# *Unity3D *
Tutorial
Всем привет. В связи с выходом моей игры SpaceLab на GreenLight я решил начать серию статей о разработке игры на C#/Unity. Она будет основываться на реальном опыте её разработки и немного отличаться от стандартных гайдов для новичков:

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




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

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

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

Кого заинтересовало узнать, что за игра — внизу есть видео и ссылка на бесплатное скачивание.
Читать дальше →
Total votes 30: ↑27 and ↓3 +24
Comments 51

Процедурная генерация уровней для M.E.R.C. в Unity

Reading time 6 min
Views 11K
Game development *Algorithms *Unity3D *
Translation


Часть вторая


В части первой этой статьи я рассказал, почему для игры M.E.R.C. мы выбрали процедурную генерацию уровней, и описал требования к ней. Также я описал процесс генерирования структуры процедурного уровня и соединения множества фрагментов для создания целостного уровня. Во второй части статьи мы обсудим решение проблем освещения и NavMesh в Unity и создание NPC на основании темпа.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Comments 0

Процедурная генерация уровней для M.E.R.C. в Unity

Reading time 6 min
Views 17K
Game development *Algorithms *Unity3D *
Translation
image

Часть первая


Процедурная генерация уровней — отличный способ добавить в игру больше контента и неожиданных сценариев. Для сюжетных миссий M.E.R.C. мы хотели создать большой набор сделанных вручную уровней, но осознавали, что нашей небольшой инди-команде не хватит времени или ресурсов на изготовление контента для такой большой игры. Кроме того, мы стремились добавить случайность и повысить реиграбельность игры. Процедурная генерация уровней позволила нам создать большой, бесконечно изменчивый мир, который мы не смогли бы получить, строя отдельные уровни вручную. Использование процедурной генерации позволяет добавить больше контента и улучшить игровой процесс.

Что такое M.E.R.C.? M.E.R.C. — это тактический симулятор отряда в реальном времени с видом сверху. Игрок одновременно управляет отрядом из четырёх наёмников в антиутопическом мире Неотопии, отдаёт приказы и активирует особые умения. Каждый наёмник отряда имеет собственные особые боевые, технические и хакерские навыки, которые необходимо использовать в миссиях. Визуально M.E.R.C. напоминает стиль «Бегущего по лезвию»: тёмные дождливые трущобы и крыши города со множеством извилистых улиц и неоновым освещением. Сюжет заключается в войне могущественных корпораций за контроль над Неотопией. Отряд нанимают для выполнения различных заданий корпораций, таких как похищение учёных конкурентов или убийство сотрудников-перебежчиков. Каждая полученная миссия влияет на отношения с разными корпорациями и в результате изменяет игровой мир. Учитывая всё это, давайте рассмотрим требования к процедурной генерации уровней.
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Comments 2

Классические алгоритмы генерации лабиринтов. Часть 2: погружение в случайность

Reading time 12 min
Views 28K
Programming *Game development *Algorithms *Lua *
Tutorial


Предисловие


Первая часть

Итак. Оценив отклик аудитории Хабра и разобравшись с делами, я принялся за написание второй статьи из цикла. Реакция публики оказалась значительно позитивнее моих предположений, а значит, мы продолжаем разговор на одну из любопытнейших тем процедурной генерации – создание лабиринтов.

В этой части мы поговорим о том, что же такое случайная и псевдослучайная генерации, какие алгоритмы могут дать нам равновероятно ничем не похожие друг на друга лабиринты и в чем их минусы. Героями нашего сегодняшнего приключения станут алгоритм Уилсона и алгоритм Олдоса-Бродера для создания случайного остовного дерева (Uniform Spanning Tree). ОСТОРОЖНО ТРАФИК.
Читать дальше →
Total votes 47: ↑47 and ↓0 +47
Comments 25

Физика поездов в Assassin's Creed Syndicate

Reading time 14 min
Views 19K
Game development *Algorithms *
Translation

В этой статье я хочу рассказать о нашем собственном симуляторе, созданном для моделирования физики поездов в Assassin's Creed Syndicate. Действие игры происходит в Лондоне 1868 года, в период промышленной революции, когда развитие общества зависело от пара и стали. Для меня было огромным удовольствием поработать над уникальной возможностью реализации мира Лондона викторианской эпохи. Внимание к историческим и реальным деталям привело нас к созданию этой физической симуляции.

Введение


Сегодня писать свои физические движки не очень популярно. Однако бывают ситуации, в которых создание собственного физического симулятора с нуля чрезвычайно полезно. Такие ситуации могут возникать, когда есть особая необходимость в новой геймплейной функции или части симулируемого игрового мира. Именно такая проблема возникла у нас при разработке системы железных дорог и управления поездами в Лондоне 19-го столетия.

Стандартная система соединения европейских поездов приведена на Рис. 1 слева. Такая же система использовалась в поездах 19-го века в Лондоне [1]. Когда мы начали работу над поездами, то быстро осознали, что можно создать интересные взаимодействия и зависимости, симулируя стяжку физически. Поэтому вместо жёсткого скрепления вагонов мы соединили их подвижным сцепным устройством, управляющим движением всех вагонов поезда.

image
Рис. 1. Слева — детали винтовой стяжки (источник: Википедия [1]). Справа — соединительная система в Assassin’s Creed Syndicate.
Total votes 47: ↑44 and ↓3 +41
Comments 19

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

Reading time 13 min
Views 13K
Plarium corporate blog Game development *
Translation


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

Мы подготовили для вас перевод статьи с ресурса Gamasutra, чтобы вы вместе с нами узнали о первых шагах известных разработчиков в мире геймдева.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 3

Красота рендеринга игровых кадров: Краткий обзор инструментов + Интересное видео

Reading time 5 min
Views 19K
Software Video cards Games and game consoles
Tutorial
Пытливость ума и желание знать как все работает изнутри выделяет технаря из массы пользователей. В этом небольшом посте я бы хотел поделиться с любознательным сообществом небольшими роликами и кратким рецептом использования профилирующего софта для 3D приложений.


Кому любопытно, прошу пройти
Total votes 24: ↑24 and ↓0 +24
Comments 22

Особенности разработки мобильной MMO RTS. Часть 1

Reading time 5 min
Views 23K
Plarium corporate blog Development for iOS *Game development *C# *Unity3D *
В цикле статей «Особенности разработки мобильной MMO RTS» мы расскажем о работе большой команды над масштабным проектом Stormfall: Rise of Balur. Этот опыт будет полезен независимым разработчиками и студиям, которые еще не определились с выбором технологий, архитектуры и структуры команды для своей RTS.


Читать дальше →
Total votes 29: ↑25 and ↓4 +21
Comments 32

Реализация мультиплеера в игре. Сравнение возможностей Game Center, Steamworks и GameSparks

Reading time 8 min
Views 14K
Self Promo
Игры с многопользовательским режимом значительно интересней аналогичных игр без него. Но реализация мультиплеера подразумевает под собой наличие своего сервера, кода, реализующего сетевое взаимодействие, матчмекинг и многое другое.

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

  1. Game Center (игры под iOS)
  2. Steamworks (игры для Steam)
  3. GameSparks (кроссплатформенное решение)

Под катом я расскажу про каждый из этих вариантов, основные возможности, возникшие трудности, плюсы и минусы. От кусков кода я воздержусь. Все есть в документации.
Total votes 12: ↑12 and ↓0 +12
Comments 8

Дневник выступлений с минского DevGAMM 2016

Reading time 20 min
Views 9.4K
ВШБИ — Менеджмент игровых интернет-проектов corporate blog Game development *
10-11 ноября в Минске прошла конференция разработчиков игр DevGAMM. На нее приехало 1300 гостей, было 80 докладчиков, в сумме прошло более 60 сессий (доклады, мастер-классы и круглые столы). Среди них были доклады от Чета Фалижека (игровой сценарист Valve), Тони Уоткинса (генеральный директор EA Russia), Петра Иваницки (разработчик игры SUPERHOT), Якуба Дворски (создатель Machinarium, Samorost 3), Марты Деттляфф и Кацпера Непокульчицкого (художники Ведьмак 3), Майка Хайнса (евангелист отдела разработки Amazon), Имре Джеле (разработчик Surgeon Simulator и I am bread) и Алекса Ничипорчика (CEO компании tinyBuild) и многих других докладчиков. Под катом мы собрали для вас видеозаписи и краткое описание всех докладов с метками для удобства поиска по ним.


Total votes 14: ↑13 and ↓1 +12
Comments 5

2D магия в деталях. Часть вторая. Структура

Reading time 19 min
Views 29K
Game development *C# *Unity3D *


Помните небезызвестный мем про "корованы"? Наверное, каждый, кто разрабатывает игры (или хотел бы этим заняться) раздумывает о неком "проекте мечты", где можно будет "грабить корованы" и "набигать". А ещё, чтобы погода менялась динамически, и на грязи следы от сапог оставались, и деревья росли в реальном времени. И ещё, чтобы ...


Понятно, что в реальном игровом проекте такая погоня за хотелками — смерти подобна. А вот в техно-демке — самое то.

Total votes 54: ↑53 and ↓1 +52
Comments 10

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

Reading time 32 min
Views 39K
Biography of geeks Games and game consoles
Translation


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

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

Игровая индустрия: полезные материалы для геймдевелопера от A до Z

Reading time 10 min
Views 158K
ВШБИ — Менеджмент игровых интернет-проектов corporate blog Game development *Professional literature *
В последнее время мы часто сталкиваемся с вопросами о том, как попасть в игровую индустрию, какие полезные материалы на эту тему можно почитать и посмотреть, с чего начать изучение геймдева. Когда начальные знания появляются, то возникают уже более конкретные вопросы, например «где найти единомышленников для создания игры», «как продвигать свой проект с минимальным бюджетом», «на каких издателей стоит выходить, как это делать и стоит ли вообще», «как улучшить ретеншн в нашей игре» и так далее.

Друг наших образовательных программ Михаил Пименов,  CEO компании Wonder Games и Team Lead инди-проекта "Guard of Wonderland" сам не раз задававший себе эти вопросы, создал для себя выборку всевозможных материалов по индустрии геймдева. От полезных ресурсов, до сообществ, подкастов, книг и фильмов, которые призваны помочь понять, с чего начинается и чем заканчивается разработка игрового проекта. Объединив наши силы, мы с Мишей сделали эту статью с подборкой полезных материалов по игровой индустрии. Вы найдете подборку под катом.


Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 26

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity