Понял, чего мне не хватает в моей игре. В каждой миссии хочется завалить одного ОЧЕНЬ крутого босса. Прикольно, что в мини-играх такой босс есть, а вот в основной - нет. Задумал сделать его из символов. Существо из алфавитно-цифрового ASCII мира будет врываться в пиксельную игру.
В попытках найти образ для таких боссов пришел к такой идее: боссы - грубо оцифрованные персонажи классического изобразительного искусства. Вот, например, как вам такой "Крик" Мунка? Интересно выглядит?
Если интересно, что получится, то можете подписаться. Здесь или на страничке игры в Стиме. Замысел непростой - самому интересно, что получится.
В этом посте я хотел бы рассказать как пришел к мысли создания собственной игры, да и собственно о самом процессе создания тоже. В отличии от девблогов проект уже существует и релизнут, поэтому все написанное тут будет историей пережитого опыта.
Начну с конца февраля 22-го года, который поменял многое. На тот момент я был топовым иллюстратором/аниматором на фриланс бирже upwork, со всевозможными модными бейджиками на аккаунте, тучей отличных отзывов, очень приличной почасовой ставкой, а также очередью на недели вперед из клиентов. Жил себе и в ус не дул, как говорится. Мысли о необходимости что-то менять пришла после закрытия сервиса для нашего брата. Сам момент блокировки был не столь болезненным, так как у меня оставался ряд постоянных клиентов, готовых продолжать работать со мной
Шло время, а пакет с пакетами санкций увеличивался. Так сначала я обзавелся целым рядом банков, потом узнал что такое крипта, но клиентам при таком санкционном бэкграунде становилось все более некомфортно и боязней. Все как у всех в общем. И тут-то я подумал, если я участвовал в разработке небольших, но коммерческих проектов — почему бы не попробовать свои силы на этом поприще. Нужно уточнить — программирование это не мое, от слова «совсем». Я конечно делал мини игры в детстве на бейсике, что ж греха таить (zx spectrum ван лов), но технологии шагнули несколько вперед, если сравнить с серединой девяностых. Итак, что имеем: неплохое понимание движка Unity, настройки спрайтов, анимацией штатными средствами. Ну и конечно же, добротный опыт в сфере создания графики и анимации. Можно сказать половина успеха, да? А вот нет.
Для реализации был выбран веселый, в меру дурацкий файтинг, с максимально упрощенным управлением, горизонтальное передвижение персонажа не предусмотрено. Враги бесконечно приближаются слева и справа в центр экрана, к игроку. Удары и серии ударов наносятся нажатием клавиши/тапом в сторону врага. Также предусмотрены «сильные» удары» – апперкот (удар из положения сидя) и удар из воздуха, с прыжка вниз. При нанесении сильного удара повышается шанс выбить из рук врага оружие, с последующей возможностью его использования.
Скетчи игровых персонажей
Набросаны первые идеи, скетчи персонажей, продумана механика. Главными игровыми персонажами стали Кот и Бабушка. Враги – крысы и голуби (терпеть не могу голубей).
Ну вы поняли
Идея была в том, чтобы не задирать возрастные рамки и попытаться попасть в 12+, собственно стиль графики был выбран по этой же причине.
В чистовом варианте бабуля лишилась сумки. Первоначальная идея была сделать ее удар чуть сильнее, прировнять удар сумкой к удару оружием у Кота (если кот выбил это самое оружие из рук врага). Но оружие находится в руках игрока до того момента, пока он не метнул его, а сумка постоянно. Чтобы не делать костылей в балансе – сумка была изъята.
Чистовой вариант отрисовки персонажей
Пора приступать к поиску программиста!
Так как движок Unity мне знаком и понятен, программист очевидно должен владеть c# и понимать архитектуру проектов Unity, а также иметь опыт в WebGL. Да, все верно, речь в данный момент пойдет о Яндекс играх. Думаю часть читающих сразу представила тысячный скибиди туалетик и решила не читать дальше. Но я выбрал другой путь, только кастомная графика, кастомный код, только хардкор. Так вот, а где же этого самого программиста взять-то? Конечно на отечественных фриланс платформах, подумал я. В годы своей бурной активности как фрилансера, я считал, что удовлетворенность клиента результатом - прочный фундамент долгосрочных отношений, а дедлайн непоколебимой датой - хоть камни с неба. Ну и вообще - кто платит тот и заказывает музыку, правильно? И похоже снова нет. В реальности все оказалось чуть по другому.
Вид игровой сцены
К этому моменты были начисто отрисованы все спрайты главной сцены, спрайты врагов. Эх, как же я люблю рисовать зеленушку.
Для работы была выбрана фриланс площадка, не буду упоминать ее плюсы, минусы, да и вообще писать о ней что-либо, потому что речь тут совсем о другом. Единственное скажу - площадка нехитрый гибрид upwork и fiverr, кто знает о чем речь, тот поймет. Был изучен рынок, предложения исполнителей, выведен средний бюджет для моего проекта и создано первое «объявление» с предложением поучаствовать в моем небольшом, но гордом проекте. Пошли первые отклики. В первую очередь были отфильтрованы фрилансеры, пытавшиеся демпинговать цену. Как правило, это пустые аккаунты без отзывов, пытающиеся таким образом получить свой первый заказ, мне это не подходило, я хотел быть уверен в компетенции специалиста.
Анимация одного из игровых персонажей в After Effects. Да, я не ищу легких путей (наверное зря)
Работа кипела
Для реализации анимации боя, как ни странно, был выбран After Effects. Таким образом я планировал уменьшить нагрузку на телефон в веб приложении, убрав понятие костей и их постоянного просчета. Мне показалось что спрайтшиты для такого проекта — это лучшая опция. Тут пригодился мой опыт создания анимированных стикеров для Телеграмм. И все было бы хорошо, если в какой-то момент у меня не появилась идея разнообразить игру скинами персонажа. Десяток шейпов, сотня точек – это, пожалуй, не лучший вариант для этой идеи. Ведь каждый скин пришлось бы анимировать по-новой. Поэтому создав десяток анимаций, потратив на это изрядно времени, я переключился на штатную 2D анимацию прямо в Unity.
А вот так выглядело тестовое комбо, реализованное покадровой анимацией
Первый нанятый мной программист проработал над проектом аж 3 дня, после чего сославшись на какие-то семейные неурядицы ушел в туман. Такое длинное оправдание текстом я видел первый раз. Интересный факт — большая часть фрилансеров, с которыми я переписывался через биржу как огня боялись NDA. Мне как человеку, которые эти самые NDA подписывал в своей жизни десятками, эта ситуация не понятна до сих пор, а ведь я даже не ограничивал возможность публикации проекта в портфолио. Видя кол-во шаблонов в сети, не хотел однажды увидеть свою игру среди них.
Из забавного на тот момент: один исполнитель с хорошими отзывами и, как мне показалось, с достаточным опытом, после долгого обсуждения проекта, всех деталей, когда речь зашла о NDA, попросил время подумать. Вернулся с отрицательным решением. На мой вопрос, почему так, ответил, что ему нет 18-ти. Тогда я подумал: а может стоит удовлетворить просьбу моего 9-ти летнего сына и помочь ему начать свой путь в программировании?
Со второй попытки мне повезло больше, не смотря на сильно затянутые сроки, игра была реализована на 90%. Игровой персонаж ожил, все созданные мной анимации бодро превращались в веселые комбо ударов, уже в игровом процессе. Оживало UI, уже можно было выбрать игрового персонажа, поменять игровую валюту на новый скин.
Я был доволен и, по большому счету, даже перестал переживать о сроках, которые на тот момент перевалили за 3 недели, вместо обещанных исполнителем 5-7 дней. Первый проект, что поделаешь. Оставались сущие пустяки, до-настроить показы рекламы в SDK, сделать локализацию на инглиш, сделать лидерборд. Чтобы не портить рейт исполнителя (опять же сроки задачи давно вышли), принимаю решение закрыть проект на бирже, выплатив весь гонорар. Проходит неделя и фрилансер ложится в больницу (Никита, желаю тебе скорейшего выздоровления!).
Я остаюсь с исходниками датированными десятью днями ранее, без возможности получить актуальные. Чуть успокоив свою нервную систему, выждав пару дней, понимая, что теоретическая дата релиза откладывается на неопределенное время, смиряюсь с непреодолимыми обстоятельствами.
Допиливаю то, что могу сделать самостоятельно и высылаю на первую модерацию, как есть
Ранняя версия экрана выбора скина и режима игры
Так выглядит первая версия меню выбора скина игрового персонажа. Выбор осуществлялся установкой нужного скина по центру экрана, после чего нужно было выбрать режим игры, нажав на который игрок попадал в игру. Если скин был неактивным/не открытым – войти в игру было не возможно. Пожалуй достаточно было сделать скин по центру и чуть крупнее, давая понять что выбран именно он и при попытке запустить с закрытым скином добавить звук ошибки и анимацию для замочка. Это я сейчас понимаю, а тогда понимал не очень. Именно по этому меню игру дважды возвращали с модерации на доработку.
Конечно же, игру вернули на доработку. Стоит отметить что произошло это в тот же день, к тому же в выходной. Скорость работы команды модерации Яндекса — радует.
Мне нужно было как-то править проект, негоже бросать работу в финальной стадии. Хотя на тот момент мне казалось что выход игры – это нечто фантастическое. Следующий разработчик, с которым мы ударили по рукам, с задачей справился, но несколько по-своему.
Я решил разнести на два разных экрана режим игры и скины, сделать так, чтобы в игру можно было зайти при любом выбранном скине, оставляя любые недопонимания интерфейса позади. Кроме того мне по-прежнему нужен был лидерборд и локализация.
Текущая версия главного экрана после первых правок
После некоторых манипуляций главный экран видоизменился. Теперь можно было войти в экран выбора Режима игры и в экран Скин игрока отдельными кнопками, либо сразу запустить игру. Выбор ночного режима теперь стал доступен как с главного экрана, так и непосредственно на экране выбора Режима игры.
Для перевода игры была подготовлена таблица, которую я передал исполнителю. В ходе тестирования я периодически натыкался на не переведенные куски текста, в основном это были ачивки. Впоследствии оказалось что фрилансер решил моей таблицей не пользоваться или пользоваться в удобные для него моменты. Так уже после завершения всех работ обнаружились интересные переводы все тех же ачивок, например Rat Lover (хотя у меня было Rat fun), Granny вместо Babushka. Вроде и мелочи, а вроде и нет.
Игра была принята и опубликована аж на четвертый раз – основные причины пофиксили после первой модерации, дальше были несколько мелочей, включая перевод. Кстати, а вот и сама игра https://yandex.ru/games/app/311619?utm_source=app_page
В следующих постах я хотел бы рассказать чуть подробнее о скинах, о готовящемся первом обновлении и планах выхода на международных площадках.
DragonRuby Game Toolkit — это 2D-игровой движок коммерческого уровня, удобный для новичков. Он крошечный (около 3 МБ), чертовски быстрый и кроссплатформенный. Стандартная лицензия (эта страница) приобретается единоразово и включает поддержку ПК, Mac, Linux, Raspberry Pi и Интернета.
Создано для независимых разработчиков игр, которым нужен мощный игровой движок, бесплатный, быстрый, производительный и простой в использовании.
Обновлено 10 мая 2024 г. Всего выпусков (на данный момент): 179.
Дата создания: 19 апреля 2019 г.
Статус выпущен
Категория Игровой движок
Платформы Windows, macOS, Linux, Raspberry Pi
Рейтинг ★★★★★(294)
Автор DragonRuby
Теги 2D, DragonRuby, Игровой движок, Возможность модификации, рубин
Техническая демонстрация
Вот что возможно только со стандартной лицензией.
Тур и обучение
Райан составил 5-минутное введение в DragonRuby, чтобы познакомить вас с большими идеями.
Функции
Очень простые, ориентированные на данные API, способные создавать сложные 2D-игры.
Чертовски быстро. Работает на основе высокооптимизированного кода C, написанного Райаном С. Гордоном, одним из гигантов, стоящих за SDL (технология, на которой работают тысячи игр, игровые движки высшего класса и клиент Steam).
Проверено в бою Амиром Раджаном, признанным критиками инди-разработчиком игр, созданных с помощью DragonRuby для мобильных устройств и Nintendo Switch.
Крошечный. Как будто совсем крошечный размер. Весь движок занимает несколько мегабайт.
Разработка в реальном времени, оптимизированное для обеспечения постоянной обратной связи с разработчиком. Производительность и абсолютное удовольствие от использования.
Сборки «под ключ» для Windows, macOS и Linux с плавной публикацией на Itch.io.
Кроссплатформенность: ПК, Mac, Linux, Raspberry PI, Интернет, iOS, Android, Nintendo Switch, XBOX One и PS4 (для мобильных устройств требуется лицензия Pro, а для компиляции консоли требуется юридическое лицо и проверка NDA; свяжитесь с нами в службе поддержки). @dragonruby.org для получения дополнительной информации).
Стандартная лицензия приобретается единоразово/пожизненно. Лицензии Indie и Pro предоставляются по подписке, но обладают некоторыми невероятно мощными функциями.
Бесплатная неограниченная лицензия
Вы имеете право на бесплатную лицензию, если к вам относится любой из следующих пунктов:
Ваш доход ниже 2000 долларов США в месяц.
Вам меньше 18 лет.
Вы учитесь любого типа: в традиционной государственной школе, на домашнем обучении, в колледже, учебном лагере или онлайн.
Вы учитель, наставник или родитель, который хочет научить ребенка программировать.
Вы работаете/работали на государственной службе или в благотворительной организации: например, в государственной службе, в армии или в любой организации, подпадающей под действие 501(c)(3).
Просто свяжитесь с Амиром по адресу ar@amirrajan.net и кратко объясните вашу текущую ситуацию, и он вам поможет.
Делаю небольшой апдейт игры ASCIILL (ретро-экшен в подземельях в сумасшедшем минималистичном арт-стиле), а там у меня есть режим заставки и можно включать флаги. Добавил вот эти четыре флага. Смотрятся крипово (текстовый режим все-таки), но вроде интересно.
Заходите посмотреть на страничку в Стиме в последние дни фестиваля "Бесконечная реиграбельность".
Предыдущий образ показался мне слишком "дурашливым и безликим", и я решил сделать более характерного персонажа, да и в целом кошконародец из вселенной игры захотелось сделать более "очеловеченным".
Ну мне в целом результат нравится, нужно только её приодеть)
О, коллега Лëнька. На вахте жили да работали вместе. На ноуте игор у меня много было тогда. Масс-эффект 2, фоллаут 3, крайзис какой-то был, Росомаха начало. Лëнька любил на моëм ноуте в росомаху поиграть. Но каждые полчаса он кричал - "блядь, непроходимый уровень"!!! Я у него спрашиваю -"читал что пишут то"?!! -" Не, нахуя?"
нахуя читать то? Скучно ведь. И уровни непроходимые.
Хочу поделиться опытом, как я решил выделить свой бренд среди других, чтобы повысить заметность и улучшить поисковую выдачу. Для тех, кто уже с этим сталкивался, наверно новой информации никакой не будет. Но для не подозревающих возможно будет интересно. Предупреждаю, слов будет много, а букв ещё больше!
ISAEV SPACE
Всё началось с того, что мой батя меня спросил: «А как найти твоё видео в YouTube?». Намного проще оказалось меня найти по названию игры, нежели по разработчику. Тут я задумался о том, что наконец началась эта потребность, которую нужно как-то решать. Спойлер — её нужно было решать намного раньше.
На счёт названия я долго ломал голову, особенно во время регистрации домена для сайта — хотел, чтобы было коротко и использовалась моя фамилия. Всякие привычные ru, com, org, io и так далее были уже заняты, но мне приглянулось окончание на space — так как мне нравится загадочность космоса, да и вообще его малая исследованность. С именем для публичных страниц мне повезло — везде получилось зарегистрировать одно и тоже. Но окончательное название никак не приходило в голову — в итоге так и продолжил использовать свою фамилию.
ISAEV SPACE — Main Theme (OST Ike Norris)
Когда я разрабатывал одну из игр, то так вышло, что саундтрек для неё я сделал на много раньше и вообще на скорую руку. Тут мне стало интересно попробовать разместить её на стриминговых площадках, чисто для опыта. Да и смешил тот факт, что я стану музыкантом для игры раньше, чем выпущу саму игру и стану её разработчиком. Но этим я только увеличивал количество дальнейших проблем.
Наступил тот момент, когда я наконец определился, и даже нарисовал себе логотип. Обновить информацию в социальных сетях трудности не вызвало — всё было сделано оперативно. Так же для телеграмма решил начать вести набор стикеров и эмодзи, в котором будет ссылка на меня. Но дальше начинается самое интересное — обновление разработчика, автора, артиста во всех площадках распространения.
Кабинет разработчика VK Play
Решил начать с VK Play. В панели управления я конечно не нашёл способ сменить название самому, собственно, как и ссылку на поддержку. В итоге обратился в официальное сообщество для разработчиков игр в телеграмме. Там мне через 3 минуты подсказали, как найти необходимый чат в VK Play и там оставить свою заявку модераторам на смену названия. Нашёл этот чат, где написать разобрался, написал. Через 7 минут мне ответили, что всё поменяли, проверяйте. Везде всё обновилось, супер, идём дальше.
Консоль разработчика RuStore
Продолжить решил с RuStore. Там в консоли разработчика, в разделе общей информации есть подсказка, что для изменения общей информации о разработчике писать на почту. Понятно, написал на почту, на всякий случай прикрепил снимки экрана с профилем и VK ID. Тут тоже через 7 минут мне ответили, что всё готово, название изменили. В консоли разработчика было всё хорошо. А вот на публичных страницах магазина приложений было старое название. Минут через 30 всё поменялось — скорее всего обновился кеш на отдаваемую статику.
Консоль разработчика Google Play
Затем я взялся за Google Play Console. В неё у меня порой целая проблема зайти, уже обращался с запросами к провайдеру — сказали, что ничем помочь не могут, на той стороне обрывают соединение, поэтому работает с перебоями. Если вдруг интересно, то захожу из Москвы, провайдер МГТС, причём такая же проблема и с самим сайтом Google Play. Так вот, вернёмся к смене имени — тут оказалось всё намного проще. Обновил информацию о разработчике и нажал сохранить. Название отправилось на проверку модераторами и правда уже прошло несколько дней, но пока используется старое название.
Платформа для распространения приложений GetApps от Xiaomi
Далее для распространения я использовал Xiaomi GetApps, как разработчик-одиночка. Но там решили бороться… наверно с тем, что модерация очень плохо проверяет приложения на воровство? В общем теперь нужно быть корпоратом — хорошо, на всякий случай подал заявку через поддержку на смену типа аккаунта, которая длится 1-2 рабочих дня. Но всё-таки текущее название то сменить нужно! В разделе информации об разработчике всё поменял, сохранил. Так же получил сообщение о проверке в течении 1-2 рабочих дней. На следующий день получил отказ, теперь нужно регистрироваться заново и старые учётные записи они больше не обслуживают. Грустно, конечно, так как там установок было больше, чем в Google Play, но ничего не поделать.
Платформа для распространения приложений AppGallery от HUAWEI
Ещё я использую Huawei AppGallery. Консоль разработчика тут довольно громоздкая и охватывает все сервисы компании, из-за чего кажется очень запутанной, несмотря на то что на русском, в отличии от предыдущей. В итоге я нашёл тот самый нужный раздел с названием разработчика для Android, но встретил похожую подсказку о том, чтобы обратится в поддержку. И не в свободной форме, как в RuStore, а в отдельном разделе с кучей подпунктов, чтобы найти нужное место, где просить помощь. Через несколько минут поисков оставил заявку… тут это называется наряд на работу. Так вот, система получила наряд на работу, и специалисты службы поддержки обработают этот наряд на работу в кратчайшие сроки. Если что, то это сочетание в письме на почте из трёх строк было использовано пять раз. На следующий день получил сообщение на почту, что наряд на работу находится в обработке. На данный момент результата нет, но надеюсь всё сделают, так как установок тут было больше, чем в Google Play и Xiaomi GetApps вместе взятыми.
Цифровая дистрибуция контента ONErpm
Но на этом ещё не всё! Я же размещал музыку на стриминговых площадках. И там я хочу не только поменять название артиста, но и название альбома и песен в нём, чтобы добавить пометку на OST из игры. Правда, как правильно она должна выглядеть я не нашёл, но видел наверно в четырёх разных вариантах в других композициях. Вернёмся к дистрибьютеру — на тот момент мой выбор выпал на ONErpm. Посмотрев FAQ в профиле, я понял, что всё нужно делать через заявки в поддержку, причём отдельные для артиста и названия альбома с композициями. Тут поддержка отвечает очень по-разному, прошлые запросы я ждал ответ вроде около недели. В новой игре я очень сильно хочу постараться над саундтреком, и скорее всего буду менять дистрибьютера, так как тут начались проблемы с выводом средств, правда кого выбрать пока не знаю.
Вместо заключения хочу дать совет всем тем, кто только начинает — наверно лучше заранее определятся с названием бренда, чтобы не тратить потом время на всю эту скучную рутину. Да, она очень важная, но не такая интересная, как разработка самой игры! Хотя может быть и не нужно было заморачиваться с изменением. Например, у меня дома весит на стенке телевизор, где внизу красуется SONY, а вот полное название компании намного длиннее.