В данной статье рассмотрена проблема игр жанра runner.
Ключевые слова: аркада, runner, игра, облачный сервер, база данных.
На рынке игр в жанре runner преобладают игры с предельно простым репетативным геймплеем. В подобных играх герой перемещается несколькими привычными способами: благодаря свайпам игрока по экрану из стороны в сторону для смены дорожки героем или нажатию на экран для подъёма героя над землёй. На пути у героя обычно встречаются различные монеты, реже бонусы. Монеты представляют собой или валюту для дальнейшего развития героя или приобретения нового внешнего вида для него или набор цифр, которыми можно посоревноваться с другими игроками в таблице рекордов. Преградами для героя могут выступать платформы, поезда, которые стоят и мешают двигаться дальше, так и движущиеся поезда, ракеты и прочие опасные объекты, которые заберут жизнь героя или ранят его.
Такой темп и характер игры способен наскучить опытному казуальному игроку. В играх жанра runner не хватает динамики, бо́льших возможностей, видов преград и угроз с развитием героя, которые присущи аркадам.
Какое развитие игр жанра runner возможно? Здесь возможны несколько новшеств. Во-первых, враги, которые будут иметь разные виды атак, величину урона, здоровья, скорость и способ перемещения по уровню. Во-вторых, герой должен будет защищаться, имея оружия из выбранного перед стартом уровня списка. Оружие имеет свою величину урона, скорострельность, дальность стрельбы. В-третьих, экономическую составляющую на уровне — герой зарабатывает игровые очки за убийство врагов, а тратит их на стрельбу из оружия. В-четвёртых, добавить соревновательную составляющую с показом таблицы рекордов на уровне, что вытекает из предыдущего пункта. В-пятых, различные преграды и объекты, которые герой может использовать в своих целях, как закрывающиеся двери, раскладные мосты, взрывные бочки.
Техническая реализация идея будет в виде мобильной игры на клиентской части для мобильных устройств, которую можно скачать с магазинов приложений. Также имеется серверная часть в виде базы данных на облачном сервере для хранения и обновления данных в таблице лидеров по каждому уровню.
Исходя из описанных требований, выглядит наиболее рациональным решением использовать для клиентской части игровой движок Unity [1, с. 7–8] с языком разработки C# [2, с. 18], а для серверной части язык разработки PHP [3, с. 24–25] с СУБД MySQL [4, с. 15]. Игрок будет взаимодействовать с приложением, которое отвечает за игровой процесс, получение и отправление данных о статистике завершения игрового уровня на облачный сервер. Данные, которые будут храниться и обновляться, будут получены облачным сервером с бизнес-логикой, написанной на PHP. Далее эти данные передаются в базу данных MySQL.
Архитектуру разрабатываемой системы можно увидеть на рисунке 1.
Рис. 1. Архитектура разрабатываемой системы
Даталогическую схему можно увидеть на рисунке 2.
Рис. 2. Даталогическая схема базы данных
В клиентском приложении существует несколько экранов, одни из главных являются ‘Main’ (Главный), ‘Armory’ (Оружейная), ‘Level’ (Уровень).
На экране ‘Main’ игрок может увидеть список кнопок, при нажатии на которые, он может перейти на любой экран: при нажатии кнопки ‘Play’ запустить следующий уровень с текущим выбранным оружием для игры, при нажатии кнопки ‘Map’ посмотреть карту уровней и прогресс на каждом из них, при нажатии кнопки ‘Armory’ зайти в оружейную и сменить список оружия для игры, при нажатии кнопки ‘Settings’ сменить настройки игры. Экран ‘Main’ можно увидеть на рисунке 3.
Рис. 3. Экран ‘Main’
На экране ‘Armory’ игрок может выбрать оружие для дальнейшей игры из доступного. На экране есть два списка: выбранного оружия и доступного оружия. Для попадания оружия в список выбранного надо нажать на иконку оружия в списке доступного оружия. Для удаления оружия из списка выбранного оружия можно нажать на него в любом из списков. Экран ‘Armory’ можно увидеть на рисунке 4.
Рис. 4. Экран ‘Armory’
На экране ‘Level’ игрок участвует в игровом процессе, целью которого является остаться в живых и пройти уровень до конца. Экран ‘Level’ можно увидеть на рисунке 5.
Рис. 5. Экран ‘Level’
В результате был получен минимально жизнеспособный продукт — прототип игры для Android-устройств с несколькими экранами, одним игровым уровнем и серверной частью. В дальнейшем планируется реализация полного дизайн-документа и технического задания, выпуск демо-версии игры, выпуск игры в ранний доступ, который будет длиться до полного релиза с оглядкой на пожелания и критику пользователей.
Литература:
- Денисов Д. В. Разработка игры в Unity. С нуля и до реализации/Д. В. Денисов // ЛитРес: Самиздат. — 2021 — с. 195.
- Харрисон Ферроне. Изучаем C# через разработку игра на Unity. 5е издание/Х. Ферроне // СПб.: Питер. — 2022 — с. 401.
- Бейли, Моррисон. Изучаем PHP и MySQL/Л. Бейли, М. Моррисон // Эксмо. — 2010 — с. 411.
- Дюбуа П. MySQL. Сборник рецептов/П. Дюбуа // СПб: Символ‑Плюс. — 2006 — с. 1057.