Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 October 17

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
И здоровье
источник

Д

Дима in RU Rust GameDev — русскоговорящее сообщество
И вообще многое разработчики теряют...
источник

Д

Дима in RU Rust GameDev — русскоговорящее сообщество
источник
2020 October 18

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Оно работает!
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Мухахаха!
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Теперь можно спавнить фьючеры изнутри фьючеров!
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Более того, теперь можно доступаться до внешнего не-'static стейта изнутри фьючера!
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
К сожалению моя костыльная реализация downcast_ref может давать ложноположительные с включёнными оптимизациями.
источник

VZ

Vlad Zhukov in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Оно работает!
под санами запускал? ;)
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Под кем?
источник

VZ

Vlad Zhukov in RU Rust GameDev — русскоговорящее сообщество
ну у тебя куча ансейва же. Есть же вроде для раста санитайзеры тоже (я вроде как-то юзал даже)
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
А, ещё не запускал, da.
источник

AL

Andrey @ozkriff Lesn... in RU Rust GameDev — русскоговорящее сообщество
https://youtu.be/pzfhlF-zOCo в сад физику завозют, походу. Мило.
источник

ДС

Дмитрий Степанов... in RU Rust GameDev — русскоговорящее сообщество
раз уж тут про async/await заговорили, хочу спросить как прикрутить async/await для загрузки ресурсов. Сейчас у меня сделано так как показано на рисунке: юзер запрашивает ресурс у менеджера (текстуру в данном случае), менеждер проверяет, есть ли запрошенная текстура в списке загруженных\загружаемых. Если есть то возвращаем Arc ресурса сразу, если нет - создаем новый инстанс с состоянием Pending и шарим Arc между worker thread'ом и юзером. Как видно тут юзер сразу получает текстуру, даже пусть она все еще грузится в другом потоке. Это вполне нормально, так как рендер будет использовать только загруженные тексы и будет игнорить загружаемые, необходимость читать данные сразу после загрузки редки, и тут тоже никаких проблем - ждем пока мьютекс получится заблокировать и все - можно делать что хочется. Есть ли тут возможность перенести на async/await это? С сохранением функционала естественно
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Дмитрий Степанов
раз уж тут про async/await заговорили, хочу спросить как прикрутить async/await для загрузки ресурсов. Сейчас у меня сделано так как показано на рисунке: юзер запрашивает ресурс у менеджера (текстуру в данном случае), менеждер проверяет, есть ли запрошенная текстура в списке загруженных\загружаемых. Если есть то возвращаем Arc ресурса сразу, если нет - создаем новый инстанс с состоянием Pending и шарим Arc между worker thread'ом и юзером. Как видно тут юзер сразу получает текстуру, даже пусть она все еще грузится в другом потоке. Это вполне нормально, так как рендер будет использовать только загруженные тексы и будет игнорить загружаемые, необходимость читать данные сразу после загрузки редки, и тут тоже никаких проблем - ждем пока мьютекс получится заблокировать и все - можно делать что хочется. Есть ли тут возможность перенести на async/await это? С сохранением функционала естественно
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Примерно так же. Возвращаю всегда хэндл, которую можно использовать как футуру.
При первом запросе создаю хэндл и спавню таску которая его зарезолвит.
При повторном запросе отдаю клон хэндла.
источник

ДС

Дмитрий Степанов... in RU Rust GameDev — русскоговорящее сообщество
о спасибо, сейчас поковыряю исходники
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Можешь прям взять и заиспользовать :)
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Я вот думаю, что мне не нравится в пошаговых боях. Вообще я люблю х-сом и тому подобные вейстленды. Как и героев (кто вообще использует автобитву?).

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

Так вот идея:
У каждого юнита есть параметр "скорость". У каждого действия есть параметр "время".
Так же у каждого юнита аккумулируется "время" от всех совершенных действий.

После каждого действия юнит с наименьшим значением "время/скорость" становится активным. Активный юнит совершает любое одно действие. Юнит добавляет "время" от действия себе в копилку. Следующий ходит юнит у которого теперь "время/скорость" меньше всех.
Это может быть и тот же самый юнит. В начале боя все получают "время = -скорость", что определяет изначальный порядок хода.

Что думаете? Такое может работать?
источник

AT

Alexander Tchitchigi... in RU Rust GameDev — русскоговорящее сообщество
Roman
Я вот думаю, что мне не нравится в пошаговых боях. Вообще я люблю х-сом и тому подобные вейстленды. Как и героев (кто вообще использует автобитву?).

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

Так вот идея:
У каждого юнита есть параметр "скорость". У каждого действия есть параметр "время".
Так же у каждого юнита аккумулируется "время" от всех совершенных действий.

После каждого действия юнит с наименьшим значением "время/скорость" становится активным. Активный юнит совершает любое одно действие. Юнит добавляет "время" от действия себе в копилку. Следующий ходит юнит у которого теперь "время/скорость" меньше всех.
Это может быть и тот же самый юнит. В начале боя все получают "время = -скорость", что определяет изначальный порядок хода.

Что думаете? Такое может работать?
Мне кажется, это будет звездец как непонятно для игрока, потому что время/скорость величина не наблюдаемая (плохо наблюдаемая, не интуитивная).
источник