87

Расширяем механику игры. Часть 9

Привет пикабу.

Я тут по вечерам игру делаю и вот подготовил систему квестов. Она примитивная, но мне больше и не требуется.

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

Игра ещё не имеет даже названия, но я обязательно её выпущу)

Найдены возможные дубликаты

+4

В лесу путник встречает старого бородатого мужика.

- Привет добрый путник.

- Привет старый бородатый мужик. Ты кто?

- Я алхимик, хочешь разбогатеть.

-Хочу.

- Я знаю секрет филосовского камня, будем с тобой делать золото.

- И что тебе от меня нужно?

- Принеси мне шлем мохнатого гоблина, шкуру стеклянной змеи, и плодов дерева жизни.

- Хорошо, старый хрен, я добуду все что надо.

Топ, топ, топ...

- Я принес тебе все что нужно!

- Спасибо тебе странник, сейчас будем делать золото!

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

Дед читает страшное заклятье, бубнит что то. В посудину капает золотистая жидкость.

- Дед, это не похоже на золото?

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

Герой в итоге не получает ничего, кроме важного жизненного урока!

раскрыть ветку 3
0

Отличный вариант. Большое спасибо)))

раскрыть ветку 2
+1

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

раскрыть ветку 1
+4

Варианты названия, хоть и не просили: "Битва за жизнь"

"Суровое выживание"

"Фэнтези-проект "Спасите Дрейка" (ну или любое другое имя, которое будет у перса)

"Жить вопреки гоблинам, монстрам или убьём десяток чудищ"

"Эпичные сражения за жизнь"


Как-то так. В прошлом каком-то посте уже предлагал идею квеста. А вот ещё одна: охранник какого-нибудь поселения просит отправиться в путь в другой город или деревню, так как там приболела его сестра. Он передаёт персонажу лекарственные снадобья, так как сам не может отлучиться по долгу службы. В пути на персонажа нападают дикие животные (если предусмотрены) или какие-нибудь чудовища, в количестве 2-3. Если успешно пройти квест, то по итогам персонажу охранник заплатит монеты (50-100, смотря какие заработки в игре хотите). Даже диалог примерный напишу для квеста:


Охранник — Приветствую тебя, путник. Куда путь держишь?

Персонаж — Путешествую по окрестностям.

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

Персонаж — 2 варианта ответа: 1. Да, конечно. А где живёт сестра?  2. Нет, у меня других дел слишком много.

Если игрок выбирает второй вариант, то и пройти квест не сможет.  А если первый, то продолжается диалог.

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

Персонаж — Уже отправляюсь в путь!

Охранник — Удачи, путник! И остерегайся животных (зеленокожих) которые бродят в окрестностях.

раскрыть ветку 2
0

Огромное спасибо. Постараюсь добавить в игру)))

По поводу названий пока рано)

раскрыть ветку 1
0
Стоят тренировочные куклы. Если их бить ничего не происходит. Но если определённую куклу ударить определённое количество то отровется рука-нога и оттуда листок с именем и то что этот человек совершил. Находим стражника-или другого кого, угрожаем-хитрим, рассказывает о месте с кладом или атакует, если убиваем награда его вещи)
+2

В одной ММО был забавный квест: выполняешь сложную цепочку с сильным боссом на конце, потом ходишь и всем именным нпс рассказываешь про свой успех. Бедняги готовы откупиться чем угодно (опыт, золото, ресурсы) лишь бы не слушать.

раскрыть ветку 1
0

Интересно, но не реализовать здесь, очень примитивные диалоги, надо их усложнить)

+2

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


- я могу сходить, поискать ( отвечает путник)


-правда? О, добрая душа. Иди на север, к соседней деревне, там живёт моя мама, но дочка у неё не появлялась.


Далее в лесу необходимо "разбросать" сорванные грибы и цветы, пирожки и саму корзинку, так чтобы след привёл к хижине. У хижины вешает бельё сама Красная Шапочка.


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


Мирный квест, никого убивать не надо

раскрыть ветку 1
0

Отличная идея. Спасибо)))

+1

Герой обнаруживает в лесу старый заброшенный дом и там среди хлама находит древнею книгу. Он читает ее и после этого на этот дом начинают нападать монстры. Волна за волной. Задача продержаться какое то время. Да, это копипаста зловещих мертвецов. По завершению квеста можно сделать что бы приходил НПС, с схожими чертами Эша и выдавал награду и говорил типа "О спасибо герой, а я уже думал мне придется разбираться с этим самому" Получится отсылочка к фильму))

раскрыть ветку 1
+1

Хорошая идея. Спасибо)

+1

помню лихие деньки в lineage 2... "убей 10 000 мобов", "выбей 100 предметов (шанс 0,003%)" ... эхх
кхм, о че это я, короче такие квесты наверно не нужны :D

пссс, приучение питомцев мб какоенить замутить? Это вроде пользуется популярностью.
Строительство и огороды думаю рано )

раскрыть ветку 1
0

Питомцев пока не делал, не думал даже об этом)

0
Залпом посмотрел все части. Это круто, чувак расти))
0

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

раскрыть ветку 1
0

В обливионе те-же вопросы народ задавал)))

0

Добавляй какую-нибудь бесплатную музыку в видео, так приятней смотреть.


Очень нравится графика, обожаю Low Poly.


По поводу боя, глупо смотрится. Трое пасут как ты их друга лупишь. Я понимаю, что такая задумка. Но добавь возможность игроку выманивать противников по одному. И чтобы можно было их побороть за меньшее количество ударов. А то скучновато.
Таков мой совет.

0

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

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

P.S. Я бы предложил закрывать разломы из которых вываливаются гоблины, но есть ощущение, что такое уже где-то было.

0

Привет. Я готов поработать над сюжетом, квестами, игровыми описаниями, лором и всем-всем текстовым и нарративным для портфолио. Вот только как с тобой связаться? Вк: https://vk.com/panzercult

0

Автор, а можно узнать, у тебя враги идут на врага через nav навигацию, или какой-нибудь floatingpawnmovement, или character movement?

0

Напоминает частично titan quest. Да и квесты тут будут иди-убей и принеси мне нужную вещь. Если поднатореть, то можно квесты со спасением кого-либо и после их конвоирование до цели, либо сразу помочь нпс пройти до цели, сквозь кучу мобов.

раскрыть ветку 3
0

Конвоирование - довольно сложный квест для мобильной игры

раскрыть ветку 2
0

Мобильная, ясно. Я просто обрадовался, думая что игра на ПК :D

раскрыть ветку 1
0

А почему не добавляется полный инвентарь, а только слоты под equip?

раскрыть ветку 1
0

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

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

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

-2

Не обижайтесь, но вы заебали с такой графикой.

раскрыть ветку 3
0

Кто мы?

раскрыть ветку 2
0

Разработчики, что злоупотребляют низкополигональнщиной или, прости господи, пикселячем.

раскрыть ветку 1
-3
Берем линейку Морровинд, копипастим, профит. Нынешнее поколение один фиг не поймет. А еще можно скопипастить локации, боевку, графику, привязать кошелек и разбогатеть......
раскрыть ветку 1
0

Это не коммерческий проект, хочется иначе сделать все)

Похожие посты
48

Как я сделал систему обработки столкновений в игре на Unity - Тьма поглотила вас

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


Для начала давайте определимся в каком именно положении персонаж может находиться во время игры.

1.Персонаж может стоять на земле

2.Персонаж может находиться в воздухе после прыжка

3.Персонаж может находиться в воздухе после падения

4.Персонаж может толкать ящик

5.Персонаж может стоять на ящике как на обычной земле.

Как я сделал систему обработки столкновений в игре на Unity - Тьма поглотила вас Gamedev, Разработка, Инди, Игры, Unity, Видеоигра, Платформер, Видео, Длиннопост

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

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

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

Как я сделал систему обработки столкновений в игре на Unity - Тьма поглотила вас Gamedev, Разработка, Инди, Игры, Unity, Видеоигра, Платформер, Видео, Длиннопост

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

Данный способ хорош тем, что мы всегда можем узнать на каких именно объектах стоит герой, при этом, если даже он выйдет из коллайдера одного объекта и останется стоять на другом, то переменная ground останется true. Это подходит конкретно для моей игры, так как мне важно чтоб игрок не мог поднимать телекинезом те объекты, на которых он в данный момент находится или каким то образом касается их.

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

