Pull to refresh
12
0
Algorithm engineer @CrazyFizik

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

Send message

Архитектура простой 2D игры на Unity3D. План, факт и работа над ошибками

Reading time12 min
Views103K
Недавно команда Whistling Kite Framework выпустила в релиз очередную игру, на этот раз — Змейку, написанную на Unity3D. Как и в большинстве игровых проектов, при решении вопроса о том, насколько детально нужно проектировать приложение, критическим фактором было время. В нашем случае причина проста: т.к. разработка велась в свободное от основной работы время, то идеальный подход к проектированию отложил бы релиз ещё на год. Поэтому, составив первоначальное разделение на модули, мы закончили проектирование и приступили к разработке. Под катом описание того, что из этого получилось, а также пара уроков, которые я вынес для себя.


Осторожно, картинки!
Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments27

Мой первый опыт в разработке 2D-игры (5 советов)

Reading time2 min
Views46K
Хочу поделиться небольшим опытом, который я приобрел при создании своей первой игры для Andriod. Скажу сразу, на момент начала разработки мой опыт программирования был средним (1С и немного C#), а опыт в гейм-деве — нулевым. В качестве инструмента разработки был выбран Unity3D 4.6, привлекла мультиплатформенность и наличие большого количества видео-уроков. Т.к. я вырос на играх 80-х, то было решено попробовать сделать ремейк культовой игры Prehistorik 2, в итоге получилась 2D-аркада под названием Prehistoric Story. Начиналось всё это как хобби, а потом переросло в большой проект, благодаря которому много людей получили ценный опыт и практические навыки. Далее будет 5 ценных советов, основанных на моем личном опыте.

image
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments17

Реализация волнового алгоритма нахождения кратчайшего пути к динамически движущимся объектам в unity3d на C# в 2d игре

Reading time9 min
Views93K
В данной статье я хочу показать как реализовать волновой алгоритм и мою модификацию его для работы с динамическими объектами в unity3d.

Область применения


Данный метод подходит для 2д игр. А его модификация для нахождения пути к движущимся объектам. Область применения очень обширная и затрагивает множество игровых жанров и ситуаций, например:
  1. Игры жанра ТД. Где игровые локации удобно представлять в виде матрицы проходимости, к примеру 0 — участок по которому можно перемещаться, -1 — область недоступная для перемещения, -2 — ловушка и т.д.;
  2. Стратегические игры, особенно пошаговые. Например бои в серии игр “Герои Меча и Магии”;
  3. Платформеры;
  4. Шашки, шахматы, змейка и другие.

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


В интернете достаточно много статьей по работе с алгоритмами нахождения кратчайшего пути, но при этом все равно постоянно создают темы на форумах, задают вопросы “как найти путь до объекта”. Я выделил несколько причин почему эта статья имеет право на существование:
  1. Для unity3d реализовано много алгоритмов нахождения кратчайших путей в виде ассетов, то есть готовых решений. Но иногда стоит не брать готовое решение, а написать свое, оптимальное конкретно к вашему случаю. Тем более если в игре много объектов, то плохая реализация алгоритма может сильно повлиять на производительность. И тем более производительность пострадает если этих объектов много и они меняют свое местоположение;
  2. Стандартный вариант волнового алгоритма — не самый оптимальный вариант для динамических объектов, поэтому я хочу показать его модификацию, которую разработал во время работы над своей стратегической игрой;
  3. В интернете нету хороших, простых, статей на тему реализации волнового алгоритма в unity3d.

Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments12

Основы создания 2D персонажа в Unity 3D 4.3. Часть 2: бегущий персонаж

Reading time5 min
Views202K
Часть 1: заготовка персонажа и анимация покоя
Часть 2: бегущий персонаж
Часть 3: прыжки (и падения)

Всем привет. Продолжаем дело, начатое в первой части. Сейчас у нас есть платформа и стоящий на ней персонаж с анимацией покоя. Настало время научить нашего персонажа бегать вправо-влево по платформе.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments14

Про создание платформера на Unity. Часть 4.1, злодейская

Reading time4 min
Views85K
Привет, Хабр!

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



Осторожно, под катом по-прежнему много гифок!

Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments17

Приемы при проектировании архитектуры игр

Reading time11 min
Views145K
К сожалению, нигде нет более менее полной публикации на тему проектирования архитектуры в играх. Есть отдельные статьи на конкретные темы, но нигде все это вместе не собрано. Каждому разработчику приходится самостоятельно по крупицам собирать подобную информацию, набивать шишки. Поэтому решил попробовать собрать часть из этого воедино в данной статье.

Для примеров будет использоваться популярный движок Unity3D. Рассматриваются подходы, применимые в больших играх. Написано из моего личного опыта и из того, как я это понимаю. Конечно, где-то я могу быть не прав, где-то можно лучше сделать. Я тоже все еще в процессе набирания опыта и набивания новых шишек.

В публикации рассматриваются следующие темы:
  • Наследование VS компоненты
  • Сложные иерархии классов юнитов, предметов и прочего
  • Машины состояний, деревья поведений
  • Абстракции игровых объектов
  • Упрощение доступа к другим компонентам в объекте, сцене
  • Сложные составные игровые объекты
  • Характеристики объектов в игре
  • Модификаторы (баффы/дебаффы)
  • Сериализация данных

Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments30

Правильно программируем. Используем полиморфизм. Общая логика игровых персонажей

Reading time23 min
Views77K

Unity3D. ИСПОЛЬЗУЕМ ПРЕИМУЩЕСТВА ООП. ПОЛИМОРФИЗМ


ВНИМАНИЕ!
Сразу хочу предупредить, читайте комментарии к статье, там KumoKairo предложил более совершенный подход к решению поставленных в статье задач.


Доброго времени суток. В этом уроке мы рассмотрим несколько важных приемов программирования на движке Unity 3D. Думаю, статья поможет как начинающим, так и опытным игроделам.

Целью статьи ставлю осознание мощи и безграничной удобности использования всех прелестей ООП. В частности ПОЛИМОРФИЗМ. Кроме того затронем несколько других важных вопросов.

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

Думаю в будущем будет продолжение статьи. Там мы детально рассмотрим написание собственных Моторов, поговорим о векторах и о нужных нам операциях над ними, создадим полноценную модель инвентаря. Очень хорошего инвентаря, в который можно будет легко добавлять новые элементы без изменения старых.
Читать дальше →
Total votes 29: ↑12 and ↓17-5
Comments46

Собеседование в gamedev индустрии

Reading time4 min
Views44K
Хотя на хабре уже проскакивала статья про собеседование в Зингу, мне хочется рассказать про то, как проходят собеседования в gamedev программистов и как к ним готовиться. Собеседования бывают очень разные, и то, что спрашивают на собеседованиях в Швеции, в Канаде или в России может заметно различаться. Итак, обо всем по порядку.
Читать дальше →
Total votes 42: ↑24 and ↓18+6
Comments41

Unity3d. Уроки от Unity 3D Student (B25-B28)

Reading time7 min
Views59K
Всем привет. Это заключительная серия базовых уроков по Unity 3D от сайта Unity3DStudent. Далее будут еще два урока среднего уровня. Upd: планы изменились, этих уроков не будет, так как второй урок (по анимации) уже довольно сильно устарел, а выкладывать перевод только одного урока не вижу смысла. Пусть он останется на самостоятельное изучение =)

