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. Элементы управления по прежнему на экране.
Количество обращений к серверу пока не известно.
p.s. Парень с пивом, это почти баг. Картинка скопипащена с просторов Интернета.
Завтра день релиза, по планам: реализация строительства, более живой клиент (живой счётчик времени и кристаллов), окончание игры и scoreboard.
Идеи в goods box
- Управление на 100% с клавиатуры
- WebSocket
- После первого релиза завести аккаунт на habrahabr
- Создать Git для проекта
Идеи в trash box
- На всех объектах принадлежащих игроку горит дополнительная голубая лампочка;
- Если у игрока нету топлива, что его авиасёрф перестаёт работать и садится на землю, а в обычном режиме он слегка покачивается в воздухе и работают 4 реактивных двигателя по краям авиасёрфа;
- Если на складе что-то есть, то у него мигает индикатор;
- Апгрейды защитных башень;
- Взрывающиеся при разрушении склады;
- Артефакт увеличивающий скорость перемещения игрока;
- Артефакт увеличивающий радиус действия игрока;
- Предмет, который можно бросить на несколько экранов, чтобы посмотреть что там происходит;
- Мины;
- Кузница опыта, производящая специальное вещество, получаемое из сжигания кристаллов и необходимое для получения звания;
- Звание — это предмет в инвентаре.
- Объект карты — ограждение;
- Объекты, расползающиеся по карте;
- Декоративные мегаобъекты;
- Наличие сверхдорогих объектов с особыми свойствами;
- Список друзей, чтобы на них не действовала защитная башня;
- Общие склады для друзей;
- Шаринг в социальных сетях;
- Переход на WebGL.
Сводка
Начало: 25 апреля 2014 года.
Команда: 1 человек.
Израсходовано: 46 + 10 = 56 чч.
Средняя производительность: 56/7 = 8 чч/день
Описание игрового процесса
Расчет баланса
Игровая графика
Веб-клиент
Игровой сервер
ИТОГО
Продолжение: Growing Crystals vol 7. Релиз r1