Мы с приятелем, уже пару лет пишем на досуге игры. В основном мобильные, и в основном тактические. Успешностью их сильно не загоняемся, и в рекламу сильно не вкладываемся. Последний год мы потратили на пошаговый мобильный стэлс, с системой прокачки. Самой сложной проблемой оказался геймдизайн, который отнял половину всего времени. И, честно говоря, хотелось немного отдохнуть, но не бросая любимое дело. Поэтому мы немного поштурмовали , что можно сделать совсем простого и мобильного, но при этом чтобы можно было играть и в онлайн. Название выбрали незатейливое Fast Finger Rule или Право Быстрого Пальца. Сначала хотели матом, как завещал создатель Peace Death, но постеснялись.
Придумали мы в итоге такую механику. У каждого соперника есть своя личная планета. Между прочим, даже в скайриме и майнкрафте такого нет, особенно в начале. А тут сразу целая планета. Вокруг каждой планеты по орбите вращается орудие. Вращение орудия постоянно замедляется. При выстреле скорость вращения становится максимальной. Соответственно, можно дождаться минимальной скорости и попасть почти наверняка, а можно пытаться быстро стрелять наугад или пытаться подловить темп. Противник, тоже реагирует на выбранную тактику и пытается к ней адаптироваться.
Выбрали для реализации юнити, потому что... ну просто так вышло.
Программировать здесь особо было нечего, поэтому через неделю мы перешли к придумыванию новых щитов для планет, чтобы разнообразить игру. Добавили щиты с регенерацией, движушиеся щиты, сегментные щиты, щиты которые не пробиваются, но не закрывают планету целиком. Самый, наверное, интересный щит из того, что удалось придумать это Decelerator. Он в 12 раз замедляет скорость снарядов противника и позволяет сбить их своими при должной сноровке. Сейчас щитов 10. На подходе ещё 4 штуки.
На это ушла ещё пара недель. И в таком виде игра была уже играбельна и, в принципе, нравилась знакомым. Поиграть можно было и с ботом и в режиме разделенного экрана, вдвоем или вчетвером.
Затем, наступил момент прикрутить наконец мультиплейер. Момент, который я откладывал изо всех сил, так как у меня в этом не было никакого опыта. Я покурил форумы юнити и отобрал 3 названия фреймворков:
- SmartFox
- Mirror (не путать с одноименной порноигрой, хотя сходство между ними есть)
- PhotonPUN2
На смартфоксе я потратил неделю, посмотрел туториалы, смог его подключить, поднять сервер, убедиться, что есть контакт. Но когда речь зашла о реализации, то я просто запутался в версиях java, которые то ли работают с последней версией сервера, то ли не работают. И когда на скачивание какой-то очередной старой версии, оракл предложил мне завести девелоперский аккаунт, я просто удалил всю джаву и весь смартфокс и перешёл к тестам миррор. Насколько я понял, смартфокс не интегрирован с юнити, как миррор или фотон. И серверную часть пришлось бы писать полностью на java. Если я не прав, то будет интересно услышать комментарий специалиста, так как в гугле я не нашел ничего, кроме устаревших туториалов на самые базовые темы.
Миррор оказался перспективней. Он был настолько интегрирован в юнити, что позволял даже вызывать RPC (ремоут коллы) на методах наследуемых объектов и понимал пользовательские типы, объявленные в юнити. Фотон такого не умеет, хотя при должных навыках это оказалось не нужной фичей. Так как, я, сходу, не нашёл нормального подробного туториала по использованию миррор, хотя он на самом деле есть на геймдев-тиви в платном виде, то сама концепция RPC, синхронизации переменных и User Authority отняла недели 3, чтобы вкурить самому методом тыка. Это было сложно и неприятно, но после того как начало получаться, ловишь себя на мысли, что не хочется теперь возвращаться к однопользовательским играм.
Игру пришлось переписать с нуля, так как она не вписывалась в multiplayer архитектуру, благо она была простая. На мирроре всё отлично работало по локальной сети и даже по мобильной, если прописать ip-адрес сервера. Вопросы возникли на этапе, когда надо было перейти к созданию румов и матчингу большого количества игроков. Оказалось, встроенных методов как это сделать в миррор нету и надо самому реализовывать распределение портов на сервере. В принципе для этого есть даже какие-то фреймворки в Asset Store, но я всегда исходил из принципа, чем меньше в проекте каких-то непонятных фреймворков, тем меньше у тебя проблем.
Как итог, я выбрал Photon Pun. Фотон предоставляет, помимо фреймворка, ещё матчинг серверы, поэтому, там, в принципе, создание румов и матчинг игроков пишется в несколько строк кода.
Игру в третий раз пришлось написать с нуля. На этот раз ушло уже несколько недель, так как игра разрослась новыми щитами, выбором скинов планет, разными типами астероидов и т.д. Хорошие платные обучалки по фотону есть на Зенве.
Между миррором и фотоном, к нам присоединился парень, который работает продакт менеджером мобильных проектов, и мы договорились, что попробуем поиграть в бизнес и попробуем хотя бы выйти в ноль. В итоге долгого поиска был найден пакистанский маркетолог на апворке, готовый работать с микробюджетом в 400 американских бакинских коммиссаров в месяц. И основная платформа это иос. На андроиде денег у людей либо нет вообще, либо интересный менталитет - я запаркую свой порш за 2 километра, но не буду платить за парковку. Никого не критикую, каждый имеет право считать свои деньги, как хочет.
Пока наша реклама толком не заработала, возможно пакстанские маркетологи осторожные ребята. А может 3 потраченных доллара и 5 установок это в пакистане сам по себе успех.
В данный момент игра бесплатна и доступна в гугл-плей и на аппсторе. По сети можно поиграть с другом, можно поиграть в разделенный экран. Иногда даже можно случайно попасть на кого-то из нашей команды запустив поиск игры. Мы постепенно допиливаем новые фичи. Например, набив достаточно кристаллов можно включить абилки, которые позволяют выстрелом оттолкнуть мину к планете соперника, чтобы она там взорвалась. Или взять под контроль НЛО, чтобы они атаковали чужую планету.
Дальше в планах кампании, обучающий режим, возможно пользовательские чарты и авторизация. Потом стим... Ну а потом посмотрим. Надо когда-то вернуться к истокам и доделать клон Mark Of The Ninja.
P.S. Называется решили отвлечься на месяц-другой.