Ссылки на предыдущие уроки:

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments2

Планирование оптимизации с Unity

Reading time14 min
Views48K


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

Мы рассматриваем использование Unity с точки зрения разработчика игр. Мы стремились найти области снижения производительности, а затем определить, как улучшить работу приложений с помощью встроенных в Unity средств. Одно из преимуществ Unity состоит в возможности быстрого создания контента, но для того, чтобы добиться производительности, особенно на мобильных устройствах и планшетах, разработчику потребуется тщательно спланировать использование встроенных механизмов оптимизации производительности. В этой статье новым и существующим пользователям Unity предлагаются советы по повышению производительности при создании уровней и игр, а также описываются новые способы создания содержимого.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments3

Тысячи фотографий программы «Аполлон» загружены на Flickr

Reading time2 min
Views37K
Сегодня у конспирологов и их противников большой праздник — на Flickr загружено более 8400 фотографий в высоком разрешении, сделанных астронавтами во время полетов на Луну. Особенность этих фото — это необработанные версии отсканированных оригинальных фотографий НАСА.

image


Посмотреть и загрузить фото можно по ссылке на альбом Project Apollo Archive.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments88

Как оценить глубину игровой механики. Часть первая

Reading time6 min
Views20K
В этой статье по геймдизайну Майк Стаут, в прошлом дизайнер студии Insomniac Games, делится полезной информацией о глубине игровых механик и рассматривает вопросы их излишней перегруженности на примере серии игр Ratchet & Clank.


Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments0

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