В общем и целом, здесь уже можно было бы остановиться, так как всё работает приемлемо. Но мне не совсем понравилось, что анимация приземления срабатывает непосредственно в момент столкновения коллайдеров, ведь если бы это происходило немного раньше, то выглядело бы лучше. Поэтому здесь в ход вступает ещё один способ определения столкновения. Первым делом нам нужно добавить нашему герою точку, отмечающую местонахождение нижней части его ног. Также вместо тега "Ground", мы будем использовать аналогичный layerMask у объектов.

Как я сделал систему обработки столкновений в игре на Unity - Тьма поглотила вас Gamedev, Разработка, Инди, Игры, Unity, Видеоигра, Платформер, Видео, Длиннопост

Теперь добавляем новые элементы в наш скрипт.

Как я сделал систему обработки столкновений в игре на Unity - Тьма поглотила вас Gamedev, Разработка, Инди, Игры, Unity, Видеоигра, Платформер, Видео, Длиннопост

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

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

Показать полностью 3 2
59

Warcraft 3 Кастомки на Unity. Часть 1

Предисловие


Когда Варкрафт был на пике популярности, многие, кто играл в него, обязательно щупали кастомные карты. А некоторые и пропадали там на долгие года. Вроде меня (счастливый хыхык). Когда вспоминаю конкретные карты, то сразу на ум приходят Dota, CastleFight, Angel Arena или Пути Эволюции. Многие подобные, популярные, карты делали из обычной RTS игры, третьего Варика, нечто уникальное.


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

Warcraft 3 Кастомки на Unity. Часть 1 Warcraft 3, Warcraft, Warcraft 3 the Frozen Throne, Unity, Unity3d, Custom, Dota, Dota 2, RTS, Стратегия, Разработка, Devlog, Эволюция, Ностальгия, Длиннопост
Warcraft 3 Кастомки на Unity. Часть 1 Warcraft 3, Warcraft, Warcraft 3 the Frozen Throne, Unity, Unity3d, Custom, Dota, Dota 2, RTS, Стратегия, Разработка, Devlog, Эволюция, Ностальгия, Длиннопост

Затем вышла Dota2...

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

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

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

Warcraft 3 Кастомки на Unity. Часть 1 Warcraft 3, Warcraft, Warcraft 3 the Frozen Throne, Unity, Unity3d, Custom, Dota, Dota 2, RTS, Стратегия, Разработка, Devlog, Эволюция, Ностальгия, Длиннопост

Спустя множество лет игры в Dota 2 и немножко работы в Unity...

А почему бы не сделать свою Кастомку, но как отдельную игру? С блекджеком, эволюцией, поиском игр и рейтинговым ладдером?

Вот и началась разработка ElementalsFight.

Игра сочетающая лучшее (на мой взгляд) из разных карт Warcraft 3.

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


Место для спавна боссов, где можно получить уникальные предметы для Героя.

Warcraft 3 Кастомки на Unity. Часть 1 Warcraft 3, Warcraft, Warcraft 3 the Frozen Throne, Unity, Unity3d, Custom, Dota, Dota 2, RTS, Стратегия, Разработка, Devlog, Эволюция, Ностальгия, Длиннопост

Одна из локаций карты, где можно добыть элементы другого типа.

Warcraft 3 Кастомки на Unity. Часть 1 Warcraft 3, Warcraft, Warcraft 3 the Frozen Throne, Unity, Unity3d, Custom, Dota, Dota 2, RTS, Стратегия, Разработка, Devlog, Эволюция, Ностальгия, Длиннопост

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

Если у вас есть идеи или предложения, то буду рад их прочитать под постами или в своей группе вк: ТЫК

Показать полностью 4
42

Попытка в геймдев

Вступление

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


Ресурсы что я использовал для обучения

С# https://metanit.com/sharp/tutorial/

Unity официальные уроки + куча видосов на ютубе

Канал DTF очень интересные видео по геймдизайну

Книга Шелл Джесси “Геймдизайн”


Параллельно обучения я придумал концепт и начал разработку. Делал я по 3-4 часа после работы. Иногда ленился, иногда просто был слишком усталый но спешить некуда потому что хотелось сделать лучшее из всего что я когда то делал. Весь процесс занял 3-4 месяца сколько точно не помню. Хоть игра уже в релизе, дел и идей еще куча но об этом позже.


Концепт

Из всех жанров был выбран платформер в котором персонаж сам бежит. Основным вдохновителем стала Geometry Dash. Платформа IOS и Android

Первые наброски

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост
Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост
Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Рисовать я не умею, денег на графику нету. Бесплатные ресурсы нашёл тут.

https://craftpix.net/ - графика

https://opengameart.org/ - всё сразу

https://freesound.org/ - звуки

Движок Unity потому что бесплатно и был небольшой опыт работы с ним.

Всё что я использовал распространяется по лицензии CC0 1.0 Universal (CC01.0)

https://creativecommons.org/publicdomain/zero/1.0/


Геймплей

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

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


Механики

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

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Джампер просто подбрасывает персонажа вверх

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Красных гриб накладывает эффект полёта на персонажа

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Фиолетовый гриб ускоряет персонажа в 1.6 раз

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Зелёный гриб переворачивает экран

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Чаша снимает все эффекты с персонажа

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Рычаг и дверь тапаешь на рычаг, дверь открывается не успел = умер

Попытка в геймдев Gamedev, Игры, Мобильные игры, Разработка, Unity, Длиннопост

Все уровни сделаны с помощью Tile Map

Ground Tilemap на ней размещена только земля по которой бежит персонаж

Environment Tillemap на ней размещены все объекты с которыми взаимодействует персонаж

DeathCollider Tilemap невидимые колайдеры которые убиваю персонажа

Для создания тайлов с префаба был использован плагин unity 2d-extras

https://github.com/Unity-Technologies/2d-extras


Название игры

Как говорится «Как корабль назовешь, так он и поплывет»

Первоначальный вариант был Dungeon Run но из за обилия таких названий в магазинах, решил придумать что то более уникальное. Захотелось больше оживить персонажа по этому я придумал ему имя. Моделька персонажа это ангел по этому я перевёл его на другие языки и выбрал на японском 天使 что звучит как Tenshi. Игра вышла сложная а персонаж по задумке искатель сокровищ который ищет приключений и вышло у меня Tenshi Impossible Adventure


Что я усвоил

Если тебе самому не интересна игра ты не сделаешь хорошо.

Не ожидай никакой прибыли, пока что только затраты но оно того стоит.

Сначала подумай, потом делай

После прихода с работы и пару часов разработки игры я чувствовал себя лучше чем после того как отдыхал.

Лучше потратить деньги на что то для игры чем купить себе какую то

фигню.

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

Поэтому не бойтесь показывать свое творчество даже если оно не соответствует высоким стандартным.

Лучше сделать что то и даже провалится чем не делать ничего.


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

Конец

Показать полностью 10
76

Как я решил делать рогалик на Unity. Часть 4

Продолжаю рассказывать о том, как я делаю рогалик на Unity.

В этот раз речь пойдет о погоде в игре. Она условно разделена на глобальную и локальную.

Глобальная погода обновляется 24 раза за игровой день, который длиться соответственно 24 минуты. Примерно вот так выглядит глобальная карта с погодой:

Как я решил делать рогалик на Unity. Часть 4 Gamedev, Unity, Рогалик, Инди, Игры, Разработка, Гифка, Длиннопост

Каждый квадратик это отдельная локация. У каждой локации есть свои параметры вроде давления, температуры и облачности. Также, есть и побочные вроде силы ветра (красные стрелочки), которая определяется от разности давлений, особенностей ландшафта и т.д.

Чтобы погода менялась с течением времени есть фронты (зелёные стрелочки) и циклоны. Фронты меняют температуру и образуют дожди. А циклоны создают зоны с повышенным/пониженным давлением.

Вот как это работает в динамике:

Как я решил делать рогалик на Unity. Часть 4 Gamedev, Unity, Рогалик, Инди, Игры, Разработка, Гифка, Длиннопост


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

Одной из самых сложных вещей было написание шейдера для неба. В него входят такие штуки как мерцающее звёздное небо меняющееся в течение ночи и игрового года, перемещающаяся луна, плавно затягивающие небо "статические" облака. Статические - потому что у них одна единственная кубамапа.

Вот так проходит в игре ночь:

Как я решил делать рогалик на Unity. Часть 4 Gamedev, Unity, Рогалик, Инди, Игры, Разработка, Гифка, Длиннопост


Помимо "статических" облаков есть и динамические через систему частиц:

Как я решил делать рогалик на Unity. Часть 4 Gamedev, Unity, Рогалик, Инди, Игры, Разработка, Гифка, Длиннопост


И как следствие облаков, эффект дождя:

