Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (416)
games submitted by our members
Games in WIP (307)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Saving and Loading Game State  (Read 1400 times)
0 Members and 1 Guest are viewing this topic.
Offline DeX

Senior Newbie




Java games rock!


« Posted 2005-12-25 14:35:39 »

Howdy guys,

I was wondering if anyone can give me some tips about how to create a decent method for saving and loading the sate of my game. I thought about making all the classes in the game implement the Serializable interface and then output all of the objects to a file. However, some of my objects have properties such as their material which cannot be serialized. The properties I want to store are things like the position, velocity and orientation of all the objects in the game as well as a few game properties such as the players' scores. Somehow I need to store all of these properties into a single object and also be able to restore all the properties when loading the game. What solutions to this problem are there?
Offline Jeff

JGO Coder




Got any cats?


« Reply #1 - Posted 2005-12-26 05:47:51 »

Howdy guys,

I was wondering if anyone can give me some tips about how to create a decent method for saving and loading the sate of my game. I thought about making all the classes in the game implement the Serializable interface and then output all of the objects to a file.

No no no bad bad bad. This kind of midless Serialization leads to performance disasters on load and save.

Serialization *can* be useful but you need to think carefully about what you really want to save and only Serialize that.

Quote
The properties I want to store are things like the position, velocity and orientation of all the objects in the game as well as a few game properties such as the players' scores. Somehow I need to store all of these properties into a single object and also be able to restore all the properties when loading the game. What solutions to this problem are there?


Either well  isolate just those thinsg in small number of seperate classes and use Transient to make absolutely sure you arent pulling in otther refernced objects and their data OR just open a DataOutputStream aroudna  FileOutputStream for writing it out and a DataInputStream around a FIleInput Stream for reading abck and write logic to ull the values out/create obejcta s necessary when reading back.

TANSTAAFL

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Offline DeX

Senior Newbie




Java games rock!


« Reply #2 - Posted 2005-12-29 16:09:53 »

Ok, well I got over my problem by making the things I didn't need to save transient. Still l don't know if that's the best way to do it. I still have to load up the correct materials and textures when I load the game state. Still I can't think of any other way short of making seperate classes for each object that hold all the info I need to save.

Anyway still open to more suggestions...
Games published by our own members! Check 'em out!
Play the free demo of Revenge of the Titans!
Offline Breakfast

Senior Member




for great justice!


« Reply #3 - Posted 2005-12-29 20:19:10 »

Here's a simple one: whatever you're saving, start out by saving it in a human-readable way. You can always hide it later, but it can make your life a lot easier when you're testing your save and load stuff if you can actually read the saved files.
Offline Jeff

JGO Coder




Got any cats?


« Reply #4 - Posted 2005-12-30 00:15:52 »

Ok, well I got over my problem by making the things I didn't need to save transient. Still l don't know if that's the best way to do it.
Best way? probably not.  Its likely to be both bigger and slower then a properly thought out save,
OTOH its probably the least work so i its good enough, then its good enough.

But Im not sure why you are saving model properties (materails and textures) or any 3D data actually,  aren't those already part of the model files you load to start the game??


Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!

http://wiki.java.net/bin/view/Games/JeffFAQ
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Browse for soundtracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
mrbenebob (21 views)
2013-06-19 14:55:23

BrassApparatus (31 views)
2013-06-19 08:52:37

NegativeZero (35 views)
2013-06-19 03:31:52

NegativeZero (36 views)
2013-06-19 03:24:09

Jesse_Attard (41 views)
2013-06-18 22:03:02

HeroesGraveDev (77 views)
2013-06-15 23:35:23

Vermeer (79 views)
2013-06-14 20:08:06

davedes (79 views)
2013-06-14 16:03:55

alaslipknot (71 views)
2013-06-13 07:56:31

Roquen (93 views)
2013-06-12 04:12:32
Smoothing Algorithm Question
by UprightPath
2013-05-28 02:58:26

Smoothing Algorithm Question
by UprightPath
2013-05-28 02:57:33

Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!