В игры я люблю играть с детства и играя на работе в очередную игру на телефоне захотелось что то создать самому. Из знаний были только какие то остатки основ программирования на турбо паскале. Начал шерстить интернет и понял что для начала нужно выбрать движок для игры. Игру я собирался делать в 2Д и пошерстив инет нашел несколько вариантов а именно: Unity, Constructor, GameMaker. И поизучав их понял что в unity лучше использовать для 3Д и там все же нужно знать C#. Constructor был простым для новичка как и GameMaker но отказался от него из-за того что там нужно было платить ежемесячно, поэтому выбор сделал в пользу GameMaker. В GameMaker мне понравилась простота программирования, всего то создаешь обьект а в нем уже задаешь переменные и выбираешь нужные действия. Нужно чтобы обьект двигался вправо то в событии step пишем элементарно x += 5; Нужно чтобы обьект сменил спрайт или анимацию (например прыжок персонажа) то просто в событии draw меняем имя спрайта или его индекс, если это статичная картинка. Но больше всего мне там понравились так называемые будильники (событие alarm) которые я в своей игре постоянно использовал. Например нужно проверять накопил ли персонаж опыт для перехода на следующий уровень то я просто пишу alarm[1] = 60; и через 60 игровых шагов (в секунде 60 шагов) будет использован код в alarm[1]. Можно было бы конечно проверку делать при получении опыта, но это бы потребовало вписывать скрипт везде где дают опыт. Или например при сборе бонуса, нужно чтобы новый бонус через 25 секунд заново появился то я пишу alarm[1] = 1500; (в каком либо контроллере или и в в самом же бонусе) а событии alarm[1] уже будет код появления бонуса.

Первую игру создавал по мере обучения. Как и что делать смотрел на ютуб канале Econ Dude, правда он уже закрылся но недавно попался другой канал Sempiternal_Rain:Dev где можно просто с нуля научится создавать игры в Game Maker Studio 2. Также помимо ютуба много инфы и помощи получил на forum.hellroom.ru, где можно найти множество статей или задать вопрос, который помогут решить.

В итоге первую игру решил сделать по типу защиты замка KillKamm Defence, в похожие постоянно играл на телефоне на работе. И по факту код игры я сумел сделать но вылезла другая проблема, я совершенно не умею рисовать а особенно мышкой. В итоге игра провалилась (за последний год ее скачал ОДИН человек), хотя чего еще можно было ожидать. Просто посмотрите на этот ужас:

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

Спустя какое то время я решил все же сделать 2-ю игру в любимом жанре а именно транспортный тайкун Transport Luck tycoon. Зная что мои навыки рисования на уровне ребенка с детсада я принял революционное для себя решение, делать всю графику в 3Д а именно в Blender а потом просто рендерить и вставлять в игру. Правда ушло прилично времени чтобы научиться хотя бы основам работы в блендере, как и последующий рендеринг картинок также занимал много времени. В итоге принялся к разработке. Вот так выглядели первые наброски карты:

И вот тут я совершил очередную ошибку, которая преследует меня до сих пор. Я вообще не понимал как делать игру в изометрии поэтому нарисовав сетку я уже отталкиваясь от этого задавал перспективу всему в игре (зданиям, автомобилям, дорогам). Это был просто катастрофический просчет и понял я это только когда уже собрал готовую игру. Я ведь стоило почитать перед этим про изометрию и использовать стандартную прямоугольную. У меня же вышла не пойми какая из-за чего все последующие здания, обьекты и грузовики приходилось подстраивать под этот уровень перспективы. Хотя с другой стороны это создало уникальность но и доставило много проблем. И спустя год я все же сделал игру. Карта изменилась и стала выглядеть вот так:

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

Здесь картинка с маршрутом 1-го грузовика рисуется и банально перекрывается сверху картинкой шапки списка. Как только картинка достигает определенного значения y-координаты то перестает рисоваться. И такой метод тут вполне работал. Но не подходил для прокрутки списка с товаром когда прокладываешь маршрут или прокрутки списка зданий когда отстраиваешь мегаполис. В итоге пришлось долго разбираться как прикрутить особенность GameMaker по обрезанию картинки. И еще больше проблем потом доставило когда нужно было еще и учитывать масштабирование.

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

Движок GameMaker хорошо работает с 2D но все же чтобы игра не тормозила на телефонах нужно делать разбивку текстур по текстурным картам. Это самая главное в ОПТИМИЗАЦИИ игры. Текстурная карта в моей игре это лист 2000х2000 с текстурами. И надо стараться чтобы в игре этих текстурных страниц было как можно меньше и тем более они не перескакивали между собой. Вот пример такой страницы с элементами для справки и обучения в игре:

