My problem is storing game data, I'm not talking about saving game state or maps or anything(I usually save those as text, eg. using one line for each tile on a map, with tile attributes seperated by a delimiter, is that a good approach? I suppose I'd encrypt it or something too if it was a serious game) but about things like different enemy or projectile types. Usually when I write a game I'll have for instance an enemy class and a projectile class, and each different type of projectile/enemy will be represented by the same class but with different default values. Next time I'm also planning on having some types represented by a subclass of Enemy or Projectile next time so I can write unique code for the different kinds of things(eg override the Enemy classes attack() function to do some unique attack logic). I'd also like to ask here if that is a good way of handling these things.
Anyway, on to the title question, I'm stumped trying to figure out a good way to store information about all my different enemy/projectile types. If I use the implementation I described above for their classes, then I just need to save all the values for the different arguments I need to pass to the classes constructor(usually things like maxHealth, spriteRef(I use string refs for graphics, which are all stored in a hashmap mapping the string to the image used for drawing, good/bad?), etc).
One method I'm considering is having an XML file for all enemies and having each individual enemy as an element, or maybe having a unique XML file for each enemy. Then finding an appropriate way to load/unload them into memory, probably by storing the enemies used in each level in its level file then loading them into memory as part of the level loading process, idk what I'd do for something like projectiles though as any of them could be used in any level in some of my games, I suppose I could load them all into memory for this project because it's a desktop game, but what about future games on android, won't that be a bit to much for a phones limited memory? How do you handle storing and loading this type of unchanging information for your games?
Sorry for all the subquestions and the general confusion of my post, it reflects my confusion on the topic. Obviously I'm a beginner and I'm frustrated by knowing there is probably a nice, clean, and robust way of doing these things but being unable to figure it out. I think I'm gonna start reading other peoples code to get an idea of how they handle things in general, where is a good place to do this? are there any sites where I can find source code to read along with code reviews so I can get other peoples critiques of the code? I really appreciate it if you took the time to read through this mess of a post and especially if you post a reply that furthers my understanding
oh and btw the game im planning on making is a space shooter, a much more advanced very distant cousin of asteroids, and it will be written in java
Edited by Moe091, 25 November 2012 - 12:36 AM.