151

Магическая Gothic по-русски - или рассказ о RPG SpellMaster The Saga

Вначале было слово, и слово было... Тетриандох?)

Всем привет, сегодня мне бы хотелось рассказать вам об находящейся в разработке отечественной игре SpellMaster The Saga. Данная игра представляет собой одиночную ролевую игру с видом от третьего лица в мрачном фэнтезийном сеттинге. Основным источником вдохновения для разработчиков является Gothic 2: Ночь Ворона.
Разработкой игры занимается маленькая инди-команда Spellbook Creations, основанная бывшими разработчиками Life is Feudal: Forest Village. SMTS разрабатывается на UE4.

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

Прямо сейчас поиграть в SpellMaster The Saga пока ещё нельзя, но можно подписаться на нас в нашей группе вк и добавить игру в вишлист в Steam, чтобы ничего не пропустить.
Страница игры в Steam: https://store.steampowered.com/app/1247100/SpellMaster_The_S...

Будем рады обратной связи и поддержке от разработчиков и любителей классических ролевых игр!

Магическая Gothic по-русски - или рассказ о RPG SpellMaster The Saga RPG, Компьютерные игры, Ролевые игры, Gothic, Indiedev, Gamedev, Разработка, Открытый мир, Видео, Длиннопост
Магическая Gothic по-русски - или рассказ о RPG SpellMaster The Saga RPG, Компьютерные игры, Ролевые игры, Gothic, Indiedev, Gamedev, Разработка, Открытый мир, Видео, Длиннопост
Магическая Gothic по-русски - или рассказ о RPG SpellMaster The Saga RPG, Компьютерные игры, Ролевые игры, Gothic, Indiedev, Gamedev, Разработка, Открытый мир, Видео, Длиннопост
Магическая Gothic по-русски - или рассказ о RPG SpellMaster The Saga RPG, Компьютерные игры, Ролевые игры, Gothic, Indiedev, Gamedev, Разработка, Открытый мир, Видео, Длиннопост
Магическая Gothic по-русски - или рассказ о RPG SpellMaster The Saga RPG, Компьютерные игры, Ролевые игры, Gothic, Indiedev, Gamedev, Разработка, Открытый мир, Видео, Длиннопост
Магическая Gothic по-русски - или рассказ о RPG SpellMaster The Saga RPG, Компьютерные игры, Ролевые игры, Gothic, Indiedev, Gamedev, Разработка, Открытый мир, Видео, Длиннопост

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

+6

Цветокоррекцию бы нормальную сделать, плохо выглядит, как какой-нить ENB на масс эффект.

Ну а так, я бы поиграл.

+12

Магия это конечно хорошо. Но что насчет корованов?

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

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

раскрыть ветку 3
+6
Все, что вы сейчас сказали – это звенящая пошлость
раскрыть ветку 1
-5

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

ещё комментарий
+4
+4

чем-то Risen напоминает

+2

Построй свой студ городок?)

+3

Очень красиво, и что самое главное - русские инди разработчики работают на UE4! Я в восторге и буду с нетерпением ждать вашего труда. И т.к. я недавно начал сам изучать этот движок и 3d моделирование позвольте наглость позадавать вопросов:

1) Много ли платных ассетов с EGS используете?

2) Сами рисуете 3d модельки? Персонажей?

3) Blueprints или C++?

4) Локомоушн сами анимировали или откуда-то взяли? Да и все что касается анимаций ваше или купленные ассеты?

5) По скринам не понятно - это Quixel'овские текстуры террейна? Или сами все нарисовали?

6) Заметил подсветку актёра, на которого маг кастует заклинание - это нон-таргет или таргет боевая система?

6) Как давно разрабатываете игру?

7) Сколько вас разработчиков?


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

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

Спасибо за теплый отзыв!
1) Да
2) Частично сами
3) Blueprints
4) Большая часть анимаций была куплена, но часть анимаций делали сами.

5) Аналогично, 95% текстур террейна куплено, либо квиксел, остальное сделали сами.

6) В игре сложная боевая система, которая включает и таргет, и нон-таргет.

6) Второй год как
7) 4, оттого, собственно, и много покупных ассетов)

P.S. если хочется глянуть больше материалов по игре, это можно сделать в нашей группе вк ( https://vk. com/public191604230 , только пробел убрать надо).

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

Благодарю за развернутый ответ! Чувствую, что пока не дотягиваю знаниями до джема, но вдруг, когда-нибудь)

+3

Что-то тут больше третьей Готики. И мерзкая камера из-за плеча, как в Скайриме.

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

+2

Надо еще поиграться с цветами, слишком темно. Контрастность явно перекрученная.

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

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

+1
В таких играх основа - атмосфера и сюжет. Надеюсь, для этих дел вы привлекли профессионалов
+1

Судя по видео игра будет не чисто ролевой, а с элементами стратегии? Постой, обучи, найми...

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

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

0

Как-то очень не эффективно вы с возможностями движка обращаетесь. Визуал очень уж не дотягивает до потенциала UE4.

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

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

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

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

0

Хм...

+ Широкие возможности по комбинированию заклинаний и их эффектов между собой

то что я люблю

Насколько широкие?) В two worlds 2 была забавная система, но сама игра вышла скучной.

0

На их сайте есть архив Пресс-кит с фоновой картинкой и другими материалами.

Иллюстрация к комментарию
0

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

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

Спасибо!)
Можно писать нам в группу вк, https://vk. com/public191604230 , там отвечать и собирать фидбэк удобнее, чем здесь)

0

Выглядит неплохо, но это явно не Готика (визуально)

0

возможно меня закидают ссаными тряпками но вопрос, на консолях будет? =) XBOX например =-)

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

С их сайта:

На каких платформах будет выходить игра?
Игра выйдет в Steam, затем планируем релиз в Epic Games Store, GOG. И далее выход на PS Store.
Конечно, ожидать прямо сейчас не стоит. Достаточно много игр умирает даже после формального релиза.

0
Подъем по ступенькам надо бы проработать
раскрыть ветку 1
0

Спасибо за отзыв)
Как раз доработали недавно инверсную кинематику, уже после создания трейлера)

0
А сколько ждать релиза? Приблизительно. Год, два?
раскрыть ветку 1
0

Летом планируем выйти в ранний доступ :)

0

Приветствую.

1. Когда можно будет купить в стим, в раннем доступе само собою.

2. Обратная связь с игроками будет? Или Вы уже знаете что реализовать и нужно только обкатать баги? Если будет, то что игроков можно привнести в саму игру?

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

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

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

1. Цену уже определили?

2. Моды игра будет поддерживать? Будет ли инструментарий?

раскрыть ветку 2
-2
Ты кто?
0
Достойно...
-1

графика-анимация дальше первого Rizen тоже не ушла?

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

Шрифтовые логотипы характеристик в ролевых играх

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

Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост
Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост
Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост
Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост
Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост
Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост
Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост
Шрифтовые логотипы характеристик в ролевых играх Логотип, Дизайн, Креатив, Стилизация, Ролевые игры, RPG, Настольные игры, Длиннопост

Ссылки, если хочется посмотреть на другой десигн в моем исполнении:
Моя группа ВК: https://vk.com/okunkir

Мой Инстаграм: https://www.instagram.com/okunkir/?hl=ru

Мой Биханс: https://www.behance.net/OKUNKIR
Ну и в профиле Пикабу ещё есть всякое, погляди

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

The Walking Evil дневник разработки #4

Добрый день уважаемые читатели Пикабу!


Хочу рассказать о том, как идет разработка моей игры The Walking Evil, над которой я работаю уже почти один год. Игра является Survival horror от 3 лица, с фиксированной кинематографичной камерой, над которой работаю один.


