Size: a a a

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

2020 March 01

M

MaxGraey in WebAssembly — русскоговорящее сообщество
источник
2020 March 02

C

Constantine in WebAssembly — русскоговорящее сообщество
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
немного оффтоп: какие книжки стоит прочитать если я хочу научится выбирать архитектуру сохранения данных в программе? что-то вроде перечня подходов из которых можно выбрать исходя из того что мне нужно
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Георгий
немного оффтоп: какие книжки стоит прочитать если я хочу научится выбирать архитектуру сохранения данных в программе? что-то вроде перечня подходов из которых можно выбрать исходя из того что мне нужно
А что Вам нужно? 😊
Что за программа?
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
По сути, персистентное хранение данных сводится к выбору той или иной БД. Выбор БД зависит от технических ограничений и нефункциональных требований.
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
ну грубо говоря. ситуация такая. представим себе любую игру где есть много игроков и много событий. допустим я храню данные о состоянии мира и состоянии игроков в разных файлах. если например раздельно сохранять мир и игроков то мне кажется что может получится рассинхрон между двумя этими сущностями. допустим там один файл сохранится, а другой нет из-за нехватки места. другой момент, допустим есть некоторые действия которые могут происходить только последовательно. допустим игрок открывает дверь, проходит через нее, закрывает дверь. если опять же разделять сохранение игрока и мира то может получится что игрок допустим, пройдет через дверь не открывая её или что-то в этом роде. т.е. наверное основной аспект это как атомарно записывать в несколько файлов. и момент, допустим что действия постоянно происходят и я не могу записывать каждое действие на диск, это слишком медленно. сохранять мир раз в некий промежуток времени тоже не вариант т.к. это придется замораживать весь мир, сохранять, а это может занять 2-3 секунды и это будет заметно игрокам. в теории можно создать что-то вроде журнальной системы, а все изменения мира представить в виде действий. журнал копит изменения и в бекграунде их сохраняет раз в некий прометужок времени.
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
я опять дофига написал
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Георгий
ну грубо говоря. ситуация такая. представим себе любую игру где есть много игроков и много событий. допустим я храню данные о состоянии мира и состоянии игроков в разных файлах. если например раздельно сохранять мир и игроков то мне кажется что может получится рассинхрон между двумя этими сущностями. допустим там один файл сохранится, а другой нет из-за нехватки места. другой момент, допустим есть некоторые действия которые могут происходить только последовательно. допустим игрок открывает дверь, проходит через нее, закрывает дверь. если опять же разделять сохранение игрока и мира то может получится что игрок допустим, пройдет через дверь не открывая её или что-то в этом роде. т.е. наверное основной аспект это как атомарно записывать в несколько файлов. и момент, допустим что действия постоянно происходят и я не могу записывать каждое действие на диск, это слишком медленно. сохранять мир раз в некий промежуток времени тоже не вариант т.к. это придется замораживать весь мир, сохранять, а это может занять 2-3 секунды и это будет заметно игрокам. в теории можно создать что-то вроде журнальной системы, а все изменения мира представить в виде действий. журнал копит изменения и в бекграунде их сохраняет раз в некий прометужок времени.
Возьмите трензакционную БД! Всё разворовано до нас. 😃
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
тут проблема в том что как бы, мир поделен на регионы, и регионы состоят из вокселей, по сути файл весит где-то 64 мб, сохранять такое в бд это такое себе
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Любую игру представить нельзя, потому что Call of Duty и World of Warcraft устроены существенно по-разному.
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
ну блин. в теории любую игру можно представить как взаимодействия сущностей
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Георгий
ну блин. в теории любую игру можно представить как взаимодействия сущностей
А на практике разные игры приходят к существенно различным архитектурам бэк-енда. Потому что особенности и своства у них разные.
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
хм, ну тут да
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
короч это клон майнкрафта
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
в бд можно хранить инфу об игроках, мобах, вещах там
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
но воксели хранить в бд...
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
или есть какие-то варианты?
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Вы для начала BSP-tree используете?
источник

AT

Alexander Tchitchigin in WebAssembly — русскоговорящее сообщество
Или, там, octree...
источник

Г

Георгий in WebAssembly — русскоговорящее сообщество
оно для представления в памяти? или на диске?
источник