Djon22

На Пикабу
224 рейтинг 11 подписчиков 1 подписка 8 постов 1 в горячем
Награды:
5 лет на Пикабу

Клон PokemonGo

Для ЛЛ: рассказываю как разработал игру, с какими трудностями столкнулся, привожу цифры, в конце клянчу установки

Всем привет! Недавно закончил свой очередной проект - игру на мобилку с дополненной реальностью:

Клон PokemonGo Моя игра, Видеоигра, Unity, Программирование, Длиннопост

Цель

Цель была: создать проект который не стыдно показать на собеседовании(если такое вдруг случится). За последние 3 года я сильно поднял скилл и специально выбрал максимально сложную (для меня) идею.

Описание игры

Это игра с дополненной реальность - вокруг аватара игрока строится карта с дорогами, зданиями, лесами, реками и озерами. Игроку надо в реальном мире ходить и в игре будут появляться монстры, деревья, травы и камни, которые можно сломать\полутать. Лут можно использовать для крафта полезных штук\ постройки базы.

Клон PokemonGo Моя игра, Видеоигра, Unity, Программирование, Длиннопост

Есть система классического инвентаря с характеристиками ГГ

Клон PokemonGo Моя игра, Видеоигра, Unity, Программирование, Длиннопост

Модельки все делал самостоятельно (кроме аватара ГГ - его поленился и стащил где то в сети) - старался придерживаться стиманк стиля, изображения и музыку сгенерировала нейросеть.

Боевка расписана на скрине ниже, учитывается тип жеста, что за обьект и точка соприкосновения

Клон PokemonGo Моя игра, Видеоигра, Unity, Программирование, Длиннопост

Разработка

Данные для генерации карты решил брать с сервиса OpenStreetMap - на мой взгляд он идеально подходит для инди разработчика, ибо:

1) Бесплатный

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

3) Достаточно легко работать - апи никакого нет, просто url запрос

4) Конкуренты что то дофига хотят)

Довольно долго мучался с генерацией меша на основе получаемых данных (просто дофигище векторной алгебры (математики?)). Не все получилось гладко (к примеру море кажется не отрисуется никогда - ибо данных об этом обьете очень много и они не доходят с сервера, отваливаясь по таймауту). Дороги нарисовал также не идеально: используется UI материал для рендера так как не получилось быстро посчитать точки для прорисовки и дорога кое-где вывернута наизнаку).

Много использовал асинхронного кода для генерации карты , чтения записей с диска и др.

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

Баланс (появление мобов, их параметры, стоимость крафта и тд) сделал настраиваемыми через ScriptableObject

Клон PokemonGo Моя игра, Видеоигра, Unity, Программирование, Длиннопост

Интегрировал яндекс рекламу, MyTracker аналитику, ZenjectDI.

Публикация

Выложить решил сперва в RuStore , ибо:

1) Сильно проще чем гугл для анализа рентабельности

2) Я немного патриот

Попробовал закупить рекламу в VK и был сильно разочарован: я покупаю одну установку за 500р(( для примера, для старых своих проектах я у гугла покупал 1 установку за 5р. Видимо все таки для проверки рентабельности проекта придется выкладываться в GooglePlay (там сейчас все сложно для россиян в плане продвижения и заработка, но есть варианты). Причем люди судя по статистике неплохо кликают по рекламе, видимо просто шарахаются от RuStore. (7000 показов - 350 кликов рекламы - 1 установка )

Пока оставил рекламную компанию только непосредственно в сторе - а там трафика 1 показ в час)). Для примера в среднем на 100 показов рекламы я имел 1 установку со старыми проектами

Игра в сторе

P.S. поиграйте, хватит сидеть за компом). Жду отзывы в комментариях, спасибо

Показать полностью 5

Как я стал разработчиком игр на зарплате

Для ЛЛ: история как я попал в компанию по разработке видеоигр будучи ~30 летним джуном.

Всем привет! Лет 5 назад плотно заинтересовался разработкой видеоигр на движке Unity. Особого опыта в программировании не имел (образование: инженер - программист, но по факту просто отсидел в универе 5 лет). За пару лет хобби - разработки выпустил 2,5 игры которые не принесли мне хоть какого то финансового благополучия.

Работал я тогда IT ремонтником заправок - что не приносило мне удовольствия. Интереса(?) ради разместил на HH 2 резюме как разработчик и моделер-дизайнер (3d моделирование также пришлось освоить, но на начальном уровне). Как пример указал одну из своих игр (самую привлекательную, вот пост про нее писал когда то: Хрюшкины войнушки) , и , собственно стал пассивно ждать.

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

Спустя 3 месяца мне в вотсапе написал человек и предложил пройти собеседование на Unity разработчика. Была возможность онлайн собеседования, но компания находилась в моем городе (Рязань) и я настоял на личной встрече.

Я пришел в полуподвальный огромный офис где меня собеседовало 6 человек сразу (как потом оказалось у них опыта в приеме на работу было не так много). Рассказал что умею делать, не ответил практически не на один тех вопрос - выглядели они так что я не очень им понравился, я предложил выполнить небольшое тестовое задание чтобы показать что умею на практике. На следующий день мне прислали задание (игра flow free). За неделю я справился с ним, и оказалось что я "хорошо сделал".

