В этом посте я хотел бы рассказать как пришел к мысли создания собственной игры, да и собственно о самом процессе создания тоже. В отличии от девблогов проект уже существует и релизнут, поэтому все написанное тут будет историей пережитого опыта.
Начну с конца февраля 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
В следующих постах я хотел бы рассказать чуть подробнее о скинах, о готовящемся первом обновлении и планах выхода на международных площадках.
Привет Пикабу! Недавно я выпустил свою книгу по программированию и вы поддержали меня 20 000 лайками O_o
Сказать что я шоке - это словно промолчать. Очень приятно, спасибо! Хочу поблагодарить вас и всем моих читателей и разыграть 5 ноутбуков чтобы добавить вам мотивации в изучение IT. В конце поста будут подробности.
А пока хочу рассказать о своём первом ноутбуке и как я стал программистом, нашёл свою первую работу и меня первый раз уволили.
Эта история началась в 2011 году в Казахстане
На мое 14-летие родителе подарили мой первый пк - HP 620. К этой адской машине я каким-то образом приколхозил телефон в качестве модема и шиковал на 50 мегабайт в день за какие-то астрономические деньги (все школьные пайки туда улетали).
HP 620 (Фото не мое, но модель та же)
О С++ тогда в интернете было написано только то, что мне нужно установить Visual Studio. Который я так и не смог скачать и очень долго грустил. Где-то начитался, что в такой ситуации нужно установить Linux и взять компилятор GCC, который уже в нём на борту :)
Злой школьник
Нельзя давать юноше Linux. После того, как я добыл диск с Ubuntu, меня выключило из жизни лет на 5. Я херачил на плюсах, собирал Debian и с утра до вечера вдуплял в сканер портов.
Но это совсем другая история.
Параллельно с этим у меня появилось жгучее желание стать хакером. А еще я хотел писать сайты, реверсинжирить программы, заниматься системным администрированием и, конечно же, делать игры. Я, как голодная собака на фуршете: Пытался запихнуть в себя всё и сразу.
Где-то через годик я уже сделал свой первый сайт и написал первый работающий вирус. Он заражал компьютеры и заменял локально сайт VK на специальный фейк, который присылал мне введённые данные. За год у меня накопилось около 500 аккаунтов.
В моменте я чувствовал себя королём горы. Умею всё! Знаю столько языков! И жнец, и певец, и на дуде игрец… Но как лопатой по голове, мне сбило корону, когда я попытался на этом заработать. Оказалось, что я всё знаю поверхностно и только копирую примитивные примеры с книг и разных статей.
Эго сбило. И я чувствовал себя раздавленным. Оказывается, я не хакер, а злой школьник, который не может взяться за что-то одно и нормально в этом разобраться. Каждый раз, когда я брался за что-то одно, меня мучали вопросы:
1) А вдруг на чём-то другом будет больше денег?
2) А пока я буду учить, не станет ли это не актуальным?
3) А точно ли это моё?
Робко начинаю что-то понимать
Все изменилось вместе с этим скриншотом и моим первым проектом на Unity. Тогда я впервые сфокусировался на чём-то одном, отбросил все вопросы и начался настоящий прогресс.
Мой первый проект в Unity
Проект мы так и не закончили, хоть и работали над ним 2 года. Но это не важно. С этого момента я стал разработчиком игр. И это самое важное, что случилось в моей жизни.
Тогда мы с моим школьным другом оба хотели стать разработчиками. Вместе искали первые книжки и тыкались в Unity. Но, к сожалению, он бросил после первых неудач, а я выдержал и продолжил идти этим творческим путём.
Оно того стоило. Самым сложным периодом стало время до первой оплачиваемой работы. А дальше с денюжкой уже повеселей пошло.
Новогоднее чудо и первая 1000 долларов
В 15 (!) лет я начал работать программистом за деньги. Я был очень-очень счастлив, когда меня наняли. Это был просто какой-то взрыв чувств на толчке от которого я лечу уже 12 лет.
Мне повезло, но есть поговорка: "Удача сама не приходит: ее работа за руку приводит."
В 2012-ом году я просто учился программировать и работать в Unity. А ещё я сидел в группе VK по тематике, в которой было около 100 человек. На тот момент это было единственное сообщество)
И так как я был книжным червём, то каждый раз, когда там кто-то что-то спрашивал, я просто отвечал и помогал разобраться. Бесплатно. Потому что любил это.
Родители, правда, были против. Я забил на школу и меня оставили тогда на второй год. Каждую неделю папа приходил с серьёзным разговором: "Переставай ерундой заниматься. Чем себя кормить будешь?". Так я просидел весь 2012-ый год.
Чудо произошло под Новый год. Родители пришли с ультиматумом, что либо я найду работу и буду обеспечивать себя сам и жить как хочу, либо болты затянут полностью. Я почти отчаялся, но буквально через два дня мне в личку постучался незнакомый человек.
Он такой: "Слушай, мы ищем разработчика в компанию. Видели, что ты всем отвечаешь. Не хочешь попробовать?"
Я помню, как под ёлкой загадал желание: "Хоть бы меня взяли".
И меня взяли))
Проект был онлайн-файтингом под VK. Скриншот прикрепил.
Конечно, были проблемы из-за того, что мне было всего 15. Но компания пошла на встречу и деньги я получал на папу. Платили каждую неделю. И мы стабильно раз в неделю ездили в банк и снимали наличку. Папа просил не тратить деньги, вдруг "назад попросят", но меня больше не трогал. Платили мне тогда 1000$ в месяц. В Липецке на эти деньги в 15 лет я был прям королём и мог купить всё.
Ну и перестала ходить в школу, перешёл на домашнее обучение и кое, как через несколько лет получил аттестат за 9 классов с тройками по всем предметам.
Выстрел в колено
Меня сгубило полное отсутствие Софт Скиллов. Если по-человечески, то был обычным задротом.
На моей первой работе я быстро разобрался с новой системой анимации в Unity и с сетевым программированием. Сетевой файтинг - это, конечно, то ещё задротство. Это считается одним из сложнейших жанров. У меня от этого ЧСВ до небес взлетело. Кстати, именно это мы часто наблюдаем у наших учеников, когда после учебы они получают сочное портфолио и многих начинает заносить.
Косяки у меня были простые:
1) Мог выполнить задачу и сдать её, не протестировав.
2) Закрыл задачу - поехал тусоваться и тратить деньги. А когда звонят и спрашивают, почему не за компом, то искренне удивлялся: "Ну я же всё сделал, вам какая разница".
3) Мог искренне считать, что геймдизайнер не прав и начать саботировать задачи. Мол, они дураки и всё равно хрень получится.
Тогда мне казалось, что я самый крутой, ведь я был единственным разработчиком на проекте. За это меня через пол года справедливо выгнали. А я потом ещё несколько месяцев гордый ходил, мол: "такого специалиста потеряли". Но правда была в том, что программистом я был начинающим, а вы*бывался за десятерых.
Не будьте тупыми мудаками
После того как отсутствие денег меня приземлило, я пошёл хреначить на фрилансе.
После увольнения было легко, пока были деньги. А потом они закончились, и встал вопрос: "На что жить дальше?". Я хотел заниматься своими проектами, поэтому пошёл фрилансить. Профессия разработчика игр этим очень удобна. Можно делать проект мечты и для поддержания штанов параллельно выполнять заказы.
На биржах фриланса мне долго не удавалось найти. Там либо какие-то неадекваты типа: "Сделайте мне убийцу ГТА за 2000 рублей", либо без очень жирного портфолио даже рассматривать не хотели.
Заказы было сильно проще искать в профильных группах и чатах по разработке игр. Там всегда тусуются заказчики, с которыми можно адекватно и по-человечески договорится. На бирже я протусовался неделю и тишина. А по дедовскому методу уже к вечеру нашёл первый заказ.
У меня заказали сделать Драг Рейсинг игру. Буквально базовую механику, натянуть UI и добавить три готовых машины. За это мне заплатили 320$. Я его сделал не спеша, где-то дней за 5. Мне всё оплатили и я довольный делал проект мечты, но это уже другая история.
А что с ноутбуком?
Потом было много чего еще, работа в США, переезд в Питер, основание своей игровой студии, открытие собственной школы. Но старичок HP уже не справлялся и остался в моей детской комнате в Липецке. Он до сих пор со мной и до сих пор лежит там с уже высаженным аккумулятором и с Ubuntu 14.10 на борту.
Это я все к чему? Подарок родителей стал для меня знаковым, и вместо того, чтобы пить пиво за гаражами я стал программировать, а потом пить пиво за гаражами.
И сейчас когда у меня у самого есть возможность делать такие подарки, я хочу ей воспользоваться и дарю 5 моим подписчикам ноутбуки. Розыгрыш делаю через функцию в телеграмме, платформа сама выберет 5 победителей. Принять участие можно здесь - https://t.me/sakutin_csharp/2282
Если вам интересно позже сделаю вторую часть где расскажу как попал на работу в США, потом собрал свою команду и открыл свою студию разработки игр.
Недавно я создал игру на платформе Unity, главным героем которой стал красный Мягкий мячик.Игра получила название «Red Ball Fluffy».
В этой статье я хочу поделиться своим опытом и попросить вас оценить мою работу.
Разработка игры началась с идеи создать что-то новое из хорошо забытого старого :)
Я решил, что мой герой будет физическим, Мягким, красным мячиком, который путешествует по разным мирам и преодолевает препятствия.
Первым шагом было изучение платформы Unity и её возможностей, документации и видеоуроков, чтобы понять, как создавать 2D- игры. Затем я приступил к разработке игрового мира.
Я создал несколько уровней, каждый из которых представлял собой мир с различными препятствиями и бонусами. Мячик должен был прыгать, летать, скользить, иногда быстро перемещаться и протискиваться в узкие проходы чтобы пройти все уровни.
Следующим этапом была разработка персонажей и анимации окружения.
Я не стал создавать анимации прыжка и приземления для мячика, так как он был“Soft body physics”и деформировался сам собой. Также я добавил звуковые эффекты и музыку, чтобы сделать игру более атмосферной.
После завершения разработки игрового мира и персонажей я приступил к тестированию игры. Я играл сам и просил друзей протестировать игру, чтобы выявить возможные ошибки и проблемы.После исправления ошибок я опубликовал игру на платформе RuStore.
Я получил много положительных отзывов от моего главного гейм дизайнера - моей дочки :) и хотел бы попросить вас оценить мою игру и оставить отзыв. Ваши отзывы помогут мне улучшить игру и сделать её интереснее.
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 (ретро-экшен в подземельях в сумасшедшем минималистичном арт-стиле), а там у меня есть режим заставки и можно включать флаги. Добавил вот эти четыре флага. Смотрятся крипово (текстовый режим все-таки), но вроде интересно.
Заходите посмотреть на страничку в Стиме в последние дни фестиваля "Бесконечная реиграбельность".