Как я решил делать рогалик на Unity. Часть 4 Gamedev, Unity, Рогалик, Инди, Игры, Разработка, Гифка, Длиннопост


На этом пока что всё. В дальнейшем буду работать над улучшением внешнего вида поверхности. Если что, то в группе вк выкладываю новости гораздо чаще и более детально. А также, там можно скачать технодемку и в живую глянуть на погоду.
https://vk.com/voidside_game

И бонус в комментариях

Показать полностью 3
43

Романтика разработки RTS Часть 2 (Новая графика)

Я начал писать вторую часть сразу после первой части. Но потом занимался релизом игры, а после релиза 3 месяца очень активно пилил недостающие фичи.


Все про игру есть в ВК - https://vk.com/abksgn
Ссылка на GooglePlay - SiegeUp!

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Пожалуй, еще сразу покажу трейлер, над которым я очень заморочился. Он отражает идею игры.

Почему же я решил менять графику? Причин несколько:

1. Игра выглядела блекло и не выделялась, выглядела второсортно

2. Графика далека от трендов мобильного рынка

3. Трудно найти ассеты, попадающие в стиль


Поэтому, я решил пойти путем инди и делать что-то low-poly. Но тогда это была лишь идея, я не был уверен что буду вообще продолжать разработку.


В конце 2018 года мы с женой переехали в Минск, для работы. Я устроился в Wargaming программистом движка WoT Blitz. И на какое-то время забросил свою игру, погрузившись с головой в новую работу.


В начале 2019 на зимних праздниках я вернулся к игре и начал воплощать задумку по переработке графики в жизнь.

Сначала я взялся делать здания. Я не стал брать готовые ассеты, так как во первых, не смог найти, а во вторых хотел гибкости, вдруг какого-то нужного домика в ассетах не будет? Ну и пожалуй нужно все-таки нужно что-то привнести графику, чтобы это был не просто бездушный кусок софта, а игра.
Вот такие домики получились (половина из них до сих пор присутствует в игре):

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Потом под стиль зданий я нашел готовый пак юнитов в AssetStore за ~20$ . Пак удобен тем, что можно комбинируя разное оружие, головы и тела, получать уникальных юнитов.

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

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Тут у нас используется Standard PBR шейдер и стандартный террайн, до релиза еще 1 год и 3 месяца. Оптимизации нет, на телефоне около. 20 FPS вообще без юнитов на сцене.


Пол года я в основном совершенствовал графику, рисовал домики, работал вяло. Параллельно я пописывал свой игровой движок и сделал генератор рефлексии для C++.


Важным прорывом был переход от enum к использованию guid префабов для сохранения и загрузки юнитов. Этот же механизм позволил привязывать иконки к любым префабам игровых объектов и автоматически рендерить иконки.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

К лету 2019 ситуация следующая:

1. Появился туман войны - про который можно писать отдельный пост. Он пока плохо выглядит, многие тестировавшие игру коллеги с работы не поняли что это туман и он явно требовал улучшений

2. Все иконки юнитов и домов генерируются автоматически

3. Я не смог найти надежной информации, но на сколько я помню, туториал тоже появился где-то весной 2019 года


Этот скриншот долго украшал группу ВК, так как выглядел наиболее прилично

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Я был все еще не очень доволен графикой. Мне не нравилось, как гладкий террайн сочетается с низкополигональными домиками.

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

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

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

Примерно в то же время я занялся оптимизацией и отказался от использования стандартных коллайдеров для поиска пересечений объектов и полностью отключил симуляцию в настройках проекта. Хорошо помню, как на волне вдохновения от поездки выкидывал физику отовсюду, пока ждал ночной рейс из Ростова-на-Дону в Минск.

На тот момент удалось добиться стабильного FPS при ~300 юнитах на телефоне. После дальнейших оптимизаций, сейчас лимит около 600 юнитов. Однако, я не собираюсь останавливаться на достигнутом, миллионы юнитов на экране в Казаках и толпы мобов в Diplomacy is Not An Option не оставляют меня в покое ... Я планирую завезти Animation Instancing и Brust со временем, использовать Jobs для поиска столкновений.


Я продолжил заниматься графикой.

Эффектов в игре не много:
1. Мультяшные тени

2. Пенка у воды

3. Облака


На облака меня вдохновили две игры, Civilization V и Egypt: Old Kingdom. У меня облака это просто Шум Перлина с небольшим скроллингом, ничего особого.

Про тени пожалуй нужно писать отдельную статью, но они не отражают форму объекта, поэтому очень шустро работают. Пена на воде по сути тоже тени, просто на воде другой шейдер.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

В общем, этой картинкой я долго гордился, для меня это был первый опыт графического программирования и оптимизации графики.

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

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

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


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

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Примерно с ноября 2019 года я начал делать первые 5 демонстрационных уровней. Эти уровни должны были отобразить прогресс игрока с самого начала до самого конца. Т.е. последний уровень - был последним в игре. Сейчас в игре 20 уровней. Всего планируется 25.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

На этом моменте, нам предстоял очередной переезд, на этот раз, из Беларуси в Россию и из России в Токио. Я старался как можно больше уделять времени игре, и финальные штрихи делались в суете и сумбуре.

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

Еще долго оставалась проблема с тем, что тени не показывались под юнитами на стенах. 18 апреля 2020 года эта проблема и был сделан этот скриншот. С этих пор графика не менялась.
На скриншоте есть абсолютно все аспекты игры и ее графики, так что я считаю его показательным.

Романтика разработки RTS Часть 2 (Новая графика) Android, Unity, Unity3d, RTS, Gamedev, Game Art, Видео, Длиннопост, Компьютерные игры

Игра появилась в GooglePlay 31 мая 2020 года. Однако, на релизе работа не закончилась, я продолжаю делать обновления каждые пару недель и исправлять ошибки. Когда все миссии будут готовы, планирую релиз на iOS. Надеюсь, там игроки тоже оценят игру.


Я собираюсь сделать еще одну часть, про фичи, которые были добавлены с релиза. Когда ее ждать даже сам не знаю. Может скоро, может нет. :)


Буду рад критике и фидбеку! Спасибо! :)

Показать полностью 10
49

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления

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


На первый взгляд все кажется просто.  Вот, на самом деле, почему нельзя просто создать какую-то новую механику, даже много новых механик и улучшать их пока они не устроят? Если что, неудачные механики можно выкинуть :)


<<Для начала в игре существует только одна core-механика. И для ее реализации, поверьте, придется уйти в работу с головой. Создавать нексолько механик = создавать несколько разных игр. А это равносильно усложнению своей жизни. Вместо шлифовки одной механики вы должны распылиться на 10, а потом оставить из них только одну, а остальные выкинуть. Печально выкидывать результаты работы, правда?>>


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


Вот рассмотрим очень простой пример такой механики на мобильной игре.

Допустим у нас есть персонаж в мобильной игре и наша задача управлять им. Мы видим персонажа сверху (2D). Как бы в сделали его управление?

Это очень щепетильный вопрос. Управление - это задача задач, которую решают в процессе разработки.

(1) Если вы будете приказывать персонажу идти за пальцем, когда он опущен на экран, то ваша рука будет перекрывать экран и вы будете смотреть на свою руку;

(2) А если персонаж будет идти в противоположную о пальца сторону, то будет ли удобно такое интвертирование управления?

(3) Если персонаж будет идти в точку, которую вы кликнули, то сможет ли он увернуться от летящей ракеты? Не перекроется ли экран рукой, когда вы смените направляение движения персонажа? Это управление точно удобно?

(4) А если просто... Джойстик и все тут! Не перекроет ли джойстик экран? Сколько экранного пространства он занимает (допустимо ли это)? Удобен ли он? Функционален? Позволяет ли он погрузиться в атмосферу игры?


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

Да, вот такими задачами и занимаются дизайнеры: сделай то, не знаю что, пойди туда, не знаю куда и чтобы все было круто и никак иначе.


Оптыный дизайнер (опытный кладоискатель) способен быстро оценить все "за" и "против" каждого из пунктов [1-4]. Новичок же, очень вероятно, будет экспериментировать и постигать тайны управления с нуля :)



Надеюсь теперь стало очевидней, что разработка новой механики - это работа.
Это работа и она не всегда увенчивается успехом. Не всегда даже опытному дизайнеру удается создать новую механику. И это часто зависит не только от дизайнера, но и от команды, от возможностей платформы для которой все разрабатывается.
Дизайнер создает тех. задание, отдает ее на реализацию дизайнерам и программистам, через какое-то время получает результат. Если результат устраивает, то это успех. Если результат не устраивает, то процесс повторяется до того момента, пока инвестору все это не надоест или пока команда не замучается "пробовать". Да, людям не нравится работать, а потом выкидывать свою работу. Особенно, когда ты старательно работаешь и не один месяц. Да, ты получаешь зарплату, но где удовлетворение от проделанной работы? Так и свихнуться недолго, если каждый день все рабочее время выкапываешь, а потом закапываешь выкопанную яму.


