MightyThews (часть первая)
Я Начал учиться кодить в начале 2014 года, что называется, наживую. Сделал попытку собрать небольшую игру с видом от третьго лица, но уперся в графику, которую никак не мог вытянуть.
К осени я бросил потуги доделать игру и решил накодить небольшой платформер. По всем параметрам он должен был оказаться более простым в разработке.
Через полторы недели собрался какой-то начальный функционал:
Решив не останавливаться на одних прыжках и лазанью по стенам, я просидев еще три дня и добавил трубу, по которой можно лазить. И ящик, который можно двигать. Соответственно вместе с анимациями для главного героя.
Если кому-то интересно как крыса вращается вокруг трубы и у нее не едут лапы - это обычный рутмоушен в Unity3d. Рут скелета крысы ползет вверх, вращается и тащит ее за собой. Проигрывание анимации можно остановить в любом месте и она повиснет на столбе с той стороны, с которой остановилась.
Результат меня устраивал и я накидывал сверху разные геймплейные фичи. Например проходы под землей для скрытного режима, от которых у меня осталось только это видео:
Ввиду отсутствия опыта в разработке сложного функционала, я засрал весь код этими проходами и запутался в своей писанине. И в итоге их пришлось выкинуть по ряду других причин.
Далее я ударился в кастомизацию персонажей, которая по началу давалась легко, так как я просто запихивал все возможные объекты в персонажа и скрывал\показывал нужные в определенный момент.
Когда какая-то кастомизация была готова я решил сделать первый шаг к чему-то осмысленному и прилепил в игру других персонажей, оружие и диалоги.
Комплексные вещи я делать не умел, поэтому вместо диалогов я сделал простые монологи, которые читались из xml и вызывались по тригеру. В тригере прописывалось какой монолог должен открыться и какой персонаж с какой стороны должен стоять.
Через какое-то время мне пришла в голову идея системы односложных квестов.
Квесты состояли из нескольких монологов, которые соответствовали состоянию квеста. состояний было четыре:
0 - Мы еще не брали квест.xml
1 - Мы взял квест, но не выполнили условия.xml
2 - Мы взяли квест и выполнили условия.xml
3 - Мы сдали квест.xml
В этом видео показываются все четыре варианта монологов:
Раз квесты готовы, значит пришла очередь боевки.
Боевка была сделана процентов на десять и оставлена в покое до тех времен, когда у меня накопится побольше знаний.
Раздумывая над боевкой я сделал поиск пути напарнику. Как правильно накодить поиск пути я тогда понятия не имел и пришлось выдумывать систему самостоятельно.
Напарник следит за передвижениями игрока, если игрок приземляется или прыгает - ставит в этом месте точку и бежит от этой точки, до следующей. Все прыжки и подтягивания обрабатываются сложной системой IF'ов и рейкастов. Если персонаж бежит и по рейкастам видит что нужно прыгать - прыгает. Если повис на уступе - залезает на него.
По сути это был обычный игрок, но с дополнительным логическим контроллером, который нажимал кнопки на основном скрипте.
На этом у меня пока все, остальное выложу завтра.
Крысы просто замечательные! Если нужен графический дизайн, обращайся (wonder.uix@gmail.com). Есесна бесплатно, проект дико зашел)