В игру была добавлена возможность смены камеры: 1) классическая фиксированная в духе 90x 2) вид от 3 лица. Сделано это, для новых игроков, которые не знакомы с классикой, фиксированная камера для них нечто сложное и не понятное. Поэтому для олдов есть возможность вернутся в 90x, а для новых игроков камера от 3 лица.

The Walking Evil дневник разработки #4 Gamedev, Unreal Engine 4, Indiedev, Screenshotsaturday, Survival Horror, Компьютерные игры, Длиннопост, Resident Evil 3
The Walking Evil дневник разработки #4 Gamedev, Unreal Engine 4, Indiedev, Screenshotsaturday, Survival Horror, Компьютерные игры, Длиннопост, Resident Evil 3

Я доработал инвентарь, рисовал в минимализме в программе paint.net

Если у вас пока что нет денег на фотошоп, это отличная бесплатная программа которая прекрасно подойдет. Интерфейс программы paint.net вы можете увидеть на скриншоте ниже.



Добавлен склад. При старте игры 3 уровня сложности на выбор.
The Walking Evil дневник разработки #4 Gamedev, Unreal Engine 4, Indiedev, Screenshotsaturday, Survival Horror, Компьютерные игры, Длиннопост, Resident Evil 3

PNG формат.

The Walking Evil дневник разработки #4 Gamedev, Unreal Engine 4, Indiedev, Screenshotsaturday, Survival Horror, Компьютерные игры, Длиннопост, Resident Evil 3

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

The Walking Evil дневник разработки #4 Gamedev, Unreal Engine 4, Indiedev, Screenshotsaturday, Survival Horror, Компьютерные игры, Длиннопост, Resident Evil 3

В создание таких иконок нет не чего сложного, стандартная фигура (круг) на без фоновом холсте формата PNG, с крестиком в центре.

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

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

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

The Walking Evil дневник разработки #4 Gamedev, Unreal Engine 4, Indiedev, Screenshotsaturday, Survival Horror, Компьютерные игры, Длиннопост, Resident Evil 3

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


Для любителей серии RE оставил несколько пасхалок.

На данный момент в игре вас ожидает 7 персонажей, со своей историей и характером.

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

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


Кто хочет поддержать, пожалуйста добавьте игру в список желаемого, нажав на The Walking Evil.


Релиз запланирован на 2020 год.

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

Оптимизация Unity проектов

Я не являюсь гуру-профессионалом, но думаю многим начинающим пригодиться эта информация по оптимизации Unity проектов на примере моей игры Last Floor.
Оптимизация Unity проектов Gamedev, Игры, Компьютерные игры, Разработка, Оптимизация, Unity, Steam, Длиннопост

Что будем оптимизировать:


Звуковые файлы

Для звуковых эффектов нужно использовать wav файлы 44кгц, обязательно в моно формате (Или ставить галочку Force To Mono. Для музыкальных треков оставить стерео). Quality лучше всего оставить 100.


Для ускорения загрузки сцены лучше поставить галочку Load In Background, кроме звуков которые воспроизводятся сразу при старте сцены.


Материалы

Тут все просто - меньше материалов в Unity, больше статики и будет больше FPS Игры.


Свет

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


По возможности запекаем свет, на неподвижных объектах должен стоять флаг Static, в некоторых местах можно использовать реалтайм без теней.

Вообще настройка света и отражений в Юнити это тема для отдельной статьи.


Модели

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

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

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


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

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

Оптимизация Unity проектов Gamedev, Игры, Компьютерные игры, Разработка, Оптимизация, Unity, Steam, Длиннопост

Развертка

Заполнять квадрат текстуры нужно по возможности максимально плотно но при этом оставляя отступы (8-16 пикселей для текстур 2к), чтобы при меньшем размере текстуры не было артефактов.


Одинаковые элементы складывать в кучу и сдвигать на 1 пункт за пределы координат (Это позволит избежать артефактов при запекании Normal и Ambient Oclusion карт).


Текстуры

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


Большинство моделей с хорошей разверткой влезают в текстуру 1-2к без мыла.

Так же нужно упаковать текстуры Metallic и Smoothness в один файл для страндартного рендера. (R-Metallic, G-Пусто, B-Пусто, A-Smoothness). Для рендера HDRP будет другая техника упаковки текстур.


Для уменьшения размера билда используем сжатие CrunchedDX1 для обычных текстур и CrunchedDX5 для текстур с альфаканалом.


Код

Избегайте операций в Update, следите за нагрузкой CPU, пишите хороший код ;)

Оптимизация Unity проектов Gamedev, Игры, Компьютерные игры, Разработка, Оптимизация, Unity, Steam, Длиннопост

Итого у меня получилось:

Размер билда: 586Мб.

Строк кода: 5219

Моделей: 321

Текстур: 512

Звуковых файлов: 122

Музыкальных треков: 5 штук общей длительностью 25 минут.

Площадь локации: 10878 м2


Надеюсь мой опыт поможет вам сделать хорошую игру.


Страница игры в Steam: https://store.steampowered.com/app/1251300/Last_Floor/

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

Как сделать турбо-тоннель эффект в Unity с помощью Particle System

Я не знаю, как назвать такой эффект: дыра, пещера, турбо-тоннель, wormhole или, может, пищевод, но результат выглядит так:

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Для реализации этого эффекта подойдёт практически любой игровой движок: мой первый вариант был сделан ещё на флеше. Здесь же расскажу на примере Unity (Version 2019.2.4f1).

Я добавил такой эффект во вступительном ролике и тизере своей игры про атаку вирусов на иммунную систему «Listeria Wars».

ПОШАГОВАЯ РЕАЛИЗАЦИЯ


Создание сцены


Я использовал 2D темплейт при создании проекта, но можно использовать и 3D. В любом случае понадобится ортографическая проекция в настройках камеры и сплошной чёрный фон.

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Создание материала


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

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Закидываем наш спрайт в папку для спрайтов в Assets и создаём новый материал Tunnel Wall (создаём папку Materials, по ней кликаем правой кнопкой мыши → Create → Material). В настройках выбираем шейдер Mobile/Particles/Alpha Blended (в старых версиях Unity Particle/Additive). Затем в Particle Texture кликаем по нашему спрайту тоннеля.

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Добавление основной Particle System


Добавляем в сцену пустой объект и называем Tunnel. В него мы будем помещать все необходимые партиклы и контроллеры. Кликаем правой кнопкой мыши и выбираем Effects → Particle System, который назовём Tunnel Wall по аналогии с именем спрайта. Начинается самое интересное! Настройка и эксперименты.


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


Renderer

* Material: Tunnel Wall;

* Sort Mode: Oldest in Front;

* Max Particle Size: 5 (для возможности увеличения спрайта на размер больше, чем на пол экрана, где 5 — это разрешение экрана * 5).


Основные (Появляются при клике на хедер настроек, если скрыты)

* Start Lifetime 2.5 (Время жизни партикла, так же определяет скорость увеличения);

* Start Speed: 0 (Скорость не нужна);

* Start Size: 100 (Зависит от размера спрайта, выбираем на глаз, регулируем вместе с Size over Lifetime);

* Start Rotation: от 0 до 360 (Выбираем Random Between Two Constants, крутим партиклы как хотим);

* Start Color: Выбираем на вкус, если спрайт Tunnel Wall чёрно-белый. Осторожно, со слегка оранжевым цветом турбо тоннель рискует превратиться в задний проход;

* Gravity modifier: 0.02 (Партиклы будут слегка падать, задаём немного динамики в движении);

* Simulation Space: World (Мы будем двигать точку создания партиклов, чтобы не перемещалась вся конструкция, ставим World);

* Max Particles: 10 (Смотрим итоговое количество партиклов в панели Particle Effect и устанавливаем столько же).


Emission: Rate over Lifetime: 4 (на вкус)