Вот потому-то все и идут на ухищрения. Зачем пидумывать что-то новое, когда старое хорошо работает? Возможно нужно немного изменить старое и все будет хорошо?


То, что я написал, касается многих вещей. Не только core-механики. Другие вещи могут быть подвержены этому.


//===


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



В процессе разаработки, было принято решение показыват игроку тело персонажа, чтобы он мог видеть себя своими глазами. Почему нет? Это добавляет атмосферы, смотрится круто.


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


С другой стороны, если персонаж стоит одной ногой на выступе обрыва, то все его тело должно как-то отреагировать на то, что вторая нога в воздухе. А если центр тела персонажа смещен в сторону обрыва, то тут уж 100% нужно это как-то отобразить на персонаже.

Мы справились с этой задачей, сбоку это выглядит так (скрины специально не содержат текстур, дабы не наспойлерить):

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

По части влияния смещения тела на механику движения: удалось добиться стабильности и минимизировать влияние анимации ног на перемещение игрока.


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


Получилось весьма недурно :)



Руки.

C руками, как и со всем остальным, отдельная история. И она длинная.

Что требуется от рук? Чтобы они не пересекали стены, чтобы держали пушку. И чтобы это все выглядело нормально. Бывшый мой босс всегда ставил задачу примерно так. Он перечислял все требования до мельчайших и в конце добавлял: "И да, сделайте все это так, чтобы выглядело круто. Просто сделайте так, чтобы все было круто и не заставляйте меня говорить что получился отстой."


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

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост
Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Подключенные первые варианты рук/манипуляторов выглядел примерно так:

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Здесь один из вариантов ранних анимаций. Главное не внешний вид, а принцип работы:

Пробовали такие варианты:

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

Как мы разрабатывали части персонажа. Персонаж : правдоподобие против удобства управления Анимация, 3D анимация, Процедурная анимация, Gamedev, Руки, Робот, Дрон, Модели, Скетч, Инди, Инди игра, Видеоигра, Игры, Программирование, Дизайн, Game Art, Создание персонажа, Компьютерные игры, Дневник разработки, Cgi VFX, Видео, Длиннопост

Тесты инверсной кинематики. Чисто математика:

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

Инверсная кинематика  в чистом виде (IK):

Еще немного инверсной кинематики для тех кому понравились видео:

Здесь эксперименты того как смотрится перемещение обьекта манипуляторами (как манипуляторы ведут себя при перемещении аюстрактного куба):

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

Манипулятор мы разделили, условно, на руку (манипулятор) и пушку. Пушка выполняет свои функции, а рука дополняет пушку. Не в воздухе же ей висеть.


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

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


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


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

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey/



--

Надеюсь статья понравилась и вы почерпнули из нее что-то новое.

На сегодня у меня все.

Спасибо за внимание!

Показать полностью 17 8
51

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа

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

Кто-то в одном из предыдущих постов отметил: "Я никогда не понимал этих скетчей, ранних дизайнов и арт-буков. Уж извините. Давайте готовый проект".



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

Все равно что сказать: я никогда не понимал ваших набросков от руки, трейлеров к играм. Чувствуете разницу?



Наброски, скетчи, технические рисунки и все что рисуется "быстро" и в основном "для себя".

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

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост

Или такое:

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост

Без пояснения, очевидно, мало кто сможет разобрать что там нарисовано. Однако, такие "наброски" способствуют решению задачи, поиску/анализу рассматриваемых алгоритмов и так далее.


Ранние дизайны. Арт-буки.

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


"Ранние дизайны" - они потому и называются "ранними", потому, что создаются в самом начале игры. Скажу по секрету всему свету: дизайн игры может сильно меняться. То, что было в начале может не соответствовать тому, к чему пришла команда.


Арт-буки - это набор зарисовок, которые были сделаны в процессе разработки. Зачем нужны? В процессе создания игры, арт-буки полезны для дизайнера. Он всегда может заглянуть и проанализировать/сравнить разные идеи из предыдущих наработок. В конце они могут использоваться для маркетинга.


На текущий момент удалось вот что набросать по персонажу. Здесь один из вариантов персонажа.

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост

Здесь вариант персонажа и разные варианты его головы:

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост

Еще один вариант песронажа. Кого-то он мне напоминает:

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост

Варианты рук:

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост

Варианты кисти. Немного экспериментировал с соединениями/суставами :)

Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост
Зачем нужны скетчи, арт-буки, ранние дизайны. Скетчи персонажа Скетч, Создание персонажа, Gamedev, Инди, Инди игра, Видеоигра, Игры, Дизайн, Дневник разработки, Компьютерные игры, Артбук, Персонажи, Научная фантастика, Робот, Дрон, Набросок, Длиннопост

Больше скетчей из процесса разработки выкладываю здесь:

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey



На сегодня все, спасибо за внимание!

Всем хороших выходных.

Показать полностью 16
27

ТЬМА ПОГЛОТИЛА ВАС - переделываем мобильный платформер под PC

Полгода назад я уже выкладывал пост о разработке собственного проекта на Unity под Android. Игра не сыскала огромной популярности в плей маркете, но особо сильно меня это не расстраивало, так как большинство поигравших в нее остались довольны.

Многие посоветовали мне идти с данным проектом на площадку компании Valve, так как игры подобного рода намного лучше заходят именно на обычных пк.

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

ТЬМА ПОГЛОТИЛА ВАС - переделываем мобильный платформер под PC Gamedev, Разработка, Инди, Игры, Компьютерные игры, Unity, Unity3d, История создания, История создания игры, Видео, Длиннопост

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

Меня это не устраивало, а потому было принято решение добавить данной механике более реалистичное поведения.

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

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

Сделать данный эффект в своем проекте достаточно просто, так как он входит в стандартный пакет PostFX эффектов для Unity и имеет простую документацию.Если это вас заинтересовало, то вы можете установить его в самом Unity->Window->PackageManager->PostProcessing.

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

Я решил исправить данную проблему с помощью эффекта Color Grading всё того же PostProcessing пакета. Подкрутив пару ползунков я увеличил контрастность картинки и изменил температуру в пользу теплых тонов. Хоть действие игры и происходит в тёмном подземелье, всё же хочется чтоб глазам игрока было приятно.

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

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

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

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

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

Показать полностью 5
32

Как артист делал систему рисования линий для своей игры

Статья о том как художник/дизайнер бодался с системой рисования линий для игры и сделал ее :)

Кому будет интересна статья? Наверно всем, но не бывалым прогерам так как тут ничего нового для них нет. Читателя ждет МНОООГО видео, картинок и обьяснений "на пальцах".

Немного модного арта для затравки (который получился попутно и случайно в процессе тестов рисовалки):

Как артист делал систему рисования линий для своей игры Gamedev, Компьютерная графика, Cgi VFX, Игры, Инди, Арт, Видеоигра, Линейная алгебра, Видео, Длиннопост

В общем надоело смотреть на то как лазерный луч в нашей инди-игре не оставляет на стенах ничего. Абсолютно ничего. Пробовал trail добавлять, но он же исчезает. И смотрится trail так себе... Даже бомжам стыдно показывать.

Итак, поехали. Нужно было сделать систему рисования линий для игры. Линия должна рисоваться от лазерного луча на любой поверхности. Стал делать свою систему потому, что на AssetStore ничего такого нет. Есть одна система, но она:
1) рисование на каждом обьекте (static/dynamic) приводит к тому, что обьект вырывается из батчинга и создает +1 drawCall.
2) система рисует только точки. Ну типа как в Splatoon. Можно рисовать пятна, но не линии.
Очевидно, это мне не подходит, так что go делать что-то свое.

Это далеко неконечный вариант так как линии здесь не рисуются, рисуются "точки". За счет медленного движения мышки кисть рисуется часто и след выглядит как линия:

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

Требования к системе такие:
- линии должны рисоваться на статических обьектах, но не всех. Динамические обьекты должны не давать рисовать линию на полигонах, которые ЗА ними.
- работает максимально быстро
- работает на любом железе на котором работает Unity
- число линий неограничего
- число цветов линий - неограничено
- рисовать можно не только линии

