TyapLyapDev - Разработка игр | Движуха Сакутина
225 subscribers
127 photos
77 videos
13 files
26 links
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Хватит с меня кодинга на сегодня. Половину дня придумывал систему для отката врагов вверх по сплайну, уже доходило до 280 строк запутанного кода. И что в итоге? Снёс всё нафиг, при спавне стал записывать расстояние от нового врага до старого и тупо откатывать, если это расстояние изменилось, когда часть врагов уничтожена и удалена из списка. Получилось пока рвано и под вечер поймал ещё один баг. Но думаю, завтра исправлю это. Уже не терпится перейти к свайпу авто. Там тоже будет не всё так радужно, конечно, ведь это свайпы, резервирование мест, проверка, что нет препятствий, маршрут в объезд в сторону слотов для пушек и вообще к конкретному слоту. Короче, будет полная жо весело.
🔥7
Сорян, что потерялся. Всё свободное время пока съедает работа, которая не относится к программированию. К тому же заболел, мозг отказывается шевелить извилинами ввиду плохого самочувствия. Но это не помешало мне немного посмотреть видосов про различные паттерны типа Command, EventBus, задуматься о применении в своих проектах UniRX и Zenject. Разобрался, как работает паттерн стратегия и даже воткнул это в текущий проект. Короче, я делаю всё, кроме того, чтобы сдвинуть разработку с мёртвой точки. Как приду в себя и разгружусь по работе, планирую продолжить с новыми силами.
👍4🔥4
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