Shape (форма, которая спавнит партиклы)

* Shape: Circle;

* Radius: 0.05 (Чем меньше радиус, тем более ровными получаются стенки. Выбираем на вкус).


Color over Lifetime

* Я выставил такие настройки для плавного появления и менее плавного ухода

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Size over Lifetime

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

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Результат на текущий момент

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Другие партиклы


По аналогии я добавил другие частицы в виде клеток и вен. Расписывать подробно не буду, так как работу я проделал примерно аналогичную — настройки отличались лишь слегка. Следует учесть, что частицы должны быть поверх стен. Для этого необходимо задать Order in Layer в Renderer. Ещё я использовал Velocity over Lifetime, с этим тоже можно поиграться. Ну и добавил виньетку. Получилось так:

Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Немного динамики


Простым перемещением объекта Tunnel мы получим нелинейный тоннель. Добавим компонент Mover к Tunnel и удивимся результату

using UnityEngine;
public class Mover: MonoBehaviour {
public float rangeX = 2;
float rangeY = 1.5f;
public float timeDelimiterX = 4f;
public float timeDelimiterY = 3f;
void Update() {
transform.position = new Vector3(
Mathf.SmoothStep(-rangeX, rangeX, Mathf.PingPong(Time.time / timeDelimiterX, 1)),
Mathf.SmoothStep(-rangeY, rangeY, Mathf.PingPong(Time.time / timeDelimiterY, 1)),
0
);
}
}
Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

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

using UnityEngine;
public class Colorizer: MonoBehaviour {
public ParticleSystem tunnelWall;
public ParticleSystem cellBig;
public ParticleSystem cellSmall;
public ParticleSystem cellVessel;
void Update() {
Color color = new Color(
Mathf.SmoothStep(1, 0.5f, Mathf.PingPong(Time.time / 10f, 1)),
Mathf.SmoothStep(0, 1, Mathf.PingPong(Time.time / 15f, 1)),
Mathf.SmoothStep(0, 1, Mathf.PingPong(Time.time / 5f, 1))
);
var tunnelWallMainSettings = tunnelWall.main;
tunnelWallMainSettings.startColor = color;
var cellBigMainSettings = cellBig.main;
cellBigMainSettings.startColor = color;
var cellSmallMainSettings = cellSmall.main;
cellSmallMainSettings.startColor = color;
var cellVesselMainSettings = cellVessel.main;
cellVesselMainSettings.startColor = color;
}
}
Как сделать турбо-тоннель эффект в Unity с помощью Particle System Unity, Туториал, Визуальные эффекты, Gamedev, Разработка, Гифка, Видео, Длиннопост

Залипательно!


Весь код и ассеты тут: Github


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


Страница игры в Steam: https://store.steampowered.com/app/1183010/Listeria_Wars/

Добавляйте игру в вишлисты!

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

Дневник разработки II

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


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

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

Дневник разработки II Gamedev, Инди, Indiedev, Pixel Art, Длиннопост, 5map, Видео

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

Дневник разработки II Gamedev, Инди, Indiedev, Pixel Art, Длиннопост, 5map, Видео

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


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

Впереди еще масса работы, но то что получается мне невероятно нравится. Хорошего дня)

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

Path Of Despair, до и после

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

ДО:

Path Of Despair, до и после RPG, Инди, Low poly, Gamedev, Длиннопост
Path Of Despair, до и после RPG, Инди, Low poly, Gamedev, Длиннопост

После:

Path Of Despair, до и после RPG, Инди, Low poly, Gamedev, Длиннопост
Path Of Despair, до и после RPG, Инди, Low poly, Gamedev, Длиннопост
Path Of Despair, до и после RPG, Инди, Low poly, Gamedev, Длиннопост
Path Of Despair, до и после RPG, Инди, Low poly, Gamedev, Длиннопост
Path Of Despair, до и после RPG, Инди, Low poly, Gamedev, Длиннопост

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


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


https://vk.com/pathofdespair

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

Ожидания vs реальность. Чем на самом деле занимаются геймдизайнеры, программисты, проджект-менеджеры, художники и продюсеры

Всем привет!

Продолжаем разговор по списку тем:


1) Что такое русский геймдев и надо ли вам в него попасть на самом деле

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

3) Вы попали в геймдев - что дальше? Лучшие практики, чтобы работать долго и счастливо.

4) Ожидания vs реальность. Чем на самом деле занимаются геймдизайнеры, программисты, проджект менеджеры, художники и продюсеры.

5) Как стать продюсером.

Ожидания vs реальность. Чем на самом деле занимаются геймдизайнеры, программисты, проджект-менеджеры, художники и продюсеры Игры, Длиннопост, Текст, Разработка, Gamedev

На этот раз поговорим о пункте №4 - Ожидания vs реальность. Чем на самом деле занимаются геймдизайнеры, программисты, проджект менеджеры, художники и продюсеры.


Многие новички попадают в корпоративную разработку игр, не имея четкого представления о том, чем именно занимаются представители различных профессий в геймдеве. Что часто приводит к неприятным столкновениям с реальностью и разочарованиям. Цель данного текста - хотя бы немного ознакомить людей, которые хотят попасть в геймдев (или недавно попали), с реальным положением дел, чтобы они примерно понимали, что их ждет. В графе "Ожидания" я буду писать наиболее частые представления о профессиях, которые я встречал со стороны людей, находящихся вне корпоративного геймдева.


1) Чем занимаются геймдизайнеры.


Ожидания:

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


Реальность:

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


Чем может быть занят геймдизайнер:


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

- Составление ТЗ для художников + поиск рефов (референсов). ТЗ для художников - все то, что нужно знать художникам, чтобы корректно нарисовать контент. Какие действия предмет/персонаж будет выполнять в игре, какая у него предыстория (если есть), какие анимации в будущем для него запланированы. Поиск рефов - поиск в интернете и прикрепление к ТЗ картинок, которые помогут задать направление работе художника, дадут стилистический ориентир.

- Левел-дизайн - проектирование и сборка новых уровней, локаций.

- Генерация текстового контента для обновлений игры - написание квестов, сценариев ивентов, текстов акций.

- Интеграция контента для грядущего обновления игры - заведение новых квестов, акций, уровней.

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

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

- Расчет, анализ и перерасчет баланса игры.

- Анализ проектов конкурентов.

- Анализ внутренних проектов, составление предложений по улучшению их показателей.


Работа геймдизайнера является креативной, но при этом геймдизайнер должен быть способен выдавать нужный контент даже, когда у него нет творческого настроения или вдохновения. При этом мало быть просто креативным и трудолюбивым, надо еще отвечать потребностям проекта и руководства. Например, задание - написать к понедельнику 160 реплик для персонажа. Вы написали 200 (отличных на ваш взгляд) реплик, но ваш руководитель пропустил в проект только 40. Будет считаться, что к назначенному сроку вы написали только четверть реплик.


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


2) Чем занимаются художники


Ожидания:

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


Реальность:

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


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


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


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


Значительную часть работы будут составлять вещи, которые вы не умеете рисовать/не рисовали раньше/не хотите рисовать.


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


3) Чем занимаются программисты.


Ожидания:

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


Реальность:

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

Часть времени всегда будет неизбежно тратиться на фикс багов.

Часть - на объяснение геймдизайнерам и продюсерам, почему невозможно реализовать те или иные фичи.


Если у компании есть активные выпущенные проекты:


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

- на носу объявленное игрокам обновление, а какой-то функционал еще не готов или тестировщики нашли баг за 2 часа до релиза.


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


А еще начальство может прийти и сказать, что передумало - и вам придется удалять/откатывать/переделывать функционал, который вы делали последние 2 недели (предварительно согласовав все с этим же начальством). Тоже не редкая ситуация.


4) Чем занимаются проджект-менеджеры (ПМ).


