Знакомство

Всем привет, мне 22 года. Чуть больше полугода назад я понял, что хочу делать игры. Начал изучать C#. Три месяца учил основы из книжки Шилдта, половину осилил с конспектами. Потом решил, что учиться лучше на практике, а то очень страшно от неизвестности, да и не понимал как вообще что там делать в Unity.

Ради получения опыта в качестве первого проекта решил делать проект пиксельного платформера. Тем более, что нормального ПК нет. Из рабочей машины у меня пока лагучий ноутбук, которому уже 10 лет, знакомьтесь:

  • Процессор: Intel Core i3-2310m 2.10 ГГц;

  • Видеокарта: Nvidia GeForce 315m;

  • 4 ГБ ОЗУ + 2 добавил.

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

Идея игры

Потом я понял, что даже платформер - это долго. Мне хотелось сделать что-то быстро, чтобы получить как можно больше опыта. Я начал искать игру в Google Play, которая мне бы нравилась, и чтобы не слишком сложная. Нашел там Scrap Clicker II. На удивление, приятная игра, очень простая и увлекательная, два часа были убиты в ней будто моментально

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

Получилось удовлетворительно, но очень сыро, сделал слияние камней, автоматическое слияние, улучшения. Все проблемы гуглились кое-как, поэтому я справился.

Для удобства и чтобы не забыть, я составлял списки планов того что нужно сделать из механик и того, что нужно нарисовать.

Графика

Следующие 1.5 - 2 месяца я рисовал графику в фотошопе. Тоже было страшно что не получится, но получалось! Вышло 44 минерала, и еще много чего. Но минералы были сложнее всего. И они у мне получились самые проработанные. Шло медленнее чем я предполагал, но мне хотелось сделать так, чтобы мне нравилось.

В время графической части за один день я мог максимум рисовать по 4 камня, обычно получалось только 2.

Шахтер и одна из 15 картинок слоёв породы
Шахтер и одна из 15 картинок слоёв породы
Кобальтокальцит
Кобальтокальцит
Кварц
Кварц

Небольшое отступление

Попутно с созданием игры я постоянно искал работу, звонил работодателям, ходил на собеседования, работал на автомойке 5 дней, стажировался дизайнером, работал в типографии 2 месяца за копейки, очень стрессово этим заниматься. Начал надеяться что игра принесет деньги, чтобы я мог заниматься тем, чем хочу, делать игры!

Снова в Unity

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

Больше всего в своем списке планов меня пугали три вещи: сохранения, локализация и внедрение рекламы. Я думал что это очень сложно. По моему плану их нужно было делать только тогда, когда всё остальное будет готово.

Было сложно, но благо в интернете много информации о Unity. В итоге с локализацией и сохранениями я довольно быстро разобрался. Самое сложное началось при внедрении рекламы AdMob. У меня вылетало приложение и очень лагало, я сильно переживал.

Около 2 недель я пытался понять что происходит. Думал дело в оптимизации, перечитал весь интернет (хех). Сделал все что смог, многое переделал, стало намного меньше лагов (по прикидкам раз в 10 наверное). Больше всего помогла оптимизация UI. Я разделил всё на холсты, на многие из них добавил личный Graphic Raycaster, что позволяло холстам не перерисовываться заново при изменении на соседнем холсте.

Но вылеты и лаги остались на некоторых устройствах. Я даже думал что у меня не получится вообще закончить игру, было тяжело.

Сначала, в Profiler всё потребляло много GPU, причем никакого намека на рекламу не было. В Logcat было написано, что приложение очень медленное. Я думал, что оно вылетает из-за этого, причем это все происходило, только когда есть интернет.

Позже тестовым путем я понял, что дело в том, как я вызывал рекламу. У меня было около 12 реклам с вознаграждением. Скажу, что лучше вызвать одну рекламу в старте, и в зависимости от кнопки на которую нажимаешь, давать награду. В одном Reward Handler - так сделал. Теперь работает прекрасно. Жаль об этом нигде не написано или может я не нашел. Возможно кому-то поможет. Могу, если что объяснить подробнее, а еще у меня не получилось внедрить FireBase, так как у меня Windows 7.

В целом на создание игры ушло 4 месяца, не считая обучения основам языка.

Перед Релизом и после

Музыку я написал за 2 дня, на удивление было легко, думал займет неделю, звуки записывал в FL Studio, кроме звука камней, их я нашел на улице.

Во время релиза, ничего необычного не было.

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