Задача эта для меня новая, никогда такого еще не делал, пришлось повозиться.
Как рисуются линии в комп-графике? Есть модель и игрок проводит по модели лучем. На модели должен остаться след. Нужно найти в каком месте рисовать этот след.
1) очевидно, полигоны, которые смотрят ОТ начала рисования линии не будут содержать на себе след. Потому, что это полигоны с противоположной стороны модели. Их можно отбраковать.
2) есть полигоны, которые смотрят на игрока и которые попали в область рисования линии. На них предположительно будет след от линии.

Ну вот, для наглядности:

Как артист делал систему рисования линий для своей игры Gamedev, Компьютерная графика, Cgi VFX, Игры, Инди, Арт, Видеоигра, Линейная алгебра, Видео, Длиннопост

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

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

Вот фото работы этого алгоритма:

Как артист делал систему рисования линий для своей игры Gamedev, Компьютерная графика, Cgi VFX, Игры, Инди, Арт, Видеоигра, Линейная алгебра, Видео, Длиннопост

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

Здесь просто тесты алгоритма, смотрел как работает:

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

Здесь видно (подсвечиваю) полигоны на модели и какие полигоны секутся лучем (рисуют линию):

Здесь наглядно видно как работает рисование линий:

Удалось сечь обьект и рисовать на нем линию. Здорово!
Осталось сделат самую малость: найти обьекты, которые будут рисовать на себе линии.Вот водишь ты лучем в пространстве и нужно знать с чем луч пересечется. Для этого есть Оctree & BVH. Первый хорош для статики, второй для динамических обьектов. Спасибо GameDev.ru (а именно крутым парням foxes и kkolyan за подсказки).

Внедряем деревянные структуры, печем, запускаем. Работает!
Это не конечный вариант, но все же. Вот как смотрится след в действии:

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

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

https://twitter.com/CGAleksey
https://www.instagram.com/cgaleksey/

Показать полностью 2 5
73

Процедурная анимация движения персонажа

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


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

Ссыли на наработки по игре:

https://twitter.com/CGAleksey

https://www.instagram.com/cgaleksey


Чем не угодили mocap - анимации:

1) нужно искать наиболее подходящие анимации

2) нужно много анимаций

3) визуально анимации должны сочетаться


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


Можно брать готовые анимации с https://www.mixamo.com но есть НО:

1) анимации неуникальны

2) все же урезаный набор анимаций


Побираясь, как бездомный в чьем-то ведре, в поисках нужных анимаций в течении недели я собрал некого Франкенштейна. Именно Франкенштейна потому, что анимаций надыбал отовсюду. Ходил персонаж как офисный работник, крался как эльф 80-го уровня, приседал как человек-паук. Шучу, все было не так уж и ужасно, конечно, для обывателя может и пойдет, а вот меня все же неустраивало разношерстность анимаций. Хотя блендинг и прочие процедурные фишки сильно улучшали дело... Да и ноги не прилипали к земле как надо. Меня это жутко раздражает, когда анимация персонажа не на 100% соответствует тому, что он делает, ноги проходят сквозь пол, руки сквозь стены... ну вы поняли, 21-й век как никак.


Что важно для анимации персонажа: нужно передать ощущение того как персонаж передвигается с учетом физики. Короче, аимация нужна процедурная. Это крайне важно для нашего 3D паззла от первого лица.


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


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


Далее, настало время для машинного обучения. Подключаем обучалку к ногам и обучаем ноги ходить, а руки крутиться. На Github был пример с какими-то бегающими человечками с разным количеством ног. Этот проект лег в основу. Далее не помню как закончил этот адский ад.


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

Отлично, цепляем все к боди, еще немного IK и получаем что-то типа (одно из приближений):

Внимание на лодыжку ^. C ней вечно были проблеммы. Дело в том, что наш робот сделан инженерами-конструкторами и соединения должны гнуться строго по оси и никак иначе. Хотя это далеко не последний вариант робота, но в целом все примерно так. (Спойлер: соединение ложыжки мы все же переделали. Инженеры поставили его на 3 гидропривода, что дало нужное число степеней свободы).



Далее используем наш ИИ для ноги. Не зря же нога у нас обучалась ходить сама по себе без тела XD


Подключаем ИИ к ногам и говорим им болтаться:

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

Ну вот все что сделано выглядит вроде и ничего, по отдельности. Когда я соединил все в одно тело, то понял: емое... Позиция ноги, руки, головы (короче, каждой части тела) должна вносить изменение в позицию всего тела и следовательно влиять на другие конечности. Иначе робот ходил как деревянный буратино. Ничего не поделаешь, видать именно так ходят "идеальные" машины лишенные уникальности (уровень робота "Вертер" достигнут!):

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

Здесь экспериментирую с тем как робота придавливает плита. Робот должен корректно анимировать позицию своего тела:

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


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

В тестах использовалась модель-аналог робота Федора. Извините, это неточная копия. Чертежей не было, собрали "на глаз" XD

Показать полностью 6
114

Моя первая игра

Всем привет!

Сегодня я хотел бы поделиться с вами своей первой законченной игрой, своим первым проектом, сделанным на Unity - "In the deep, deep Cave".

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

В этом посте я хотел бы рассказать, как она создавалась.

Мне хотелось сделать игру, в которую я стал бы играть сам. Было решено сделать платформер с графикой 8-bit.


https://www.youtube.com/watch?v=DEZmFDVxvlk&t=2s


https://play.google.com/store/apps/details?id=com.WhiteBirds...


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

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

И я задался целью сделать качественную игру за максимально короткий срок.

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

На своём пути я сталкивался и с преградами вроде багов, связанных с кодом, - персонаж умирал, когда не должен был, сборкой игры под Андроид - мне выдало 150 ошибок, а также специфической обработкой Unity пиксельной графики: иногда она размыливается, становится нечёткой.

Проблема со сборкой игры решилась переустановкой движка и чисткой кэша - Unity не была установлена на диске С.

Так же неожиданная неприятность пришла оттуда, откуда не ждали...

На форумах зачастую можно встретить мысль о том, что Apple с трудом выпускает игры на свою площадку, но оказалось, что проблемы бывают так же и с Google.

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

Монетизации как таковой в игре нет. Я встроил рекламу от Unity, потому что она доступна из коробки, только лишь для демонстрации навыка работы с Unity Ads.

В общем и целом разработка игры заняла у меня месяц. Выпуск игры в Google Play занял 2 недели.

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

P.S. Засиживаться на месте не хочется, но для следующего проекта я бы хотел найти 2D художника. Если у кого-нибудь возникнет желание сделать со мной следующий проект, пишите в Telegram: @gfxcvgds

Показать полностью
27

Gladiatorial Massacre

Всем привет, Господа, показываю Вам инди игру, дневник разработки и тд)


Gladiatorial Massacre *(Ну это пока что так)*


Не судите строго, это мой первый проект =) И я вообще не разбираюсь в программировании)

И сразу предупреждаю, что вы УЖЕ можете попробовать макет)

Gladiatorial Massacre Гладиатор, Драка, Файтинг, Разработка, Игры, Gamedev, Кровь, Спартак: кровь и песок, Инди игра, Инди, Одиночка, Компьютерные игры, Мобильные игры, Видео, Длиннопост

Это лишь показательная демка, бой против болванчиков ради оттачивания механик, анимаций.

Далеко не готовая версия игры, но в скором времени, при должной поддержке, все постепенно доделается.



Нуу, я так думаю, по крайней мере)) Делаю один.

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


НУ это далеко идущие планы, к которым будем стремиться по мере возможностей - а может вообще, откажусь от некоторых механик из за ненадобности)) посмотрим)


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


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

Gladiatorial Massacre Гладиатор, Драка, Файтинг, Разработка, Игры, Gamedev, Кровь, Спартак: кровь и песок, Инди игра, Инди, Одиночка, Компьютерные игры, Мобильные игры, Видео, Длиннопост

И цензуры тоже не планируется, это же арена, никакой пощады! =D

Gladiatorial Massacre Гладиатор, Драка, Файтинг, Разработка, Игры, Gamedev, Кровь, Спартак: кровь и песок, Инди игра, Инди, Одиночка, Компьютерные игры, Мобильные игры, Видео, Длиннопост

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


PSS А вообще, можно было бы и перса выбрать из 4 имеющихся , вместо одного - Просто я не знаю, как правильно сделать меню выбора персонажа =D НУ ничего))


- - - - - - - - - - - - - - - - - - -


Уже сделано, буквально 19.08.2020 -


1. Боевая система со стаминой, блоками, пинками, прыжками, перекатами