Ожидания:

Управляют проектом!


Реальность:

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


- следит за рабочим временем сотрудников, кто сколько тратит времени на задачи.

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

- участвует в процессе найма и увольнении членов команды.


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


5) Чем занимаются продюсеры.


Ожидания:

Командуют всеми, делают из игры то, что им хочется.


Реальность:

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


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


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


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


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


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


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


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

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

Легенда Лорда - Лича: Эпизод 1

Мы тут озвучили кое-что :)
Как говорят авторы:

"Если Вам нравятся Pathfinder, Dungeons and Dragons и другие настольные игры с мечом и магией, вы оцените этот комедийный мини сериал."

Так что я надеюсь что среди вас найдутся те, кому зайдет этот формат :D

Кстати есть озвученный пролог. Первую серию вы можете глянуть в этом посте - Очки опыта (1 серия)

451

Окончание разработки DUNE 2 в 3D

Окончание разработки DUNE 2 в 3D Dune II: Battle for Arrakis, Sega, Ностальгия, Инди игра, Gamedev, Компьютерные игры, Indiedev, Дюна, Длиннопост

Разработка дошла до логичного окончания ещё в конце 2019 года, а в 2020 был начат новый проект, названный "Dangerous Depth" (Опасная глубина).

Окончание разработки DUNE 2 в 3D Dune II: Battle for Arrakis, Sega, Ностальгия, Инди игра, Gamedev, Компьютерные игры, Indiedev, Дюна, Длиннопост

Из обновлений DUNE 2 в 3D- были добавлены различные режимы, о которых сейчас подробнее:

Режим "Выживание"
Эта аркада проходит волнами, надо продержаться на рекорд максимально возможное время.

Окончание разработки DUNE 2 в 3D Dune II: Battle for Arrakis, Sega, Ностальгия, Инди игра, Gamedev, Компьютерные игры, Indiedev, Дюна, Длиннопост

Режим "Конвой"
На выбранном уровне вместо главной базы стоит только MCV.

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

Окончание разработки DUNE 2 в 3D Dune II: Battle for Arrakis, Sega, Ностальгия, Инди игра, Gamedev, Компьютерные игры, Indiedev, Дюна, Длиннопост

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

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

Группа DUNE 2 в VK: https://vk.com/dune_3d
Новый проект: https://vk.com/dangerous_depth

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

Поиск пути в играх. Алгоритм поиска пути A*

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


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


Надеюсь, что это будет кому то полезным.

92

Что такое русский геймдев и надо ли вам в него попасть на самом деле

Всем привет!

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


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

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

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

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


Список запланированных для освещения тем:

1) Что такое русский геймдев и нужно ли вам в него на самом деле.

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

3) Я попал в геймдев - что дальше? Лучшие практики, чтобы работать долго и счастливо.

4) Ожидания vs реальность. Чем на самом деле занимаются геймдизайнеры, программисты, проджект менеджеры, художники и продюсеры.

5) Как стать продюсером.


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

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


Что такое русский геймдев и почему вам в него, возможно, не надо:


1) Большинство приходящих в геймдев новичков вдохновлены любимыми играми детства (или чем-то современным). Реальное положение дел таково, что вы с высокой вероятностью не будете работать над подобными проектами. Русский геймдев преимущественно ориентирован на мобильные и социальные игры. Синглплеерные игры с сильным сюжетом, цепляющим за душу игровым экспириенсом - нет, здесь заняты не этим. Матч-3, фермы для женщин 30+, коллекционные карточные баттлеры - примерно этим занят русский геймдев. Игры рассматриваются не как произведение искусства, а как продукт. Работа в геймдеве - это проявление креативности только 10% времени. Остальное - анализ рынка, показателей продукта, и рутинная работа.


2) Также многие приходят в геймдев с желанием воплотить свои задумки, творчески реализоваться. Большинству таких намерений также не суждено сбыться. Шанс того, что идеи новичка, не имеющего опыта в геймдеве, уложатся в специфику проекта или совпадут с видением продюсера проекта и ведущего геймдизайнера - крайне мал. На каждую свежую идею будет множество разумных причин, почему ее нельзя реализовать - понимание этих причин придет только через несколько лет работы в геймдеве. У новичков такого опыта, конечно, нет.


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


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


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

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

Надо четко понимать:

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



Какие реальные положительные моменты работы в корпоративном геймдеве:


1)  Если вы находитесь на распутье и выбираете, в какой сфере лучше построить карьеру. Без ложных ожиданий и фантазий - геймдев весьма хороший вариант. Сейчас много геймдев-компаний, где устройство по ТК РФ и белая зарплата. Но переехать, скорее всего, придется в Москву или Петербург - чтобы всегда иметь под рукой соответствующие предложения о работе, в других городах России корпоративный геймдев развит только мелкими вкраплениями.


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


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


4) Получение опыта - посмотреть на самые различные ситуации с самыми разными проектами. Делая игры сами - вы едва ли сможете получить такое количество опыта и знаний.


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


6) Наличие рядом крутых специалистов, у которых можно перенять опыт.


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


В итоге:

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

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

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

Странствия. Полностью завершённая и пригодная для игры РПГ

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


Итак, я довёл до финала и опубликовал на itch.io свою игру в жанре JRPG. Вся работа над игрой заняла у меня примерно 1200 часов (да, я педант, я всё записываю))): 2,5 года от 1 до 7 часов каждый день. Практически всё делал только я один, разве что музыку сам не писал, и для графики использовал сторонние (но совершенно легальные) ресурсы. Вероятно, это именно та работа, которой я бы мечтал заниматься всё время, если бы мог получать за неё деньги. Однако коммерция — это наименее интересная для меня область, и поэтому я, чтобы не мучиться, выложил игру бесплатно.

Вот она: https://alx-yago.itch.io/wanderings


Это абсолютно классическая РПГ о приключениях в фэнтезийном мире, выполненная на движке RPG Maker’а. В общем, я буду рад, если зацените. Игра для Windows.

Странствия. Полностью завершённая и пригодная для игры РПГ Игры, Gamedev, JRPG, RPG, RPG maker, Длиннопост
Странствия. Полностью завершённая и пригодная для игры РПГ Игры, Gamedev, JRPG, RPG, RPG maker, Длиннопост
Странствия. Полностью завершённая и пригодная для игры РПГ Игры, Gamedev, JRPG, RPG, RPG maker, Длиннопост
Странствия. Полностью завершённая и пригодная для игры РПГ Игры, Gamedev, JRPG, RPG, RPG maker, Длиннопост
Странствия. Полностью завершённая и пригодная для игры РПГ Игры, Gamedev, JRPG, RPG, RPG maker, Длиннопост
Показать полностью 4
389

Однажды в Полевском / Once upon a time in Polevskoy

Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост

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

Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост

Вся игра происходит в одном городе и его окрестностях. Город разделен на 13 основных локаций, почти в каждой локации есть свое подземелье. Так же в во многих локациях множество строений(квартиры, дома, магазины и тд.), которые можно посетить. Хотя все и происходит в одном городе, я стараюсь сделать каждую локацию выделяющейся и со своими уникальными событиями и NPC. По мимо основных локаций, которые доступны с самого начала игры, по мере прохождения на карте будут появляться дополнительные сюжетные места. Между локациями можно передвигаться на общественном транспорте, такси или пешком. До некоторых локаций можно добраться только на такси.

Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост

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

Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост

