Lode Runner или как Я познакомился с Unity (Часть 1)

Всем привет.

Хотелось бы показать/рассказать, что когда-то (где-то 3-4 года назад) Я сделал на Unity 3d...

Немного предыстории

Был это 4 курс универа и надо было уже подумывать над темой диплома. 80% студиков на диплом сдавали сайты (онлайн магазины), сделанные на каком-нибудь конструкторе, а некоторые и вовсе в фотошопе. И смотря на всё "это", захотелось мне сделать что-то необычное - написать игру!

Тут то и начал думать над идеей и в чём все это делать.

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

После дня гугления нашёлся он! Unity3d! Запал он мне в душу сразу, хоть и наткнулся Я не сам движок, а на видюшку на Ютубе про расширение для него.

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Начало разработки

После этого было просмотрено миллионы разных обучалок, уроков, лайфхаков и после того как Я получил хоть какое-то представление, как что-либо делать в Юнити, Я решил воскресить (запилить на мобилу) одну из любимейших игр Lode Runner. А ещё копаясь по урокам, Я набрел на видео урок, в котором делали Lode Runner. Только не закидывайте меня тапками после этого, ибо урок был по созданию вот такого Лодерана:

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

А Я позарился на вот такой (Lode Runner: Mad Monks Revenge):

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Основная механика совпадала, но в "новом" Лодеране она намиксована со всякими плюшками. Ну и конечно графон был покруче.

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

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Все предметы в новом лодеране и все виды земелек в одном мире

Из всех фишек, самая "вредная", с кучей багов и самая сложная (ну для меня) в плане реализации это грёбанная лестница! О Боги, как же Я ненавидел её,

мне кажется, что она до сих пор с глюками.

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

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

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

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Всё остальное писалось относительно просто (относительно проклятой лестницы!)

Текстуры

За перерисовыванием текстур проведена не одна бессонная ночь. Рисовать столько текстур мне не приходилось ни разу. А текстур было нарисовано примерно 19 000 штук. Конечно можно было не рисовать такое количество, а написать какой-то шейдер и тогда бы количество текстур уменьшилось в тысячи раз. Но если честно, Я до сих пор не представляю как написать такую штуку.

Выдрать текстуры из самой игры (PC версии) у меня никак не получалось (если кто знает как, то скажите), поэтому ко мне пришло "гениальное" решение: записать видео с частотой кадров 30 и без сжатия, ну и потом вырезать нужные текстурки в фотошопе. Это хоть и заняло порядочно по времени, но основная масса времени ушла на прорисовку анимаций уничтожения земли и её восстановления:

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

По началу Я рисовал всё в ручную в фотошопе, но когда было нарисовано с пару тысяч, Я понял что это 3,14здец и надо чё-то придумывать... После того как Я узнал (в гугле), что в фотошопе можно писать макросы и записывать действия, Я его БОГОТВОРИЛ, Я любил его, Я хотел на нём жениться. Ибо после этого дело пошло быстрее, Я не могу представить сколько бы понадобилось времени, что бы отрисовать все текстуры вручную. Проще говоря фотошоп стал моим лучшим другом. Он мне пригодился, когда Я делал атласы текстур (сохранял каждую текстурку в отдельном файле, а потом через Texurepacker собирал атлас), когда он рисовал (сам!) анимацию уничтожения/восстановления земелек, когда Я рисовал кадры для анимации ГГ или его действий.

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Пример небольшого кусочка из одного атласа. Всего их было по одному на каждый мир + пару для ГГ, монстров и т.д.

Искусственный интеллект

Ещё одна проблема заключалась в том, что надо было написать ИИ на подобии того что был в оригинальной игре, т.к. некоторые уровни было заточены под этот ИИ, как уровень ниже.

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

У оригинальной игры, если вы выше врага, он идет на ближайшую лестницу и зависает там. Так же происходит и с теми врагами которые не могут к вам добраться. Мне не хотелось искусственно делать такие фишки, поэтому поведение вышло немного другое, но вроде как похожее.

Что бы враги ходили, Я выбрал алгоритма поиска кротчайшего пути A* (Astar).

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Белые полосы это путь по которому ИИ может ходить.

Уровни

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

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

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Так же пришлось написать примитивный редактор уровней, а то копи-пастом дело шло медленно.

Завершающая часть

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

Бонус

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

Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост
Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост
Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост
Lode Runner или как Я познакомился с Unity (Часть 1) Unity, Unity3D, Диплом, Lode runner, Разработка, Гифка, Длиннопост

Ну и собственно ссылка на игру:

Https://MEМЕGA.NZ#!4MEGDapQ!GlXbnelKF2d7VA0aTlmGbl9FEB7lC0aCC64iJrmAurE

(Кто не понял нужно удалить зачеркнутый кусок "МЕ")

Всем кто дочитал до конца спасибо! А так же прошу прощения за грамматику, пунктуацию и речевые "обороты" :)

Если будет интерес к посту запилю вторую часть.

Лига Разработчиков Видеоигр

6.7K постов22.2K подписчика

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

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

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

5
DELETED
Автор поста оценил этот комментарий

