Alt: City Online. Как я в одиночку создавал «Gta Online» для мобильных устройств. Часть 1

Возможно ли в здравом уме замахнуться на подобный проект в одного, и надо ли оно вообще? Спойлер: да (длинный пост с картинками и видео).



Предыстория


Разработкой программных продуктов я занимаюсь уже 6 лет, начинал с разработки приложений для iOS. После выпуска нескольких приложений, которые в общей сумме принесли около $500, решил попробовать себя в разработке сайтов и настройке рекламы. В этой сфере я проработал 3 года, и понял, что создавать сайты — не то, чем мне хотелось бы заниматься в жизни.

Так как с детства я очень любил игры, решил рассмотреть геймдев как будущую нишу, где хотел бы себя попробовать. Сделал бесплатную игру на SpriteKit (фреймворк Apple для создания 2D игр), начал знакомиться с инструментами для разработки игр. Решил подробно изучать Unity, так как он мне показался оптимальным вариантом для разработки именно мобильных игр. Выпустил в AppStore и в Google Play простенькую игру на Unity, и естественно поиграли в нее условно 3 с половиной человека. Это меня не особо остановило, так как цель разработки этой игры была в основном в том, чтобы познакомиться с процессом разработки в Unity и запуском игры именно в Google Play. Эти цели были выполнены, можно было двигаться дальше. Я начал уже более тщательно изучать Unity: 3-4 часа в день стабильно проходил Advanced курсы по разработке. Думаю, что мне повезло — попался действительно подробный и толковый курс по созданию RPG в Unity, и многое, особенно различные best-practices, я узнал именно из него.

В это время мне подвернулась вакансия в одной крупной компании-разработчике мобильных игр, решил попробовать. Проработал там 3-4 месяца. Это была моя первая работа по найму. До этого вполне успешно работал только на себя. После определенного времени я понял, что это не мое. Надо отдать должное — компания предоставляла максимальные удобства для работы. И вообще поразило то, насколько у нас в стране (живу в России, в городе миллионнике) может быть крутое отношение к работникам. Ни в коем случае не хочу сказать, что в других компаниях плохое отношение, просто то что я наблюдал — это очень круто.

В общем, после ухода с работы, пришло понимание, что хочу попробовать создать действительно интересную и уникальную игру (наверное термин “уникальная игра” не совсем вяжется с концепцией игры-аналога GTA Online, но об этом дальше). С детства я обожал серию GTA — играл десятками часов напролет в GTA Vice City и GTA San Andreas, ставил моды, крутил параметры машин. Потом после выхода GTA IV все то же самое делал с ней. Потом GTA IV: Episodes from Liberty City, GTA V. И естественно GTA Liberty City Stories, GTA Vice City Stories, GTA Chinatown Wars для PSP. Также было потрачено куча часов в других подобных играх — Saints Row, Godfather 2 и т. д. Эх, хорошие были времена…

Так вот, потом я познакомился уже с различными Role Play проектами, основанными на GTA. Но знакомство с ними, к сожалению, уже происходило через YouTube, так как работа стала занимать практически все время, а найти 30 минут в день на ролик — не проблема. Считаю, что RP проекты создали очень интересную нишу, и вообще переосмыслили GTA.

RP проекты создали очень интересную нишу, и вообще переосмыслили GTA

Как я уже сказал выше, свободного времени становилось все меньше, и я захотел поиграть во что-то по типу GTA Online / GTA RP на телефоне — благо сегодня телефоны действительно мощные, и по идее что-то подобное можно реализовать (например тот же PUBG, который отлично работает на практических любых устройствах). Каково было мое удивление, когда в AppStore я нашел буквально 3 игры, которые хоть как-то можно было отнести к “аналогам GTA Online”, да и те — ужасные. Вот так и появилась идея создать первый аналог GTA Online для устройств на базе iOS и Android.

ALT: City Online




Геймплей в ALT: City Online — это смесь классической GTA Online и ее Role Play модификаций. В самом начале игры ты появляешься в стартовой точке (предполагается, что это будет либо вокзал, либо аэропорт). Твоя задача — найти работу и начать зарабатывать деньги и опыт. По мере получения опыта, тебе будут открываться новые профессии. Список профессий будет широкий, и я сейчас работаю над тем, чтобы сделать геймплей каждой профессии максимально интересным насколько это возможно. Далее ты сможешь купить себе квартиру, мотоцикл, потом дом, машину, машину получше — в общем все, кто играли в GTA RP, знакомы с этим. Фишка игры заключается в том, что в сессии, в отличии от классической GTA Online, будут сотни человек, ты сможешь взаимодействовать со всеми — разговаривать, наносить урон, кооперировать, обмениваться вещами, продавать вещи.



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

