Smiley Boom – первый крупный релиз
Мы наконец-то зарелизили нашу игру Smiley Boom:
Что хочу заметить:
- Реализация внутриигровых покупок (IAP) заняла больше недели ( хотя я планировал значительно меньше ), это обусловлено тем, что очень много нестандартных вариантов с потерей соединения и прочего, а так же с наличием у нас механики акций.
- Кучу сложностей сейчас создает режим частичного онлайна, то есть когда только часть функционала требует полного онлайна - все остальное доступно в оффлайне. Кучу данных приходится слать очередью, пачками при выходе в онлайн.
- Забавный факт: Игровая механика была уже готова несколько месяцев назад, много времени ушло на реализацию интеграции с соц. сетями (в нашем случае пока что только Facebook), интеграцию с различными маркетинговыми SDK и прочими подобными вещами.
- Много вещей после релиза придется переделывать, так как эти вещи сейчас сделаны на скорость, нежели на качество
- Народ в команду лучше набирать задолго до релиза
- Match3 игра, вопреки общему мнению, это не пустяк (особенно когда игра включает в себя много механик) , и на данный момент срок разработки приближается к отметке 1 год (хотя команда изначально была очень небольшой)
- В ходе разработки игры интерфейс (дизайн) менялся 3 раза (это далеко не предел), а игровая механика 2 раза.
- Достаточно много времени ушло на проработку системы адаптации к разрешениям экрана ( и его повороту ) - очень важная фича (поворот экрана в итоге не вошел в первый релиз)
- Многие вещи до сих пор совсем не оптимизированы
- Не стоит писать "свой фреймворк" для игры, либо давать это делать людям, которые в этом имеют опыт и понимают что делают
- Тутор не вошел в первый релиз
- Локализация не планировалась заранее, тем не менее, мы быстро ее прикрутили (правда исключая азиатские языки)
- Достаточно много времени занимает интеграция всяких SDK для маркетинговых целей, типа Flurry, Mobile App Tracking и прочего хлама, которые, по большей части, собирают одни и те же данные (и мы до сих пор интегрировали не все SDK, и не все функции)
- Сейчас работа с сервером организована посредством классического REST API, в процессе переход на socket'ы.
- Основной формат общений с сервером JSON
- Большинство файлов конфигурации XML
- Локальное хранилище данных SQLite
- Для сетевых запросов используется cURL
- Графика рисуется OpenGL ES 2.0 собственным движком (о Боже, за что?)
- Почти все написано на C++, исключая платформозависимые части