С момента выхода предыдущей статьи прошло около 2х месяцев. За это время мне удалось постичь и воплотить в жизнь реализацию веб-сокет сервера на PHP.
Сегодня, наконец, мне удалось перенести проект на технологию веб-сокетов в связи с чем рабочая версия проекта больше не будет публиковаться в блоге, а займёт отдельный домен growing.petukhovsky.com. Сегодня не будет большой статьи о технологиях и о том, что и как я сделал, я просто расскажу о том что сделано за сегодня, а также намечу определенный план работ на несколько дней. Да, наконец я разобрал весь goods box.
Идеи в goods box
WebSocketСоздать Git для проекта
Переход на веб-сокеты
Переход оказался весьма прост и занял не более 6 часов. Это оказалось значительно проще чем я рассчитывал. В проект был добавлен класс websocketserver_class из статьи чат на веб-сокетах. Оказалось достаточным переписать только метод game->init() в котором были совершены очень простые правки:
- Заменено получение сообщений от клиента $_GET на сообщения переданные по веб-сокету в формате JSON
- Изменен принцип сохранения данных игрока на стороне сервера, вместо сохранения данных игры в сессию сделано сохранение в массива в памяти
- Изменена система отправки сообщений клиенту на отправку по протоколу веб-сокетов
Конечно, нельзя говорить о полноценном уходе от REST, поскольку логика приложения осталась та же — клиент отправляет серверу данные, сервер отвечает, изменился только транспорт с AJAX на веб-сокеты. Но, этот шаг был жизненно необходим, поскольку без него не была возможна дальнейшая реализация проекта и реализация нормальной логики уведомлений со стороны сервера.
Что происходит
Проект уже практически приблизился к стадии альфа (40% общего объёма работ) и было принято решение изменить технологии ведения проекта. Как было отмечено выше — был запущен GIT с репозиторием на bitbucket.org, все наброски/идеи/мысли переехали в майнд карту проекта.
Писать в блог по данному проекту теперь стану несколько меньше, потому что сейчас уже накоплена определенная база знаний достаточная для постоянной работы и не вижу для себя новых предметов для исследований в ближайшие недели. Скорее в блоге будет некое подобие changelog-а.
Было бы честным учесть около 40 часов которые были потрачены во время того, как проект не двигался, и которые ушли на изучение и оттачивание навыков работы с веб-сокетами, так как проект изначально позиционировался как проект человека не знакомого с технологиями и планировался учёт затрат в том числе и на освоение технологий.
Сводка
Начало: 25 апреля 2014 года, приостановка 21 мая 2014 – 13 июля 2014 года
Команда: 1 (25 апреля), 1 (14 июля).
Израсходовано: 116 + 12 + 40 = 168 чч., 8 = 8
Рабочих дней: 18 + 1 + 8 = 27, 1 = 1
Средняя производительность: 168/27 = 6,22 чч/день, 8/1 = 8 чч/день
Описание игрового процесса
Расчет баланса
Игровая графика
Веб-клиент
Игровой сервер
Веб-сайт
ИТОГО
Продолжение: Growing Crystals vol 12. Будни проекта