Разработчик GEARGUNS - Tank offensive Алексей Глинский о создании игры в одиночку, изначальной идее и трудностях

22 сентября состоялся релиз шутера GEARGUNS - Tank offensive в магазине Steam. Инди-проект практически полностью сделан художником компании Game Insight Алексеем Глинским.

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

В закладки

Меня зовут Алексей Глинский, я инди разработчик и создатель проекта GEARGUNS — Tank Offensive. Мне всегда нравились военные игры, и хотелось создать особенный проект, в котором будут танки, самолёты, фантастические роботы, эпичные сражения на земле, в воздухе и на море. Я долго вынашивал идею, подбирал множество референсов, анализируя подобные жанры и игры.

С 14 лет мечтал заниматься компьютерной графикой, как сейчас помню: увидел первуючасть мультфильма «История Игрушек» и загорелся делать что-то подобное. В 17 лет переехал в Москву устроился работать в фирму 1С моделлером.

И закрутилась карьера разработчика игр, ездил на три года в Южную Америку и работал так же по профилю. За 15 лет в индустрии освоил множество профессий. Последнее время пробую заниматься не только разработкой, но и издательской частью — пока получается не очень. Однако это интересно и всегда есть к чему стремиться.

Об идее

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

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

Сюжетную линию решил строить вокруг трёх персонажей:

Лейтенант Лима — пилот военного самолёта: спокойна, целеустремлённа, умеет в нужный момент правильно оценить обстановку и принять обдуманные решения, проявив при этом решимость и военную смекалку. Профессионально управляет военно-транспортными средствами.
Джонс — майор отряда Gear guns — ответственный командир прошедший много военных операций. Основной персонаж игры, с которым мы проходим танковые миссии. Заботится о Лиме и иногда остро шутит.
Генерал Форд — командир отряда Gear guns — на протяжении всей игры управляет военными операциями по уничтожению вражеских инопланетных захватчиков.

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

О разработке

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

{ "items": [{"title":"","image":{"type":"image","data":{"uuid":"40b8b186-8aef-414c-a66c-48fede96d6aa","width":1920,"height":1080,"size":832225,"type":"jpg","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"6983cf00-6cd6-48ce-9985-627e4c13bf72","width":1920,"height":1080,"size":987766,"type":"jpg","color":"","external_service":[]}}}] }

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

Максимальный размер вместе со всеми игровыми ресурсами — 500 мегабайт, что позволяет быстро загружать игровую сцену и не сильно увеличивать размер всей игры. Рэндеры — это вечный маятник, который ходит в разные стороны. С одной стороны хочется сделать всё статическим, чтобы работало быстро, с другой — это сильно увеличивает размер загружаемой сцены на 200-300 мегабайт. А с третьей, статические сетки мертвецки неподвижны, гоняя на танке, очень хотелось передать как можно больше аркадной физики: взрывы, разлетающиеся объекты, искорёженные машины, ломающиеся деревья, падающие столбы.

Я решил делать подмену целых статических сеток на разрушаемые динамические —таким образом, пока объект стоял неподвижно, он статически батчился (дозируется — прим. ред). Когда на него наезжали или стреляли — он исчезал и появлялся динамический аналог, с реальной физикой и системой LOD.

Пример:

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

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

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

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

Таким образом, в игре около 30 уровней в разных режимах и на разной технике.

О трудностях

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

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

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

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

Итоги

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

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

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

Также напоминаем, что Алексей выделил редакции DTF несколько ключей GEARGUNS - Tank offensive, которые мы отдадим в комментариях. Отправляем в личные сообщения в социальных сетях.

#инди #индидев

{ "author_name": "Николай Чумаков", "author_type": "editor", "tags": ["\u0438\u043d\u0434\u0438","\u0438\u043d\u0434\u0438\u0434\u0435\u0432"], "comments": 46, "likes": 10, "favorites": 0, "is_advertisement": false, "subsite_label": "gamedev", "id": 1222, "is_wide": false }
{ "id": 1222, "author_id": 773, "diff_limit": 1000, "urls": {"diff":"\/comments\/1222\/get","add":"\/comments\/1222\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/1222"}, "attach_limit": 2, "max_comment_text_length": 5000 }

46 комментариев 46 комм.

Популярные

По порядку

Написать комментарий...

Алексей Глинский

4

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

Ответить

Алексей Глинский

3

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

Ответить

Valentin Kirillov

Алексей
0

Оправдался уход с основной работы ради собственного проекта?

Ответить

Алексей Глинский

Valentin
6

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

Ответить

Петр Плавников

1

В тексте не нашел, но интересно - сколько времени заняла разработка игры?

Ответить

Wage Slaiv

Петр
4

Тут нужно понимать, что если у проекта есть арт-директор, издатели, продюссер и остальные люди, которые могут вставить своё слово, то будет много-много переделок. Я не удивлюсь, если у него весь арт и прочее делалось с 1-1.5 раза, а не с 5-7, как обычно. Просто потомучто некому было сказать "мне не нравится, переделай". Да, качество у него есть. Но тут нужно помнить, что 80% времени разработки это возня с артом и выслушивание претензий и пожеланий. Тут этого нет. Он мог её сделать даже за 1 год.

Ответить

Алексей Глинский

Wage
3

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

Ответить

Tony Bear

1

Потрясающий человек! Молодец, соло сделать столько арта, накодить и оттестить, браво!

Ответить

Алексей Глинский

Tony
2

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

Ответить

Sergey Babaev

1

Ну погнала раздача ключей)

Ответить

Threei

0

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

Ответить

Алексей Глинский

Threei
2

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

Ответить

Konstantin Boronenkov

0

В одно лицо сделать такое - очень круто.

Ответить

Алексей Глинский

Konstantin
1

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

Ответить

Threei

0

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

Ответить

Алексей Глинский

Threei
1

ну жизнь одна живём один раз)) кто знает что лучше что хуже. Было желание попробовать и вот попробовал. В целом не жалею совсем что попробовал.

Ответить

Valentin Kirillov

0

"заканчивая большими двухсоткилометровыми локациями"- эммм... это сколько метров по длине/ширине вышло у вас? Самые большие локации, что мне приходилось делать были размером 64 кв.км (8×8км), и это был лютый ад)) Вся территория скайрима или гта 5 меньше размером. Как-то даже не могу представить карты таких размеров в игре, созданной одним человеком.