Дальше было для меня странно:

1) Они легко шли на компромисы: испытательный срок я совмещал со старой работой (я хотел на двух стульях посидеть - и посидел))

2) Честно и много платили за работу - хотя я больше учился у лида чем работал. Выходило больше чем на старой работе.

3) Предложили мне оборудование в личное пользование (там была возможность работать как дома так и в офисе - когда как хочется0

4) Помогали с любыми вопросами, буквально разжевывали мне то что было непонятно, хвалили когда я задавал вопросы (а я прям дофига их задавал)

5) Постоянно спрашивали приду ли я завтра)) (оказывается некоторые соискатели уходили на обед и пропадали)

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

Компания называется MNO GO GAMES, иногда появляются вакансии (разработчики, дизайнеры, менеджеры). Правда теперь офис уехал на Кипр и появился HR - так что собеседование в подвале пройти не получится.

P.S. Разработку своих игр я не забросил, о последнем интересном своем проекте расскажу в следующем посте

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

Показать полностью

Второй блин

Доброго времени суток!

Вот уже вторая моя игра выложена на PlayStore , тех кому лень читать - промо ролик:

До разработки : решил создать быструю игру затратив на разработку не больше 3х месяцев(в итоге получилось за 2). На этот раз приступил к разработке более грамотно - сперва делал прототипы моих идей, а не кидался в омут как с предыдущей игрой. В итоге забраковал первую идею о создании раннера "Бегущий лучник"(х..рня знатная получилась). Второй прототип мне и всем моим знакомым до которых я добрался понравился и я решил пока больше не искать.

Идея была создать привлекательную логическую\аркадную игру по мотивам Lode Runner. Так как просто портированных клонов - вагон с тележкой, добавил несколько весомых механик:

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

- Уровни изначально "Закопаны", при раскопках можно наткнуться на много неприятных/приятных предметов.

- ГГ умеет юзать бомбы и динамит

- Иногда придется включать логику для прохождения уровня (хотя возможно это не отличие от Lode Runner)

Второй блин Моя игра, Unity3D, Blender, Видео, Длиннопост

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

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

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

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

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

Второй блин Моя игра, Unity3D, Blender, Видео, Длиннопост

Такого хода я в мобилках не встречал (хотя в CS на ПК видел, да и не все игры я в сторе пересмотрел).

В планах заняться обновлением "Хрюшкины Войнушки", затем создам еще одну небольшую игру. В случае успеха моих игр создам пост со статистикой прибыли\вложений и маркетинговыми ходами, пока лишь скажу что я в смешном для меня (возможно серьезным для кого то) плюсе.

Ко всем неравнодушным просьба протестить и оставить отзыв со звездами  Miner 3D - Evil Bomb Dungeons, спасибо что дочитали.

Показать полностью 2

Хрюшкины войнушки. ч2

Доброго времени суток друзья!

В комментариях к прошлому посту некто https://pikabu.ru/@shakagami оставил немальнький такой отзыв о моем творении (в целом - баги, косяки и хотелки). Этот отзыв я использовал как чек лист для обновления игры.

Хрюшкины войнушки. ч2 Unity3D, Blender, Длиннопост

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

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

Хрюшкины войнушки. ч2 Unity3D, Blender, Длиннопост

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

Свинья с двуми молотками теперь крутится на месте дамажит и откидывает врагов:

Хрюшкины войнушки. ч2 Unity3D, Blender, Длиннопост

Появились настройки и пауза в одиночной игре!

Хрюшкины войнушки. ч2 Unity3D, Blender, Длиннопост

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

От вас прошу как и в прошлый раз тест)) Игра найдется по названию в гугл плей. Всем пикабушникам - бесплатные покупки (отпраьте мне свой мейл привязанный к гугл плей в комментариях или в личку и я добавлю вас как тестеров(при попытке что либо купить будет написано "Тестовая карта")). Хотя если кто решит поддержать меня покупкой - препятствовать не стану.

Дальше думаю заняться новой игрой(есть несколько вариантов, пока не решил), и параллельно обновлять хрюнов.

Спасибо что дочитал.

Показать полностью 3

Промо ролик к свиньям

Собрал небольшую анимацию в blender(мой первый подобный опыт) , буду использовать как рекламу своей игры. Модели использовал старые, слегка модифицировал свиней:

Сережа игродел. Хрюшкины Войнушки

Доброго времени суток друзья!
В своем предыдущем посте (Сережа игродел.) я уверял читателей что не собираюсь бросать разработку игры-выживалки (названия все так же нет). И, несмотря на то что не по силам поставлена задача для одного... бросил разработку через неделю). Решил создать небольшую игру ,затратив не больше 3х месяцев. И вот, спустя 9(блин) месяцев мое первое завершенное творение опубликовано на Play Market ) Встречайте : (*музыка выхода на ринг Джона Сины*) Хрюшкины Войнушки!

Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост

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

Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост

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

Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост
Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост
Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост

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

Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост

Голоса свиней и комментатора (выкрикивает твои достижения) записаны и обработаны также своими силами. На мой взгляд половина записей весьма недурна, вторую надо бы перезаписать))(как только дойдут руки(скорее всего не дойдут)). Кстати голос комментатора и свиньи с большим молотом - мой модифицированный голос.
Разработал 3d меню:

Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост
Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост
Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост

Решил что это не трудно и уложусь в один скрипт , как итог : получил огроменный документ на 2к+ строчек в котором хрен что найдешь ((.
Локализировал на 8 основных языков силами онлайн переводчика(текста немного- так что сойдёт):

Сережа игродел. Хрюшкины Войнушки Моя игра, Unity3D, Blender, Длиннопост

Освоил photonCloud и создал сетевой режим игры, а также написал ботов(весьма сильные заразы). Не смог выбрать режим камеры (жёстко привязанная к затылку или относительно свободная) и добавил оба (можно сменить в процессе игры).
Есть ещё куча идей для улучшения и замашки на новые игры. Вас прошу по мере желания протестировать игру и отписаться по багам /понравилось не понравилось. Спасибо.
Хрюшкины Войнушки на Гугл плей: https://play.google.com/store/apps/details?id=com.NonCompany...
p.s : Если у кого есть реальный опыт(последние два слова важны) раскрутки и желание поделиться им - буду признателен.

Показать полностью 9

Сережа нарушитель

Майским теплым вечером пришло мне письмо счастья:

Сережа нарушитель Коронавирус, Штрафы ГИБДД, Длиннопост

В нем меня обвиняют в нарушении режима повышенной готовности (это они про самоликвидацию). Однако пропуск у меня был (работаю ремонтников заправок) это подтверждает портал города Москвы:

Сережа нарушитель Коронавирус, Штрафы ГИБДД, Длиннопост

Я написал обжалование на все тот же портал . Через пару недель мне пришел ответ:

Сережа нарушитель Коронавирус, Штрафы ГИБДД, Длиннопост
Сережа нарушитель Коронавирус, Штрафы ГИБДД, Длиннопост

Вкратце: ничего не знаем. Платите штраф.

Итог: Мне выдал пропуск портал города Москвы, меня ошибочно обвинили в его отсутствии, все тот же портал ответил на жалобу что пропуска нет.((

В письме предлагают обжаловать нарушение(то, которого не было) в суде по месту нарушения(того которого не было).

Живу я в Рязанской области, потому судиться, мягко говоря , не с руки. На семейном совете было принято решение заплатить дань.

Показать полностью 4

Сережа игродел.

Несколько месяцев назад занялся разработкой мобильной игры "Названия все еще нет". Опыта в данной сфере практически небыло(в дипломе ошибочно написано что я программист), однако это меня не смутило так как я уверен что с помощью гугла можно и почку научиться пересаживать. Игру решил делать на движке Unity , жанр РПГ выживалка(крайне плохой выбор для одного разработчика как оказалось позднее).  Так на данный момент выглядит стартовый экран:

Сережа игродел. Моя игра, Unity3D, Длиннопост

Все скрипты пишу сам (первые по аналогии с примеров, дальше и сам неплохо справляюсь) попутно изучаю язык (C#). Гуманойдную модель и анимации честно взяты без спроса с mexamo(на сколько я понял adobe не возражает). Все остальные модели и анимации пилил самостоятельно, для чего пришлось изучить blender. И если статические модели вышли, на мой взгляд, достойно, то механика движений животных оставляет желать лучшего.

Сережа игродел. Моя игра, Unity3D, Длиннопост
Сережа игродел. Моя игра, Unity3D, Длиннопост
Сережа игродел. Моя игра, Unity3D, Длиннопост
Сережа игродел. Моя игра, Unity3D, Длиннопост

Придумал нестандартный способ атаки : в правом нижнем углу экрана такой же джостик как и для перемещения ГГ(нижний левый угол). Если отвести джостик в какую либо сторону прорисовывается зона урона(разная по габаритам в зависимости от оружия):

Сережа игродел. Моя игра, Unity3D, Длиннопост
Сережа игродел. Моя игра, Unity3D, Длиннопост

При достижении джостика крайнего положения - наносится урон по зоне. ГГ может перемещаться во время "прицеливания" и во время атаки(Не могу понять этот метод управления интересен или неудобен). Разработал систему инвентаря :

Сережа игродел. Моя игра, Unity3D, Длиннопост

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

Практически во все постройки есть возможность зайти (для этого у зданий "сносит крышу")

Сережа игродел. Моя игра, Unity3D, Длиннопост
Сережа игродел. Моя игра, Unity3D, Длиннопост

Игровой мир на данный момент представлен одной локацией среднего размера

Сережа игродел. Моя игра, Unity3D, Длиннопост

Начал писать скрипты сюжетных линий(квестовая система реализована через дневник ГГ).

Сережа игродел. Моя игра, Unity3D, Длиннопост

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

До выпуска тестовой версии планирую создать 3 локации и около 50 квестов.

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

Жду отзывы и суровую критику. Если будут читатели - будет продолжение по мере развития игры.

Показать полностью 12
Отличная работа, все прочитано!