NPC делятся на 4 основных группы: мирные жители(городские, сельские, студенты, наркоманы, бомжи, уникальные), силовики(милиция, ФСБ), преступники(банды, цыгане, криминальный ЧОП) и монстры. У каждой группы свой тип общения. С мирными NPC можно поговорить, торговать, убивать или грабить. С бандитами можно договориться, откупиться или подраться. То же самое и с милицией, но с поправкой на то, что это представители закона. Чем больше у вас запрещенных вещей в сумке, тем сложнее и дороже будет это сделать. Каждая подгруппа имеет свое свой уникальный пункт разговора с главным героем. Например бомжи за бутылку алкоголя могут рассказать, где сегодня больше всего милицейских патрулей, сельские жители расскажут последние слухи, которые происходят в городе и смогут помочь продвинуться по сюжету, наркоманы за бесценок продадут ворованные украшения, а студенты с радостью купят у вас легкие наркотики. У каждой подгруппы NPC есть свой уникальный мини босс, место положения которого меняется каждые сутки. Убийство его не обязательно для сюжета, но с него можно получить уникальную вещь, оружие или броню.

Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост

Битвы в игре схожи с классическими по ходовыми боями в подобных JRPG. В начале хода каждый персонаж, включая врагов, выбирает действие, а после на основании личных характеристик поэтапно эти действия исполняются. Всего планируется 70+ умений. 40 уникальных для героев, 10 общих(боевые приемы, выстрелы из оружия) и остальные для врагов. Всего врагов планируется более 50 + 15 боссов и мини боссов.


Пока в этом посте все. Дальше буду выкладывать по каждому пункту более детально. Ну и еще несколько скриншотов с готовых локаций.

Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост
Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост
Однажды в Полевском / Once upon a time in Polevskoy Gamedev, Pixels, JRPG, Indiedev, Длиннопост
Показать полностью 6
116

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре

В тактических играх ИИ очень важен. Если ИИ видится как «искусственный идиот», то игру может спасти потрясающий мультиплеер, сюжет, атмосфера и графика (это неточно). Решение очевидное: делай хороший ИИ, в чём тут могут быть проблемы?

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

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

Краткое описание


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


Например, генерируются три стратегии:


1. Бежать оголтело всем вперед и атаковать всех, кто подвернётся под руку. Очки итогового состояния: 37000 баллов.

2. Атаковать лучниками с безопасного расстояния, а остальные прячутся по углам. 45000 баллов.

3. Всем отступить, сгруппироваться и попрятаться от врагов. Если можно при этом ранить какого-нибудь врага с безопасного расстояния, то атаковать. 18000 баллов.

В этом случае будет выбрана 2-я стратегия.

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

Ну вроде всё стандартно. Не совсем.


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


Правила игры


У игрока и у ИИ изначально по углам выдаются по 6 одинаковых юнитов. Каждая команда ходит по очереди всеми юнитами сразу. Варианты хода каждого юнита:

- пропустить ход;

- передвинуться и пропустить;

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


Игровое поле и состав команды генерируется процедурно (то есть случайно, но с проверками на проходимость и приемлемую «тактичность»). Типы юнитов:

1. Боец F, юнит ближнего боя с самой большой живучестью, уроном и мобильностью. Эдакий танк+дамагер.

2. Лучник A, самый низкий урон, зато атака на расстоянии 1-7 по прямой линии.

3. Колдун W, умирает с одного удара бойца, зато атака на расстоянии 1-5 по прямой линии насквозь по всем юнитам.


Игровое поле всегда размером 10*10.


Возможные поля на карте:

- Земля — не накладывает никаких ограничений.

- Стена — через неё нельзя ни прострелить, ни пройти.

- Вода — через неё нельзя пройти, но через неё может стрелять лучник (огненный маг не может).

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

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


ИИ сильнее мясного игрока, но у последнего на первом уровне есть фора в виде одного юнита. На 3-ем у игрока наоборот хандикап в одного юнита и победить гораздо сложнее (у меня около 15% побед на этом этапе). Затем идёт более рандомная версия Игра+.


Изначально был разработан другой план игры в виде «качелей» как в турнирной таблице, но в конце разработки я отказался от него, как от слабомотивирующего. Смысл был в том, что если какая-то команда проигрывает, то на следующей карте ей даётся +1 юнит, и так максимум до 10 против 6. Если и потом команда умудрялась проиграть, то её юнитам увеличивались характеристики.


Игра разработана на нативном javascript: на div-ах и css-стилях, и это было самое неудачное решение из возможных [2]. Это браузерная игра. Движок не использовался. Единственная цель проекта — создать сильного компьютерного игрока «с характером» и возможностью изменения этого характера (расчетливые киборги, агрессивные орки, коварные эльфы, глупые зомби).


Для уменьшения «компьютерного стиля» у противника были применены некоторые хитрости:

- Игрок после своего хода не ждёт, пока ИИ подумает над своим ходом. Враг «сразу» начинает делать свои передвижения (в действительности это иллюзия).

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

- ИИ умеет использовать коварные приманки, чтобы навязать бой (тут всё по-честному).


И что тут сложного?


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

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


Во-первых, т.к. на каждом ходу юниты команды ходят все сразу, то возможна разная их очередность. А при 6 юнитах в команде таких комбинаций становится 720 (1*2*3*4*5*6). Если юнитов будет больше, то комбинаций будет вообще огромное количество (при 7 — 5040, при 8 — 40320...). Если не учитывать максимального исхода, то игрок рискует распробовать удовольствие в ожидании очередного хода на 5-10 минут (а если он упорный, то задержка дорастёт и до миллионов лет, не каждый вытерпит). Именно из-за этой характеристики мой ИИ в начале боя менее эффективен, чем в конце. Ведь ближе к концу половина команды уже погибла.

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

Во-вторых, каждый юнит может передвинуться в разные точки карты. Бойцы с дальностью передвижения 4 могут походить на 1-41 разных позиций. У магов и лучников с их передвижением в 3 возможное число ходов равно 1-25. Например, состав команды может быть: 4 бойца, 1 маг и 1 лучник. Итого разных комбинаций ходов по данному пункту мы получаем: 41*41*41*41*25*25 = 1766100625. В действительности из-за взаимных пересечений и непроходимой местности комбинаций будет меньше, но в редкой ситуации «разбегания по карте» число комбинаций будет приближаться к этому числу.


В-третьих, каждый юнит после передвижения может пропустить ход или атаковать в одном из 4 направлений. То есть имеем по 5 возможных завершающих действий на юнита. Всего комбинаций: 5^6 = 15625.


Итого комбинаций: 720 * 1766100625 * 15625 = 19868632031250000.

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

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


Как же сделано?


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

1. Сгенерировать разные сценарии на основе заранее прописанных стратегий (~20 штук).

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

3. В конце выбрать сценарий с наибольшей оценкой.

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

5. Повторить для оставшихся юнитов с пункта 1.


Эвристический метод — это метод, который может сработать (по Макконнеллу [4]). Подробнее и строже в Википедии [5].


Ключевые моменты в этом алгоритме: генерация сценариев, мутации и правильная оценка выгодности состояния. В каждом из этих пунктов используются свои собственные локальные эвристики. Тем не менее, там где можно, использовались алгоритмы с гарантированным оптимальным результатом, например, А* для поиска пути [6].


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

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

Нейронные сети [8] мною не использовались из-за особенностей задачи. Во-первых, из-за сложности их успешной реализации в условиях постоянно меняющейся среды (появление новых механик, навыков, способностей). Во-вторых, из-за сложности в их контролируемой персонализации (если захочется сделать два поведения: стремительного Суворова и осторожного Кутузова [9]).


Эволюция искусственного идиота в искусственный интеллект


