Когда-то давно у меня был телефон Siemens M55. И дизайн у него был приятный, и надёжностью радовал, и игрушек для него много можно было найти (не то что ко многим другим, не столь популярным моделям). Одна игрушка особенно полюбилась — Stack Attack 2 Pro называлась. Играл я в неё в любую свободную минуту. И по дороге на работу, и вместо чтения этикеток на освежителях воздуха.
Stack Attack
Правила у неё очень простые — краны постоянно приносят ящики и сбрасывают на игровое поле, норовя уронить его на голову грузчику, который, в свою очередь, старается весь этот бардак разобрать. Для этого нужно расталкивать ящики так, чтобы они выстроились в одну линию, как в Тетрисе. Получившаяся линия ящиков исчезает. Так же исчезают ящики одного цвета, если их выстроить в одну линию.
И всё хорошо было в этой игре, кроме того, что её не было на современных телефонах/смартфонах. Пара кривых поделок, которые даже близко не ползали рядом со Stack Attack, не считаются. Сделаны они были явно без любви к оригиналу. Пришлось спасать ситуацию.
Хочешь сделать что-то хорошо — сделай это сам
Так как я некоторое время работаю с Unity, было решено использовать его. Тем более, что в ней появился режим 2D и его давно хотелось пощупать, да всё времени не было. Дело оставалось за малым — графика, озвучка и собственно реализация.
Графика
Для графики было решено использовать pixel art, чтобы подчеркнуть «олдскульность» игры. Несколько попыток поработать с фрилансерами принесли только разочарование о потраченном впустую времени. Очередным вечером, рассказывая очередному pixel-art художнику как рисуется pixel-art, я вдруг понял, что мне намного проще всё сделать самому. Взял из холодильника пиво и запустил Photoshop. К утру были готовы основные наброски, которые в дальнейшем лишь немного дорабатывались. Думаю, что для первого опыта рисования получилось вполне сносно.
Получилось как-то так
Озвучка
К сожалению, среди знакомых и не очень знакомых не получилось найти человека, который бы умел хорошо работать со звуком. Выкручиваться и тут пришлось самому. Пара дней зависания на
freesounds.org и ещё пара дней на то, чтобы разобрать получившуюся папку со звуками.
Настоятельно рекомендую этот ресурс, если вы про него не знаете. Огромная база звуков с очень удобной навигацией по каталогу.
Разработка
Боюсь, что тут ничего уникального и любопытного рассказать не смогу. Советую почитать
Основы создания 2D персонажа в Unity 3D 4.3 и
Custom font в Unity3d, они мне очень помогли в процессе, сэкономив при этом кучу времени.
Любовь приходит и уходит, а кушать хочется всегда
И удовольствие от работы совсем не утоляет голод. Монетизацию решено было выбрать стандартную — бесплатное скачивание с внутриигровой рекламой, которую можно отключить. Это даёт возможность всем желающим ознакомиться с игрой и, если она не понравится, то просто её удалить, не потратив ни копейки.
Как показал предыдущий опыт, iAd очень просто подключается в Unity и имеет в основном хороший eCPM. К сожалению, это сильно портится двумя неприятными минусами. После прохождения проверки и публикации приложения в iTunes Store оно отправляется на проверку в iAd. Время проверки труднопрогнозируемо и статус проверки нигде не отображается. Предыдущий опыт показал что этот процесс может затянуться аж на пять дней. Всё это время в игре не показывалась реклама и, естественно, желающих отключить её не нашлось. Но и после проверки в iAd реклама стала показываться далеко не всем, и это второй существенный минус — охват стран сетью не такой уж и всеобъемлющий. Игроки не видящие рекламы не будут её отключать. Вариант номер два это AdMob. Охват стран очень хороший, но eCPM после iAd расстраивает.
Как результат был придуман хитрый велосипед — по-умолчанию показываем iAd, если в течение 15 секунд не загрузился никакой баннер, то показываем AdMob. Велосипед был опробован на другом проекте и успешно заработал.
Техническое, ежели кому интересноPlugin для AdMob использован стандартный, для iAd дополнительных плагинов не использовалось.
Избранное содержимое файла CameraScript.cs, который прикреплён к камере.
public class CameraScript : MonoBehaviour
{
public string AdmobBannerId = "ca-app-pub-*****/*****";
ADBannerView iAd = null;
void Start ()
{
iAd = new ADBannerView(ADBannerView.Type.Banner, ADBannerView.Layout.Top);
iAd.visible = true;
StartCoroutine(checkIAD());
}
IEnumerator checkIAD()
{
yield return new WaitForSeconds(15f);
if (!iAd.loaded) {
iAd.visible = false;
AdMobPlugin.CreateBannerView(AdmobBannerId, AdMobPlugin.AdSize.SmartBanner, true);
AdMobPlugin.RequestBannerAd(false, "{}");
}
}
}
И всё бы хорошо, если бы не пара моментов:
При каждом обновлении баннера игра существенно подтормаживает (iPhone 4, iOS 7.1), что очень сильно портит впечатление от игры и повышает шанс получить ящиком по голове. Портить игру ради баннеров совсем не хотелось и пришлось заняться оптимизацией производительности в надежде на то, что тогда подгрузка баннеров не будет влиять на процесс игры. Это получилось лишь отчасти, стало заметно не так сильно, но продолжало мешать играть.
Второй момент был в том, что запустить игру для Android оказалось не так то просто. С одной стороны, Unity изачально это может, с другой — требуются соответствующие версии плагинов. Это всё сильно усложняет поддержку довольно простой игры для двух платформ.
Ну так и?
После долгих раздумий и взвешиваний вариантов я решил выбросить из игры все лишние плагины и сделать её просто платной. Пришлось смириться с тем, что игру увидят намного меньше игроков. Возможно и денег она принесёт меньше, чем в бесплатном варианте. Но это будет игра, не испорченная отвлекающими баннерами и внутриигровыми покупками. Welcome to old-school, так сказать.
Хотя почему это «будет»? Она вполне себе уже есть. Прямую ссылку давать не буду, но догадаться по какому названию её искать в App Store, думаю, будет не сильно сложно. С Google Play есть некоторые заминки, но надеюсь, что скоро и под Android девайсами поиграть получится.
Итого
На разработку игры с технической точки зрения потрачен месяц разработки и $5 (хотя тут, конечно, смотря как считать — аккаунт разработчика за $99 был куплен ранее и не под эту игру).
Unity Free — $0
AdMob Plugin (больше не используется) — $0
U3DXT Basic (для внутриигровой покупки, больше не используется) — $0
Rate App for iOS (честно говоря просто лениво было свою реализацию делать) — $5
NerdFlurry — $0
Один месяц работы, доставившей мне кучу удовольствия, и я снова могу играть в свою любимую игру. Но пора возвращаться к основной работе. А вы пока можете глянуть небольшой тизер игры (один день на производство, затраты $0).
комментарии (15)