Далее, после фикса основных проблем, я внедрил Google Services, пока только сохранение на облако.

18 дней после релиза(сейчас) - 101 скачивание, игра принесла на рекламе 30 долларов, что окупает аккунт разработчика. Уже хорошо. Я ее постоянно дорабатываю. Мои друзья, родные и знакомые помогают мне с поиском багов - тестеры в общем.

Впечатления от создания игры

Очень хорошие, хоть и не просто было. Оказалось, это моё. Люблю это делать, рисовать, программировать, музыку делать и звуки, мне не очень нравится маркетингом заниматься только.

Планы

Сейчас, я пытаюсь как могу разрекламировать игру, мне кажется у нее есть потенциал. Эту неделю планирую заниматься маркетингом.

Дальше в планах сделать игру езду на вагонетке в стиле Hill Climb Racing, но в пещере. И чтобы это было частью геймплея добычи камней. Например, набираешь 100 камней - отвози, весело и свежо мне кажется, тестовую механику уже сделал.

В первой и новой игре добавлю новых минералов, пофикшу баги, какие будут. Очень надеюсь купить новый ПК на будущие вырученные деньги. У меня буквально пару дней назад отказал USB разъем для клавиатуры и я сейчас пишу на родной, той что без кнопок. Также у меня забинжена клавиша "Р" на num, потому что она не работает.

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