0) Сначала у ИИ были введены только 3 стратегии со случайными ходами. {Сложность игры #0}. Оценка состояния была просто случайным числом. И так как ИИ не единственный элемент разработки, мне пришлось довольно долгое время мириться с поведением сумасшедших рыбок.


1) Затем в расчёты оценки стратегии были добавлены проверки оставшихся юнитов и их жизней у ИИ и у игрока. {Сложность игры #10}. За мертвого юнита команде начислялось 0 баллов. За полностью здорового Х баллов (например, 100 000 за бойца F, 70 000 за лучника A, 85 000 за колдуна W). За раненого начислялись 50% от основной ценности, а оставшиеся 50% пропорционально оставшимся жизням от максимальных. Благодаря этому ИИ было выгоднее добивать врагов, а если он мог только ранить, то он выбирал противников с меньшим числом жизней — более уязвимых.


Случайные ходы стали более осмысленными — ИИ иногда давал сдачи.


2) Затем была добавлена более осмысленная стартовая стратегия:

max_agro — все солдаты бежали максимально ближе к врагам и старались нанести как можно больше урона. {Сложность игры #20}. Одна стратегия использовала изначальный порядок ходов юнита, вторая ходила ими в обратном порядке.


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


Именно на это похоже поведение ИИ в провальной игре Master of Monsters – Disciples of Gaia, из-за чего в неё банально скучно играть [10].

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

3) Дальше были добавлены стратегии, учитывающие возможный урон от врагов при передвижениях, и выбирающие те ходы, которые приводили к наименьшей опасности — желательно нулевой. {Сложность игры #30}. И ИИ сразу же стал сверх трусливым, избегающим любой близости с противником — лучше уж сбежать, чем атаковать и ранить, ведь противник может дать большей сдачи!


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


Следует отметить, что подобные вычисления возможного урона очень длительны без использования кэша. Один полный просчёт стратегии без оптимизаций изначально занимал 700 миллисекунд. А у меня ведь ограничение на весь ход одним юнитом ~4000 мс! После оптимизаций и отработавших кэшей это время уменьшается до 20 миллисекунд при очень похожих стратегиях (к сожалению кэш невозможно просчитать весь заранее из-за эффекта комбинаторного взрыва, поэтому 20 мс достигаются не всегда).


Поэтому когда я внедрял технологию расчета с прогнозированием на несколько ходов вперёд, то время расчетов для глубины только в 2 хода (врага и ИИ) занимало уже +700 миллисекунд. В этом случае применяют оптимизацию с отсечением «слабых» веток. Если для этого пользоваться хоты бы примитивной стратегией max_agro, то увеличение времени было +30 миллисекунд и кэширование эту разницу почти не уменьшало (т.к. позиция на карте была совершенно новой).


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


4) Следующие стратегии были направлены на расширение изначального разнообразия стратегий:

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


close_group_flee — юниты отступают подальше от боя и группируются как можно ближе друг к другу. Если можно при этом безопасно атаковать врага — атаковать.

{Сложность игры #40}.


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


5) Затем настало время мутаций. {Сложность игры #50}.

Алгоритм мутаций был очень простой:

- при переборе выбранных стратегий создавалась одна копия стратегии;

- в этой копии производилась мутация хода;

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

- вычислялись баллы мутировавшей стратегии;

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


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


Сначала был реализован самый примитивный тип мутации: от 1 до 3 движений заменялись на случайные, порядок ходов оставался прежним. За одну итерацию расчетов в среднем на каждую стратегию создавалось ~5-15 мутаций. При этом в среднем каждая пятая мутация была более выгодной и заменяла стратегию родителя.


6) Эвристика приманки. {Сложность игры #60}.

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


Для этого в функции вычисления баллов за состояние стратегии проверяется, соответствует ли текущее состояние ситуации приманки:

- Только один солдат ИИ может быть атакован;

- Только один враг может атаковать вылезшего юнита;

- Юнит компьютерного игрока после этой атаки обязательно должен выжить;

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


Эффект оказался отличным: игроку становится легче начинать бой самому. При этом чаще всего игроку всё равно выгоднее «повестись» на эту приманку, так как после ответной атаки он сможет навалиться на ИИ всем своим отрядом (это если он разумно сгруппируется предварительно). А там уже всё решат грамотные локальные тактические решения.

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

7) Потом мне стало бросаться в глаза, что бойцы ИИ постоянно разбегаются как тараканы. {Сложность игры #70}. Также солдаты могли забиться в угол или зайти в тесные тоннели, в которых ИИ сильно терял в своей эффективности перебора возможных атак.

Поэтому в оценочную функцию были добавлены эвристики оценки расстояний между юнитами и рельефа карты со следующими предположениями:


- Чем ближе союзники друг к другу «в среднем» — тем лучше (юниты реже стали разбегаться по разным частям карты).

- Чем ближе солдаты ИИ к в солдатам врага «в среднем» — тем лучше (мне нужен был наступательный ИИ).

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

- Если солдат ИИ не может добежать и атаковать врага как минимум за 2 хода, то его надо штрафовать (это заставляет его наступать, но не подставляться самому под атаку).

- Если в радиусе 2 шага от солдата слишком много блокирующих позиций, то штрафовать его (реже стали забегать в тоннели).

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


8) Затем пришло время расширения стратегий. {Сложность игры #80}. Я не мог добавить полный перебор возможного порядка ходов юнитов, но я мог сделать перебор их ходов по типам: боец, лучник, колдун. Поэтому появились стратегии последовательности ходов, вида W_A_F: сначала ходят все колдуны, потом все лучники, потом все бойцы.


Таким образом добавилось 6 новых стратегий: W_A_F, W_F_A, A_W_F, A_F_W, F_A_W, F_W_A. Они не решили всех проблем, но заметно улучшили качество игры.


9) У меня были мутации, но толку от них было мало. {Сложность игры #90}. В основном они улучшали слабые стратегии, а удачные улучшались редко. Поэтому мутации были доработаны и каждый раз срабатывал один из случайных типов мутации:

- От 1 до 3 движений заменялись на случайные, порядок ходов оставался прежним (старый способ);

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

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


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


10) Затем были добавлены еще полуслучайные стратегии. {Сложность игры #100}. Порядок ходов генерировался случайно, а сами ходы выбирались по следующим принципам (по уменьшению их важности):

- нанести максимальный урон;

- получить как можно меньший урон в ответ;

- стать как можно ближе к врагам.


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


11) Мне надоели вопиющие ошибки ИИ, когда он при атаке своим колдуном сильно задевал моих солдат, но при этом ранил своих союзников. {Сложность игры #110}. Хотя перед этим он вообще-то мог походить ими и убрать их с линии огня. Поэтому была создана жёстко сгенерированная стратегия с ручными проверками:


- если есть колдун, то найти место, откуда он нанесет максимальный урон;

- если в этом месте или по пути удара есть союзники — запомнить их;

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

- ходит колдун;

- ходят оставшиеся юниты.


Стратегия легко описывается на словах, но заморочно для её программирования.


12) Иногда юниты "убегали в кусты" прямо перед началом боевых действий. {Сложность игры #120}. В результате этого, когда начинался обмен атаками, то один или даже два юнита могли оказаться слишком далеко от военных действий и не помогали союзникам. Если это случалось, то я почти гарантированно выигрывал у ИИ. Если не случалось, то я чаще проигрывал. Избавлялся от этого я вводом новой эвристики по оценке результирующих баллов у стратегии. Для каждого юнита проводилась проверка:


1. Если юнит в этот ход атаковал, то он получал +1500 баллов.

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

2.1. Если юнит не может достать и ударить ни по одной позиции (n = 0), то он получает штраф -1000 баллов.

2.2. Если юнит может достать до всех позиций, то он получает +1200 баллов.

2.3. Если юнит может атаковать до некоторых позиций, то он получает +(n/N)*1000 баллов.


Это позволило сильно улучшить «сплоченность» юнитов ИИ. К сожалению, начали появляться случаи «одного дезертира», когда в проигрышной ситуации один из раненых юнитов предпочитал прятаться за спинами своих товарищей вместо того, чтобы внести свою лепту, атаковав врага. Это нелепо выглядело, когда у компьютера остаётся всего 2 юнита, а у игрока 3 или даже больше. Дополнительная исправляющая эвристика представляет собой следующее правило:


IF ("у ИИ меньше юнитов, чем у противника" AND "у ИИ не больше 3 юнитов")
THEN "за каждого дезертира начислить сценарию штрафные баллы"

13) Под конец ввода стратегий их набралось уже под 25 штук. {Сложность игры #130}.


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


14) Примерно в начале была ещё интересная доработка. Изначально оценка ценности сценария вычислялась как разница сумм баллов:


