Size: a a a

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

2019 March 19

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
Andrey @ozkriff Lesnikov
Я вот в который раз думаю: разработка эмуляторов вообще относится к игрострою или отдельное явление?
я думаю относится...косвенно конечно
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
Ну вот вроде да, но как-то хотя бы отдаленно общего с разработкой соверемнных игр вообще ничего) Только исторический экскурс в обородование и старые аппаратные ограничения
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
^ интересную штуку один из аметистеров задумал
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
Andrey @ozkriff Lesnikov
^ интересную штуку один из аметистеров задумал
оно интересно конечно, но совсем сыро всё
источник

AL

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

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
/// Returns raw `gfx-rs` state objects, if you want to use `gfx-rs` to write
/// your own graphics pipeline then this gets you the interfaces you need
/// to do so.
/// Returns all the relevant objects at once;
/// getting them one by one is awkward 'cause it tends to create double-borrows
/// on the Context object.
pub fn gfx_objects(
   context: &mut Context,
) -> (
   &mut <GlBackendSpec as BackendSpec>::Factory,
   &mut <GlBackendSpec as BackendSpec>::Device,
   &mut gfx::Encoder<
       <GlBackendSpec as BackendSpec>::Resources,
       <GlBackendSpec as BackendSpec>::CommandBuffer,
   >,
   gfx::handle::RawDepthStencilView<<GlBackendSpec as BackendSpec>::Resources>,
   gfx::handle::RawRenderTargetView<<GlBackendSpec as BackendSpec>::Resources>,
) {
   let gfx = &mut context.gfx_context;
   let f = &mut gfx.factory;
   let d = gfx.device.as_mut();
   let e = &mut gfx.encoder;
   let dv = gfx.depth_view.clone();
   let cv = gfx.data.out.clone();
   (f, d, e, dv, cv)
}
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
прекрасная функция. в 0.4 ggez были всякие get_render_target, get_factory
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
а в мастере уже нету (там релиз кандидат 0.5 я так понимаю)
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
а нетс, это я тупой. там просто часть заренеймили походу
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
Товарищи. Есть небольшой вопрос к вам. Как менеджмент сцен (игровое меню, выбор карты, настройки, реплей, игровой уровень) уживается с ECS? Адекватным ли будет, если я отдельно буду делать менеджмент сцен и в зависимости от этого уже запускать или не запускать определённые системы в SPECS? Например насколько правильно для этих целей - иметь сразу несколько диспатчеров?
источник
2019 March 21

DM

Dzmitry Malyshau in RU Rust GameDev — русскоговорящее сообщество
Глядишь и можно будет графику красивую на расте рисовать ;)
источник

F

Fedor in RU Rust GameDev — русскоговорящее сообщество
Loo Maclin
Товарищи. Есть небольшой вопрос к вам. Как менеджмент сцен (игровое меню, выбор карты, настройки, реплей, игровой уровень) уживается с ECS? Адекватным ли будет, если я отдельно буду делать менеджмент сцен и в зависимости от этого уже запускать или не запускать определённые системы в SPECS? Например насколько правильно для этих целей - иметь сразу несколько диспатчеров?
использую ggez-like сцены(https://github.com/not-fl3/good-web-game/blob/master/src/goodies/scene.rs), ecs-мир - только в одной из сцен.
для внутриигровых интерфейсов сцены не использую, рисую имгуёвые окна из систем, реплеев итд - нет. Вероятно, для реплеев сделал бы отдельную сцену, шарил бы ecs мир в ресурсах и использовал другой набор систем.
Мои попытки перенести логику менюшек в отдельные сцены (с push-down automata) обламались из-за того, что разные менюшки хотят разную логику апдейта/обработки инпута нижележащих сцен.
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
Fedor
использую ggez-like сцены(https://github.com/not-fl3/good-web-game/blob/master/src/goodies/scene.rs), ecs-мир - только в одной из сцен.
для внутриигровых интерфейсов сцены не использую, рисую имгуёвые окна из систем, реплеев итд - нет. Вероятно, для реплеев сделал бы отдельную сцену, шарил бы ecs мир в ресурсах и использовал другой набор систем.
Мои попытки перенести логику менюшек в отдельные сцены (с push-down automata) обламались из-за того, что разные менюшки хотят разную логику апдейта/обработки инпута нижележащих сцен.
Понял. Спасибо. Думаю сделаю так же. Единственное - если ты рисуешь имгуёвые окна внутри например системы "DrawGui", то как происходит апдейт состояния в связи с гуёвыми событиями? Например игрок нажал кнопку, ты должен увеличить какое то число в стейте, ты прям в "DrawGui" будешь принимать на вход ресурс/компонент (как Write/WriteStorage) и мутировать его состояние или всё таки как то разделять систему рисующую и систему "применяющую изменения"?
источник

F

Fedor in RU Rust GameDev — русскоговорящее сообщество
у меня есть одна система, отвечающая за вообще весь ввод, она и окна рисует, и кнопки обрабатывает

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

а всё менее серьёзное, что не связано ни с какими синхронизациями - мутирует прямо сама
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
Fedor
у меня есть одна система, отвечающая за вообще весь ввод, она и окна рисует, и кнопки обрабатывает

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

а всё менее серьёзное, что не связано ни с какими синхронизациями - мутирует прямо сама
Понятно
источник

F

Fedor in RU Rust GameDev — русскоговорящее сообщество
а, еще есть инпут который должен подождать ответа от сервера (инвентарь, запрос респауна)
такой инпут формируется в этой же системе в виде команд и тоже дальше уходит
источник

AL

Andrey @ozkriff Lesnikov in RU Rust GameDev — русскоговорящее сообщество
https://twitter.com/ozkriff/status/1108792852228784129 пинганулся в сритере что жив
источник

LM

Loo Maclin in RU Rust GameDev — русскоговорящее сообщество
👍 ждёмс девлога
источник