Моя первая игра в Я.Играх

В данной статье я представлю вам историю разработки и расскажу о некоторых ошибках, которые были допущены в процессе. Моя цель - помочь вам избегать подобных ошибок в будущем и, возможно, поучиться на чужом опыте.

Глава 1 Начало разработки

В детстве многие из нас мечтали о будущей профессии, строя воображаемые миры и создавая свои истории. Моя история началась в марте, когда я решил создать свою космическую игру, несмотря на отсутствие опыта в 3D-моделировании. Вместо стандартных сценариев, я хотел, чтобы игрок стал настоящим защитником космоса. Моя первая задача - создать мини-орбитальную станцию, хоть и напоминающую "Звезду Смерти" из "Звездных Войн". Несмотря на многочисленные низкопробных игры протуалеты в Я.играх, я стремился сделать игру красивой и оригинальной, несмотря на свою неопытность.

Рис.1 Изображение космоса (собрал из множества рисунков в один)
Рис.1 Изображение космоса (собрал из множества рисунков в один)
Рис.2 Космическая станция
Рис.2 Космическая станция

Затем настало время разрабатывать корабли. У меня было около десятка различных моделей, разделенных на три класса. Легкие корабли были быстрыми и маневренными, но они обладали ограниченным количеством жизней. Они наносили огромный урон, но становились хрупкими при малейшем попадании. С другой стороны, тяжелые корабли были медленными, но имели могучую броню. Их уничтожить было непросто, но они не могли маневрировать так легко. И средние, которые были не быстрыми, но и не большой броней.Таким образом, игрокам предоставлялся выбор: уничтожить быстрого или более тяжлого соперника
Здесь покажу парочку кораблей (всего их более 10 штук)

Моя первая игра в Я.Играх
Моя первая игра в Я.Играх

Когда апрель близился к своей середине, у нас уже были готовы дизайн игры, концепция кораблей и дорожная карта разработки. Оставалось только написать код для самой игры, и я справился с этой задачей всего за неделю. Наконец-то наступил момент, когда можно было приступить к интеграции YandexSDK. Но именно с этого момента начались мои непростые испытания...

Глава 2. Начало бурь

YandexSDK открывал передо мной целый спектр возможностей:

  • Встроить рекламу.
  • Записывать игровой прогресс на серверах Яндекса.
  • Внедрить систему лидербордов.
  • Определить язык, используемый пользователем в своем браузере.
  • Определить устройство, с которого заходит игрок (ведь наша игра работала на WebGL).

Однако, к апрелю-маю, в документации были пробелы. Лидерборды, поддержка desktop и mobile платформ, а также сохранение прогресса без авторизации игрока - все это оставалось неясным. Но благодаря помощи пары школьников и их обучающим видеороликам на YouTube, за две недели мне удалось настроить большую часть функционала.

Затем, в течение двух дней, я перевел игру на семь разных языков, надеясь расширить аудиторию, и добавил небольшой сюжет в игру.

И, наконец, настала моя первая модерация. Что же было обнаружено в ходе проверки:

  • Прогресс игроков не сохранялся (я использовал PlayerPrefs).
  • Авторизация должна была происходить только после осознанного действия, но у меня она была доступна сразу после запуска. 3-5, 7. Проблемы с адаптацией и интерфейсом.
  • Система вознаграждений не давала увеличения при повторном использовании (кнопка бонуса позволяла получать удвоенные награды, но ее можно было нажимать несколько раз).
  • Название игры на обложке было несовместимо с требованиями.
  • Обнаружены артефакты на видеообложке.
  • Ракета на видеообложке вызывала затруднения.
  • Проблема с SDK: при получении сохраненных данных, YandexSDK не успевал загрузиться, что приводило к ошибке "YandexSDK is not defined".
  • Мелкий шрифт и прочие дробные недочеты.

Глава 3. Исправление

Видео 1. Стартовая версия
Видео 2. Итоговая версия без GUI
Итоговая версия
Итоговая версия

Эта глава посвящена всем, кто в будущем столкнется с необходимостью модерирования игры. Исправление проблем заняло у меня целых три месяца, и в этой главе я подробно опишу каждый этап работы.

  1. С самого начала я обратился к модерации, спросив, можно ли обойтись без сохранения данных для неавторизованных пользователей. Ответ был ясен: "Нет". Так что, не теряя времени, я приступил к исправлению. (Про плагин я знал, но не использовал его). Вместо сохранения через PlayerPrefs, как я понял, нужно было воспользоваться сохранением в LocalStorage, который работает как кэш браузера. Вот код для jslib: ссылка.

  2. С этой задачей я справился легко, удалив кнопку авторизации, так как рисование подходящей для космоса плашки потребовало бы слишком много времени, и результат мог оказаться неудовлетворительным.

  3. Самой крупной проблемой оказалась адаптация изображений под разные размеры экранов. Пришлось тщательно подгонять каждую картинку, использовать якоря и AspectRatio. Эта задача заняла очень много времени, учитывая большое количество изображений в игре.
  4. Если у вас есть бонус X2, после его активации кнопку следует скрывать (сделать невидимой).
  5. Просто добавьте двоеточие в название игры на обложке, соответствуя требованиям. И следите, чтобы название в игре и в видео были одинаковыми
  6. С плашкой ракеты. Вам нужно зайти в консоль браузера и убрать ее. Ранее я не знал, что ракета исчезнет в опубликованной версии.
  7. Проблема с SDK: В сентябре месяце в документации было добавлено решение проблемы №11. Благодаря этому обновлению я завершил свою работу. Осталась только ошибка при GetTypeDevice, которую испытывают около 5% игроков. После проведения дополнительных тестов, я отправлю исправленную версию.
  8. Наконец, были удалены лишние кнопки, включая мелкий шрифт, справляясь с последними мелкими недоразумениями.

Глава 3. Доходы

Первый день после выпуска второй игры оказался непростым, и пока что результаты оставляют желать лучшего. За первые сутки игра принесла всего 10 рублей, при этом у нас было всего 40 игроков. Сравнивая это с предыдущим опытом, когда я создавал игру за один день (для проверки SDK) и она за то же количество времени приносила 100 рублей при 250 игроках (причем тогда я и не особо старался), ситуация сейчас выглядит довольно неутешительно.

Глава 4. Продолжение?

Пока я работаю над исправлением ошибки, которая находится уже на этапе модерации, я прошу вас обновить страницу игры, чтобы проверить, помогла ли моя работа. Если проблема все еще не решена, прошу прощения за неудобства. В настоящий момент только у 5% игроков возникает данная проблема, но я обещаю в ближайшее время устранить её.

По поводу будущих планов, я бы хотел добавить несколько новых кораблей, внедрить несколько новых станций и значительно расширить сюжет и лор игры. Также планируется добавить большое количество разнообразных кораблей и персонажей, чтобы сделать игровой мир еще более интересным и насыщенным.

Глава 5: Помощь

В игре представлена информация о персонажах, которые атакуют станцию. Если хотите - можете придумать "титул" - "имя" -"какие нибудь черты характера и внешности, в ближайших обновлениях добавлю. Пример - Импертарица Александра - Очень боится потерять титул, любит картошку, иногда по утрам сбривает усы.

Ссылка на игру:

11