Итоговые_баллы = Баллы_ИИ - Баллы_игрока

Но спустя несколько улучшений я вспомнил, что это не самое лучшее решение, т.к. тогда для ИИ будут одинаковыми ситуации «2 солдата против 1 одного солдата» и «4 солдата против 3 солдат». Поэтому баллы стали вычисляться как отношение:


Итоговые_баллы = Баллы_ИИ / Баллы_игрока

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


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


Вот как играет финальный ИИ {Сложность игры #9999}:

ИИ ходит сразу, а не тратит время на раздумья


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


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


- вычисления хода первого юнита начинаются сразу же после хода игрока, пока еще вылетает окошко, что сейчас начнётся ход противника. А это целых 4 секунды, которые игроком не воспринимаются пустым ожиданием;

- вычисления второго и последующего ходов начинаются тогда, когда только начинается анимация хода прошлого юнита (то есть когда курсор ИИ только начинается своё движение). А время всех анимаций уже 4.5 секунды. Хотя правильнее это назвать не вычислением следующего хода, а улучшением уже выработанной прошлой стратегии и поиска новой, т.к. на каждой итерации рассчитываются ходы всей команды;

- при анимации ходов ИИ к двигающимся юнитам летает курсор ИИ, который притворяется, что он по ним кликает. Курсор летает максимально быстро, но чтобы оставалась комфортность слежения за ним. Более того, добавление курсора не только позволило увеличить запас времени вычислений с 2 секунд до 4.5, но и сделал просмотр хода компьютера более комфортным для человека;

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


Чтобы всё это не лагало в браузере и работало с достаточно стабильным FPS, расчёты производятся асинхронно воркером (Web workers) [11].


Этим я хотел избавиться от раздражающего окошка ожидания «Компьютер ходит». Такая неприятная плашка есть во многих хороших играх, например, в Xenonauts [12]. Я считаю, что мне удалось справиться с этой проблемой.

Разработка искусственного интеллекта из искусственного идиота в пошаговой тактической игре Игры, Компьютерные игры, Разработка, Искусственный интеллект, Gamedev, Мобильные игры, Браузерные игры, Гифка, Видео, Длиннопост

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

Каков результат и в чём недостатки


Таким образом, получившийся компьютерный противник умеет достойно сражаться и хорошо пользуется любыми оплошностями игрока, а своих делает не слишком много. Тем не менее, я, зная все особенности его работы, хоть и с напряжением, но побеждаю его почти всегда (при равных условиях). А хотелось бы наоборот: чтобы даже зная о его особенностях, почти всегда ему проигрывать. ИИ далёк от идеала, поскольку используемый мною набор эвристик приводит к синергетическому наложению «ошибок моего восприятия» друг на друга. Вот эти ошибки:


1. Несовершенство и неполнота моей собственной стратегии, я не знаю всех наилучших стратегий, и поэтому не могу их обозначить и внедрить в игру.

2. Потеря эффективности (которая итак не идеальна) выработанных рабочих эвристик при переносе их на программный код. Например, моя человеческая эвристика «Юниты держатся рядом, но не слишком близко, чтобы избегать двойного урона от магов и не застрять в узких проходах». Эта эвристика помогает мне побеждать ИИ, но при обучении ею моего компьютерного оппонента, мне приходится качественное описание переводить в алгоритмическое с количественными оценками, и тут возможна потеря данных.

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

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


Полноценные генетические алгоритмы вместо «подбора на глазок» скорее всего позволили бы подобрать более оптимальные коэффициенты в эвристиках. Но это уже задача для будущих полноценных проектов — не хочется надолго застревать с прототипом. Текущим ИИ я вполне доволен: он расчётливый, немного коварный, достаточно агрессивный и не позволит игроку победить себя в сухую (в действительности чрезвычайно редко позволит).


Дополнительные возможности


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


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

2. Действительно интеллектуальные уровни сложности. Сейчас в основном уровень сложности определяет то, какие бонусы компьютерный игрок получит в качестве ресурсов (больше золота на старте или бонус в добыче) или как сильно его солдаты будут бить (+50% к урону). Это работает, но можно ведь сделать ИИ чуть менее умным просто постепенным отключением некоторых эвристик по мере уменьшения сложности.

3. В продолжении 2-го пункта можно создавать и разные расы/фракции компьютерных противников: у орков работают только агрессивные стратегии; у толп зомби только примитивные «бежать вперед и атаковать»; а у киборгов использовать всю мощь ИИ. Благодаря этому игроку перед нападением придётся оценивать не только числа у противников, но и их интеллектуальность.


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


Где пощупать


Вы можете протестировать силу этого ИИ в браузерке «AI tactical rumble. Test subject» бесплатно на площадках типа itch.io [13]. GET параметр ai (значения от 0 до 140 с шагом 10) позволит снизить сложность ИИ.


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


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


Список литературы


1. DeepMind — статьи на Хабре.

2. HTML5 games: Canvas vs. SVG vs. div на stackoverflow.

3. Комбинаторный взрыв — Википедия.

4. Совершенный код Стива Макконнелла — Хабр.

5. Эвристические методы — Википедия.

6. A* — Red Blob Games.

7. Генетический алгоритм. Просто о сложном — Хабр.

8. Восемь потрясающих игр с искусственным интеллектом от компании Google — Хабр.

9. Очень кратко о Суворове и Кутузове.

10. Master of Monsters – Disciples of Gaia — обзор на IGN.

11. A Detailed Explanation of JavaScript Game Loops and Timing.

12. Xenonauts и долгий экран ожидания ИИ.

13. AI tactical rumble. Test subject — на itch.io.

Показать полностью 8 1
327

Iron Meat (контра с отечественным сеттингом)

Предыдущая часть:  Iron Meat (контра с отечественным сеттингом)

Привет, Пикабу! Небольшой отчёт о прогрессе за год

Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост

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

(На момент написания предыдущего поста у меня было крайне плохое финансовое положение, так что издатель нашёлся ОЧЕНЬ вовремя)


Так же я начал сотрудничать с Борисом Грохом,  работы которого вдохновили меня на общий стиль игры, которым игра и интригует. Я обзавёлся первыми фанами в ВК именно благодаря его репостам, за что ему большое спасибо. Именно его постер к игре является главной "заманухой" на данный момент.

Музыкой всё так же занимается Darkman007 (и держит марку)

Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост

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

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

Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост

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

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

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

Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост
Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост

При этом отдельным пунктом стоит задача НЕ сделать головоломку в стиле "Silent Hill" - а-ля "а что ж в итоге там произошло то?" К концу игры всё должно стать ясно в теории

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

Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост

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


Конечно, далеко не все советы и идеи были хорошими - но это же бесплатно! Так что мои благодарности тем кто бескорыстно помогает улучшить игру, даже если их мысли пришлись мне не по нраву.

Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост

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

Об игре писали несколько статей и обзоров, даже брали несколько интервью, но это не было моей инициативой. Один раз вскользь упомянули в rockpapershotgun.com  Конечно, я только рад любому упоминанию :)

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

Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост
Iron Meat (контра с отечественным сеттингом) Инди, Indiedev, Pixel Art, Gamedev, Разработка, Гифка, Видео, Длиннопост

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

