Octopus Battle

Octopus Battle - онлайн битва осьминогов. Игра состоит из 2 раундов. Игроку даётся от 2 до 8 осьминогов бойцов, с помощью которых он должен выбить соперника с игрового поля. Бойцы отличаются размером и количеством получаемых за них баллов (от 1 до 3). Победит тот, кто по сумме двух раундов выбьет больше осьминогов соперника. 

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

     

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

     

Octopus Battle Android

Если вам понравилась игра, поддержите проект: поставьте лайк ♥ !

Также вступайте в группу вконтакте:

 Deef Studio

 

Дневник разработки № 1. О том как всё изменялось за месяц

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

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

- перенести всё на новую версию движка;

- оптимизировать ресурсы игры;

- портировать проект под веб;

- переделать серверную часть с Node js на p2p/Node js;

- перерисовать весь UI;

- добавить немного нового в геймплей.

- добавить возможность играть с примитивным AI;

- добавить новый режим на прохождения;

- добавить достижения, хоть пару штук;

- локализация на русский и английский;

- простой вариант туториала при первом запуске.

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

Используемые технологии:

- платформа: Flash/AIR (web/mobile);

- язык: Actionscript 3;

- движок: CitrusEngine + Box2D;

- фреймворк: Straling 2.1;

- костная анимация: DragonBones 4.6;

- шрифты: ShoeBox;

- атласы: TexturePacker;

- контроль версий: Git;

- управление проектом: Trello.

 

Детали реализации задач

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

Учитывая первичность веб-версии и ряд нюансов, было решено переделать серверную часть на пару p2p + Node js, для онлайн режима. Реализация не отняла много времени, поскольку готовых решений было полно.

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

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

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

Якорь - теперь прицел закреплён на экране, и выстрел осуществляется кнопкой. Очень помогает при игре на мобильном устройстве.

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

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

Возможно, принцип реализации кому-то покажется нестандартным, но вместо отрисовки с помощью какого-нибудь graphics/canvas я использовал mesh-подход. Почему такой выбор? Не создаёт дополнительных drawcalls. Думаю независимо от используемого языка и движка принцип реализации, так или иначе, применим. Берётся обычный квадратный mesh из двух треугольников. Заполняются координаты вершин, координаты текстуры. Смещаем вершины в виде рогатки. Подгоняем uv-координаты текстуры.

Далее двигаем вершины как нам нужно, основное направление задаёт вершина с индексом 2. Относительно вершины 2 вычисляем координаты остальных вершин. 0 и 3 будут перпендикулярны вершине 2, а 1 всегда равноудалена от 2.Вычисление координат относится к базовым знаниям математики.

Для цветовой индикации берём цветовую модель HSV (или HSB) и смотрим, какой цветовой оттенок (H - hue) нам подходит. SV оставляем без изменений. Мне требовалось от красного до зелёного.

Чем больше сила тем ближе к красному. Получилась простая формула получения цвета:

hue = (120 - 0) * distance / maxDistance= 120 * distance / maxDistance

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

Это всё касательно изменений геймплея.

 

Перерисовка UI

Перейдём к графической части. Пункт, на который ушло наверно 60% всего времени. На момент релиза в 2015 году вся графика была куплена в сумме за 11$ и тогда было просто лень всё рисовать. Постепенно получая опыт на протяжении 8 месяцев, теперь я был готов перерисовать всё заново.

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

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

После написания примитивного AI, был добавлен режим "Приключения". Пройдя 15 уровней, игрок получал награду в 1000 золота на аккаунт онлайн режима.

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

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

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

Что касается онлайн части. Освежил меню подключения к серверу.

А также перекомпоновал игровое окно онлайн режима.

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

Иконка получила новый образ. 4-й по счёту.

Большой баннер для Google Play теперь более привлекателен.

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

Локализация

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

Туториал

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

Первое тестирование

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

- добавил отправку эмоций, для режима "Онлайн";

- описание "Ожидание хода противника...";

- для режима "Онлайн" добавил индикатор с выделением того кем целится противник;

- добавил мигающие лампочки у кнопки "Магазин", для большей заметности;

- перетасовал уровни в режиме "Приключения", чтобы проще проходить;

- отключил засыпание экрана в мобильной версии, при игре "Онлайн".

Игра хоть и простая, но прислушиваться к пользователям всегда стоит. Ну и вот такая картинка по функционалу "Эмоции".

Заключение

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

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

 

 

 

android octopus battle
Логотип проекта

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

Играть
1


Участие в джемах


blog comments powered by Disqus