И надо стараться запихивать текстуры в такие страницы так чтобы к ним обращались только один раз за игровой шаг. Для этого GameMaker есть такое понятие как depth (глубина) которое также нужно настраивать для обьектов которые что либо рисуют в игре. Так у меня в игре сначала рисуется фон карты, потом грузовики, предприятия, города, построение маршрута, иконки (кнопки на экране, значки над грузовиками, предприятиями), инфа (это когда взаимодействуешь с тем или иным заводом, городом, электростанцией и т.д.). Для примера в первой моей игре где я вообще не разбивал текстуры по страницам а игра сама раскидала текстуры по нескольку десятков страниц, в игре на телефоне фпс порой проседал до 5, хотя тормозить там особо нечему было. А все потому что переключения между страницами порой доходили до тысячи в шаге.

Что касается самой игры то основа это производство сырья и товаром которые потом перевозишь грузовиками. Сырье нужно перевозить на заводы чтобы сделать товары, которые уже завозить в города для продажи. Сами города можно улучшать завозя туда сырье и материалы. Улучшая какой либо из 4-х городов игрок также получал бонусы для прикрепленного к этому городу промышленности. Также добавил порт и ж/д станцию куда прибывал корабль и поезд. Там можно было купить и продать 3 рандомных товара. Промышленность по мере производства товара прокачивалась и там открывались новые товары и давались очки для улучшений (времени погрузки-разгрузки, размера складов, скорость производства товаров, увеличение стоимости товаров). Сами грузовики также можно было улучшать. В игру еще добавил особый личный грузовик, которой можно было улучшать за опыт, который давали медали за выполнение каких либо достижений в игре. Каждые 15 минут игры игрок получал газету с 3 событиями которые давали положительный или отрицательный эффект.

После того как сделал игру то выложил в Google play, немного закинув в рекламу от гугла. Но чудо не произошло, в игру особо не играли. Хотя попадались игроки которым игра понравилась. Поэтому спустя несколько месяцев я решил сделать крупное обновление в игре. Вообще игра та что была и что сейчас изменилась очень сильно. В обновлении добавил много чего. В самой игре тогда сделал вот такой рекламный пост:

В общем игра хорошо так преобразилась но опять же в игру играли но мало. Поэтому я продолжал шлифовать игру и добавлять что то новое. По итогу потом добавил:

- специализации для грузовиков, которые перевозят один тип товара но делают это более эффективно. Например самосвал сыпучие грузы, автоцистерна - жидкие грузы.

- строительство до 3-х особых зданий в городах

- общий уровень игрока до 100 уровня, который давал различные бонусы по мере прогресса

- сборные бонусы (4 вида) которые состоят их 9 частей

- здание статистики

- штаб, особое здание которое игрок строит из 5-ти видов модулей.

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

В общем уже просто идеально отполированная игра но скачиваний так и нет. А оценка только постоянно ухудшалась в основном из-за отсутствия на другие переводы из-за чего возможно и падало скачивание игры. Но все же я решился сделать то в чем вообще не разбирался а именно добавить ОНЛАЙН. Скажу сразу я вообще не понимал как работает сервер, да и что это вообще такое. И скажу что когда ничего не знаешь и не понимаешь то что либо начать ох как сложно, порой просто нереально сложно. Начал шерстить инет и понял что для создания сервера надо писать отдельную программу, чего конечно я не осилить не смогу. Но все же спустя какое то время я нашел код сервера на C#, которые мог подружиться с GameMaker. Вот только беда я вообще не знаю C# и пришлось потратить месяцы чтобы хотя бы изучить основы C# т.к. там мне все же надо было программировать с данными игроков, например сортировка игроков для участия в турнире и непосредственно создание этого турнира. И спустя пол года я все же сделал это. А работы там было много не только по части кода но и моделированию в блендере. По итогу в игру были добавлены турниры между игроками в награду за которые можно было выиграть особые бонусные грузовики (для чего еще нужно будет сыграть в мини игру), турниры между альянсами в которых можно выиграть особые бонусные здания. В турнирах между альянсами игрокам нужно выполнять различные задания, которые они выбирают из 6-ти предложенных. В самом альянсе игроки могут общаться в простеньком чате, сложность программирования которого доставила проблем из-за работы сервера и кодировок разных языков. И вишенка на торте это город в альянсе, который игроки строят все вместе.

В городе-альянсе имеется 15 мест под строительство для 15 участников альянса а также места под постройку особой промышленности которая дает бонусы всем игрокам. То какие дома построить может игрок зависит от того какие он открыл в обычной игре при строительстве мегаполиса. А также какие выиграл в турнирах между альянсами. А количество зданий которые может построить зависит от кирпичиков которые игрок получает при улучшении городов в обычной игре. И чем больше город в альянсе построит игрок тем больше бонус для всех участников будет давать построенная им промышленность.

Вот она идеальная игра с таким большим ассортиментом возможностей в которую интересно играть. Да еще и созданная в одиночку. Но чудо не произошло и онлайн игры скатился на дно, вернее на самое дно, что в день если сыграет 5 человек уже чудо. По итогу на игру ушло 3 года, конечно не прям от заката до рассвета а в свободное время и порой с большими перерывами. Но успеха это не принесло, хотя если сравнивать с первой игрой где за последний год ОДНО скачивание это все же не полный провал :)

P.S. Графику в игре недавно поменял, т.к. была слишком тусклой по отзывам. А дело в том что когда делал игру много времени играл в rail nation у которой была похожая световая палитра. В общем было так:

Стало так:

Изменил у некоторых элементов насыщенность, контраст и яркость.

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


  1. Daddy_Cool
    09.07.2022 20:44
    +3

    Респект! Всегда впечатляет когда в одиночку делается долгий проект.


  1. ninJo
    10.07.2022 00:40
    +1

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

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

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

    Удачи :)


    1. iamkisly
      10.07.2022 16:36
      +1

      Не соглашусь. Это два концептуально разных подхода. Если мы делаем "игру мечты" или "свою первую игру", то мы делаем ее в первую очередь для себя. Обычно разработка начинается с "я джва года хочу такую игру" (и увы, но редко когда заканчивается). А если мы хотим в первую очередь ее продавать, то да, тут нужны предварительные исследования рынка, тщательный анализ фидбека и все такое. Не надо их смешивать.


      1. ninJo
        10.07.2022 19:21

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

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

        А что может быть кайфовее, чем зарабатывать на жизнь тем что приносит удовольствие?


        1. iamkisly
          10.07.2022 21:13
          +1

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


          1. 402d
            10.07.2022 21:37

            Дополню. Цикл жизни игры отличен от простого приложения. Фактически очень важно успешно стартануть с первого же релиза. Не знаю доступен ли сейчас механизм анонса новорегам или открывается после от заработанной репутации разработчика.

            Есть возможность сохранить буст новичка выпустив сперва приложение в открытой бете.

            Новое приложение стартует с 150го места в своей категории. Если профукать первый месяц, то можете уйти за границы поиска своего ASO.

            Сейчас еще имя приложения ограничили 30-ю буквами. Не успели сделать своей игре уникальный поисковый запрос (собственный поисковый трэнд), все Вас теперь только по прямой ссылке смогут поставить.

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


          1. ninJo
            10.07.2022 21:40

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

            Один миллиард это около процента от всего рынка видео игр, но небольшим командам этого вполне достаточно.

            Не обязательно чтобы игра стала феноменом, при грамотной монетизации достаточно и 50к игроков в месяц, чтобы прокормить себя и семью

            Советую ознакомиться с цифрами:

            https://habr.com/ru/company/alconost/blog/594433/


            1. iamkisly
              10.07.2022 23:33

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


              1. ninJo
                11.07.2022 00:04

                Ваш стакан наполовину пуст, а мой на 2/3 полон :) в статье не говорится что шанс черезвычайно мал, говорится что всего 18% игр зарабатывают более 50к, а медианный заработок 4к с чем-то. Что не так уж и плохо как доход от хобби :)

                Вот здесь больше цифр:

                https://vginsights.com/insights/article/infographic-indie-game-revenues-on-steam


            1. 402d
              11.07.2022 00:00

              Посчитаем для границы слева. 499к инсталов. На рекламе 1$ за 1000 установок. Ну может там супер ЦА. Пусть в 10 раз больше (5k). Конверсия в покупки 1% . 5к покупок. Средний чек 4$ . Получаем оценку 20к . Итого 97% заработали меньше 25к за все время в плее. Если еще поделить на время публикации и учесть сборы и налоги. То в месяц меньше коммисии банка на букву Т.


              1. BellaLugoshi
                11.07.2022 06:18

                Например в университете где я работаю средняя годовая зарплата не превышает 500 тыс рублей в год, даже при текущем курсе 20000 долларов пусть даже за все 5 лет существования приложения - это солидная прибавка к доходу, тем более что это пассивный доход. Например за 11 лет продажи хлама на Авито я получил 90000 с продажи по сути того, что многие называют мусором (да-да, многие не утруждаются давать вещам вторую жизнь а просто их выкидывают).


                1. 402d
                  11.07.2022 09:43

                  inApp билинг 11% . Paid(платные) 4% . Количество снятых с публикации не знаю. По моим оценкам это еще 3-9 миллиона программ. Поэтому все приблизительно посчитанные проценты успеха делить на 2, а лучше на 3.

                  Посчитаем по пессимистическом прогнозу.

                  <1000 установок 50% = 1$ доллар все время для тех кто с рекламой.

                  из них 11% процентов добавили ее отключение за 1$ . = 11$

                  < 10000 ( 25% ) тут максимум от 110$ до 500$

                  А вот то что вы уже считаете нормальной прибавкой получилось только у 1 из 20 .


  1. SensDj
    10.07.2022 07:01
    -1

    Чтобы люди выбирали новую игру - она должна быть лучше всех, написанных ранее на этой планете. Создавать такие игры с каждым годом всё труднее и труднее... Кстати, молодые игроделы, я бы скачал поиграть под андроид копию игры Snakes которая была предустановлена на Nokia N72, но вроде ещё никто не сделал такую же.


    1. DaneSoul
      10.07.2022 09:29

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


    1. SensDj
      10.07.2022 09:35

      Про Snakes, поискал в плэймаркете, оказывается год назад таки сделали похожую игру - Space Snake 3d


  1. arTk_ev
    10.07.2022 14:20

    А в чем смысл был делать 2д и тем более изометрию, при условии что все это конвертируется из 3d? Это дольше, намного сложнее и будет тормозить.

    Лучше сразу делать 2.5d или 3d.


    1. EMagicHero Автор
      10.07.2022 15:09

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


  1. 402d
    10.07.2022 21:17
    +1

    It looks like it a fun game but u dont have nothing to Guide you alone and show you what to do if there was like a tutorial or something to help you it probably be easier to play it

    Вы учли этот отзыв ? Аудитория в принципе есть. Ближайший конкурент взял 500к за меньшее время.


    1. EMagicHero Автор
      11.07.2022 01:07

      Это видимо отзыв был когда у меня в игре не было вообще никакого обучения. Сейчас у меня есть стартовое обучение основам игры и потом по ходу игры идет обучение другим механикам и открываются новые элементы игры.


  1. nikolas78
    11.07.2022 00:31
    +1

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


    1. EMagicHero Автор
      11.07.2022 01:11

      А какие личные данные собираются, можете сказать? В игре лишь реализовано подключение к серверу через google ID. А по поводу обьяснений то в начале вкратце рассказывается об основах игры а потом по ходу игры добавляются новые механики с дополнительными пояснениями.


      1. nikolas78
        11.07.2022 01:28

        А какие личные данные собираются, можете сказать?
        Вот честно не скажу, при установке появилось пугающее окно о сборе чувствительных и конфиденциальных данных. Потом уже в настройках ничего крамольного не заметил.
        в начале вкратце рассказывается об основах игры
        Честно говоря не осилил основы, так как: а) непонятно — понравится мне игра или нет (уж простите); б) слишком много кликов приходится делать с самых первых шагов (а я ленивый).
        а потом по ходу игры добавляются новые механики с дополнительными пояснениями
        Добавляются сами? Хотелось бы контролировать это.


        1. nikolas78
          11.07.2022 01:46

          Ну как-бы игра для программистов))


        1. EMagicHero Автор
          11.07.2022 09:29

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

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


          1. nikolas78
            11.07.2022 13:04

            Обучение пусть будет! Но может сделать базовый уровень, где будет минимум кнопок, минимум кликов — чтобы можно было запустить игру за 1 минуту и попробовать ее геймплей. Допустим на фабрике производить только один товар, на шахте тоже добывать только один вид и так далее. Причем, чтобы там не отображалось лишних (даже неактивных) кнопок. А потом уже (после окончания игры) предлагать пользователю перейти на полную версию.

            Я бы все мобильные игры так и делал — с базовым уровнем. Игр слишком много и пользователь не будет (не хочет) много времени проводить в предварительной настройке, не зная заранее понравится ли ему игра.

            А так вообще приятный дизайн и анимация!


        1. EMagicHero Автор
          11.07.2022 10:20

          И по поводу сбора конфиденциальных данных то можете скинуть на почту MagicHerohelp@gmail.com скриншот как это выглядит. Я просто хочу понять к чему это относится. К Game maker studio 2 и там надо где то галочку убрать или к рекламе от google ads где нужно указывать собирает реклама данные о пользователе или нет. А то у меня ничего не показывается.


          1. nikolas78
            11.07.2022 12:20

            Второй раз попробовал установить, уже этих сообщений не было.


            1. EMagicHero Автор
              12.07.2022 00:58

              Я в общем разобрался и по этой странице https://support.google.com/accounts/answer/3466521?hl=ru нашел на своем аккаунте свое приложение как стороннее. Доступ там к google drive (облачное сохранение) и google play (для ачивок, рекордов, авторизации на сервере) В общем т.к. я никто то я понятное не могу получить какую то авторизацию у гугла чтобы мое приложение не было сторонним.


              1. nikolas78
                12.07.2022 02:07

                Наверное это еще один квест на пути к будущему успеху…


  1. Hungryee
    11.07.2022 01:15
    +1

    Отличный проект!

    Пустил слезу, напомнило мною горячо обожаемый openttd


  1. nikolas78
    11.07.2022 01:28

    .