Но главное отличие от RP проектов — в ALT: City Online нет классической для таких проектов консоли, нет администраторов, не нужно “отыгрывать РП”. Ты можешь, но не обязан.

Площадь карты в игре около 225 квадратных километров, но примерно треть площади покрыто водой, так что “эффективная” площадь равна примерно 150-160 квадратным километрам. Естественно, наполнить такой большой мир контентом в одиночку достаточно сложно, поэтому игра будет наполняться контентом в последующих обновлениях.



Важно то, что игра будет работать не только на последних топовых девайсах. Например, если говорить об iOS, то минимально поддерживаемое устройство — iPhone 7. Вообще, основным “боттлнеком” оптимизации игры стала непрозрачность потребления памяти на iOS платформе (это известный недостаток Unity, с которым на данный момент мало что можно сделать), из-за чего было достаточно сложно оптимизировать огромный открытый мир для работы на маленьком устройстве с 2 гб оперативной памяти.


Какие вопросы предстояло решить


В первую очередь надо было вообще понять, возможно ли реализовать мобильную онлайн игру в большом открытом мире на Unity? Соответственно, был куплен простенький генератор города для Unity, контроллер персонажа, скачаны бесплатные модели оружия и автомобиля и кое-как настроен клиент сервер (вопрос реализации мультиплеера решался достаточно долго, так как официального решения от Unity нет, а фреймворков много, и они очень отличаются, расскажу о сетевой архитектуре подробнее в одной из будущих технических статей). Спустя две недели был готов достаточно играбельный прототип. То есть был запущен тестовый сервер игры на виртуальном сервере, установлены клиенты на телефоны друзей. Мы подключились, поиграли — все отлично работает для прототипа, все довольны. Провел стресс тест, получилось, что минимум 100 игроков сервер точно держит. Для игры это достаточный минимум, но вообще, цель — 600-1000 игроков на сервере (то есть столько игроков будет одновременно в сессии). В общем, пришло понимание, что Unity очень даже подходит под этот проект.


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

Далее нужно было понять, как быть с 3D моделями? А их нужно было действительно много — здания, автомобили, различные пропсы, одежда, оружие. И самое главное — как смоделировать сам мир: ландшафт (террейн), дорожную сеть, город? Написал подробный список всех нужных объектов. Потратил неделю на поиск нужных моделей по списку, и понял, что в принципе все что нужно есть в магазинах 3D моделей.

Сделаю отступление — надо понимать, что я занимаюсь проектом с декабря на фул-тайме (по 10-12 часов в день, без выходных), а практически все средства, отложенные за прошлые годы, я тратил на покупку различных инструментов и 3D моделей. Думаю, это снимет многие вопросы по поводу того, почему на некоторые этапы потрачено “мало” времени.

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

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

Текущее состояние проекта


На данный момент я работаю над игрой уже девятый месяц. Проект готов к альфа релизу на 85%. Уже сейчас полностью смоделирована карта, настроена работа открытого мира на телефонах, проведена работа над рендерингом (LODы, различные настройки графики, оптимизация текстур, динамический батчинг и т.д.), настроена архитектура клиент-сервера, оптимизировано потребление памяти.

Для альфа релиза осталось доработать базовые механики, добавить работы, добавить контент (автомобили, одежду), добавить UI и все это хорошенько протестировать.


Скриншоты










Заключение


Спасибо, что дочитали данный пост до конца. Это мой первый опыт написания статьи, так что буду рад фидбеку. Это первая статья из цикла, посвященного скорому релиз игры ALT: City Online. Последняя статья этого цикла будет новостью о релизе игры. Так что, пожалуйста, пишите, про что хотели бы почитать в будущих постах.

Огромная просьба ко всем, кого заинтересовал проект: скоро мы начинаем открытые альфа тесты в онлайне на Android и iOS, поэтому вступайте в группу ВКонтакте, чтобы узнать, когда начнется альфа тестирование. Тем самым вы очень поможете развитию проекта. Всем тестировщикам естественно полагаются жирные игровые призы сразу после релиза проекта.

Также подписывайтесь на Twitter, там будут выкладываться новости, а также актуальные фото и видео о разработке: @AltCityOnline

