Понял, чего мне не хватает в моей игре. В каждой миссии хочется завалить одного ОЧЕНЬ крутого босса. Прикольно, что в мини-играх такой босс есть, а вот в основной - нет. Задумал сделать его из символов. Существо из алфавитно-цифрового 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 (ретро-экшен в подземельях в сумасшедшем минималистичном арт-стиле), а там у меня есть режим заставки и можно включать флаги. Добавил вот эти четыре флага. Смотрятся крипово (текстовый режим все-таки), но вроде интересно.
Заходите посмотреть на страничку в Стиме в последние дни фестиваля "Бесконечная реиграбельность".
Предыдущий образ показался мне слишком "дурашливым и безликим", и я решил сделать более характерного персонажа, да и в целом кошконародец из вселенной игры захотелось сделать более "очеловеченным".
Ну мне в целом результат нравится, нужно только её приодеть)
На мой взгляд, смена дня и ночи в играх способствует большему погружению, и я не удержался и тоже добавил этот элемент в свою игру.
Правда, в моём случае это скорее имитация, поскольку я создаю эффект за счёт срезания RGB-канала, а не освещением или чем-то таким, что никак не влияет на тени в игре.
А помимо визуального эффекта я навесил логику и фары машинкам. Ночью дальность обзора всех машинок уменьшается (в зависимости от времени на 10-40%), но если включить фары, то этот эффект уменьшается в два раза.
Видос ускоренный в 5 раз с днем и ночью и жизнью нпс :)
Если вам понравилась статья или игра, присоединяйтесь к комьюнити, что бы нечего не пропустить.
О, коллега Лëнька. На вахте жили да работали вместе. На ноуте игор у меня много было тогда. Масс-эффект 2, фоллаут 3, крайзис какой-то был, Росомаха начало. Лëнька любил на моëм ноуте в росомаху поиграть. Но каждые полчаса он кричал - "блядь, непроходимый уровень"!!! Я у него спрашиваю -"читал что пишут то"?!! -" Не, нахуя?"
нахуя читать то? Скучно ведь. И уровни непроходимые.