Ответить

Алексей Глинский

Valentin
0

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

Ответить

Valentin Kirillov

Алексей
0

"Отрежьте мне язык, но я должен это увидеть!", как говорилось в одном старом анекдоте. Еще есть возможность выделить ключик?)

Ответить

Алексей Глинский

Valentin
1

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

Ответить

Valentin Kirillov

Алексей
0

И всё же 200×200км - это 40 тысяч квадратных километров. 200 квадратных километров это 40×50км.

Ответить

Леонид Сиротин

Valentin
0

Не 4 на 50 разве?

Ответить

Valentin Kirillov

Леонид
0

Да. Я написал лишний ноль) либо 4х50, либо 5х40. Было бы здорово добавить возможность правки собственных комментов, чтобы не оверквотить лишний раз по причине опечаток. Её и на vc.ru всегда не хватало.

Ответить

Станислав Дашкевич

0

Сергей, ты знаешь, зачем я здесь :D

Ответить

Danya Monchar

0

и мне ключ )

Ответить

Sergey Babaev

Danya
0

ушло в личку на ФБ, наверное лежит в "других"

Ответить

Сергей Пуговкин

0

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

Ответить

Sergey Babaev

Сергей
0

Шлем только в соц.сети... вы нкиакую не указали

Ответить

Сергей Пуговкин

Sergey
0

Как это сделать?

Ответить

Сергей Пуговкин

Сергей
0

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

Ответить

Сергей Пуговкин

Сергей
0

На всякий случай вот, например, фейсбучный: https://www.facebook.com/rianon.sorrowshine

Ответить

Sergey Babaev

Сергей
0

ушло в ЛС

Ответить

Никита Макеев

0

Пожалуйста :)

Ответить

Oleh Korotkov

0

Ключики есть ещё? Я бы взял!

Ответить

Sergey Babaev

0

Всем кто по форме запросил ключи - отправили, остались еще несколько)

Ответить

Alex Kuznetsov

0

Угостите, пожалуйста. Буду посмотреть =)
https://www.facebook.com/alex.kuznetsov.39

Ответить

Pavlo Aleksievych

0

Дайте, пожалуйста? ключик.

Ответить

Айрат Аюпов

0

Ключики еще остались? :)

Ответить

Dmitry Lazarev

0

ключик на фб плиз!
Автор нереален! всё запилил в одиночку %)

Ответить

Sergey Babaev

0

Ключи закончились
Тем, кто получил - приятной игры)

Ответить

Дмитрiй Насоновъ

0

Как реализовывался ИИ противников? Были ли с этим трудности?

А вот всё таки, сколько времени ушло на разработку? От концепта и до реализации.

Качество текстур приводит в восторг! :)

Ответить

Николай Галактионов

0

Поздравляю автора с завершенным проектом. Игру обязательно приобрету, но позволю себе сделать пару советов сейчас.
1. Отредактируйте описание на русском языке на странице в Steam, пожалуйста. В нём довольно много мелких грамматических, орфографических и стилистических ошибок. Может дело во мне, но описание "Свирепых боссов" я вообще сумел прочитать только раза с третьего.
2. В будущем было бы неплохо добавить в игру ачивки. Знаю несколько человек, принципиально не покупающих новинки без достижений.)
Ещё раз поздравлю автора и пожелаю дальнейших успехов в игрострое.

Ответить

Станислав Дашкевич

Николай
0

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

Меня всегда убивает, когда у отечественного разработчика даже родного языка в опциях нет =(

Ответить

Dimka Ivanov

Станислав
0

Русский язык второй по популярности в стиме. Без него смысла в обще около нуля выпускать проект.

Ответить

Станислав Дашкевич

Dimka
0

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

Ответить

Алексей Глинский

0

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

Ответить
0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]