На сайте ALT: City Online вы также можете оставить свой email. На него придет оповещение, когда игра будет доступна для загрузки. Всем, кто оставил свой email на сайте, так же положен жирный бонус при запуске игры!
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 50

    0
    Альфа-тест через группу контакта подразумевает под собой то, что вы видите свою аудиторию только в российских игроках. Это печально.
      +4
      Ни в коем случае, как раз цель — запустить игру на весь мир. Но сразу это сделать не получится, по крайней мере при тех ресурсах, что у меня есть. Уже составлен достаточно четкий план выхода на ворлдвайд, надеюсь все получится
        +1
        Создайте и продвигайте так же группу в ФБ. По возможности даже на 2х языках сразу (ру+англ).
          +1
          Рук сейчас не хватает, но это прямо в списке ближайших задач!) Даже перевел эту статью уже, чтобы запостить на Реддите, но много времени это все занимает…
            +1
            На первом этапе вы можете просто дублировать ваши сообщения/новости с группы в вк, в группу фб. Вроде по времени минимально. Усхепов вам, даже не представляю как это все сложно в одиночку!
              0
              Спасибо большое! :)
      +1
      А банить за читерство будете также бездумно, как в оригинале? (sarcasm)
        +4
        В оригиналах банами занимаются в основном администраторы серверов. В ALT: City Online не будет администраторов. Вообще античит — отдельная тема, особенно в онлайн играх. Если кратко, то основные действия (перемещение, например) будут валидироваться на стороне сервера с помощью простых коллайдеров. Скорость перемещения также будет валидироваться на стороне сервера. Что касается ресурсов, то сервер постоянно будет отслеживать изменение ресурсов у игроков и сопоставлять их с проведенными операциями. Это глобальные принципы, которые я себе отметил после изучения большого количества материала и разговора со специалистами в данной теме.
          +2
          Ну это было скорее шутка, дело в том, что в GTA Online народ очень жаловался, что их перманентно банили за то, что они принимали деньги от читеров, при этом ты не всегда знаешь, это читер или нет. Тем более читеры придумали на ходу выбрасывать деньги, и игрок, который за ними ехал, их автоматически подбирал. При этом техподдержка такие вопросы игнорировала.
            0
            Я понял, что шутка) Но такая проблема реально есть, и это отдельная боль)) Я вначале не понял, что речь именно про эту проблему (с баном игроков, которым раздали деньги в открытых сессиях). Будем отслеживать все обращения, в любом случае. Очень хочется, чтобы у игры не было подобных проблем, конечно
              0
              при этом ты не всегда знаешь, это читер или нет

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

              Похожая проблема с читерами было в почившем nfs world. Читера, балующегося спидхаком, видел в трех разных гонках в один день. В третьей гонке он врезался в меня сзади, я набрал сверхскорость и бан на сутки мне прилетел буквально моментально.
              0
              Можно сделать как в SA:MP же, свобода действий в разработке серверной части
            +3
            Читеры будут. Нужны доп проверки на подозрительные действия.

              0
              Да, конечно. Я чуть выше ответил про античит, но добавлю, что описанное выше — глобальные принципы. Как оно будет по факту, и какие изощрения будут находить нечестные игроки будет видно только в реальной ситуации, к сожалению.
                0
                Читеры будут всегда. Вопрос их виляния на других игроков, ведь оно может быть минимальным или вообще отсутствовать. А может быть и положительным.
                  0
                  Справедливо :)
                0
                я так понимаю будет открытый мир, не наполненный сюжетом и квестами, аля fallout 76?
                  0
                  Квесты обязательно будут, и с каждым обновлением их количество будет пополняться. Сюжетных миссий действительно пока не планируется, попросту не осилю в одиночку.
                  +1
                  Геймплейное видео специально записывалось максимально невнятным? Где хоть что-то из описанного в статье: профессии и прокачка, взаимодействие с другими игроками, какие-нибудь геймплейные механики?
                    +1
                    Моя ошибка, все внимание ушло на текст статьи и на скриншоты, видео добавлялись в последний момент. В следующей части обязательно сделаю акцент именно на видео о перечисленных механиках.
                    +4
                    Это скорее Driver онлайн, чем ГТА.

                    я нашел буквально 3 игры, которые хоть как-то можно было отнести к “аналогам GTA Online”, да и те — ужасные

                    Пока что ваша игра только меняет цифру 3 на 4, не меняя остальной текст этой цитаты.
                    В любом случае удачи в развитии, несмотря на скептическое отношение — искренне желаю чтобы у вас получился полноценный проект, а не очередной недоогрызок-пародия.
                      0
                      И на том спасибо
                        0
                        Потому что сделать хорошую игру — очень сложно. Кроме программирования, ресурсов, текстов и т.д., нужна фишечка, что будет цеплять.
                        Но даже без фишечки, сколько десятков, если не сотен, человек делали третью GTA?)
                        А если ничего не цепляет, то сколько времени и ресурсов в игру не вливай, будет ужасное (если делает одиночка) или посредственное (если делает команда) нечто. По собственному опыту знаю, ибо игры делаю давно и много (и все плохие).
                        С другой стороны, создание собственной игры даёт то, чего многие давно лишены на работе — свободу творчества. Это непередаваемое ощущение родом из детства… и только за эти моменты можно простить своей игре и отсутствие продаж, и отсутствие многотысячной фан-базы, и вообще всё. За возможность безгранично творить.
                        Это как Лего, только для взрослых и более сложное, да.
                          0

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

                            0
                            Вопрос в самом понятии хорошей игры. Вот к примеру тетрис, хорошая игра?
                              0
                              Как минимум — не плохая. Потому что есть фишечка.
                                0
                                Но никакого особенно уникального программирования, 10500 дизайнеров и маркетологов не потребовавшая для своей раскрутки.
                                  0
                                  Согласен, но это всё заменила фишка и высокая ре-играбельность.
                                  Возможно, что сегодня эту игру отнесли бы к гипер-казуальным играм.
                          +1

                          В одиночку разрабатывал ММОРПГ по сталкеру, считаю добился неплохого результата https://m.habr.com/ru/post/451242/
                          Я так понимаю геймлея в игре пока у тебя нет, вот как начнешь его создавать, вот тогда то ты и поймешь, что значит работать над таким проектом в одиночку ))

                            +1
                            Почитал вашу статью, похвально, впечатляет! По поводу геймплея в моей игре, он частично уже готов — я им занимался как раз в самом начале разработки. Сейчас как раз идет активная стадия его разработки. Все предстоящие этапы в прошлом проходились по отдельности в различных проектах, поэтому есть четкое понимание, насколько это сложно. И да, это очень сложно)))
                            0
                            А какой именно курс по созданию RPG в Unity? И какие вообще толковые попадались?
                              0

                              Это был курс на Udemy, он на английском. Если очень нужно, напиши пожалуйста в лс, я найду его и кину ссылку!

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

                                  Ниже andrew911 скинул его)

                                  +1
                                  Не этот случайно? Ждет своего часа в закладках )
                                    0

                                    Именно он! Очень годный курс. Правда я его за 5 брал

                                      0
                                      А где можно узнать даты скидок на Udemy? Хочу тоже за 5$ некоторые курсы купить.
                                        0
                                        Честно говоря не знаю, я даже как-то не искал. Просто когда смотрел курсы, на нем скидка была. Касаемо вышеупомянутого курса я имел в виду не 5 баксов, а 5 тысяч рублей, если что :) На момент того комментария он стоил 10 тысяч.
                                          +1
                                          Спасибо за ответ, удачи проекту.
                                            0
                                            На удеми практически постоянно скидки, самые минимальные что я видел 9,99, обычно 12,99 / 13,99.
                                0
                                Классный проект, успехов вам!
                                  0
                                  Спасибо! :)
                                  +1

                                  Читал твою статью на dtf, видимо писать статьи — неплохой способ делать рекламу))
                                  Удачи, проект кажется реально годным и скорее всего быстро станет популярным (учитывая, что на мобилах практически нет нормальных игр)

                                    0
                                    На самом деле, это очень затратно по времени — мало написать статью, надо еще ее оформить правильно, ответить на все комментарии. Очень сложно это делать, когда итак в одного игру разрабатываешь)))
                                    Спасибо за добрые слова!
                                    +1

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

                                      0
                                      Спасибо большое, очень приятно получать такой фидбек) Продолжение обязательно будет, но вначале нужно подготовить игру к тестам и провести их, чтобы статья получилась более насыщенной
                                      0
                                      Мне понравилось! )))
                                      Действительно, нормальных аналогов ГТА на телефоне нет и в помине — одни отбросы, сделанные на коленке
                                      Жду релиза )
                                        0
                                        Спасибо, приятно! Самому уже очень интересно, что скажут будущие пользователи)
                                        +1
                                        Интересный проект. Хотелось бы узнать по серверной части, что именно вы будете использовать. Готовые решения (photon, smartfox) или у вас свой сервер разработан. Жду следующих статей.
                                          0
                                          Когда выбирал фреймворк для онлайна, самым оптимальным показался Mirror. Посмотрим, как покажет себя в реальных тестах с большим количеством игроков… В следующей статье постараюсь подробнее этот момент расписать!

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

                                        Самое читаемое