Викторина
Словомер
я хотел выделить его просто
это лого новой игры от mundfish "the cube", кольца из atomic heart это их же игра
Да, я этого и хотел, накинул им эммисию
спасиб
самое смешное что 3dшник оценивает 3d модель прогера, но почему то я его код не видел)
я понимаю что чел дрочер на полигонаж, насмотрелся тик-токов и теперь судит
ты ожидал что я буду оптимизировать сетку для одиночного рендера?
Про полгода и год - ошибка в заголовке, спасибо. Полгода.
Про интерфейсы: схема рабочая, и она правда решает то, о чём я писал. Порядок «щит, потом здоровье» уезжает в реализацию, источник урона о нём не знает. Тут ты прав.
Чего нет в посте, а надо было написать: игра сетевая. Интерфейс даёт вызов метода, но не даёт репликацию значений и предсказание на клиенте. Нажал кнопку - анимация должна пойти мгновенно, а сервер подтвердит через полпинга; при расхождении нужен откат. Это пишется руками на каждую способность и не переиспользуется. В GAS оно из коробки, и вот за это я и заплатил входом. Был бы синглплеер - согласился бы с тобой без оговорок.
Про модификаторы через зоны есть тонкость, на которой я бы влетел. Две пересекающиеся зоны: зашёл в A, зашёл в B, вышел из A. A обнуляет модификатор, хотя игрок всё ещё в B. Значит нужен не одно поле, а список активных модификаторов с источниками, чтобы снимался только свой. Как только это дописываешь - получается то, чем внутри и является список активных эффектов.
Формула base + base*mod при этом никуда не девается, в GAS модификаторы считаются ровно так.
Про данные отдельно от логики и про состояния вместо флагов - согласен полностью, так и делаю. Оружие описано дата-ассетом, а поведение отдельным компонентом. Состояния через теги: «пока перезаряжаюсь, стрелять нельзя» это тег, а не буль, который надо не забыть сбросить в пяти местах.
Что до усложнения - тут ты, возможно, прав, и я это сам вижу. Просто пока не нашёл, где именно проходит граница между «сделал заранее правильно» и «сделал сложно на ровном месте». Такие комментарии помогают её нащупать, спасибо.
Спасибо, про асинхрон верно. У меня узкое место оказалось не в загрузке пакетов, а в шейдерах и прогреве PSO - процент загрузки ассетов их просто не видит, они идут мимо этого механизма. Поэтому вывел три отдельных счётчика: очередь компилятора шейдеров, NumPrecompilesRemaining у пайплайн-кеша и активные запросы прекеша. Уровень при этом на World Partition, так что на сублевелы делить не приходится, стриминг уже пространственный.
Да, я пытался так сделать, но тогда беда с кольцами была и отражением в них