Difference between revisions of "Creating a game save"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Created page with "After trying to save the game in mid play, i have essentially discovered it is difficult if not impossible to save the game mid play. ==Tower / Racing Game== For a Tower Defe...")
 
(RPG / Platform Game)
Line 32: Line 32:
 
==RPG / Platform Game==
 
==RPG / Platform Game==
 
For an RPG or Platformer we can focus on saving the player position in the game, and recording the game events in order to reprocess to a similar state. This will require you to  think carefully about what your game will need to be able to save its current position. For example a list of the items collected, a list of the enemies killed, a list of completed challenges, and also the standard information such as player position, score etc.
 
For an RPG or Platformer we can focus on saving the player position in the game, and recording the game events in order to reprocess to a similar state. This will require you to  think carefully about what your game will need to be able to save its current position. For example a list of the items collected, a list of the enemies killed, a list of completed challenges, and also the standard information such as player position, score etc.
 +
 +
This example is the constructor of the GameSave class i created.
 +
 +
<syntaxhighlight lang=c#>
 +
        public GameSave(Vector2 pos)
 +
        {
 +
            data.name = "test";
 +
           
 +
            data.x = (int)pos.X;
 +
            data.y = (int)pos.Y;
 +
            Stream streamwrite = File.Create("mygame.bin");
 +
            BinaryFormatter binarywrite = new BinaryFormatter();
 +
            binarywrite.Serialize(streamwrite, data);
 +
            streamwrite.Close();
 +
        }
 +
</syntaxhighlight>

Revision as of 14:49, 21 January 2018

After trying to save the game in mid play, i have essentially discovered it is difficult if not impossible to save the game mid play.

Tower / Racing Game

For a Tower Defence game, or racing game you will only need to record the data about the game such as score, lives, credits, level etc.

You could create a struct for a GameSave:

public struct GameSave
{
    public string SaveName;
    public int Score;
    public int Lives;
    public int Credits;
    public int Level;
}

We can create a variable based on this struct:

public GameSave gameData;

This method will use serialization so we need to add the following into the using section at the top of your Game1.cs:

using System.IO;
using System.Xml.Serialization;

RPG / Platform Game

For an RPG or Platformer we can focus on saving the player position in the game, and recording the game events in order to reprocess to a similar state. This will require you to think carefully about what your game will need to be able to save its current position. For example a list of the items collected, a list of the enemies killed, a list of completed challenges, and also the standard information such as player position, score etc.

This example is the constructor of the GameSave class i created.

        public GameSave(Vector2 pos)
        {
            data.name = "test";
            
            data.x = (int)pos.X;
            data.y = (int)pos.Y;
            Stream streamwrite = File.Create("mygame.bin");
            BinaryFormatter binarywrite = new BinaryFormatter();
            binarywrite.Serialize(streamwrite, data);
            streamwrite.Close();
        }