2. Сделаны 4 бойца - Секутор с щитом, Секутор без щита, Боец с трезубцем, или же Ретиарий (хоть он и без сетки, но уже лишь своими выпадами усложняет процесс заметно)


3. Уже сделан макет боевой системы, со стаминой, с блоками, пинками и дальше допиливается)


4. Так же макет ИИ сделан, правда глупенький пока что, но с Ретиарием я постарался))


- - - - - - - - - - - - - - - - -


PS. Дорисую еще пару персонажей, и сделаю прям несколько локаций для первой играбельной версии - от Вас мне нужна лишь поддержка комментариями и лайками!) Прямо сейчас делаю Димахера



Возможно, я делаю контент прямо сейчас и дзыньк от уведомления даст мне сил =D



Еще раз напоминаю - могут быть баги, так как это лишь первый билд игры. Так что не судите строго и попробуйте расслабиться =D


Стандартное управление

WASD

Shift - Block

Space - Kick

LMB - Light Attack

RMB - Heavy Attack

R - рестарт, если вы вдруг захотели перезапустить игру (но работает, только пока игрок жив)



Кто понимает, что это еще настолько сыро, что еще бегает от повара, НО уже хочет "пощупать" боевку - прошу любить и жаловать)


https://lunarecst.itch.io/gladiator



ЗЫ. И кстати, если челики не появляются, ударь по лежачему ))!!!!

Показать полностью 2
568

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2)

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Первая часть: Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1)

Мы используем ортографическую камеру в игре. Объекты на любом расстояние одинакового размера. Но это означает, что у такой камеры нет «настоящего» параллакса.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Значение Z может быть отрицательным, чтобы создавать иллюзию объектов, находящихся ближе к камере. Они ездят в противоположное от камеры направление.

После того как камера остановилась, группы с параллаксом слегка смещаются так, чтоб зазор между ними и артом переднего плана был кратен одному пикселю. Пытаются казаться пиксель-пёрфект. Не на 100% точно, но тем не менее…

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

Ну, на самом деле могли, но тогда дальние объекты должны быть огромными

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Мы делали так в первых трейлерах. Работать с такой системой крайне неудобно, но со стороны это выглядит интересно.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

У главного героя около 840 уникальных кадров анимаций. У девочки — 510, у рыцаря — 600.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

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

Финальная катсцена игры длится больше 20 минут. Её продолжительность около 70 000 кадров. Её анимация и сборка заняли несколько месяцев работы фулл-тайм. Это самая сложная задача, которую я когда-либо выполнял в жизни, и я горжусь результатом.

За время разработки менялся не только графический стиль игры, но и история. Я потратил много времени, рисуя локации, не имея не только готового сюжета, но и понимания, о чем игра в целом. Я делал это просто для того, чтобы справиться с депрессией. Никакой разработки игры ещё не велось, и мы продолжали делать матч-3.

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Мы вырезали одного из монстров, потому что функционально он не отличался от большого слизня, и не хотелось тратить время на то, чтоб добавить существенные отличия в его механике. Inmost это игра не о битвах, и мы не хотели застрять в создании большого количества контента для них.

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост
Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Новогодняя гифка. Я называю её «бабушку давно не навещали».

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

И на этом у меня всё! Надеюсь, было интересно!

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

Игра вышла сегодня на Steam, GoG, Humble и на Nintendo Switch. И я очень надеюсь, что результат наших трудов вам понравится.

https://store.steampowered.com/app/938560/INMOST/
https://www.gog.com/game/inmost
https://www.humblebundle.com/store/inmost
https://www.nintendo.co.uk/Games/Nintendo-Switch-download-so...

https://www.nintendo.com/games/detail/inmost-switch/

Спасибо.

Показать полностью 14 4
857

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1)

Я начал делать первые наброски по игре 4 года, 2 месяца и 20 дней назад. Изначально я это делал просто потому, что страшно устал рисовать цветастые матч-3, и чтобы справиться с депрессией. Только спустя год мы начали делать первый прототип.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Изначально, названием игры было «Murray and the Demons». Соответственно, имя главного персонажа было Мюррей. Мы позже сменили его на Адам.

Я выбрал имя Мюррей потому что я большой фанат «Клиники» и в одном из эпизодов персонаж Мэтью Пэрри говорит Джей-Ди, что у него имя старика. Мюррей. А мне как раз было нужно имя для старика.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Позднее все враги стали слизнеобразными в большей или меньшей степени

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Кривые цветокоррекции очень мощный инструмент для создания настроения

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Концепты и наброски были очень важной частью разработки на всем её протяжении. Не только на первых этапах.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Кстати, регистрация потраченного на каждую задачу времени в Trello также оказалась невероятно полезной и важной для планирования. Расширение для браузера Trello plus позволяет использовать таймеры для каждой задачи и показывает статистику по ним. На данный момент у нас записано около десяти тысяч рабочих часов на двоих (платформеры делать просто, ага). На самом деле, должно быть существенно больше — в какой-то момент мы перестали пользоваться Trello.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Набросок локации с домом ведьмы, к сожалению, не вошедшим в игру. Идея интересная, но это требовало очень большого объёма работы при том, что для целостности истории в нем нет необходимости.

Иногда приходится чем-то жертвовать, даже если очень не хочется этого делать.

Интересный факт— на блокноте с набросками есть следы зубов. В некоторые моменты разработка была достаточно стрессовой. Мягко говоря.

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

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Я сделал в Procreate (приложение на iPad) фон, симулирующий тетрадный листик, и начал перерисовывать наброски в него. Рисование руками в блокноте очень хорошо для быстрых набросков и создания общей концепции, но в какой-то момент ты должен начать думать критериями вроде высоты и расстояния прыжка персонажа — и тут тетрадные клеточки незаменимы.Эти схемы перерисовывались и исправлялись после плейтестов множество раз.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

В какой-то момент я решил полностью отказаться от использования тайлов. Каждая локация нарисована вручную.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

В игре около 10 типов подобных триггеров.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Некоторое время назад в игре был бег на отдельную кнопку, но игроки использовали его непрерывно, что противоречит исследовательскому духу игры. Теперь бег включается только внутри определённых тригерров, которые используются в интенсивных сценах вроде погони Хантера.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

Внутри врагов так же много триггеров и коллайдеров, которые отвечают за обнаружение игрока, стен, пола, получение и нанесение урона.

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

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

Мир игры поделён на локации в размер экрана. Раньше задники были плоской картинкой и камера перемещалась только когда персонаж подходит к краю экрана. Работать с задниками было гораздо проще,

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть1) Inmost, Gamedev, Pixel Art, Инди, Гифка, Видео, Длиннопост

но позже мы переделали камеру так, чтоб она постоянно следила за персонажем.

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

Спасибо, что дочитали! Пост получается действительно большим, поэтому продолжение во второй части!

Inmost — как игра менялась за три с лишним года разработки и как устроена сейчас (часть2)

Показать полностью 21 1
75

Мы с друзьями решили делать игры, а не вот это вот всё

Мы с друзьями еще недавно работали в сфере ивентов, организовывали и проводили фестивали, музейные выставки и шоу-программы. Мы с серьезностью относились к целеполаганию показателям KPI и планировали карьерное развитие на год вперед.


Сфера ивентов - одна из главных экономических жертв COVID-19. Компания, в которой я работал, вынуждена была распрощаться с двумя третями сотрудников, половиной офисных и складских помещений и со ста процентами финансовых планов на 2020 год.

Мы с друзьями решили делать игры, а не вот это вот всё Gamedev, Мобильные игры, Арт, Компьютерные игры, Коллеги, Перемены, 2020, Длиннопост

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

Вдохновлялись мы проектами Papers, Please и Peace, Death!, но игра обросла своими фишками и стала меньше похожа на референсы.

Сейчас нас четверо. Нам много помогают друзья и бывшие коллеги. Мы спорим. Работать с друзьями непросто.

Мы с друзьями решили делать игры, а не вот это вот всё Gamedev, Мобильные игры, Арт, Компьютерные игры, Коллеги, Перемены, 2020, Длиннопост

Иногда сходимся во мнениях. Например, по части визуального стиля игры. Он офигенный.

Мы с друзьями решили делать игры, а не вот это вот всё Gamedev, Мобильные игры, Арт, Компьютерные игры, Коллеги, Перемены, 2020, Длиннопост
Мы с друзьями решили делать игры, а не вот это вот всё Gamedev, Мобильные игры, Арт, Компьютерные игры, Коллеги, Перемены, 2020, Длиннопост
Мы с друзьями решили делать игры, а не вот это вот всё Gamedev, Мобильные игры, Арт, Компьютерные игры, Коллеги, Перемены, 2020, Длиннопост

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

