{ "author_name": "Николай Чумаков", "author_type": "self", "tags": ["\u0438\u043d\u0434\u0438","\u0438\u043d\u0434\u0438\u0434\u0435\u0432"], "comments": 46, "likes": 10, "favorites": 0, "is_advertisement": false, "section_name": "gamedev", "id": "1222", "is_wide": "" }
Николай Чумаков
1 528
Gamedev

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

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

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

Поделиться

В избранное

В избранном

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

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

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

Об идее

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

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

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

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

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

О разработке

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

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

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

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

Пример:

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

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

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

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

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

О трудностях

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

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

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

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

Итоги

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

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

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

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

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

Популярные материалы
Показать еще
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Узнавайте первым важные новости

Подписаться
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "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", "tablet" ], "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": "create", "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-549065259", "adfox_url": "//ads.adfox.ru/228129/getCode?p1=bxeub&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid21=&puid22=&puid31=&puid32=&fmt=1&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } } ]