Делаю игру на Unity и C# без знаний Unity и С#
А заодно пытаюсь понять, можно ли создать что-то адекватное без знаний языка и движка. Пока что-то получается, но больше чем что-то это не назовешь.
Все началось с того, что я пошел в фигму и отрисовал менюшку с загрузочным экраном. Хотел сделать что-то вроде текстовой RPG.
Потом мне пришла гениальная мысль обратиться к ChatGPT, который посоветовал мне попробовать осуществить мою задумку именно в Unity с C#. На мой ответ: "я ниче там не понимаю", он сказал "похер, прорвемся".
Ну ок, подумал я, и пошел скачивать Unity. Интерфейс в целом просто и достаточно интуитивно понятный, но затупы на тысячу лет меня конечно преследовали.
Первое, что мне удалось сделать – спрайт квадрата со скриптом, который позволял двигаться на WASD и делать рывок в любую сторону. Потом вместо спрайта я воткнул гнома и сделал что-то похожее на интерфейс, типа полоски экспы и 3 ХП с сердечками. А заодно добавил отзеркаливание персонажа влево-вправо в соответствии с вектором движения.
Дальше – веселее, потому что я захотел добавить процедурную генерацию. Чего? Деревьев, конечно. Сгенерил парочку пиксельных друзей в нейронке, вырезал фон, получил код и воткнул. Вуаля, теперь они спавнятся по всей карте, куда бы я не пошел, а количество и размеры можно настроить в юнити.
Была только одна проблема: деревья залезали на перса или он был под ними. Но нейронка быстро написала мне скрипт для сортировки по Y-вектору и все встало на свои места.
С генерацией земли я запарился больше всего. Сначала эта хрень отправила меня рисовать их вручную через Tilemap Palette, а я пытался объяснить ей, что ниче рисовать не буду, потому что у меня процедурная генерация и я сдохну.
В итоге получил скрипт, который спавнит тайлы в радиусе от персонажа по мере движения и точно также стирает их за экраном, чтобы оптимизация не сказала бай-бай.
Дальше я подумал, что мир какой-то пустой и решил сделать анимацию ветра. С ней я жестко намучился, но все же смог. Теперь ветер спавнится в рандомной части экрана и существует до 5 секунд, создавая дополнительную атмосферу.
А что еще:
- Добавил иконку рывка, которую прицепил к самому рывку. Накинул туда 5 сек. кулдаун и анимацию времени восстановления, типа как в WoW
- Настроил бар экспы, чтобы по нажатию на кнопку "Е" шкала заполнялась. Скоро сделаю фарм опыта и лвл-ап
- Добавил воду, сначала квадратную типа рек, но потом психанул и нарисовал свою в фигме. По факту это лужи. Хочу сделать замедление на 15%, когда по ним гуляешь
- Добавил камни, тоже спавнятся рандомно
- Добавил уменьшение персонажа (на 10%) при рывке и плавное снижение скорости к окончанию его анимации. Кажется, так прикольнее
Потом дело дошло до меню и музыки. С этим проблем вообще не возникло, кроме ховера кнопок в меню. Анимация просто не работала, потому что сраная нейронка отправила меня в аниматор. Есесна, там я не справился, хотя все делал правильно. В итоге ховер получилось сделать с помощью скрипта.
Музыку взял со стоков, но она мне настолько понравилась, что теперь хочу слушать ее постоянно. Атмосферы знатно прибавилось.
Ну и финальный штрих для того, что я успел сделать за эти 4 дня – кабанчики. Их тоже сгенерил в нейросетке и вырезал, добавил в игру, воткнул физику столкновения и заставил ходить по скрипту: теперь они 2-5 секунд двигаются в рандомную сторону, еще 2-5 секунд стоят и потом продолжают движение. Это будут первые мобы. Их тоже отзеркаливаю в зависимости от вектора движения, ну и сортирую, чтобы прятались за деревьями.
А, ну и спавнятся они только на севере. Так мне захотелось. В остальные стороны света раскидаю других мобов.
Финальный результат (пока что)
Ну вот, получилось что-то вроде живого мира. В планах добавить махач с этими кабанами, фарм опыта, лвлинг, описание способностей и прочую дичь. Пока не знаю, насколько меня хватит, но затянуло прям знатно.
А от себя, не зная Юнити и C# скажу: это просто какой-то шок, что я могу не учить языки и сделать что-то такое. Да, не ААА-проект, но это что-то свое, ламповое и довольно забавное. Мечта детства сбывается.