Комментарии (36)


  1. cck7777
    29.11.2021 21:51
    +2

    Может, для начала купить (заказать) для ноута "родную" (китайский клон) клаву? Похоже, меняется без разборки (пару винтов снизу и защёлки на стыке клава-корпус). Ищите по модели. А в USB разъём загляните, порой бывает можно контакты снаружи подогнуть (выправить), диск не потянет, но клаву, мышь...


    1. Danyellow Автор
      30.11.2021 16:38
      +1

      Мне родная клава не нравится, я думаю заменить разъем все таки, с ним всё плохо


  1. AlexanderS
    29.11.2021 22:44
    +5

    Хотелось бы почитать именно о технических подробностях, а не «про организацию в целом». Если бы вы сделали статью-две-три для создания игры с нуля до хотя бы APK файла я думаю это для многих могло бы стать отправной точкой.

    У меня знакомый так же аналогично осваивал движок и несколько игр сделал. Я так понял в плане программирования поведения там всё не так и много, а большая часть времени уходит на дизайн, музыку, интеграцию в систему, оптимизацию под разные устройства, разбирательства с организацией рекламы и прочее и подобное.


    1. Danyellow Автор
      30.11.2021 16:49
      +1

      Если честно я такие посты писать не очень умею, в программировании над игрой были интересные моменты, но я не знаю как о них рассказать, возможно стоит научиться


      1. AlexanderS
        30.11.2021 17:33
        +3

        А ничего сложно. Проделан определённый объём работы до конечного результата. В процессе накоплен некий опыт. Если начинали с нуля, то спотыкались буквально обо всё. Всё это, по хорошему, стоит занести в свой FAQ — самому себе на будущее. Ну вот, будет очередная игра — начинаем всё заново, что подзабылось — подглядываем у себя, а не гуглим упорно. Эти заметки и есть база — самое ценное, опыт, полученный в результате саморазвития. Теперь если это обернуть в словеса и восстановить логические связи между хронологическими записями — получится вполне себе сносный мануал.

        Плюс технически грамотной статьи ещё в том, что пока ты её пишешь тебе порой приходится самому плотнее разобраться в деталях чтобы аргументировать или объяснить выбор, ну и совсем уж дилетантом чтобы не выглядеть — это всё способствует лучшему пониманию предмета. Опять же можно и профит получить — возможно что-то покритикуют, что-то могут подсказать как сделать лучше.

        У меня по такому принципу сделан цикл по Nextcloud. Там ничего нового, чего бы не было в интернете нет. Просто всё собрано в одном месте, подобрано друг к другу, разъяснено и хорошо повторяемо — неискушённые люди в linux просто читали первые три статьи и за вечер с нуля поднимали веб-сервер с облаком и писали мне как это круто! А я три-четыре месяца (естественно в свободное время) на это потратил) Даешь техническую грамотность в массы!


        1. felix0id
          30.11.2021 20:08

          Поддерживаю, на таких статьях и опыт набьётся, и слог.

          Статья хорошая!


        1. Danyellow Автор
          01.12.2021 12:52

          "Если начинали с нуля, то спотыкались буквально обо всё" - это точно!

          Согласен, что это нужно самому плотнее разобраться в деталях прежде чем писать такое. Рад что вы написали статью, и что это было настолько полезно другим)


  1. Tnkr
    30.11.2021 00:49
    +2

    Дедок - огонь!


    1. Danyellow Автор
      30.11.2021 16:37
      +1

      Спасибо)


  1. overlapped
    30.11.2021 01:56
    -13

    1. "Мне хотелось сделать что-то быстро, чтобы получить как можно больше опыта." - ну это же явно противоречие. Опыт как раз именно с годами и получается, и не быстро. В этом его и смысл.

    2. Художник - явно не твой конёк. Почти невероятно кодить и быть художником. Я таких людей никогда не встречал.

    3. Я понимаю что горячие головы, задор в глазах. Но займитесь чем то полезным для страны. Королёв уже ракеты запускал, а Билли операционку пилил, а вы всё дедков рисуете. Индусы уже Луну с Марсом скоро колонизируют, а вы всё Unity изучать будете!


    1. 4eyes
      30.11.2021 04:16
      +5

      Зачем же так грубо, товарищ военком?..


    1. Danyellow Автор
      30.11.2021 16:52
      +5

      Один говорит кодить - не твоё, другой - рисовать, похоже я именно такой человек которых вы не встречали! Может я и не разовьюсь до космических высот в одной сфере, но буду заниматься тем что мне нравится


      1. perlestius
        01.12.2021 08:20
        +1

        Не обращайте внимания на подобные брюзжания. Лучше почитайте про историю Эрика Барона, создателя Stardew Valley. Ей посвящена глава в книге "Кровь, пот и пиксели..."

        И удачи Вам!


        1. Danyellow Автор
          01.12.2021 12:52

          Спасибо большое)


        1. Kenya
          01.12.2021 18:52

          Не так давно прочёл эту книгу. Глава про Stardew Valley и сама история разработчика прям дико мотивирует)


    1. Diamon33
      30.11.2021 19:35
      +3

      Тут недавно человек писал, как в 37 начал заниматься анализом данных, а в 45 только получил первую работу в IT, Вы бы ему застрелиться предложили?


    1. felix0id
      30.11.2021 20:10
      +2

      Что ж за день сегодня такой? И в твиттере куча-буча, и тут вместо поддержки зачем-то неадекватная критика.

      Нормальная инди-игра одного разработчика


  1. zilopop
    30.11.2021 08:30
    +1

    Отлично получилось, как по мне. Довести проект до конца - дорогого стоит!


    1. Danyellow Автор
      30.11.2021 16:30
      +1

      Спасибо)


  1. vesper-bot
    30.11.2021 09:59

    Не понял, какого жанра вышла игра. Кликер, ленивка, incremental, ещё чего-то? на motherload явно не тянет. По поводу графики — скорее всего, вам ближе всего будет именно заниматься рисованием, 2д-3д не столь важно сейчас ИМХО. Дедок получился симпатишный, только ухо у него не человеческое, а вроде приставного стакана получилось, что, впрочем, немного оттеняет персонаж. А по поводу ноутбука — не такой уж и лагучий ИМХО, мой не сильно мощнее (8ГБ против шести, и только, и 8.1 вместо десятки) и вполне всё пока что тянет. На деньги от игры я бы не рассчитывал, особенно от первой, а вот опыт — это тема. Можно даже заявить игру в портфолио, когда попробуете устроиться на программиста или ещё кого в компанию, пишущую игры.


    1. urvanov
      30.11.2021 12:09

      На деньги от игр, мне кажется, лучше вообще не рассчитывать. Там нужна удача, опыт, навыки маркетинга. Это всё не каждому даётся.


    1. Danyellow Автор
      30.11.2021 16:35
      +1

      Спасибо за похвалу, я думаю это incremental idle. Насчет ноута, на нем лагает даже майнкрафт на минималках, не знаю как он у вас всё тянет


      1. vesper-bot
        30.11.2021 16:56

        А, ну я на нем майнкрафт и не запускал :) мне здесь хватает офисного ПО плюс браузер плюс виртуалка (ХР) плюс скайп. А из тридэ игр я на нем запускал только 4-ю циву, остальное древнее 2010го и тормозить не могло.


  1. ScarferNV
    30.11.2021 12:22

    А мне понравилось, интересно кратко почитать про опыт других людей.


    1. Danyellow Автор
      30.11.2021 16:36
      +1

      Рад что так!


  1. Finterio
    30.11.2021 17:37

    Не согласен с комментатором overlapped насчет того, как нарисована игра. По мне так, нарисована красиво, особенно для первой игры.


  1. kaiZer_dragomir
    30.11.2021 21:48

    Постарайся определиться с профессией в геймдеве, выбери что больше нравится. Получи работу и начинай на ней зарабатывать на Твоё дальнейшее обучение. Но главное, на работе Ты сможешь увидеть как устроены процессы, что помогает, что мешает. Как найти и протестировать идею для игры. У Тебя появться знакомства, которые помогут довести игру, или вовремя понять что стоит сделать другую. И главное навык, тот самый ключевой навык, вокург которого сможешь строить свои игры. Код, графика, не важно, будет опора


    1. Danyellow Автор
      01.12.2021 12:55

      Думаю это правда важно, я бы хотел получить такой опыт, спасибо за советы!


  1. MacJei
    01.12.2021 12:55

    Молодец, парень. Очень вдохновляющая статья, успехов с игрой.


    1. Danyellow Автор
      01.12.2021 12:56

      Спасибо большое, приятно!


  1. zombie47
    01.12.2021 12:56

    Блин ну норм 4 месяца)))) у меня терпения не хватает, делаю какие то механики отдельно и забрасываю)


    1. Danyellow Автор
      01.12.2021 12:59

      Теряете веру что получится, или почему бросаете?

      Я раньше вообще всем боялся заниматься, потому что с первого раза не получалось, расстраивался, оказалось потом, что чтобы что-то получалось - нужно практиковаться, и учится на ошибках, было не просто это понять


      1. zombie47
        01.12.2021 15:13
        +1

        Это видимо особенность нашего образования, когда не учат уверенности. Нет я не боюсь начинать заниматься чем либо совсем. Возможно я не так ставлю цели. У меня нет цели сделать игру, так как я понимаю нужно много усилий приложить. Например первая цель у меня была научиться понять как делать рубку деревьев, подбор предметов в инвентарь как в диабло2. Ну так как у меня не было цели сделать анимацию персонажа то я просто взял готовый, так как я знаю как это работает и мне это не интересно, мне интересен именно код и результат. С нуля сделать инвентарь как в диабло 2 тяжко поэтому я нашел скачал, и начал разбираться в коде, мне нужно было увеличить размер и еще что то. И вот я там мучался переписывал, рубил деревья вставлял звук, устранял баги. Игры как таковой не было, персонаж просто двигался по 2д карте, ходил спереди или сзади дерева, рубил его, и собирал предметы в инвентарь. Ну как я понял принцип как это делается цель впринципе достигнута и интерес пропал.
        А вторую не так давно делал уже в 3д, мне было интересно понять насколько сложно сделать симулятор угона авто, притом что я знаю как запускать тачки по электрике без ключа) Ну тачку я могу сам сделать в 3д но зачем, если есть хорошие готовые, поэтому я качнул, сделал чтоб двери открывались, потом сделал чтоб не открывались пока не разбиты стекла. Потом при клике на стекла сделал чтоб подменялась моделька на битое стекло, и если стекло разбито то дверь можно было открыть и сесть в тачку. Все дальше я не смог придумать как в игровой манере сделать запуск авто проводами приблежено к реальности.Ну или стало лень. Ну так как в реальности надо проводами сначала врубить зажигание, это подать массу на один провод а там их 120, все разноцветные. потом подать плюс на два провода чтоб покрутить стартером, ну и да еще мозг поменять надо на свой) Была идея чтоб человек не туда подает массу или питание у него сгорал предохранитель, и потом ищи какой пред сгорел)) короче симулятор так симулятор )


      1. Voloda2
        01.12.2021 20:44
        +2

        Самое сложно довести дело до конца - человек может пару часов и покодить и порисовать и музыку пописать - но в итоги будет заниматься тем к чему душа лежит. Чтобы закончить игру нужно будет несколько дней или недель заниматься нелюбимой работой - например графику рисовать - программисту это в тягость. Я сам чуть не застрелился пока базу данных наполнял. Второй раз такое точно делать не буду.


        1. zombie47
          05.12.2021 20:58

          тут нужна команда, этому учит образование в сша работать в команде и не учит образование в РФ.


    1. vesper-bot
      02.12.2021 06:39
      +1

      Было такое, мне помогало допилить код до того, что "что-то там начинает происходить", этого хватало, чтобы подстегнуть мотивацию пилить проект дальше.