Size: a a a

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

2020 November 27

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
Кстати, про модель памяти раста написано, что не описана, а у беви написано, что в нём есть лок фри структуры данных
модель памяти раста сейчас базируется на мп llvm, то есть то же самое что и в плюсах после 11
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Alexander Zaitsev
не совсем понял, как лок фри ДС относится к модели памяти
наверное потому что для лок фри важно где и как будут видны сайд-эффекты и что компилятор сделал для нас в  свои годы
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
но компилятор сделал нам ровно по модели памяти с++ Atomics и core::sync::atomic::compiler_fence
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
Кстати, про модель памяти раста написано, что не описана, а у беви написано, что в нём есть лок фри структуры данных
https://doc.rust-lang.org/core/sync/atomic/index.html собсно тут написано где и что специфицировано (коротко: это область номикона)
источник

ВМ

Виталий Медоваров... in RU Rust GameDev — русскоговорящее сообщество
Спасибо за консультацию!
источник

ВМ

Виталий Медоваров... in RU Rust GameDev — русскоговорящее сообщество
Полезно
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Когда будет спека на раст, будет спека и на модель памяти, но я почему-то  ОЧЕНЬ сильно сомневаюсь что она будет отличаться от проверенной в llvm.
источник

DT

Dmitry Terekhov in RU Rust GameDev — русскоговорящее сообщество
Всем спасибо :)
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
Кстати, про модель памяти раста написано, что не описана, а у беви написано, что в нём есть лок фри структуры данных
Тлдр раст пока по возможности наследует модель памяти плюсов в этом плане.
источник

AL

Andrey @ozkriff Lesn... in RU Rust GameDev — русскоговорящее сообщество
У меня парочка обновлений:

* Я таки попробовал завести небольшой канал в телеге @ozkriff_games
* Закончен переезд на macroquad: https://t.me/ozkriff_games/8
Telegram
ozkriff.games
Благодаря отпуску наконец-то нашел время закончить начатый Федей еще в начале месяца переезд с good-web-game на macroquad, ура!

https://github.com/ozkriff/zemeroth/pull/646

Весьма масштабное изменение: 50 files changed, 1881 insertions(+), 2815 deletions(-), до ребейза ветка насчитывала порядка 90 WIP-комитов.

Игровая логика (src/core) довольно хорошо абстрагирована от внешнего мира, так что её переезд вообще не затронул, но зато все касающееся графики или обработки ввода в той или иной степени переколбашено.

Большинство изменений не особо принципиальные: немного по другому оформляются аргументы там-сям и ладно. Из заметного:

* Не надо больше везде в явном виде протаскивать Context.

* Ввод обрабатываетя явными запросами, а не через события.

* Пропал привычный Drawable типаж (заменен самописным enum'ом).

* Асинхронность, наверное, самое крупное отличие. Что бы нормально работать в вебе, основной цикл и загрузка любых ресурсов в macroquad асинхронны и, как известно, асинхронные функции нельзя просто так…
источник

УМ

Убийца Мамонтов... in RU Rust GameDev — русскоговорящее сообщество
Andrey @ozkriff Lesnikóv
У меня парочка обновлений:

* Я таки попробовал завести небольшой канал в телеге @ozkriff_games
* Закончен переезд на macroquad: https://t.me/ozkriff_games/8
Telegram
ozkriff.games
Благодаря отпуску наконец-то нашел время закончить начатый Федей еще в начале месяца переезд с good-web-game на macroquad, ура!

https://github.com/ozkriff/zemeroth/pull/646

Весьма масштабное изменение: 50 files changed, 1881 insertions(+), 2815 deletions(-), до ребейза ветка насчитывала порядка 90 WIP-комитов.

Игровая логика (src/core) довольно хорошо абстрагирована от внешнего мира, так что её переезд вообще не затронул, но зато все касающееся графики или обработки ввода в той или иной степени переколбашено.

Большинство изменений не особо принципиальные: немного по другому оформляются аргументы там-сям и ладно. Из заметного:

* Не надо больше везде в явном виде протаскивать Context.

* Ввод обрабатываетя явными запросами, а не через события.

* Пропал привычный Drawable типаж (заменен самописным enum'ом).

* Асинхронность, наверное, самое крупное отличие. Что бы нормально работать в вебе, основной цикл и загрузка любых ресурсов в macroquad асинхронны и, как известно, асинхронные функции нельзя просто так…
Имею честь быть одним из первых подписчиков)
источник
2020 November 28

IL

Ilya Lakhin in RU Rust GameDev — русскоговорящее сообщество
Ребята, подскажите, пожалуйста, есть ли какие-то best practices для "юнит" тестирования графических ассетов в инфраструктуре Раста? То есть, грубо говоря, тулза производит выходную картинку какого-то специфичного аспекта рендеринга, хотелось бы сравнивать её с ожидаемым прототипом.

Тут сразу возникает несколько проблем:

1) Где и как хранить прототипы? Если в самом репозитории, он очень быстро разрастется, и устаревшие протопы потом не выковыришь из старых коммитов.
2) Как прототипы сравнительно оперативно обновлять, когда меняется аутпут?
3) Может быть есть около-готовые библиотеки для этого всего?
источник

IL

Ilya Lakhin in RU Rust GameDev — русскоговорящее сообщество
Первое, правда, можно решить создав дополнительный репозиторий с прототипами, и привязав его к основному через git submodules, но сабмодули неудобны в использовании. Да и это не особо решает проблему разрастания.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
1. Ты делаешь игру, твой репозиторий всё равно будет жирным.
2. Обычно суть тестирования в том что тебе не нужно их менять когда меняется твой код. То есть твои прототипы описывают то, как твоя штука должна выглядеть.
3. Я бы просто сравнивал картинки сцен снятых с определённого угла. Библиотеки для приблизительного сравнения изображений есть.
источник

MS

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

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Ilya Lakhin
Ребята, подскажите, пожалуйста, есть ли какие-то best practices для "юнит" тестирования графических ассетов в инфраструктуре Раста? То есть, грубо говоря, тулза производит выходную картинку какого-то специфичного аспекта рендеринга, хотелось бы сравнивать её с ожидаемым прототипом.

Тут сразу возникает несколько проблем:

1) Где и как хранить прототипы? Если в самом репозитории, он очень быстро разрастется, и устаревшие протопы потом не выковыришь из старых коммитов.
2) Как прототипы сравнительно оперативно обновлять, когда меняется аутпут?
3) Может быть есть около-готовые библиотеки для этого всего?
cargo insta?
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
правда непонятно нафига столько сложностей с граф ассетами
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Ну и да не факт что это тебе нужно.
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
то есть юнит тесты хорошо, но юнит тесты граф ассетов мне кажется немножко эребор
источник

AL

Andrey @ozkriff Lesn... in RU Rust GameDev — русскоговорящее сообщество
илья же рендерилку пишет - ему надо не ассеты проверить, а что чего-то в рендере не отвалилось от изменений
источник