Я сделал свою первую игру. И про "ужасных" модераторов Яндекс Игр.

Хочу поделиться с вами радостью. Готов мой первый законченный и опубликованный проект!

Я сделал свою первую игру. И про "ужасных" модераторов Яндекс Игр.

Предыстория

С Юнити я ковырялся давно. Пытался разобраться сам, переводил обучающие материалы и, возможно, кто-то из вас даже их видел. Миллионов просмотров не набрал, но судя по комментам сделал полезное дело)

Эх, были времена...
Эх, были времена...

Учится сейчас по этим роликам не рекомендую, потому как за 5 лет много в Юнити поменялось и будет много не соответствующего последним версиям редактора. Но по С# там все еще актуально и можно полезное найти.

И вот, на работе все немного устаканилось с инфраструктурой и появилось то самое свободное время! Насмотревшись роликов об успешном успехе ЯндексИгрРазработчиков тоже решил тряхнуть стариной и запилить свою игру. Потрачено около месяца (немного на работе, немного по вечерам и в выхи).

Моя работанька
Моя работанька

Дед, зачем тебе это?

Разберем цели проекта и посмотрим достигнуты ли они:

1. Довести хоть один проект до логического завершения. Выполнено.

2. Вспомнить C#, вспомнить способы взаимодействия объектов, вспомнить работу с массивами. Выполнено.

3. Снова попытаться разобраться с поворотами объектов в 3Д пространстве. Выполнено частично. Да, я могу использовать готовые куски кода из тырнета и они даже работают, но написать что-то толковое без шпаргалок и объяснить как это работает пока нет.

4. Попробовать поработать с СДК Яндекса. Вроде выполнено. Для следующего проекта интересовала отправка данных игрока и сохранение процесса.

5. Посмотреть на сколько сложно делать локализацию. Не сложно. Я не про сам перевод, а как это в движке реализовать. Ниже покажу у кого научиться.

6. Попытаться пройти страшную и ужасную модерацию Яндекса. Выполнено.

5. Заработать 100500 деняг. Провалено.

Инди. Масло. Холст.
Инди. Масло. Холст.

Какие подводные?

Я изначально делал по принципу MobileFirst но, чтобы при этом на ПК тоже все работало исправно. Около недели потратил на управление (перетаскивание предметов в 3Д пространстве) пытаясь дублировать OnMouseDown() для ПК и Input.GetTouch для мобилок. Оказалось, в 2022 или в 2023 юнитисты уже успешно реализовали и то и другое для веба в OnMouseDown(). Да, этот метод(и его товарищи) одинаково хорошо обрабатывают одиночные касания и мышей и пальцем. Но если вам нужен будет свайп или увеличение изображения раздвиганием пальцев например, то к Touch все таки придется обратиться.

Достаточно долго ковырялся с массивами. Интересной задачей оказалось написать код для заполнения массива случайными неповторяющимися целыми числами из заданного диапазона. На первых 3х уровнях массивы предметов заполнены вручную а на 4-5 генерируются случайно.

Как выглядит массив случайных данных
Как выглядит массив случайных данных

В игре есть артефакты - пропсы с нестандартным поведением. Так вот создание каждого из них заняло по пол дня. Нужно будет учесть на будущее - каждое изменение механики = геморрой. Стараемся избегать)

Что по модерации Яндекс Игр?

Модерация от отправки до одобрения заняла меньше 2 суток. Нет, это не реклама от ЯИ) То, за что я больше всего переживал, оказалось намного проще.

Не знаю как так получилось. Возможно, именно благодаря тому, что я посмотрел кучу роликов от Инди Алеши и других о том, какой это ад, и хорошо подготовился. А может, и правда игра получилось достаточно качественной и за это ее быстрее одобрили ¯\_(ツ)_/¯

Ты не пройдешь!!! Взято из ЗапреТуба.
Ты не пройдешь!!! Взято из ЗапреТуба.

Игра отправлялась на модерацию в том виде, как сейчас около 15:00 среды. Около 20:00 среды уже пришел отказ с двумя замечаниями (появление музыкального плеера и невыдача подарка за просмотр рекламы). Про музыкальный плеер отдельно напишу, а про подарок - да, сам затупил и ошибся на единичку в одном месте. На следующий день все исправил и около 20:00 четверга (первый раз повторно можно отправить через сутки) зарядил еще раз. На Яндексе пишут, что ночью модерация не работает, но к 5:00 пятницы утра игра уже вышла в каталоге. Спасибо тебе, добрый модератор из Владивостока)

Я сделал свою первую игру. И про "ужасных" модераторов Яндекс Игр.

Советы бывалого

Что могу посоветовать? Главное, наверное, настойчивость и усидчивость. Тогда все получится. Выбирайте первый проект попроще. Да, 100500 миллионов деняг не заработаете, но у вас будет законченный проект (возможно для портфолио), радость от реализации, бесценный опыт.

Обязательно пользуйтесь графическими ассетами, даже если умеете рисовать. Создание графики увеличит срок реализации проекта в 2-4 раза. Покупать их или нет, тут уж каждый сам решит по совести.

Это если что я рисовал. Масло. Не по номерам)
Это если что я рисовал. Масло. Не по номерам)

Если хотите на Яндекс Игры то до начала работы над игрой хотя бы разок прочитайте их требования и посмотрите пару роликов на YouRuVKtube. Да, их достаточно много, но ничего особо сложного там нет. По большей части адекватные.

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

Где брал инфу?

Около 60% - ЗапреТуб, около 30% - документация, 10% - гугол и стак.

Кого я смотрел:

- про локализацию тут. Там под видео еще ссылка на сайт есть.

- создание меню просто и быстро

- физика в юнити. Офигенно.

- корутины. Сложная тема, но тут неплохо рассказано

- из заморских CodeMonkey и Brakeys бывало. Но про Брекиса не забывайте, что там тоже уже некоторые данные устарели

- мотивация и дельные советы - Инди Алеша или Гришаков

Спасибо, если дочитали! Не знаю можно ли тут ссылку на свою игру давать, но если можно то добавлю)

2222
11
10 комментариев

Картина маслом шик

4
Ответить

Мда. Способ локализации просто ужасный. Особенно если сцену на префабы не дробить. Потому что каждый раз придётся вносить изменения в сцену для изменения текста. Да и сохранять текст в инспекторе мне кажется делом опасным. Он и пропасть может. Лучше уж тогда встроенным решение Unity пользоваться, чем подобные костыли писать. Для таких простых вещей его хватит. имхо

2
Ответить

Я думал там будет Lean Localization, но все оказалось и правда очень плохо. Локализация как минимум должна стоять обособленно от игры, чтобы её можно было отдать переводчику и встроить в игру без проблем, а тут всё в одну кучу сложили. Я обычно, когда нужна локализация на скорую руку завожу enum с ключами локализации и enum для ключей языков и в коде делаю большой switch case на каждый случай и это мне кажется куда лучше, т.к. находится в одном месте и при необходимости можно заменить на любую библиотеку локализации. А тут, чтобы заменить все на полноценную библиотеку надо будет каждый объект прошерстить.
И еще помни, какой индекс у русского или англиского языков.

2
1
Ответить

Прикольно выглядит, а когда начнешь ведьмака своего делать? )

1
Ответить

Как только насобираю деняг на команду как у CDPR)

Ответить

Добрый день. Поздравляем с первой публикацией на нашей платформе 🎉

Спасибо, что поделились своим опытом, желаем удачи и успехов проекту ❤️

1
Ответить

Поворот объектов в 3d пространстве это надо курить комплексные числа.

1
Ответить