Reading time32 min
Views140K

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

[ libGDX ] Опыт разработки игры с использованием Box2D

Reading time5 min
Views20K
Здравствуй, Хабр! Ух! Давно же я не писал здесь. Итак, начну пожалуй с небольшой предыстории и заодно приведу скриншот получившейся игры.

TOTAL100
Скриншот игрового процесса
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments11

Путеводитель по реализации 2Д платформеров (окончание)

Reading time8 min
Views22K
Окончание перевода статьи «путеводитель по реализации 2Д платформеров».
Начало

Тип №3: Битовые маски


Он подобен тайловому (плавному) методу, но вместо использования больших тайлов используется картинка для проверки столкновений для каждого пиксела. Это позволяет лучше проработать игру, но и значительно увеличивает сложность, использует больше памяти и требует что-то схожее с графическим редактором для создания уровней. Такая маска обычно не используется непосредственно для визуализации, поэтому нужны дополнительные средства — например, большое графическое изображение (подложка), индивидуально для каждого уровня. Из-за подобных проблем эта техника довольно редка в использовании, но позволяет добиться более качественных результатов, чем варианты, основанные на тайлах. Этот метод удобен для создания динамического окружения — разрушения можно просто «рисовать» в битовую маску для изменения уровня. Хороший пример — игры серии Worms.

Worms World Party с разрушаемой топографией
Примеры: Worms, Talbot’s Odyssey

Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments3

Путеводитель по реализации 2Д платформеров (начало)

Reading time10 min
Views48K
Так как ранее я был разочарован количеством информации по этому вопросу, я решил восполнить этот пробел, собрав разные виды реализации 2Д платформеров, описав их сильные и слабые стороны и порассуждав над деталями реализации.

Моей целью было создать исчерпывающий и понятный путеводитель по реализации 2Д платформеров.



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

Четыре решения


Мне приходит на ум четыре основных варианта решений при создании платформера. В рамках этой статьи будут рассмотрены все четыре, но из-за большого объема статья поделена на 2 части (прим. пер).
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments30

История света и тени в одной маленькой, но гордой игре

Reading time7 min
Views35K
Если коротко, то суть статьи можно можно проиллюстрировать так:



Ниже небольшая история реализации освещения в игре подручными средствами.
Встречают, как известно, по одёжке, а когда в команде нет ни то, что арт-директора, а даже просто художника, обычному программисту приходится изворачиваться по-разному.
Читать дальше →
Total votes 78: ↑74 and ↓4+70
Comments27

Взрывной GameDev. История создания моей игры

Reading time8 min
Views35K
Вот, наконец, дошли руки присоединиться к армии разработчиков под мобильные платформы и написать сюда статью о том, как в эту тему попал я. Сразу напишу, что для написания игры был выбран движок Unity3d, чтобы люди понимали, что я собрался описывать.

Об идее


Самая интересная часть истории заключается в том, что первоначальная идея абсолютно не совпала с итоговой реализацией. Почему? Да все просто. Сначала у меня была идея создания головоломки с использованием машины Тьюринга.
Читать дальше →
Total votes 27: ↑20 and ↓7+13
Comments14

Как научиться делать игры: полезные ресурсы

Reading time9 min
Views110K
Когда я начинал строить свою карьеру в игровой индустрии шесть лет назад, то часто задавался вопросами по геймдеву. Начиная от поиска общего понимания того, как разрабатываются и оперируются онлайн-игры, до частных вопросов типа того, как лучше рекламировать конкретную игру. Тогда было мало структурированной информации по созданию и продвижению игр, новичку разобраться и найти ответы было исключительно сложно. Практически единственным источником информации был собственный опыт и консультации более опытных коллег. Сейчас ситуация кардинально изменилась. Информации по игровой индустрии настолько много, что рискуешь в ней просто утонуть. Для того, чтобы упростить процесс получения нужных мне знаний, я структурировал и делал себе пометки по всем источникам информации о геймдеве. Далее в статье предлагаю всю эту информацию в удобной форме для общего пользования.

image
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments52

Information

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