Size: a a a

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

2021 January 09

ВМ

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

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
Не факт что оно будет крутить абсолютно любой смакер, так как есть разные версии формата, в более поздних появились нововведения которых у меня нет по части как распаковки картинки так и формата хранения аудио данных
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
https://github.com/lu-zero/ffmpeg/blob/master/libavcodec/smacker.c вот эта штука должна кушать всё, но тут код на си как ты можешь видеть
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
@fzzzr меншню чтобы ты не потерял
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
Gruntz прикольный, если покажешь на созвоне будет классно
источник

A⠀

Alex ⠀⠀⠀⠀⠀⠀... in Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
https://github.com/lu-zero/ffmpeg/blob/master/libavcodec/smacker.c вот эта штука должна кушать всё, но тут код на си как ты можешь видеть
Его изначально и хотел юзать. Если твой зайдёт - будет шикарно.
источник

A⠀

Alex ⠀⠀⠀⠀⠀⠀... in Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
Gruntz прикольный, если покажешь на созвоне будет классно
У меня сейчас уборка депрекейшнов (уже умерших и тех что ещё не) и маленький рефакторинг. Вряд ли успею к завтрашнему. Хотя если встану как обычно, благодаря моим эпическим проблем со сном (я сплю по 4 часа в среднем в сутки), то может что и смогу показать.
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
Alex ⠀⠀⠀⠀⠀⠀
Его изначально и хотел юзать. Если твой зайдёт - будет шикарно.
Возможно ты захочешь чуть иначе грузить байтики, тут используется моя костыльная хрень, можно увидеть тут например: https://github.com/madwareru/rom-loaders-rs/blob/master/src/multimedia/smacker/header.rs
источник

BD

Berkus Decker in Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
Возможно ты захочешь чуть иначе грузить байтики, тут используется моя костыльная хрень, можно увидеть тут например: https://github.com/madwareru/rom-loaders-rs/blob/master/src/multimedia/smacker/header.rs
я сначала думал причем тут rom 🙂 теперь понял
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
rage of mages)
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
Кстати, сначала думал что битридер написал очень неоптимально: https://github.com/madwareru/rom-loaders-rs/blob/master/src/multimedia/smacker/bit_reader.rs
Но потом начал думать, что если писать "оптимально", потом всё равно надо разворачивать эти биты, а если глянуть какой-нибудь хакерс делайт то там на каждое количество бит по сути своя функция, так что нафиг это не надо, получится что-то страшное и скорее всего ничуть не более быстрое)
источник

Д

Дима in Rust GameDev — русскоговорящее сообщество
Здравствуйте, я тут эксперементирую с макроквад. Те, кто эксперементировал с многопоточностью, что имеет смысл "распараллеливать"? В качестве примера хочу привести обычную логику снаряда. Есть условные 2000 снарядов, каждый требует обработки (рассчитать новое местоположение) и вызов на отрисовку. Самое интересное, что это относительно небольшое количество объектов "сжирает" 100% 1 ядра. Я додумался включить оптимизацию и нагрузка очень сильно снизилась, но осадочек, как говорится, остался. Имеет ли смысл создать пул с 16 потоками и в нем решать эти задачи?
П.С. немного новичок и все ещё борюсь с компилятором по поводу многопоточности
источник

НЧ

Неизвестный Человек... in Rust GameDev — русскоговорящее сообщество
А откуда 2000 снарядов? Я что-то и представить себе не могу, где такое...

16 потоков дофига, по идее. Если у проца другого будет 8 ядер логических, то он же сдохнет нафиг.

Насчет отрисовки. А зачем на каждый снаряд отдельный дровкол? Рисуй их разом. Я ж не думаю, что у каждого из 2000 снарядов уникальных визуал.

И как вообще обрабатываешь местоположения снарядов?
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
Дима
Здравствуйте, я тут эксперементирую с макроквад. Те, кто эксперементировал с многопоточностью, что имеет смысл "распараллеливать"? В качестве примера хочу привести обычную логику снаряда. Есть условные 2000 снарядов, каждый требует обработки (рассчитать новое местоположение) и вызов на отрисовку. Самое интересное, что это относительно небольшое количество объектов "сжирает" 100% 1 ядра. Я додумался включить оптимизацию и нагрузка очень сильно снизилась, но осадочек, как говорится, остался. Имеет ли смысл создать пул с 16 потоками и в нем решать эти задачи?
П.С. немного новичок и все ещё борюсь с компилятором по поводу многопоточности
Для начала, поменяйте логику коллизий если ещё не поменяли. 2000 снарядов это ничто и они не должны ничего нагружать
источник

ВМ

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

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
Неизвестный Человек
А откуда 2000 снарядов? Я что-то и представить себе не могу, где такое...

16 потоков дофига, по идее. Если у проца другого будет 8 ядер логических, то он же сдохнет нафиг.

Насчет отрисовки. А зачем на каждый снаряд отдельный дровкол? Рисуй их разом. Я ж не думаю, что у каждого из 2000 снарядов уникальных визуал.

И как вообще обрабатываешь местоположения снарядов?
любой bullet hell шутер же
источник

НЧ

Неизвестный Человек... in Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
любой bullet hell шутер же
Не знаю таких, совсем)

Все, теперь погуглил и понял более-менее. Просветился немного
источник

Д

Дима in Rust GameDev — русскоговорящее сообщество
Виталий Медоваров
Для начала, поменяйте логику коллизий если ещё не поменяли. 2000 снарядов это ничто и они не должны ничего нагружать
никаких коллизий нет, просто и тупо рассчёт нового положения через косинусы и синусы, умножение и сложение
источник

Д

Дима in Rust GameDev — русскоговорящее сообщество
а в качестве отрисовки просто draw_circle
источник

Д

Дима in Rust GameDev — русскоговорящее сообщество
все снаряды лежат в векторе
источник