О серии
В серии "Разработка и Публикация игры для ВКонтакте" я расскажу вам о своем личном опыте создания и публикации первой игры на платформе ВКонтакте.
Приятного чтения!
Страница игры ВКонтакте:
Повелитель Рыцарей
Программирование в Construct 3
Как уже говорил в предыдущей статье, для разработки первой игры Повелитель рыцарей я выбрал движок Construct 3. Разработку можно вести прямо в браузере компьютера, без установки дополнительных программ.
Construct 3 использует блочный подход к программированию. Каждый блок представляет из себя список определенных условий. При выполнении этих условий, блок выполняет запрограммированные действия.
Как видно из скриншотов ниже, здесь, точно также, как и в обычных языках программирования, можно создавать функции. В блоках кода удобно ориентироваться визуально, т.к. присутствуют пиктограммы объектов (в данном случае - пиктограмма заклинания Magic Ball мага рыцарей и кнопка Main Menu). Помимо этого, код можно систематизировать при помощи раскрывающихся вкладок. К примеру, весь код игры, связанный с Рыцарями, можно сложить в одну вкладку и назвать Knights. А внутри вкладки Knights создать несколько вложенных вкладок: Attack of the Knights, Spawn Knights и т.д.
В Construct 3 можно реализовать взаимодействие с игрой при помощи касаний пальцами и кликами мышкой. На этапе проработки идеи игры, я решил, что не стоит ограничиваться либо ПК, либо телефоном, поэтому внедрил управление и касаниями и мышкой. Это позволит не потерять потенциальную аудиторию игроков, предпочитающих играть в браузерные игры с компьютера.
Работа с массивами в Construct 3 достаточно сложная и объемная по исполнению. В частности, чтобы отсортировать массив, мне потребовалось попотеть и несколько раз переделывать код, хотя в том же Python это решается в пару строк. Либо я банально не знаю простого способа.
В целом же, забегая вперед, разработка самой игры показалась мне куда проще, увлекательнее и понятнее, чем добавление рекламы, оформление страницы игры, подготовка промо материалов, составление тегов и т.д. Наверное, я из тех людей, кому проще создавать, а не продавать.
Локализация
Для расширения аудитории игроков требуется перевести игру и сопровождающие её материалы на несколько языков. Конкретной достоверной статистики по востребованности разных языков ВКонтакте у меня пока что нет. Поэтому я решил остановиться на Русской, Английской и Турецкой локализациях.
Автоматическое определение языка я реализовал двумя способами:
Первый - через объект движка Construct 3 - «Browser»
Здесь Construct 3 получает информацию о языке пользователя из настроек браузера. Данный способ считается не очень надежным и лучше пользоваться им в комбинации с другими способами.
Второй - через бесплатный на данный момент плагин «InstantGamesBridge»
Данный плагин берет информацию о языке пользователя непосредственно с платформы, с которой запускают игру. Более подробно о плагине расскажу в третьей статье, т.к. основная цель плагина - встроить в игру рекламу, а информация о языке платформы для меня - приятный бонус.
Логика языков в игре Повелитель Рыцарей следующая:
Русский язык для: Россия, Белоруссия, Казахстан, Украина, Узбекистан (ru, be, kk, uk, uz)
Турецкий язык для: Турция (tr)
Английский язык для: для остальных стран (en)
Более полный список обозначений языков для различных стран можно почерпнуть из стандарта ISO 639.
Вот список наиболее распространенных языков:
Адаптация под различные устройства
Это очень важная и сложная задача при разработке игры, которую нельзя оставлять напоследок. Можно написать всю игру (как это сделал я), а потом вдруг понять, что всё идеально отображается только на экране моего компьютера. После этого последуют сначала мучительные поиски вазы или тарелки, которую можно разбить об пол. А затем не менее мучительные поиски всех тех мест в игре, которые необходимо исправлять, чтобы всё корректно отображалось на всех устройствах.
К слову, подумайте о том, что у всех людей абсолютно разные устройства с разными расширениями экранов. И не достаточно протестировать игру на своем компьютере, на своем ноутбуке и на своем телефоне. Необходимо либо тестировать игру на каких-то эмуляторах. Либо физически располагать несколькими устройствами с самыми ходовыми экранами. Либо привлекать фокус группу из друзей и знакомых.
Всё должно быть близко к идеалу на различных диагоналях.
Привязывать графические элементы игры (картинки, кнопки интерфейса, панели, надписи и т.д.) необходимо относительно координат левого/правого/верхнего/нижнего краёв экрана устройства. В Construct 3 за это отвечают следующие команды: ViewportLeft(0), ViewportRight(0), ViewportTop(0), ViewportBottom(0).
Не следует забывать и о точках привязки объектов. К примеру, точки привязки объектов в Construct 3 чаще всего расположены по центру графических элементов, но их можно менять по своему желанию в редакторе.
Тесты
Важность всеобъемлющего тестирования игры сложно переоценить.
Желательно производить тестирование игры и её механик вместе с фокус-группой из друзей и знакомых.
Вот основные моменты, в правильности работы которых необходимо убедиться перед публикацией игры:
Адаптация под различные расширения экрана
Музыка не должна звучать во время показа рекламы
Механики игры работают корректно
Музыка в определенные моменты играет только та, которая задумана, всё лишнее должно отключаться
Кнопки в игре должны работать ровно тогда, когда это необходимо. К примеру, во время паузы кнопка стрельбы не должна быть доступна
Переходы между уровнями корректны
Сохраняется весь необходимый игровой прогресс