Por el momento, tengo un sistema en el lugar donde grabo un estado de gamepad en una estructura y lo almaceno en una lista de estados para registrar la entrada durante la duración de un videojuego. El estado completo de la plataforma ocupa 192 bits por cuadro, pero esto es un poco derrochador. Por ejemplo, si los desencadenantes analógicos en el pad no están siendo presionados, aún toman 32 bits arriba, cada uno, en el almacenamiento. Así que, obviamente, estoy buscando ahorrar algo de espacio.Una manera de evitar perder memoria
He intentado establecer esto en NULO pero parece no tener ningún efecto en el tamaño del archivo binario que el sistema guarda al final de la coincidencia.
¿Qué alternativas hay disponibles en una situación en la que solo necesita registrar o guardar ciertos valores, pero conserva la integridad de una estructura de datos?
EDIT:
creo que he encontrado una solución; de tipo. Anteriormente traté de establecer valores en NULL anulando el flotante estándar con System.Nullable en la estructura. Mi idea es que establecer esto en un valor NULL en la estructura se serializará mucho más pequeño. Tengo la impresión de que NULL está registrado como 4bits. Puede ser más, probablemente lo sea. De todos modos, el código que tenía antes tenía una falla bastante obvia, así que volví y lo arreglé de nuevo. Ahora estoy haciendo repeticiones mucho más pequeñas y la precisión parece ser igual de buena, así que voy a suponer que el truco NULL está haciendo algo correctamente.
El problema que tuve al escribir periódicamente es que estoy guardando un archivo binario. Puedo usar el modo Agregar para escribir en el archivo pero no se reproduce correctamente; se detiene en el punto en el que se produce la primera escritura y no reproduce nada después de eso. Además, descubrí que el archivo adjunto era enorme. Esto sigue siendo un trabajo en progreso; Estoy tratando de resolver los problemas de uno en uno. –
Algo así como la funcionalidad de reproducción es un trabajo tedioso, porque los errores más leves ensucian todo lo demás. Si tiene problemas con la transmisión y está escribiendo cosas en el disco, intercalando la secuencia de datos con los metadatos y la información de depuración, será de gran ayuda para detectar problemas. Si estás muy ansioso acerca de lo que pones en esa transmisión, la cantidad de datos se acumulará muy rápido, es de 60 FPS pero, ¿también necesitas ejecutar el bucle de entrada del juego a esa velocidad? A menudo, un enfoque de entrada amortiguado con una frecuencia más baja produce tan buenos resultados pero a un costo menor. –
El sistema que estoy haciendo en este momento es en realidad una prueba de concepto que estoy preparando para mi Disertación. El método de grabación que tengo en el momento funciona bien, pero obviamente hay mejoras que podrían hacerse y discutirse sobre el tema. Desafortunadamente, la grabación de entrada para las repeticiones, al menos desde el punto de vista del juego, son pocas y distantes, y lo que he descubierto ha sido bastante vago, así que he estado apuñalando salvajemente en la oscuridad. Echaré un vistazo reduciendo la velocidad de la actualización del juego; gracias por la idea –