Мы с друзьями решили делать игры, а не вот это вот всё Gamedev, Мобильные игры, Арт, Компьютерные игры, Коллеги, Перемены, 2020, Длиннопост

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


Следующий пост уже завтра.

Мы с друзьями решили делать игры, а не вот это вот всё Gamedev, Мобильные игры, Арт, Компьютерные игры, Коллеги, Перемены, 2020, Длиннопост

А как пандемия повлияла на вашу карьеру?

Показать полностью 4
30

Публикация игры в AppGallery

Почти месяц назад я выложил пост о своей первой игре. Прошло какое-то время после публикации в Google Play, и я ради интереса решил попробовать опубликовать свою игру в AppGallery от Huawei, но почти никакого материала о том, как это делается на русском я не нашёл. Поэтому хочу рассказать о своём опыте.

Регистрация бесплатная. Как и в Google Play, требуется документ для подтверждения личности. Помимо паспорта, можно отправить водительское удостоверение и есть примеры фото каждого документа. Еще нужна фотография банковской карты с лицевой стороны. Подтверждение аккаунта прошло в течении суток.


После подтверждения можно добавить своё приложение и начать заполнять информацию по игре. Этот этап не сильно отличается от того же Google Play: название, короткое описание, полное описание, иконка, скриншоты, видео, кажется, нет.

Требования и ограничения:
1. Название - максимум 64 символа.
2. Короткое описание - 80 символов.
3. Полное описание - 8000 символов.
4. Раздел Новые функции - 1000 символов.
5. Иконка - 216 на 216 пикселей в PNG.
6. Скриншоты - минимум 3 с соотношением сторон 16:9 в форматах JPG, JPEG или PNG.

Чтобы опубликовать свою игру в Китае, нужно как минимум какое-то свидетельство об авторском праве, но если не публиковать, то ничего такого не нужно.

Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост

Сайт грузит медленно и часто случались сбои при загрузке материалов, но возможно дело не в сайте, а в моём деревенском инете.

Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост

Еще у них какие-то проблемы с версткой и у меня случались вот такие проблемы

Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост

Я указал рейтинг 3+, но не мог нажать кнопку OK, ее просто не было видно и страница не прокручивалась дальше. Я решил проблему гениально: выбрал свой вариант и поменял ориентацию экрана. Галочки для выбора вариантов пропали, но кнопка появилась.

Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост

После заполнения информации, я хотел загрузить App Bundle, но у меня попросили какой-то сертификат выгрузки. Я уловил связь с тем keystore файлом, который я сгенерировал при подписи игры в Unity в publishing settings, но сам этот файл AppGallery не принимал. Там даётся инструкция, что делать, но разобрался я не сразу.

Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост

Решил эту проблему так:
Ввел ту команду в командную строку. Вместо upload-keystore.jks я в кавычках указал путь до своего keystore файла, сгенерированного в юнити, а вместо upload указал своё название, которое так же отображается в юнити. Еще нужно ввести тот же пароль, что и в юнити.

Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост
Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост
Публикация игры в AppGallery Мобильные игры, Разработка, Unity, Игры на Android, Публикация игры, Моя игра, Длиннопост

Затем я нашел этот файл через поиск на винде и загрузил его на сайт. Всё приняли, App Bundle я загрузил, отправил на проверку. Мне ответ с подтверждением пришёл на следующий день, но не у всех все так гладко.

В AppGallery конкуренция гораздо ниже, чем в Google Play, поэтому я решил указать в названии более высокочастотный запрос. И хоть он был не очень релевантен моей игре, мамкин маркетолог внутри меня, сказал, что это хорошая идея. Сразу после публикации я увидел свою игру на 4 месте по этому запросу.

По загрузкам в AppGallery лично у меня дела обстоят лучше, чем в Google Play. Но на меня ориентироваться не стоит, просто у меня в Google Play, вообще тишь, только одна загрузка через поиск и еще 23 через внешние ссылки, а в AppGallery 6 органических загрузок через 3 дня и для меня это успех.

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

В общем всё, что вспомнил, рассказал.

Показать полностью 6
71

Как я сделал свою первую игру

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


Вступление.

Полтора года назад я понял, что просто играть в видеоигры для меня недостаточно, что мне нужно самому их делать. В свободное от работы время, я начал изучать основы программирования на C# и Unity 3D. В первую очередь за знаниями я полез в You Tube, через пару недель понял, что это полный шлак, за тридцатиминутный ролик пишешь три строчки кода, а заэкранный гуру толком объяснить не может, что только что написал. Потом были уроки в docs.microsoft.com и еще что-то подобное, здесь уже получше, но для новичка сложновато. Лучшее что я нашел для человека без опыта программирования, при этом применительно к Unity, была книга Джереми Гибсона Бонда “Unity и C Шарп. Геймдев от идеи до реализации”. Товарищ Бонд на пальцах объясняет, что такое C#, что такое Unity, как писать код, что писать, все это с примерами и пояснениями, полно практических заданий, в том числе создание прототипов игр, так же много написано об игровой индустрии и геймдеве. Сразу скажу, даже с такой разжёванной информацией, за месяц, два, три, возможно полгода, программистом вы не станете. Более того, я стал понимать, что там вообще в этом коде написано, только через год (возможно, если бы я уделял учебе больше времени, и не делал длительные перерывы, это случилось бы быстрее). За этот год я дважды прочитал эту книгу, дважды выполнил большую часть заданий оттуда, прочитал и выполнил задания еще из одной книги.

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


О разработке игры.

Так как опыта у меня, по сути, было ноль, я решил сделать максимально простую игру для смартфонов. Задачи, которые я поставил перед собой: игра не должна быть похожа на какую-либо уже существующую и известную мне игру, то есть нужно было самому придумать геймплейные механики; геймплей должен быть простой, чтобы я сам мог полностью написать код; так как мне больше интересен дизайн, а не программирование, сделать упор на визуальную составляющую; и самое главное, сделать нормальную игру, не халтуру, и тем более не откровенное д****о, а просто нормальную, казуальную игру. Кое-какие наработки тогда у меня уже были, я выбрал игру, которая как раз была мне по силам. Суть игры: в игре есть пять лунок, напротив каждой пролетает шарик, нужно вовремя нажимать на экран, когда шарик пролетает мимо лунки. Быстренько придумал пять режимов движения шаров, для каждого режима задумал отдельное визуальное оформление, и приступил к рисованию спрайтов. Вообще, изначально я задумывал игру с минималистичной графикой (минимализм нынче в почете...), но поэкспериментировав с цветами, градиентами и тенями, подумал: “тварь ли я дрожащая или рисовальщик”. В общем, было решено рисовать в более реалистичном стиле, это решение продлило разработку месяца на полтора, потому как я рисовал и одновременно учился рисовать. В итоге получилось слишком реалистично. Сейчас могу сказать, что реалистичный стиль для таких игр не очень удачное решение, лучше использовать более привычную для мобильных игр графику, например как в Angry Birds, хотя то, что нарисовал я, на мой скромный взгляд выглядит симпатично. Еще я понял, насколько важны концепт-арты. Раньше я садился рисовать примерно представляя, что мне нужно, но рисовал уже как окончательный вариант, в плане качества, в какой-то момент понимал, что это не то, стирал все, или перерисовывал какие-то части. Все это занимало уйму времени, лучше изначально нарисовать хоть какой-нибудь рукож**ый концепт-арт, главное, чтобы была видна общая картина происходящего в игре, и как элементы сочетаются друг с другом. Потом сел писать код, тут ничего интересного сказать не могу. Попутно с написанием кода собирал саму игру. Выделил пять глав. Проходишь все уровни в главе, открывается следующая глава, а также бесконечный уровень для пройденной главы, каждая глава отличается визуально и схемой движения шаров. Еще есть шестая глава, в ней пять бесконечных уровней, каждый уровень посвящен одной из пройденных глав, то есть вы можете выбрать визуальное оформление, какое вам больше по вкусу, но геймплей в них одинаковый, сочетает схемы движения шаров всех пяти глав, то как будет двигаться шар определяется рандомно. Если честно, в шестую главу мне больше всего нравилось играть. Звуки для игры использовал из бесплатных ассетов, с музыкой у меня вообще не очень. Собрал игру, воткнул в нее Unity ADS, придумал название “HitEra”, игра готова, пора и в мир отправлять. На все про все ушло около 4 месяцев, очень много страдал фигней, и мало времени уделял разработке, плюс недостаток опыта сыграл свою роль, в следующий раз надеюсь пошустрее справлюсь.


