В предыдущей статье я порадовал тех, кто следил за блогом проекта Growing Crystals его возобновлением, и да, порадую еще больше — проект продолжается и движется вперед, неделя была ударной! Объём красивого аккуратного кода клиента более 1000 строк и более 1000 строк кода сервера. Проект переходит в фазу “приятного письма”, когда вся структура классов несколько раз оптимизирована, выстроена и понятна, а все новые фичи добавляются достаточно быстро и легко. И, наконец, достигнута цель — реализован стабильный мультиплеерный движок, можно заняться самым главным — игровой логикой. Проект постоянно обновлется на домене growing.petukhovsky.com. Сегодняшняя статья — подведение итогов недели.
О том как мы с братом организовали работу
Не долго думая мы определили — раз изначально задача играбельности и самого продукта на мне, то сервер, который и отвечает за игровой баланс и играбельность я возьму на себя + на нём обрабатывается основная логика + я глубже погружен в веб-сокеты, которые используются в серверной реализации. Брату я отдал клиента написанного на JavaScript к тому же, он имел небольшой опыт с этим языком. Стандартная практика когда работают два человека — разделять клиент и сервер. Это позволяет постоянно себя тестировать не дожидаясь большой сборки и функций написанных друг другом. Для совместной работы мы использовали GIT, с которым нам удалось разобраться за несколько часов. Система достаточно удобная — можно синхронизировать работу в несколько кликов, что просто незаменимо при работе в команде. Почему предпочли SVN-у и CVS именно GIT? Просто потому что GIT считается самой современной и удобной системой. У меня не было опыта работы ни с одной из систем. В качестве GIT клиента используем SmartGitHg 6, в качестве сервера выбрали бесплатную версию bitbucket.org от создателей JIRA, Atlassian.
Для разработки оба использовали JetBrains WebStorm, хотя для PHP конечно лучше PhpStorm, но, к сожалению, на имеющихся картах пока на не нашлось лишних 99 USD. Наконец, удалось найти реально лучшие оболочки разработки. Компания JetBrains делает действительно самые удобные IDE — удалось испробовать несколько: для Java и Web, но каждая будто читала мысли — всем рекомендую, даже тем, кто не верит и продолжает сидеть на Eclipse, тем более, цены очень гуманные.
О приоритетах
В начале недели мы составили уточнённую майнд карту, она кликабельна.
Она являлась для нас чем-то вроде user story, хотя, скорее, просто кучей из которой мы брали задачи. Каждое утро мы смотрели на неё и список TODO оставленный комментариями в коде, определяли задачи и начинали их решать параллельно на клиенте и сервере. В обед проводили мини брифинг, обсуждая протокол клиент-серверного взаимодействия и иногда внося в него правки. Вечером собирали работающую пару клиент-сервер и проводили тестирование. Раз в несколько дней собирали проект в GIT в ветку master увеличивая минорную версию проекта, сегодня она достигла отметки v.0.10. После выполнения задачи из майнд карты отмечали её птичкой, а задачи, к решению которых мы перешли, флажками. В конце недели все выполненные задачи с майнд карты удаляются.
О сайте проекта
Изначально сайт проекта не планировался, но, поскольку самое главное для нас это достаточная аудитория для тестирования идей и аудитория экспертов просто для создания интересного игрового проекта, то мы решили что проекту просто не обойтись без веб-сайта с небольшим описанием проекта и регистрацией — нам же нужно хранить учётные записи и пароли пользователей. Как оказалось, задача разработки игрового сайта совсем не тривиальная и значительно отличается от любого другого веб-сайта. Потратив несколько часов на изучение отечественных и западных сайтов браузерных игр, я пришел к следующему прототипу страницы.
Основные требования которые выдвигаются к разрабатываемому веб-сайту:
- 100% поддержка мобильных устройств iOS/Android/WindowsPhone;
- простота обусловленная малым количеством кликов для достижения цели.
Сводка
Начало: 25 апреля 2014 года.
Приостановка проекта: 21 мая 2014 — 13 июля 2014 года.
Команда: 1 (25 апреля), 1 (14 июля).
Израсходовано: 128 + 48 = 176 чч., 8 + 48 = 56
Рабочих дней: 19 + 6 = 25, 1 + 6 = 7
Средняя производительность: 176/25 = 7,04 чч/день, 56/7 = 8 чч/день
Описание игрового процесса
Расчет баланса
Игровая графика
Веб-клиент
Игровой сервер
Веб-сайт
ИТОГО
Продолжение: Growing Crystals vol 13. Логика игрового процесса