Usually you define a set of data that constitutes the saved state of the game.
You serialize that data and write it to disk, and read it back on load.
Beyond that, for N different save game slots, it’s just N different instances of that data written to disk.
Load/Save steps:
Don’t use the binary formatter/serializer: it is insecure, it cannot be made secure, and it makes debugging very difficult, plus it actually will NOT prevent people from modifying your save data on their computers.