В настоящее время у меня есть система, в которой я записываю состояние геймпада в структуре и сохраняю его в списке состояний, чтобы записать ввод для продолжительности видеоигры. Полное состояние колодки занимает 192 бит на кадр, но это немного расточительно. Например, если аналоговые триггеры на пэде не нажимаются, они все равно занимают 32 бита, каждый в памяти. Поэтому, очевидно, я хочу сэкономить место.
Я пытался установить для этого параметра значение NULL, но, похоже, оно не влияет на размер двоичного файла, который система сохраняет в конце матча.
Какие альтернативы доступны в ситуации, когда вам нужно только записать или сохранить определенные значения, но сохранить целостность структуры данных?
EDIT:
Я думаю, что нашел решение; сортов. Ранее я пытался установить значения в NULL, переопределив стандартный float с System.Nullable в структуре. Моя идея состоит в том, что установка этого значения в NULL в структуре будет сериализоваться намного меньше. У меня сложилось впечатление, что NULL записывается как 4 бита. Это может быть больше, это возможно. Во всяком случае, код, который у меня был ранее, имел довольно очевидную ошибку, поэтому я вернулся и исправил ее снова. Теперь я получаю намного меньшие повторы, и точность, кажется, такая же хорошая, поэтому я собираюсь предположить, что обман NULL делает что-то правильно.