Так что в целом этот год был удачным. Я даже не надеялся на такой итог. Надеюсь, что следующий будет не хуже. Чего и вам желаю! С наступающим!


Отдельное спасибо друзьям и "Качалочке" (Рома и Денис просили отдельное), за то что верят в меня больше чем я сам и морально поддерживают


З.Ы. Извините за "тяжёлые" гифки


Видео с прохождением первого уровня:

https://youtu.be/3CT4bJmN51Y

Ссылки:

Демо: https://ironmeat.itch.io/iron-meat

ВК: https://vk.com/iron_meat_game

Твиттер: https://twitter.com/IvanMeat

Страница в STEAM должна скоро появиться


Борис Грох: https://vk.com/borisgrohart

Darkman007: https://vk.com/darkman007_club

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

Hold my beer! Часть 13. Новая стартовая локация и ее жители

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

Осталась самая сложная часть работы - квесты :(

Ну и кисонька, а то как же

Hold my beer! Часть 13. Новая стартовая локация и ее жители Unity, Gamedev, Indiedev, Игры, Мобильные игры, Видео
Показать полностью 1
76

CryEngine Gothic. Still Alive

CryEngine Gothic. Still Alive Gothic, Компьютерные игры, Gamedev, 3D моделирование, Kotics_open_sours, Gothic 2, THQ Nordic, Видео, Длиннопост

Приветствуем,уважаемые готоманы ! На связи Kotics Open Sours.


В свете анонса THQ официального ремейка Готика 1, хотим поведать о новостях нашего проекта:


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


2. Нам часто предъявляют разные претензии: движок не тот, механики отсутствуют, скрипты не сможете перенести, цвет и освещение не то, все делается медленно, проект стоит на месте и релиза не видать. ЧТО вообще нового то сделано за целый год? Для ответа придется рассказать немного о кухне.

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

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

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

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


Теперь по новшествам:


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


Б) Проект вобрал под свое крыло ресурсы Г2 просто потому что все ресурсы там пересекаются с Г1, а сделанные скрипт сразу работает на всех локациях или для всех персонажей.


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


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

Помощь приветствуется не только материалами но и донатами(в комментариях ссылка :) )

И конечно же,помогайте распространять информацию о нашем проекте.

С приходом THQ,наш проект переходит в фазу активной разработки. Следите за нами в ВК

И да хранит вас,Иннос !


з.ы Демо ролик о проделанной работе.

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

Another realm v0.06

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

Предистория (можно пропустить)
Планировать систему магии я начал уже давно, поэтому на её реализацию до нынешнего состояния у меня ушло не больше недели. Учитывая, что я не мог выделять много времени каждый день и то, что не малую часть времени ушло на попытки перейти к системе "разработки через тестирование" (test-driven development), я считаю, что справился весьма не плохо. Я начал чувствовать, что мои знания и навыки как в области геймдева в целом, так и программирования выросли на порядок, с тех пор как я начал разработку. Если кого-то интересует мой опыт разработки через тестирование в юнити и почему я пришёл к заключению, что лучше не использовать данную методику в этом проекте, могу написать об этом отдельный пост.

Компонентная система заклинаний.
Заклинания в мой игре это по сути комбинации различных компонентов, что позволяет создавать невероятное разнообразие заклинаний из небольшого количества компонентов. Так же эту систему можно будет внедрить в геймплей и позволить игрокам создавать собственные заклинания на подобие того, что было в морровинде и two worlds 1/2. Каждый компонент представляет из себя скриптовый объект( далее "со"), имеет свою реализацию функции "выполнить" и настройки которые он использует в этой функции. При использовании заклинания в сцене создаётся (или активируется из пула) объект, который инициирует и запускает заклинание(я называю его spellEngine или движок заклинания). Его задача в том, чтобы инициировать и проследить за выполнением всех компонентов заклинания и уничтожить(или вернуть в пул) все что с ним связано по завершению. Движок раздаёт компонентам ссылки на себя и следующий компонент в очереди и запускает выполнение первого компонента. Так же он запускает любые корутины, о которых его просят компоненты и следит за ними, чтобы знать, когда все компоненты закончили выполнение. Каждый компонент принимает ссылку на заклинателя, цель, начальную и конечную позицию и использует эти данные по своему усмотрению, а в конце выполнения, запускает выполнение следующего компонента и передаёт ему такие же данные. Весь сок в том, что компонент может изменять передаваемые данные, вызывать следующий компонент несколько раз или с задержкой. Например, компонент АОЕ находит все цели в определённом радиусе от цели и запускает следующий(а следовательно и все последующие) для каждой цели. Компонент "повторитель", запускает следующий компонент по той же цели несколько раз с опциональной задержкой. Компонент "снаряд" создаёт физический снаряд или спецэффект, которые летит в сторону цели или следует за ней и в конце передаёт новую позицию, как из начальную следующему компоненту. Компоненты имею опцию быть параллельными. В таком случае они запускают следующий компонент сразу, не дожидаясь окончания своей функции.
На данный момент имеется 5 компонентов: Урон, визуальный эффект, снаряд, повторитель и область действия. Каждый компонент имеет дополнительную настройку, поэтом можно очень быстро создать новые варианты компонентов. Все это создает очень гибкую систему создания заклинаний. Из минусов, разве что, сложность балансировки всевозможных вариантов заклинаний с точки зрения геймплея.
На данный момент в ближайших планах добавить ещё один компонент: "силу" (имеется ввиду термин из физики, force). Данный компонент позволит отбрасывать, притягивать и подкидывать персонажей и другие предметы применяя к ним физическую силу.
Интересно услышать от вас идеи для будущих компонентов. Возможно, что-то мне понравится и я реализую это в игре.

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

Требуются:
-3д моделер
-3д аниматор
-создатель спецэффектов
-создатель интерфейса
-иллюстратор/художник
(можно несколько в одном лице. Опыт и знания не обязательны если у вас есть желание обучаться и вы готовы тратить несколько часов в неделю на проект)

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

Another Way - текущий прогресс инди Action/RPG

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

Всем привет! Прошло немногим больше месяца и по традиции я спешу поделиться прогрессом нашей авантюры, серии под названием “Через тернии к игре мечты”. Хочу напомнить, что же тут происходит. Мы разрабатываем игру Another way - Нелинейная Action/RPG от третьего лица с элементами интерактивного кино, выполненная в лучших традициях средневекового Fantasy, на базе собственной вселенной. Разработка ведется на Unreal Engine 4 усилиями небольшой, но очень вдохновленной команды.


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


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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост
Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост
Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

Но иногда отрисовывать просто необходимо, и тогда получаются неплохие референсы для будущих 3D моделей

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост
Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

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


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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

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

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост
Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост

Помимо визуального, нарративного и геймплейного восприятия - огромную важность играет звук, уже сейчас у нас есть общее представление картины будущего звучания и наработка по главной теме Another Way


Another Way - Main Theme OST (WIP)

Также мы занимались другими вещами, к примеру переехали всей командой в дискорд, начали вести обсуждения по направлениям, перевезли дизайн документ в Hacknplan (кстати хороший сервис, очень рекомендую), там же ведем задачи и статусы, подняли VPN сеть для полноценного пользования Multi User удаленной командой, это заняло очень много времени, колоссально помогло разработке в целом, но об этом не очень интересно читать. Поэтому предлагаю просто вдохновиться великолепной музыкой Jeremy Soule - Njól, где-то на берегу озера, возле деревни Мармид.

Я как и прежде буду рад вашим вопросам, комментариям и мы все еще ждем вас в нашем сообществе Вконтакте в любое время.

Another Way - текущий прогресс инди Action/RPG Indiedev, RPG, Unreal Engine 4, Another Way, Gamedev, Инди, Видео, Длиннопост
Показать полностью 14 2
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: