TyapLyapDev - Разработка игр | Движуха Сакутина
225 subscribers
127 photos
77 videos
13 files
26 links
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Очень много времени ушло на сплайн дороги с помощью SplineContainer.
1. Меш дороги "из коробки" не заменялся (а мне надо было подсунуть меш с коллайдером). Другой способ делал с наложением мешей друг на друга (и коллайдеры тоже бы накладывались), причём всё это добро смотрелось ужасно.
2. Нашёл дополнение к сплайну от одного разраба. Это решило проблему меша и коллайдеров, но при создании префаба меш слетал. Исправил это, вмешавшись в ассет.
3. Юньковский сплайнконтейнер по ходу не хранит узлы соединений между сплайнами. Пришлось сделать собственную карту узлов и систему поиска путей.
4. Долго заморачивался с получением позиции на сплайне и движением в нужном направлении. Вроде решил.
5. Добавил слерп на повороты и лерп на перемещение. Стало чуть получше.
6. В процессе решения всех этих задач несколько раз прибегал к помощи нейронок и те всё благополучно ломали )

Сейчас надо бы разложить классы по папкам, закоммитить и запушить сделанное. Далее пойду в блендер переделывать модельки.
🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
А, ну и столкновения авто друг с другом.
По свайпу создаётся мувер, который двигает авто вперёд или назад. Если есть столкновение, мувер заменяется на тот, что откатывает авто немного в противоположную сторону. А при детекции коллайдера сплайна мувер заменяется на тот, что тащит по сплайну. Все они под одним интерфейсом, управляемые публичным методом Move(float deltaDistance).
🔥8
Я 3 дня провозился, чтобы перевести проект на Zenject. В итоге либо я хреново выстроил архитектуру проекта (что более вероятно), либо zenject мне не очень подходит.

Зачем мне нужен был Zenject. В какой-то момент мне пришлось вручную прокидывать зависимости через классы, которым это нафиг не надо. Они тупо передавали ссылку дальше. Объясню проще с помощью примера из сказки про смерть кощея, которая в игле, игла в яйце, яйцо в утке, утка в зайце и т.д. Так вот, ссылка прокидывалась через все эти сущности, потому что это надо игле. Как раз такую задачу и должен решать DI Container, в моём случае zenject. А когда таких ответственностей много, конструкторы распухают.

Но, оказалось, что в рантайме внедрять зависимости посложнее и надо создавать объекты через фабрики, а сервисы регистрировать в инсталлере. И я чёт запутался, решил отказаться от zenject и сделать более плоские модели. Условно теперь зайцу не надо создавать утку, а утке яйцо, яйцу иглу. Отдельно создаём иглу, затем яйцо и прокидываем туда иглу, отдельно создаём утку и прокидываем в неё яйцо и т.д.
Не уверен, что теперь всё правильно, но посмотрю, как всё будет работать
👍3🔥1🤯1
Сделал прототип без Zenject и предложил нейросетке сравнить, как было бы с этим фреймворком и без него в моём проекте. Вердикт на скринах.

Что меня не устроило:
1. Zenject забирает у меня контроль и ориентироваться в логике становится сложнее.
2. Надо инстантиировать объекты специальным образом.
3. Надо помечать конструкторы командой [Zeject]
4. Кода в 2,5 раза больше, чем без Zenject.

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

А какой у вас опыт с Zenject? Используете в своих проектах?
Media is too big
VIEW IN TELEGRAM
Всем привет! Продолжаю разработку проекта по учёбе.

Что сделано с последней публикации:
- нарисовал модельки авто (да, сам);
- заменил спрайты постаментов на 3d;
- добавил движение авто по сплайнам с переключением стратегий (движение назад, вперёд, откат после аварии, разворот на сплайне, корректное движение к целевой позиции с поиском кратчайшего пути);
- добавил анимации столкновений;
- научил разъярённую толпу бояться, менять выражение лица при попадании;
- понакидывал партиклы.

Больше всего было потрачено времени:
1. На постройку карты графов, исправление багов при поиске путей и направлений авто при движении. В этом реально чуть не утонул, но справился.
2. На рефакторинг кода, многое перепилил и сделал удобнее.