Как я сделал свою первую игру Android, Игры, Unity, Google Play, Gamedev, Я сделяль, Гифка, Видео, Длиннопост

На гифке шестая глава, на сколько я знаю, до нее так никто и не добрался.

Как я сделал свою первую игру Android, Игры, Unity, Google Play, Gamedev, Я сделяль, Гифка, Видео, Длиннопост

Релиз.

С самого начала разработки я не рассчитывал заработать на своей игре, делал ее скорее для того, чтобы поверить в свои силы, что я могу в принципе что-то сделать, ну и для портфолио. По этой причине на раскрутку и рекламу было потрачено 0 рублей. Но и совсем на халяву делать не очень хотелось, поэтому реклама в игре присутствует. Итак, отправляю заявки на регистрацию в качестве разработчика в Google Play, Samsung Galaxy Store и Huawei App Galary, в гугл, естественно, с денюшкой. В гугле и самсунге все окей, загрузил игру, в Galaxy Store ее выложили через день, в Google Play через неделю. Первые десять скачиваний от друзей, отзывы тоже. Хоть мне казалось, что рекламы не много, друзья все же жаловались на ее большое количество. Пришлось убрать всю пропускаемую рекламу, оставил только один показ после прохождения главы, его пропустить нельзя, но за просмотр вам дадут дополнительные звезды, они нужны, чтобы открывать новые главы, если вы плохо играете. В течение двух недель, ежедневно выкладываю посты на форумах и в соцсетях. Все это время от Huawei ни слуху ни духу. Решил написать в тех поддержу, мол, подтвердите регистрацию. Через несколько дней ответили, что я там что-то неправильно заполнил, окей, исправил, отправил. В этот раз две недели я не ждал, через два дня написал в тех поддержку. Еще через пару дней все подтвердили. Сразу залил игру, и через пару часов она в App Galary, хоть что-то они сделали быстро. Итак, время идет, игра висит на сторах, загрузок очень мало (на момент написания 88, на три маркета), и как бы я на это морально не настраивался, как бы к этому не готовился, все равно, факт отсутствия интереса к игре меня очень сильно печалил. Немного поднял мое настроение сервис предоставления взаимных отзывов appenhancer. Он, конечно, не помог игре продвинуться, зато я увидел, что делают другие начинающие разработчики. И это вернуло мою самооценку на прежнее место, потому что такого лютого д***ма я давно не видел. Я вот вообще не понимаю, как такое можно в принципе кому-нибудь показывать, а уж тем более выкладывать в Google Play. Конечно, там были и не такие уж плохие игры, пару раз попадались прям нормальные, но в памяти отложились только те, от которых у меня горело одно место. Сейчас я периодически выкладываю посты об игре, люди потихоньку скачивают, но не очень активно.


Итог. Что дальше?

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

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


Надеюсь, вы зацените мою игру.

HitEra


Google Play:

https://play.google.com/store/apps/details?id=com.Sn50Games....


Samsung Galaxy Store

https://galaxystore.samsung.com/detail/com.Sn50Games.HitErat...


Huawei App Galary

https://appgallery8.huawei.com/#/app/C102660381

Советы от новичка, новичку:

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


Учебники, которые мне попались:

Unity и C Шарп. Геймдев от идеи до реализации. Джереми Гибсон Бонд (прям вообще для новичков).

Unity для разработчика. Мобильные мультиплатформенные игры. Джон Мэннинг, Пэрис Батфилд-Эддисон (тут уже нужны кое-какие знания).

Unity в действии. Мультиплатформенная разработка на C Шарп. Джозеф Хокинг (до этой книги не добрался, может кто-нибудь читал, поделитесь мнением)


Реально оценивайте свои силы. Я бы тоже хотел сделать игру уровня GTA V или RDR 2, а не мобильный кликер, но всему свое время.


Делайте наброски будущей игры, это сэкономит много времени. Все-таки концепт-арт не зря придумали.


Определитесь с направлением деятельности. Не стоит одновременно быть дизайнером, программистом, геймдизайнером, сценаристом и т.д.


P.S. Не хотел растягивать пост на 10 страниц, поэтому многие моменты опустил, если кому-то что-то интересно отвечу в комментариях.

Показать полностью 2 1
36

Space Turret: Defense Point - История разработки, часть 1

Всем привет!

Меня зовут Михаил, и я бы хотел сделать несколько постов о процессе разработки своей игры.

Игру пишу с другом из Германии, оба очень любим разрабатывать игры. Работаем айтишниками, в свободные вечера работаем над игрой на платформе Unity.

Зарождение

Летом прошлого года после разработки очередной недоделанной игры, решили взяться за что то новое. Учесть прошлые ошибки, взять какой то маленький проект, попробовать его выпустить, ну и заодно постараться получить полноценный опыт разработки от ее начала до ее публикации и продвижения.

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

В голове мы себе представляли игру как некий тайм киллер, в который можно поиграть 5-10 минут и немного отвлечься от своих дел.


Геймплей, который мы себе представляли на тот момент

От идеи к реализации

После обсуждения базовых механик приступили к реализации.

Достаточно долго думали над управлением камерой. В итоге сделали два варианта:

1. Фискированное управление. Поворот камеры напрямую зависит от положения курсора на экране. Например, если курсор находится в самой левой части экрана, то камера повернута влево на 90 градусов. и наоборот.

Пример такой работы как раз на видео ниже, с кубиком.

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


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

Для того, чтобы заставить турель целиться туда, куда указывает курсор на экране, пришлось применить хитрость :)

Дальше нужно было добавить врагов. Но перед тем, как их добавлять, нужно придумать, откуда они будут появляться. Исследовав несколько популярных фильмов на эту тему, было решено, что враги будут прилетать из варпа. Эффект должен быть красивым, поэтому было потрачено не мало времени на поиск того, какие варпы нам понравились.

В итоге наткнулись на такой ролик с обалденным эффектом варпа! (качество не айс, зато оригинал)

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

В итоге, получилось воспроизвести похожий эффект!

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


После разработки варпа были добавлены враги, которые летели только вперед. На тот момент еще не было никакого ИИ и нам очень хотелось проверить производительность на устройстве и удобство управления.


Пример тестирования производительности графики и наведения турели на цель.

Space Turret: Defense Point - История разработки, часть 1 Мобильные игры, Gamedev, Игры на Android, 3d-Шутер, Онлайн-Шутер, Видео, Длиннопост

60 ФПС очень воодушевляло, был некий "запас" прочности для дальнейшей разработки. Правда, нас немного смутило, что "крестики", куда прицеливается турель, немного смещены от направления самих кораблей.

Курсоры и наведение на цель

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

Space Turret: Defense Point - История разработки, часть 1 Мобильные игры, Gamedev, Игры на Android, 3d-Шутер, Онлайн-Шутер, Видео, Длиннопост

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

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


Пример со смещенной точкой наведения

Space Turret: Defense Point - История разработки, часть 1 Мобильные игры, Gamedev, Игры на Android, 3d-Шутер, Онлайн-Шутер, Видео, Длиннопост

Пример желаемого расположения точки наведения

Space Turret: Defense Point - История разработки, часть 1 Мобильные игры, Gamedev, Игры на Android, 3d-Шутер, Онлайн-Шутер, Видео, Длиннопост

После нескольких дней анализа кода, вывода кучи отладочной информации на экран и серфинга интернета, была найдена причина такого поведения! Имя ей - камера!

Дело в том, что из-за особенностей алгоритма и точности типа float, точка пересечения корабля с пулей немного смещалась относительно направления корабля.


Схематическое изображение смещения прицела

Space Turret: Defense Point - История разработки, часть 1 Мобильные игры, Gamedev, Игры на Android, 3d-Шутер, Онлайн-Шутер, Видео, Длиннопост

При этом, если смотреть на цель как бы из ствола турели - то всё было хорошо.

Но вид то у нас от третьего лица! И если смотреть из другой точки, то это смещение становилось сразу заметным.

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

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

Да, на этот расчет тратятся ресурсы процессора, но когда на экране рассчитывается 50 точек пересечения, +- несколько дополнительных точек погоды не сделают :)


На этом первая часть статьи заканчивается, спасибо, что дочитали до конца!


В следующей части расскажу подробно о генераторе волн противников, как мы его настраивали и что нас ожидало...


P.S.

Если у Вас есть какие-либо вопросы, пишите, с радостью отвечу :)

Первый релиз игры состоялся в начале декабря 2019 года. На разработку первой версии ушло 4 месяца.

Ссылка игры в Google Play: Space Turret: Defense Point

Показать полностью 5 3
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: