Pull to refresh
  • by relevance
  • by date
  • by rating

Сложности при создании изометрической игры в Unity

Game development *Unity3D *
Translation
Для начала небольшое предисловие. Мы работаем над игрой Empires in Ruins с пререндеренными 3D-моделями, которые перед сохранением в Unity превращаются в спрайты и атласы спрайтов. Если объяснять коротко, то при этом выполняется довольно долгий и медленный производственный процесс, но он позволяет нам использовать текстуры очень высокого разрешения для очень чёткой графики. Такой стиль напоминает стратегические игры 90-х наподобие Age of Empires (и многих других) в смеси с производственным процессом Baldur's gate, дополненным современным стилем и возможностью сильного масштабирования. Нам вообще нравится производить впечатление.



Должен сказать, что мы пока абсолютно довольны результатами, и людям в Интернете они тоже нравятся, но мы скорее согласимся на пытки, чем начнём делать ещё одну игру в том же стиле.

Причины просты: результаты может быть и замечательны, но на самом деле трудно найти более медленный рабочий процесс. Для самой первой игры это вполне нормально, работа продолжается бесконечно, и мы наслаждаемся процессом, урок усвоен. Но в будущем стоит всё же выпускать одну игру чаще, чем раз в пять лет.
Читать дальше →
Total votes 33: ↑30 and ↓3 +27
Views 22K
Comments 13

Пиксельное приключение: создаём клон Lemmings в Unity

Game development *Unity3D *
Translation

Введение


Думаю, я не единственный в детстве играл на Amiga в Lemmings. Прошли десятилетия, и я стал, среди всего прочего, разработчиком игр, ведущим канал на Youtube с туториалами по Unity.

Одним вечером я наткнулся на эти два видео (часть1 , часть 2) Майка Дейлли о воссоздании Lemmings с помощью Game Maker 2. Во мне разгорелась ностальгия и я решил что-нибудь с ней сделать. Поэтому я начал создавать собственную версию в Unity с использованием собственных ресурсов (по очевидным причинам).

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

Кроме того, здесь можно поиграть в проект на WebGL. Возможны баги.

Сложность проекта заключалась в воссоздании ощущений и механик Lemmings. В том числе обеспечение pixel-perfect-коллизий при перемещении по уровню множества персонажей, которые могут изменяться в зависимости от своих умений.
Читать дальше →
Total votes 37: ↑35 and ↓2 +33
Views 13K
Comments 1

Создание двухмерных эффектов частиц в Unity3D

Game development *Unity3D *
Translation

Привет, меня зовут Дэвид Финсет. Я технический художник Synapse Games и работаю над играми, в которых нужны визуальные эффекты, требующие и технической, и художественной составляющей. Большая часть моей работы заключается в создании эффектов частиц для мобильных игр. Мне очень нравится эта работа, поэтому я хочу поделиться своим рабочим процессом и дать несколько советов по самостоятельному созданию таких эффектов.

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

Сначала я расскажу об отдельных частях своего рабочего процесса создания эффектов частиц в Unity, а затем поделюсь некоторыми техническими советами и хитростями. Большинство этих примеров взято из моей работы над играми Spellstone и Animation Throwdown.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Views 21K
Comments 3

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

Game development *Unity3D *
Translation
image

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

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

  • Создавать систему прицеливания.
  • Использовать рендер линии и distance joint для создания верёвки.
  • Научим верёвку оборачиваться вокруг игровых объектов.
  • Вычислять угол качания на верёвке и добавлять силу в этом направлении.

Примечание: этот туториал предназначен для продвинутых и опытных пользователей, и в нём не рассматриваются такие темы, как добавление компонентов, создание новых скриптов GameObject и синтаксис C#. Если вам нужно повысить навыки владения Unity, то изучите наши туториалы Getting Started with Unity и Introduction to Unity Scripting. Так как в этом туториале используется DistanceJoint2D, то стоит также просмотреть Physics Joints in Unity 2D, и уже потом вернуться к этому туториалу.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Views 10K
Comments 2

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

Game development *Unity3D *
Translation
image

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

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

Добавляем глубину 2D-спрайтам с помощью отрисованных вручную карт нормалей

Working with 3D-graphics *Game development *Game design *
Translation

Пиксель-арт вечен, но это не значит, что инструменты и методики работы с ним должны оставаться на уровне 1993 года.

Британский разработчик игр Cardboard Sword работает над двухмерным стелс-платформером The Siege and the Sandfox, создаваемом в Unreal Engine 4 с Paper2D. Команда публикует серию дневников разработки, знакомящую других разработчиков с тем, как использовать эти инструменты в собственных играх.

Одна из основных технических особенностей The Siege and the Sandfox — использование отрисованных вручную тайлсетов и спрайтов с картами нормалей, позволяющих применять в этой игре с достаточно традиционным двумерным пиксель-артом способы трёхмерного освещения.

Один из арт-директоров Cardboard Sword Кейт Дюк-Кокс недавно рассказал Gamasutra, как компания пришла к использованию этой техники, о том, почему она подходит игре и как можно применить подобные техники в собственных 2D-играх.
Total votes 28: ↑28 and ↓0 +28
Views 14K
Comments 5

Ограничения 8-битных игр и их точное воссоздание в Unity

Game development *Unity3D *Game design *
Translation
image

Ретро-игры с простыми механиками и пиксельной графикой способны пробуждать тёплые воспоминания у опытных игроков, и в то же время вполне доступны для более юной аудитории. Сегодня многие игры называются «ретро», но для создания ностальгического стиля требуются усилия и планирование. Именно поэтому мы пригласили ребят из Mega Cat Studios помочь нам в обсуждении этой темы. В этом посте мы рассмотрим всё необходимое для создания аутентичной графики в стиле игр для NES, в том числе важные параметры Unity, графические структуры и цветовые палитры.

Создание аутентичного арта в стиле NES


Для начала мы рассмотрим основы создания графики для игр, соответствующих ограничениям классической Nintendo Entertainment System. Это поколение консолей накладывает серьёзные ограничения на художников, стремящихся воспроизвести его аутентичную графику. Это ограничения на используемые палитры и на размер и количество объектов на экране. Кроме того, важно учитывать, что разрешение этой консоли составляет 256×240 пикселей.

Палитры


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


Эти цвета невозможно менять, потому что они являются частью самой консоли. Во всех играх NES используются сочетания этих цветов, из которых составляются изображения.
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Views 21K
Comments 22

Создаём 2,5D-игру жанра Dungeon Crawling в Unity

Game development *Unity3D *Game design *
Translation
В этой статье мы расскажем, как можно воссоздать старые игры жанра dungeon crawler в Unity.



Eye of the Beholder (1991 год) и SMT If (1994 год)


Базовый ассет «карты» для уровня нашего подземелья.

Большинство dungeon crawler-ов 90-х, в том числе и наш — это листы спрайтов, выстроенные в виде коридора. Хотя с технической точки зрения мы используем 3D-движок, никакие меши не рендерятся. Подземелья — это просто сетки, составленные из разных типов блоков, хранящиеся в карте вместе с данными монстров и объектов.

Чтобы отобразить любую перспективу для заданной координаты [x, y] сетки и направления взгляда игрока, мы можем вычислить, какие фрагменты стен нужно рендерить. Если блок находится непосредственно перед игроком, то нужно показать самую крупную плоскую стену. Если в двух квадратах вперёд и влево есть ещё одна стена, то нужно показать боковую панель, соответствующую этому расстоянию. Каждый блок в определённом радиусе вокруг игрока определяет, какие спрайты видимы.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Views 5.3K
Comments 7

Реализация движения по лестницам в 2D-игре

Game development *
Translation
image

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

Однако именно потому, что он создавал так много багов и выявил так много ловушек, я теперь могу сказать, на что вам стоит обратить внимание при создании дизайна собственной системы. Я употребил термин «дизайн», потому что в основном имею в виду гейм-дизайн, а не само программирование. Поэтому в статье не будет примеров кода, иначе бы она оказалась слишком объёмной.

Требования


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

1. Игра представляет собой двухмерный сайд-скроллер, в котором игрок может ходить и бегать. В нём нет прыжков и рывков, то есть на лестницы можно попасть с самого верха или низа.

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

3. Есть два типа лестниц: фронтальные (вертикальные) и боковые (диагональные). Последние могут опускаться вниз (с левого верха в правый низ) или подниматься вверх (с левого низа в правый верх).

4. Все ступеньки имеют одинаковый размер для соответствия анимациям игрока. Лестницы могут иметь любую длину.

5. Коллайдер модели игрока (соответствующий движению по лестницам) находится в районе бёдер. Однако для работы всей системы это необязательное требование.

6. В нашей игре нет боёв и других факторов, которые могут прикладывать к игроку силы, когда он движется по лестнице.

7. Наша цель заключается в создании интуитивно понятного, не подверженного багам и красивого движения по лестницам.
Total votes 20: ↑20 and ↓0 +20
Views 6.4K
Comments 4

Сетки из треугольников в играх

Game development *Algorithms *Mathematics *
Translation

Поговорим о сетках треугольников. Сетки квадратов используются практически повсюду, от пикселей изображения до расположения домов в квартале. Сетки шестиугольников представлены тоже довольно широко, особенно в настольных играх. Однако сетки треугольников (равномерное заполнение 2D-плоскости равносторонними треугольниками) почему-то не очень популярны. Я встречал заявления, что они бесполезны, или что у них сложная математика. Но этой статьёй я докажу, что оба заявления ошибочны: вычисления на самом деле проще, чем при работе с шестиугольниками, к тому же треугольники обладают множеством преимуществ.

Все вычисления я выполнил в своём коде на github, однако стоит объяснить, как и зачем нужно использовать такие сетки.

Что такое «сетка треугольников»


Когда я говорю о сетке треугольников, то подразумеваю тайловую карту, в которой все тайлы являются одинаковыми равносторонними треугольниками, выстроенными в переменные строки (или столбцы).


Важно здесь то, что каждая ячейка имеет ровно трёх соседей. Иногда встречаются игры, где отрисована сетка треугольников, но на самом деле фигуры расположены в углах. Каждый угол соединяется с шестью другими, то есть на самом деле это сетка не треугольников, а шестиугольников.
Total votes 24: ↑24 and ↓0 +24
Views 4.2K
Comments 0

Рейкастинг в игровых 2D-движках

Working with 3D-graphics *Game development *Algorithms *
Translation

Введение


На мой взгляд, рейкастинг — великолепная концепция, понять которую не так сложно, но качественных ресурсов по ней очень мало. Я расскажу о математике, лежащей в её основе, чтобы вы при желании с лёгкостью могли реализовать её в своих будущих проектах. Постараюсь сделать объяснение как можно более понятным, рассказать о всех тонкостях и проблемах, с которыми вы можете столкнуться. Также мы поговорим об оптимизации и о том, как сильно вам могут помочь пространственные хэш-карты. Ещё я напишу простые интерактивные примеры, с которыми вы сможете поэкспериментировать. Учтите, что демо написаны максимально простым образом, не ожидайте увидеть в них код уровня энтерпрайза — мы изучаем саму концепцию, а не реализацию.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 5.8K
Comments 0