Мой врыв (почти с ноги) в Unity

Журнал разработки новой игры. Пока называется Memo. А может и и не пока...

После головоломки с уровнями на основе тетриса #Tetra7Adventures , платформера (подрывающего жопы) #Skazka и таймкиллера - собиралки предметов #Skazkamini , а так же нескольких недоделок типа три-в-ряд или Salvations решила наконец взяться за тот жанр, который по настоящему люблю. а именно квесты, они же point and click.

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

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

Но речь сейчас скорее будет идти, не про саму игру. О ней рановато, а о своих шагах в Unity. Первые шаги, первые препятствия...

Итак. После скитаний по разным средам разработки меня наконец прибило к Unity. Решила таки попробовать его и пока особо уникальных открытий не сделала. Хотя одна наработка уже есть. Ниже об этом подробнее:

Первые проблемы с которыми я столкнулась - это пролаги в анимации персонажа, но добрый человек подсказал где искать настройки задержек между переключением анимаций (Попробуйте нажать на стрелку, которая между прямоугольниками в аниматоре.) Эта проблема была решена. Так же изначально персонаж ходил стрелочками, но немного поразмыслив решила сделать перемещение по клику мышью. Сразу как задел для android версии. Фон и персонаж тут пока не мои, просто картинки для теста.

Следующим добавила механизм, который не давал камере двигаться вне фона. А так же который смотрит когда должна двигаться камера, а когда только персонаж. Добавила инвентарь, но тут пока в него только могу залетать предметы. Много было вопросов по кликам по объектам UI. Читала, смотрела уроки и несколько раз переписывала.

моё инженерное решение по анимации

Дальше самым часто выискиваемым мною вопросом встала анимация дверей. У меня дом с кучей этажей и на каждом много дверей и многие будут открываться. Да и в целом будут предметы с простой анимацией, а точнее просто сменой картинок. Animator и animaton делать на каждую дверь - глупо. Это хорошо для персонажа у которого много анимаций под разные события, или как я смотрела в уроках для каких-то сложных предметов. Создавать варианты animation, это тоже значило плодить кучу сущностей, когда по сути у меня есть атлас с картинками, и мне просто надо по нему бежать и всё это проще написать кодом. Было принято решение утащить часть кода из старых игр. А для объекта, например двери, в классе просто указывать массив спрайтов для анимации. Когда нужна анимация, то подменяю основной спрайт по таймеру.

Далее разобралась как переходить между сценами и сохранять при этом персонажа и инвентарь.

При записи видео стараюсь по максимуму использовать все старые и новые механизмы в игре и так отлавливаю всплывающие баги. Так что запись видео очень помогает)

Далее написала объединение предметов в инвентаре. И механизм для визуальных эффектов. Параллельно рисую локации и предметы. Так же в тексте читались не все буквы. Написала свой font Asset. Получившийся шрифт вроде читается, но выглядит кривовато, пока оставлю как есть.

На этом пока всё. Впереди много работы и думаю еще много открытий и решений)

О разработке часто и много в телеге->

Вообще все ссылки тут ->

0
15 комментариев
Написать комментарий...
Японская флейта синобуэ

В Update не надо делать GetComponent, это относительно затратная операция. Лучше это сделать в Start(), которая выполняется до начала выполнения Update() и кэшировать.
То есть сделать что–то типа

private SpriteRenderer spriteRenderer;

public void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}

После этого в spriteRenderer будет ссылка на этот компонент, который можно будет использовать легко в Update.

Поначалу это незаметный удар по производительности, но если объектов с поиском компонентов будет много в сцене, это может привести к сбору мусора, что всегда приводит к снижение FPS и небольшим тормозам на небольшое время.

Ответить
Развернуть ветку
Алёна Соболь
Автор

Спасибо большое за уточнение. Обязательно учту.

Ответить
Развернуть ветку
Андрей Торчинский

Свои костыли писать это, конечно, хорошо в качестве тренировки и набивания руки. Но если есть готовые решения стандартных проблем, то почему бы не взять их и сконцентрироваться на том, что уникально для игры? Ну и в целом время и силы сэкономить.

Я в частности вот про это - https://assetstore.unity.com/packages/tools/game-toolkits/adventure-creator-11896

Для point and click очень сильно облегчает жизнь.

Ответить
Развернуть ветку
Антон Бородин

Я извиняюсь, а в чем прикол получается?
Ну будет еще один клон (причем буквально), с теми же механиками. Работать с чем-то готовым в попытках кастомизировать может еще сложнее оказаться.

Я без наезда, искренне не понимаю

Ответить
Развернуть ветку
Андрей Торчинский

В статье автор показывает, как реализовывает абсолютно базовые и стандартные механики. Причем не лучшим образом (без негатива, про GetComponent в Update уже написали). Прикол в том, чтобы не тратить на это время и взять готовое решение, которое уже много лет на рынке и протестировано множеством разработчиков, а свои силы бросить как раз на что-то уникальное для этого проекта, о чем я и написал в первом сообщении. Жанр point-and-click в целом не подразумевает каких-то серьезных инноваций, в них играют из за историй и головоломок. Вот на них и можно потратить высвободившееся время.

Ответить
Развернуть ветку
Алёна Соболь
Автор

Ну я дай бог пару недель в юнити. И тут даже не то что реализация базового пока, а просто изучение базы. Про это я и написала. Во первых готовое решение тоже нужно изучать, и там тоже будет код, который тоже можно написать "не лучшим образом". Во вторых это не бесплатно, а в третьих механика для самого поинт энд клик не так сложна, но я уже изначально в движок буду закладывать механизмы под свои головоломки. Ранее я писала на совсем простом движке без визуала. Только текст. И реализовала в нем удобные механизмы для тех же анимаций. Юнити как я написала выше предлагает мне неудобное решение, которое мне не подходит, но у меня ушло время, чтоб в этом разобраться и не один день, в попытках автоматизации. Сколько будет таких неудобных решений в креаторе я не знаю. Это опять разбираться. Мне проще разобраться в базовых механиках юнити и мелочи дописать самой. Хотя я понимаю и плюсы креатора и как только разберусь во всех нужных основах юнити, и пойму, что нужно ещё очень многое описывать для игры и нужно много времени на это, то гляну креатор.

Ответить
Развернуть ветку
Андрей Торчинский

Да я ж не настаиваю. Я сразу написал, что если цель набить руку в юнити, то ради бога, а если нужно сэкономить время и силы, есть неплохое готовое решение.

Ответить
Развернуть ветку
Алёна Соболь
Автор

Угу. Просто хотелось развёрнуто объяснить свою позицию.

Ответить
Развернуть ветку
Алёна Соболь
Автор

Спасибо. Подумаю

Ответить
Развернуть ветку
Дмитрий Зуев

Лайк за пенпайнаплаплпен, когда ручка в яблоке оказалась, сразу понял о чём речь)

Ответить
Развернуть ветку
Алёна Соболь
Автор

Лайк за внимательность)

Ответить
Развернуть ветку
Noxxjc

Ждав такую егру три года. Сделай так, чтобы можно было насрать на коврик под дверью.

Ответить
Развернуть ветку
Алёна Соболь
Автор

Неее. Только корованы. Под окнами) но грабить их нельзя. Только смотреть)

Ответить
Развернуть ветку
The Clever Gamer

Красава!)

Ответить
Развернуть ветку
Алёна Соболь
Автор

Благодарю!

Ответить
Развернуть ветку
Читать все 15 комментариев
null