Билды
February 15, 2024

Билд v0.0.7.1 - фикс масштабирования и ещё пары штук

Содержание

Разрешение и масштаб

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

Теперь масштаб везде одинаковый

Кому интересно что я сделал:

  • Viewport width/height снизил с 2560x1440 до 1920x1080
  • Stretch Mode заменил на canvas_items
  • Aspect заменил на expand

К сожалению, это означает, что на разрешении 2K будет мыльцо, поскольку 2560/1920 = 1.333333

Поэтому я сделал канвасом доминирующий ныне Full HD - чтобы на нём была оригинальная картинка

Также я перелопатил интерфейс выбора персонажа и поменял масштаб всего остального интерфейса - с уменьшением размера канваса всё стало слишком огромным, посему пришлось поработать руками

Рунмастер и Shift у границы

В v0.0.7 и ранее, если скастовать Shift у границы арены, то он сразу бился о коллайдер и падал

  • Подвинул коллайдеры для снарядов подальше, чтобы этого не происходило
  • Также Bounce и Shift теперь вылетают из центра модельки, а не из головы
  • Ещё добавил выталкивание пикапов из краёв арены, если они там заспавнились

Не вижу Bounce

В качестве временной меры, я сделал так, что подбираемый Bounce находится всегда на переднем плане. Теперь он не затеряется за камнями Pulse, но выглядит это стрёмно - надо будет как-нить получше обыграть

Утечки памяти

Также обнаружил херову тучу утечек памяти. А ещё я, кажется, понял, почему нажатие на Quit вешает игру секунд на 30 - она как раз вычищает весь накопившийся мусор из памяти

Что я сделал

  • Удалил все Autoload-ноды и заменил их глобальными классами. Им незачем быть нодами, и местами они как раз порождали orphan nodes
  • Пробежался ещё раз по местам, которые дёргают remove_child, на предмет того, не забыл ли я вызвать где-то следом queue_free. Нашёл пару мест
  • А ещё - помните вот этот пост? Так вот, после него я-таки сделал так, что юниты удаляются из памяти только через 10-20 секунд после смерти. Но если в этот момент ты сам умрёшь или выйдешь из забега, то таймеры, которые это отсчитывают, разумеется, повиснут. Чтобы это пофиксить, я завёл deadge_stash в ноде забега, и перед закрытием дёргаю queue_free всех нод оттуда

В результате игра всё ещё зависает при попытках выйти, если был запущен хотя бы один забег, но уже не на 30+ секунд, а на 10. А без запуска забега дак вообще сразу выходит

Буду искать утечки дальше - где-то они ещё остались, причём текут уже не ноды, а именно объекты и ресурсы. Похоже, их придётся руками вычищать, но это какая-то залупа, если честно

Скачать билд

Пароль: tier3