Growing Crystals vol 6. день до релиза

7й день, 6й выпуск серии статей о разработке стратегической игры Growing Crystals с 0!
Начнём день с небольшого code review, в первую очередь PHP. Даже на первый взгляд понятно, что сервер надо будет, если не переписать с 0, то точно подвергнуть детальной переработке, но пока он выполняет главную функцию — работает, трогать его не станем, ведь завтра релиз и наша задача сделать игру завершенной. Т.е. как минимум добавить Welcome Screen, ввод имени игрока, завершенное игровое задание и scoreboard, и, конечно же надо переработать управление, отказавшись от объектов html за пределами canvas.

Продолжим с того, чем закончили вчера. C разработки сбалансированного первого задания. Трудно начать без допущений, пусть задание будет сбор/выращивание 1000 синих кристаллов, что как раз соответствует названию проекта. Пусть кристаллы генерируются равномерно: 1 синий кристалл в 1 секунду, и 1 красный кристалл в 100 секунд. Подумалось о том, что ведь баланс может быть достижим не только за счёт того, что что-то мешает, а за счёт того, что можно строить разные пути к достижению цели. Другими словами, мы можем обойтись без врагов и без сломанного оборудования добычи кристаллов, дав игроку использовать разные по своим качествам инструменты достижения цели. Что и попробую реализовать. Для этого составим «кристальную бухгалтерию» почти без цифр.

Приход кристаллов

  • Естественным образом: 1 синий кристалл в 1 секунду, и 1 красный кристалл в 100 секунд
  • Из сборщика кристаллов, которых может быть несколько видов

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

Расход кристаллов

  • Естественным образом: при перемещении на 1 клетку расходуется 2 синих кристалла
  • Строительство сборщиков и сейфов

Модель построена, остаётся рассчитать стоимости и мощности сборщиков и сейфов.

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

Традиционно привожу текущую работающую версию. К сожалению, снова пока не адоптивная и для разрешения выше 660px. Элементы управления по прежнему на экране.



HTML5 CANVAS

Количество обращений к серверу пока не известно.

p.s. Парень с пивом, это почти баг. Картинка скопипащена с просторов Интернета.

Завтра день релиза, по планам: реализация строительства, более живой клиент (живой счётчик времени и кристаллов), окончание игры и scoreboard.

Идеи в goods box

  • Управление на 100% с клавиатуры
  • WebSocket
  • После первого релиза завести аккаунт на habrahabr
  • Создать Git для проекта

Идеи в trash box

  • На всех объектах принадлежащих игроку горит дополнительная голубая лампочка;
  • Если у игрока нету топлива, что его авиасёрф перестаёт работать и садится на землю, а в обычном режиме он слегка покачивается в воздухе и работают 4 реактивных двигателя по краям авиасёрфа;
  • Если на складе что-то есть, то у него мигает индикатор;
  • Апгрейды защитных башень;
  • Взрывающиеся при разрушении склады;
  • Артефакт увеличивающий скорость перемещения игрока;
  • Артефакт увеличивающий радиус действия игрока;
  • Предмет, который можно бросить на несколько экранов, чтобы посмотреть что там происходит;
  • Мины;
  • Кузница опыта, производящая специальное вещество, получаемое из сжигания кристаллов и необходимое для получения звания;
  • Звание — это предмет в инвентаре.
  • Объект карты — ограждение;
  • Объекты, расползающиеся по карте;
  • Декоративные мегаобъекты;
  • Наличие сверхдорогих объектов с особыми свойствами;
  • Список друзей, чтобы на них не действовала защитная башня;
  • Общие склады для друзей;
  • Шаринг в социальных сетях;
  • Переход на WebGL.

Краткий итог: Продумана версия задания для первого релиза. Разработан Welcome Screen. Ввод имени пользователя. Естественный рост кристаллов.

Сводка

Начало: 25 апреля 2014 года.
Команда: 1 человек.
Израсходовано: 46 + 10 = 56 чч.
Средняя производительность: 56/7 = 8 чч/день

Описание игрового процесса

31/100

Расчет баланса

10/100

Игровая графика

20/100

Веб-клиент

17/100

Игровой сервер

22/100

ИТОГО

100/500

Продолжение: Growing Crystals vol 7. Релиз r1