Что интересного по коду:
По-моему у меня пока на весь проект нет ни одного метода Update(), использую UniRX и уже для меня родные корутины, в остальном многое на событиях и управляется сервисами.
продолжение в сообщениях 👇
🔥6👏1
TyapLyapDev - Разработка игр | Движуха Сакутина
Реф, по которому буду пилить первый проект пыточной. Меня пощадили с задачей (у остальных всё ИМХО сложнее). Дизайн можно менять, но не сильно отходить от исходных механик. Пока ставится версия юньки, в которой надо работать, я прикидываю, что и как буду…
Помните, я говорил, что надо 1,5-2 месяца. Так вот, через неделю будет как раз 2 месяца разработки. Но осталось сделать по фигне (правда, всё оставшееся невкусное, кроме работы с sfx). Но, я не учёл, что надо наклепать уровней штук 100, а так же будет непросто пройти код ревью, ибо наговнокодил ввиду слабеньких знаний.

В любом случае через неделю покажу, что накалякал и что выполнено из этого списка 🙂
🔥3😁1👨‍💻1
Сегодня 57-й день разработки. Звук почему-то не записался, там есть только тестовая музыка. Конечно, в 2 месяца не уложусь, если учитывать все задачи, а не только те, что в списке. Зато прогресс попёр и довольно много сделано. Как вам? Фигня, да? 😁
👍2😁1
Сегодня с утра в Питере шейдер глюкнул или текстурки в плохом качестве потянулись
5
TyapLyapDev - Разработка игр | Движуха Сакутина
Photo
По мере того, как я закрывал одни задачи, нарисовывались новые. И всё же я потихоньку подбираюсь к завершению проекта. Правда, моих знаний всё же недостаточно, чтобы сделать максимально чистую архитектуру. В проекте куча костылей, с которыми ментор просто не примет работу. Но я решил, что пока сделаю хоть как-нибудь, а затем буду исправлять под руководством своего ментора. В комментариях скину ссылку на черновик, если кому интересно потрогать недопиленную игру
🔥8👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Ага да, я пропал на какое-то время, но с юнькой не расставался. Помимо собственного проекта ещё запрыгнул в небольшой проектик знакомого разработчика. Зная, что менторам показывать код не надо будет и никто за код не отпинает, зафигачил синглтон сервис-локатор и через него тяну сервисы, куда нужно.

Самым интересным оказалась система взаимодействия, которую только что допилил. Грядки должны покупаться по клику, а монеты собираться по клику или свайпу. Я сразу завёл интерфейс для стратегий, чтобы обрабатывать ввод как на ПК, так и на мобилках. А потом решил прикрутить мультитач, чего добру пропадать. И вот тут я понял, почему многие разрабы предпочитают композицию вместо наследования. Кода выходит больше, но гибкости и соответствия SOLID больше. Мне кажется, я многого ещё не знаю, но как будто начинаю понимать и оттого ещё больше тащиться от программирования.

А в игре теперь можно будет жмать не одним пальцем, а всеми сразу на руках и ногах 😅
🔥61
This media is not supported in your browser
VIEW IN TELEGRAM
Блин, чёт я только к 31-му уровню созрел добавить новую механику. Этот уровень простой, чисто дать освоиться игроку с новым устройством. Следующий будет аццкий, впрочем как и все, начиная с 20-го. Но любой уровень проходится на 3 звезды без рекламы, регистрации и смс (я лично их прошёл).

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

Как вам мысля?
4👍3
Порадовали слова ментора 😎
Отправил черновик на модерацию 🤞
🔥4👍1
Ожидал чего-то подобного, просто надеялся на лучшее.

Да, я никогда раньше не делал инап-покупок, поэтому накосячил с ними.

Завтра уже займусь исправлением, т.к. всё равно раньше 18:30 26.02.26 не отправить. Да и отправлять нельзя до тех пор, пока подтверждение подключения на почту не придёт
😢1
Вторая попытка. Есть сомнения, что всё сделано правильно и, если честно, в проекте есть до чего докопаться
1