Best way to store data for your game? (Images, maps, and such)

前端 未结 3 1591
太阳男子
太阳男子 2020-12-18 06:58

I\'m creating a basic 2D game (well a game engine) and I\'ve currently been developing the file formats for my data. Of course, for this game to run, I will need cache. I fi

相关标签:
3条回答
  • 2020-12-18 07:32

    You can store any object as .dat file:

    public class MyGame implements Serializable 
    { 
        private static void saveGame(ObjectType YourObject, String filePath) throws IOException 
        { 
            ObjectOutputStream outputStream = null; 
            try 
            { 
                outputStream = new ObjectOutputStream(new FileOutputStream(filePath)); 
                outputStream.writeObject(YourObject); 
            } 
            catch(FileNotFoundException ex) 
            { 
                ex.printStackTrace(); 
            } 
            catch(IOException ex) 
            { 
                ex.printStackTrace(); 
            } 
            finally 
            { 
                try 
                { 
                    if(outputStream != null) 
                    { 
                        outputStream.flush(); 
                        outputStream.close(); 
                    } 
                } 
                catch(IOException ex) 
                { 
                    ex.printStackTrace(); 
                } 
            } 
        } 
    
        public static ObjectType loadGame(String filePath) throws IOException 
        { 
            try 
            { 
                FileInputStream fileIn = new FileInputStream(filePath); 
                ObjectInputStream in = new ObjectInputStream(fileIn); 
                return (ObjectType) in.readObject(); 
            } 
            catch(FileNotFoundException ex) 
            { 
                ex.printStackTrace(); 
            } 
            catch(IOException ex) 
            { 
                ex.printStackTrace(); 
            } 
        } 
    }
    
    0 讨论(0)
  • 2020-12-18 07:37

    For pragmatic reasons, I would recommend using multiple files but putting them all in a subdirectory in temp.

    But if part of your learning exercise is related to this topic, here are my suggestions:

    First, stay away from any format like ZIP, where there is a heavy penalty for deleting, updating, adding, jumping. Even with the index files of a JAR, they are poor for anything other than compression.

    So you can read up on file systems. Essentially, you are writing a file system where the 'disk' is just a binary file. That should give you a high level idea of allocation tables, etc. In order to implement such a design, you need read/write access to the underlying file; look at java.io.RandomAccessFile

    Finally, if you are willing to use Java7, you can play with the new filesystem SPIs.

    0 讨论(0)
  • 2020-12-18 07:44

    I don't think that zip is the wrong way. It is a rather good way. Just put everything in a jar-File. You will even be able to use a classloader to load it.

    0 讨论(0)
提交回复
热议问题