{ "author_name": "Никита Борисенко", "author_type": "self", "tags": [], "comments": 18, "likes": 36, "favorites": 8, "is_advertisement": false, "section_name": "blog", "id": "11265", "is_wide": "" }
Никита Борисенко
849
Блоги

Школота в геймдеве или как мы сделали свой шутер

2013 год. 7-8 класс. Как и все ровесники, в то время мы с друзьями активно залипали в разных игрушках на компе и, как и многие в то время, начали осваивать сетевые F2P игры с браузерных социалок. Популярные в то время Батла, Копатель, Contract Wars и Кубезумие 2 знал практически каждый, кто имел дело с браузерными играми.

Поделиться

В избранное

В избранном

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

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

В это же время я и начал интересоваться геймдевом. Начиналось всё с простых вопросов: "А как создаются игры?", "Что такое скрипты?" и "Смогу ли я создать свою игру?".

И понеслось: гайды на ютубе, изучение движков (перепробовал разные, от 3D Rad и Game Maker до Unity), попытки написать свои первые скрипты и нарисовать первые 3D модельки. Где-то с 2014 по 2015, то бросая, то опять начиная я добился первых результатов, сделал простую бродилку: лабиринты от первого лица и портировал эту "демку" на Android (аналогичные игры в виде тупых лабиринтов, между прочем, в то время входили в топ 100 в Google Play, так что от создания нечто подобного счастья не было передела).

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

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

Перед началом разработки придумали название - Кубум.

Тут то и началось самое интересное... Модель игрока и перерисованные текстуры кубов из Кубезумия 2 откуда-то достал Алексей. 20 используемых спрайтов интерфейса остались в движке из предыдущей игры DEADZONE. Какой-то декор мы брали тоже прямиком из Кубезумия 2 (поэтому Кубум, фактически, является глубоким модом этой игры). Это весь контент, который был у меня на руках.

Если карты строились в Кубезумии местными инициативными строителями (тоже детьми), а затем просто импортировались в Кубум, то с графическим контентом было не всё так просто: однозначно нужен был художник, который будет рисовать интерфейс, модели, текстуры и тд. Какой художник согласится работать в игре, которую делает школота, с туманными перспективами и "за идею"? Правильно, тоже школьник. Так, через своего друга, я нашёл 8-ми классника, который делал неплохие арты, но до этого времени не занимался 3D моделированием, его я и взял в команду (о чём в последствии ни разу не пожалел).

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

Первый арт, "недоконцепт" нашей игры.

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

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

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

Мало-помалу мы набирались хоть какого-то опыта и уже на стадии ЗБТ, а оно длилось месяца полтора, менялись к лучшему. Например, художник очень быстро учился создавать 3D модели. Например, Barret "до" и "после":

Строили карты, пытались улучшить графику:

11 мая 2016 года

Чудо детского геймдева под названием "Кубум" вышло в ОБТ и стало доступно всем желающим в каталоге браузерных игр Вконтакте.

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

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

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

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

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

Но вот тут уже начались проблемы с платформой: браузеры повсеместно стали отказываться от поддержки Unity Web Player и то, что мы смогли запустить WebGL версию игры, никак не помогло нам, ибо эта технология ещё слишком сырая и у многих она жутко тормозит с нашей не самой лёгкой графикой (пиксельным играм в этом плане повезло больше).

Если не в браузере то где? Ответ очевиден, поэтому мы попытались пройти Steam Greenlight. Прошли и даже повисели на главной странице Steam.

Только отзывы там ужасные, ибо в стиме не любят адаптации браузерных F2P игр. Тем не менее, фанатов там много, особенно не из России. Есть и те, кто наиграл 500-700 часов.

Конец 2016 и начало 2017 мы занимались обновлением игры, внедрением нового контента, исправлением багов. Не смотря на то, что художники всегда присутствовали в нашей команде, в полной степени успевать делать объём необходимой работы они не успевали, поэтому нам приходилось заниматься фрилансом и заказывать модели оружия и текстуры для скинов у "наёмных" художников. Всего их было 3, и все они тоже школьники :D

Новая история на новой платформе

Параллельно с PC версией, зимой мы выпустили мобильную версию игры на Android, чисто ради эксперимента. Одной из особенностей была полная кроссплатформенность: можно было залогиниться через ВКонтакте и играть со своего PC аккаунта на общих серверах с PC игроками в одном бою. Чтобы уравновесить шансы на победу и облегчить управление игрокам на мобилках - мы добавили помощь в наведении и автострельбу при наведении на противника. Вот только в реальности было не всё так гладко: мобильная версия была жутко неоптимизированной, управление, не смотря на автострельбу, всё равно жутко неудобным. А обновлять мобильную версию одновременно с PC (учитывая, что мы поддерживаем одновременно WebPlayer, WebGL и Steam) оперативно никогда не получалось. Стоит отметить, что не смотря на это, игра получила положительные оценки в Google Play :D

Сказалось также и то, что близились экзамены. Подготовка к ЕГЭ отняла всю весну, а поступления и отъезды - всё лето. Поэтому не только мобильная версия, но и PC лишилась обновлений на длительное время. Последний месяц мы плотно занимаемся именно мобильной версией игры и выявили ряд ошибок:

- нельзя совмещать сервера мобильной и PC версии игры, так как то количество игроков в бою, которым обладает PC версия, слишком велико для мобильной версии и увеличивает нагрузку на устройство в ущерб FPS. Убрав кроссплатформенные бои (но оставив общий аккаунт через авторизацию ВКонтакте) мы сделали командные бои в формате 4х4 (или до 8 человек в deathmatch)

- долго пробуя разные методы оптимизации карт (рендера) от атласов текстур и динамической загрузки кубов, до статической геометрии и индивидуальных текстур для каждого материала, мы нашли самый работоспособный вариант: вручную объединить все полигоны, использующие одну текстуру в один меш (так как static batching не давал нам нужного результата и практически никак не уменьшал количество батчей) и уменьшить количество декора по сравнению с PC версии игры. Таким образом, мы получили полные аналоги карт из PC версии игры с теми же лайтмапами и освещением, только с немного меньшим количеством декора при достойном FPS даже на бюджетных устройствах.

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

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

Типа эпилог

Кто бы мог подумать, что начатая полтора года назад не серьёзная "игра в геймдев" дойдёт до миллиона установок по всему миру (на разных платформах), публикацией в Steam и полноценным релизом на мобильных устройствах, тепло принятым игроками. А я ведь просто играл в браузерки...

Вроде эпичненько :D
Популярные материалы
Показать еще
{ "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" } } } ]