Мега работа!!! 2000 строк на ассемблере мега задроство! Мое почтение!

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Спасибо! Программировал чип Атмел, писал систему терморегулирования автомобиля. Это кстати ещё один бесценный опыт. Можно сказать Я познал всю суть через ассемблер.

показать ответы
Автор поста оценил этот комментарий

На уровне, где длинный пролёт сверху (не нашел нумерацию уровней, где-то четвертый или пятый) нет никакой возможности взять две "монетки", к ним нет доступа. Я так понимаю, как в оригинале, ИИ должен брать эти монетки и отдавать их при попадании в вырытую яму. Но они их даже не берут. Не могу понять условий, при которых они это должны делать. Либо баг, либо поясните, кто в курсе, пожалуйста.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

В этой карте пришлось даже увеличивать шанс того что монстры, проходя мимо, берут их. Самый мой нелюбимый уровень (9 по счёту). У меня у самого на мобиле пройдено до этого уровня :D.

Нужно просто убивать монстров, ну и ждать что они всё таки возьмут золото.

P.S. Номер уровня написан в нижней части экрана. Сначала идут жизенки, потом счёт и следующим идет номер уровня. Ну или в главном меню нажать на планету и по миниатюре найти нужный.

показать ответы
Автор поста оценил этот комментарий

а под Windows билда не будет?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Под винду лучше играть в оригинал, гугли Lode Runner: Mad Monks Revenge

показать ответы
4
Автор поста оценил этот комментарий

Вроде из Unity 3d можно скомпилировать под любую систему. Можно ли под iOs сбацать?

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Можно, но нужен Мак, если не ошибаюсь.

показать ответы
1
Автор поста оценил этот комментарий

А зачем приложению доступ в интернет, это не вирус ли часом?

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

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

показать ответы
1
Автор поста оценил этот комментарий
Видимо, мне просто пока не повезло)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Дам Вам совет: Не собирайте золото, вообще не собирайте пока монахи не принесут Вам два верхних.

1
Автор поста оценил этот комментарий

Есть предположение, что монахи не умеют брать золото в полёте. Один из монахов забрал его сверху и в полёте выложил. После этого я потратил около 200 монахов, так ни один из них не подобрал его.

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

@Turikurit а в гуглплей размещать не планируешь?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

@timur1976, об этом в следующем посте.

Автор поста оценил этот комментарий
День добрый, стоит ожидать обновления с увеличенными кнопка управления? Сейчас играть крайне не удобно :(
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

актуально еще ?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Что именно актуально?
Автор поста оценил этот комментарий

вы делете игры на заказ? если да то как с вами связаться?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Как-то не приходилось таким заниматься.
Автор поста оценил этот комментарий

@Turikurit

У меня к вам два вопроса.

Вопрос 1. Вот это чудо, застряло ногой в яме, чем преградило путь другим врагам, и не могло вылезти само. Это баг или фича?

Вопрос 2. А эти красные боты, колдуны али кто? https://youtu.be/MUIrqUQNAaQ

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

1. Баг. Ну застрял пацан в текстурах, с кем не бывает :D

2. Красные боты это Монахи.

3. По видео, если Вы про то что земля зарастает под ногами монаха, то это фитча. Так было в оригинале.

показать ответы
1
Автор поста оценил этот комментарий
Мои слова будут выглядеть слишком дерзкими, но в ближайшее время надо будет создать игру, но из знакомых нет программистов(как впрочем и знакомых).Так вот, могу ли я спрашивать совет по созданию игру,когда мне пригодится?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну в принципе да, помогу чем смогу.

Но сразу скажу, Я не такой гуру, как Вам могло показаться :)

показать ответы
Автор поста оценил этот комментарий

@Turikurit, дружище, жалко что музычку не завезли:) Такая атмосферная она там) Наверное нет смысла спрашивать про развитие? Это же твой старый проект?

раскрыть ветку (1)
Автор поста оценил этот комментарий

@web4create,

Насколько Я помню, допилить туда музон не составило бы труда. Тут проблема была в другом. Оригинальный музон весил прилично, что-то вроде от 200 до 600 мегабайт (Могу соврать, под рукой нет моего ноута).

Да, проект старый, Я его рассчитывал поддерживать, если б не случилось одно "НО". Я хотел об это всём рассказать в следующем посте. Так что ждите следующей части, постараюсь ответит на все вопросы.

показать ответы
Автор поста оценил этот комментарий

а кем работал впоследствии?

геймдевом?

раскрыть ветку (1)
Автор поста оценил этот комментарий

К сожалению, нет. Разрабатывал/допиливал разные системы для газпрома. Когда из проектов ничего не было, то сидел на поддержке и администрировал корпоративный портал на ШарПоинте.

Автор поста оценил этот комментарий

9 уровень не пройти.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Автор поста оценил этот комментарий

Я в восторге! Очень хочу билд под Windows с поддержкой геймпадов. Если будет в гуглплей или steam, обязательно куплю!

раскрыть ветку (1)
Автор поста оценил этот комментарий

Под винду лучше играть в оригинал, гугли Lode Runner: Mad Monks Revenge

показать ответы