Свой путь 2.0. Может кому-то поможет
Всем привет!
Сначала хочу всем сказать спасибо за отзывы на мой первый пост. Так как начинать всегда тяжело и страшно, я рад, что люди поддержали и дали много полезных советов!
А в текущем посте хочу поделиться своим опытом в обучении Unity. Все советы – это исключительно мое мнение, и могут не подходить именно вам. Надеюсь, кому-то помогу найти в себе храбрость и упорство продолжать двигаться за мечтой.
Начнём.
Заметил, что много людей начинают что-то делать и забрасывают на полпути, банально выгорев, не рассчитав свои силы или просто потеряв интерес. Не знаю как вы, а я много времени комплексовал по этому поводу. Думал, что так ничего нельзя сделать или достичь.
Так у меня получилось и с игрой, до неё я написал много мелких незаконченных проектов.
Вот к примеру самый первый "амбициозный проект":
Идея этого проекта была очень простая. Если кто знает такие игры как Car Mechanic Simulator, Tank Mechanic Simulator и т.д., то сразу поймёт, идея была такая же, только про космические корабли. Грубо говоря, у игрока есть терминал, где он видит свои ресурсы, заказы, и может назначить на принтер необходимую деталь. После выбора появлялась «голографическая» модель будущего судна по этапам. То есть сначала каркас как на скриншоте выше, потом внутренние механизмы, потом обшивка, потом заказ можно было сдать и получить за это деньги, а на них уже покупать ресурсы для 3Д принтера.
В процессе мне захотелось большего, и я решил, а почему бы не сделать систему сборки корабля из любых деталей, которые можно пристыковывать друг к другу по некоторым опорным точкам… Как видно по скринам, ничего не вышло, так как опыта для столь сложных вещей у меня ясное дело пока нет.
Но идея делать свои кораблики меня не оставляла, потому я начал делать такой проект:
Не судите строго, с Blender я знаком совсем немного, мучался над этим модульным кораблем почти неделю, огрехов там вагон и пара сотен тележек.
Эта игра тоже должна была представлять из себя симулятор механика на корабле, только на этот раз надо было чинить только один корабль, который находится на исследовательской миссии. Но, конечно, для таких амбициозных целей надо было знать хотя бы что такое Scriptable Objects :D
Зато в итоге я понял свои косяки, и когда у меня будет побольше финансов и я смогу нанять 3Д художника, то сделаю свой «Space Yard Ship Simulator» =)
В общем, ни один их этих проектов не то, что не доведен до ума, а даже толком не начат, но я получил море удовольствия и много опыта, пытаясь что-то сделать: в каждом проекте я осваивал тот или иной механизм, а в каких-то проектах пытался соединить эти механизмы. Кстати говоря, это оказалось самой большой проблемой, в большинстве курсов вам рассказывают, как создать тот или иной механизм, но не говорят, как его правильно прикрутить к общему проекту.
Например, во втором проекте освоил работу с A* Pathfinding, то есть с алгоритмом поиска пути. Понял, как разделять это дело на потоки и как прикрутить его к своей сетке (Grid) уровня. Также разобрался, как сделать динамическое определение занятой клетки, чтобы по кораблю могли передвигаться НПС и можно было строить путь до нужного отсека.
Потом решил сделать примитивную State Machine логику. Этот механизм используется в играх повсеместно, грубо говоря это примитивный AI (искусственный интеллект), который по некоторым условиям переключает работу с одной задачи на другую. И прикрутил все это на систему поиска пути. НПС научились ходить по кораблю.
Дальше уже можно было развивать эти механизмы, допустим, прикрутить поиск врага, построение пути к нему, проходку по пути с параллельным определением расстояния до врага, или поиска нового врага поближе, а при приближении – завершение пути, переход в статус боя и всё в таком духе. В общем я так и сделал, окончательно испортив проект =)
В каждом было совершенно много ошибок, но и получено много опыта. Послушать курсы и прочитать информацию о том, как сделать это одно, а написать самому и подогнать под свои нужды уже совсем другое. Тут только практика!
Так что не бойтесь экспериментировать. Создавайте сотни микро-проектов, переделывайте по несколько раз одно и то же, изобретайте заново велосипеды, всё это в итоге превратится в ваш опыт.
Так 3 месяца назад я даже не знал, с какой стороны подойти к шейдерам, а ведь это настолько нужная вещь, что без них совсем никуда. Но в процессе написания проекта требовалось те или иные задачи решить с их помощью, то же свечение объектов, например. Сделав 5-6 разных и поэкспериментировав с вариантами, появилось микроскопическое понимание что надо делать для нужного результата. Конечно, мои знания по ним все еще на уроне 0.00000, но где-то там один нолик уже задрожал под натиском и упорством =)
Не надо стесняться большого количества незавершенных проектов, ведь это прежде всего показатель, что вы что-то делаете. Когда придет опыт и отличная идея – оно само завертится и закрутится.
Спасибо за внимание!









