El modo de configurar las funciones de guardado y carga en un juego varía en función de su complejidad. Unreal Engine es compatible con la serialización para gestionar el guardado y la carga. Existe una clase de objeto en Unreal Engine llamada SaveGame, que se puede derivar en blueprint o C++ y funciona para guardar variables simples. Si el juego necesita un comportamiento de guardado y carga más elaborado, consulta esta charla acerca de prácticas recomendadas y técnicas de serialización. Si quieres escribir ajustes configurables por el usuario, utiliza la clase de utilidad UGameUserSettings.
UParrotGameUserSettings en Parrot deriva de UGameUserSettings. Esto guarda y carga los ajustes configurables de jugador que necesita Parrot.
Ejemplo de ajustes de audio
En Parrot, el jugador puede configurar ajustes de audio. Parrot guarda los siguientes valores de float:
Volumen principal
Volumen de la música
Volumen de los efectos
Asegúrate de que el proyecto esté utilizando la clase correcta de configuración del usuario para el juego. Esto se puede configurar en Editar > Configuración del proyecto > Motor - Configuración general, cambiando el campo Clase de ajustes de usuario del juego a ParrotGameUserSettings.
A continuación, proyecta los ajustes de usuario al tipo UParrotGameSettings y llama a la función de guardado. Esto se puede ver en UParrotAudioSubsystem, que se explica en la sección Implementación de motor de audio en Parrot.
Otra función muy útil de utilizar una clase derivada UGameUserSettings es que la deserialización no es un problema. Los ajustes de usuario se leen y aplican automáticamente cuando se inicia el juego.