Necesita usar la serialización para guardar sus variables en la memoria de su disco duro. Hay muchos tipos de serialización, en .NET XML es un formato común, aunque hay serializadores binarios y JSON disponibles. No soy un gran programador de C ++, pero una búsqueda rápida arrojó un ejemplo de serialización en C ++:
Hay bibliotecas que ofrecen funcionalidades de serialización. Algunos se mencionan en otras respuestas.
Las variables que le interesarán probablemente estarán relacionadas con el estado del juego. Por ejemplo, probablemente querrá saber este tipo de información
- El jugador estaba jugando nivel 3
- El jugador estaba en las coordenadas mundiales X, Y
- El jugador tiene tres artículos en su mochila.
- Arma
- Armadura
- Comida
Realmente no le importará qué texturas se están utilizando (a menos que su jugador pueda cambiar su apariencia, ese es un caso especial), porque generalmente son las mismas. Debes concentrarte en guardar datos importantes del estado del juego.
Cuando comienzas tu juego, comienzas normalmente para un "nuevo" juego (esto carga tus texturas, modelos, etc.) pero en el momento apropiado cargas los valores de tu archivo guardado de nuevo en el objeto de estado del juego reemplazando el nuevo "predeterminado" estado del juego Luego permites que el jugador continúe jugando.
Lo he simplificado enormemente aquí, pero debes tener una idea general. Si tiene una pregunta más específica, haga una nueva pregunta aquí y podemos intentar ayudarlo.