Моя первая игра в Я.Играх
В данной статье я представлю вам историю разработки и расскажу о некоторых ошибках, которые были допущены в процессе. Моя цель - помочь вам избегать подобных ошибок в будущем и, возможно, поучиться на чужом опыте.
Глава 1 Начало разработки
В детстве многие из нас мечтали о будущей профессии, строя воображаемые миры и создавая свои истории. Моя история началась в марте, когда я решил создать свою космическую игру, несмотря на отсутствие опыта в 3D-моделировании. Вместо стандартных сценариев, я хотел, чтобы игрок стал настоящим защитником космоса. Моя первая задача - создать мини-орбитальную станцию, хоть и напоминающую "Звезду Смерти" из "Звездных Войн". Несмотря на многочисленные низкопробных игры протуалеты в Я.играх, я стремился сделать игру красивой и оригинальной, несмотря на свою неопытность.
Затем настало время разрабатывать корабли. У меня было около десятка различных моделей, разделенных на три класса. Легкие корабли были быстрыми и маневренными, но они обладали ограниченным количеством жизней. Они наносили огромный урон, но становились хрупкими при малейшем попадании. С другой стороны, тяжелые корабли были медленными, но имели могучую броню. Их уничтожить было непросто, но они не могли маневрировать так легко. И средние, которые были не быстрыми, но и не большой броней.Таким образом, игрокам предоставлялся выбор: уничтожить быстрого или более тяжлого соперника
Здесь покажу парочку кораблей (всего их более 10 штук)
Когда апрель близился к своей середине, у нас уже были готовы дизайн игры, концепция кораблей и дорожная карта разработки. Оставалось только написать код для самой игры, и я справился с этой задачей всего за неделю. Наконец-то наступил момент, когда можно было приступить к интеграции YandexSDK. Но именно с этого момента начались мои непростые испытания...
Глава 2. Начало бурь
YandexSDK открывал передо мной целый спектр возможностей:
- Встроить рекламу.
- Записывать игровой прогресс на серверах Яндекса.
- Внедрить систему лидербордов.
- Определить язык, используемый пользователем в своем браузере.
- Определить устройство, с которого заходит игрок (ведь наша игра работала на WebGL).
Однако, к апрелю-маю, в документации были пробелы. Лидерборды, поддержка desktop и mobile платформ, а также сохранение прогресса без авторизации игрока - все это оставалось неясным. Но благодаря помощи пары школьников и их обучающим видеороликам на YouTube, за две недели мне удалось настроить большую часть функционала.
Затем, в течение двух дней, я перевел игру на семь разных языков, надеясь расширить аудиторию, и добавил небольшой сюжет в игру.
И, наконец, настала моя первая модерация. Что же было обнаружено в ходе проверки:
- Прогресс игроков не сохранялся (я использовал PlayerPrefs).
- Авторизация должна была происходить только после осознанного действия, но у меня она была доступна сразу после запуска. 3-5, 7. Проблемы с адаптацией и интерфейсом.
- Система вознаграждений не давала увеличения при повторном использовании (кнопка бонуса позволяла получать удвоенные награды, но ее можно было нажимать несколько раз).
- Название игры на обложке было несовместимо с требованиями.
- Обнаружены артефакты на видеообложке.
- Ракета на видеообложке вызывала затруднения.
- Проблема с SDK: при получении сохраненных данных, YandexSDK не успевал загрузиться, что приводило к ошибке "YandexSDK is not defined".
- Мелкий шрифт и прочие дробные недочеты.
Глава 3. Исправление
Эта глава посвящена всем, кто в будущем столкнется с необходимостью модерирования игры. Исправление проблем заняло у меня целых три месяца, и в этой главе я подробно опишу каждый этап работы.
С самого начала я обратился к модерации, спросив, можно ли обойтись без сохранения данных для неавторизованных пользователей. Ответ был ясен: "Нет". Так что, не теряя времени, я приступил к исправлению. (Про плагин я знал, но не использовал его). Вместо сохранения через PlayerPrefs, как я понял, нужно было воспользоваться сохранением в LocalStorage, который работает как кэш браузера. Вот код для jslib: ссылка.
С этой задачей я справился легко, удалив кнопку авторизации, так как рисование подходящей для космоса плашки потребовало бы слишком много времени, и результат мог оказаться неудовлетворительным.
- Самой крупной проблемой оказалась адаптация изображений под разные размеры экранов. Пришлось тщательно подгонять каждую картинку, использовать якоря и AspectRatio. Эта задача заняла очень много времени, учитывая большое количество изображений в игре.
- Если у вас есть бонус X2, после его активации кнопку следует скрывать (сделать невидимой).
- Просто добавьте двоеточие в название игры на обложке, соответствуя требованиям. И следите, чтобы название в игре и в видео были одинаковыми
- С плашкой ракеты. Вам нужно зайти в консоль браузера и убрать ее. Ранее я не знал, что ракета исчезнет в опубликованной версии.
- Проблема с SDK: В сентябре месяце в документации было добавлено решение проблемы №11. Благодаря этому обновлению я завершил свою работу. Осталась только ошибка при GetTypeDevice, которую испытывают около 5% игроков. После проведения дополнительных тестов, я отправлю исправленную версию.
- Наконец, были удалены лишние кнопки, включая мелкий шрифт, справляясь с последними мелкими недоразумениями.
Глава 3. Доходы
Первый день после выпуска второй игры оказался непростым, и пока что результаты оставляют желать лучшего. За первые сутки игра принесла всего 10 рублей, при этом у нас было всего 40 игроков. Сравнивая это с предыдущим опытом, когда я создавал игру за один день (для проверки SDK) и она за то же количество времени приносила 100 рублей при 250 игроках (причем тогда я и не особо старался), ситуация сейчас выглядит довольно неутешительно.
Глава 4. Продолжение?
Пока я работаю над исправлением ошибки, которая находится уже на этапе модерации, я прошу вас обновить страницу игры, чтобы проверить, помогла ли моя работа. Если проблема все еще не решена, прошу прощения за неудобства. В настоящий момент только у 5% игроков возникает данная проблема, но я обещаю в ближайшее время устранить её.
По поводу будущих планов, я бы хотел добавить несколько новых кораблей, внедрить несколько новых станций и значительно расширить сюжет и лор игры. Также планируется добавить большое количество разнообразных кораблей и персонажей, чтобы сделать игровой мир еще более интересным и насыщенным.
Глава 5: Помощь
В игре представлена информация о персонажах, которые атакуют станцию. Если хотите - можете придумать "титул" - "имя" -"какие нибудь черты характера и внешности, в ближайших обновлениях добавлю. Пример - Импертарица Александра - Очень боится потерять титул, любит картошку, иногда по утрам сбривает усы.
Ссылка на игру: