AceofSpades
Joined: 05 Sep 2007 Posts: 13 Location: West Sussex, UK
|
Posted: Tue Nov 06, 2007 4:07 pm Post subject: Data storage |
|
|
Here's what I had in mind for how all game data will be stored.
I thought it would be good to get some feedback on this idea, if
anyone's aware of any of the pro's or con's of doing it this way.
By game data, I mean things like: Images, Tile Headers, Maps,
Characters and stats, scripts, Monster stats etc.
At the moment (with the way BattleEdit works) multiple sprites are drawn
on a single png image which usually has dimesions (512 x 512), but can
also be (1024 x 1024) etc. Information about which portions of these
images make the various sprites is then stored in a single xml file:
TileData.xml.
Since xml is stored as plain text (I'm also leaning towards storing the
map and script data in plain text), we need a way of making it less
accessible to the average person that will be playing this game.
Obviously we wouldn't want someone to be able to cheat by simply editing
TileData.xml in notepad. (for example, they could change a setting
for a particular wall tile that would let them walk right through it)
So I figured it would be best to store all game data in a resource file.
(.dll) that way, it would still be easilly accessible through the code, and
wouldn't make developing this game more cumbersome than necessary.
On the other hand, this would just make life harder for the artists, since
the entire game would have to be recompiled by one of the developers
(with all the new resource files linked in); each time they want to test a
new sprite.
So I figured I'd allow the engine to be run with a parameter:
i.e. : Battlestone.exe will cause the game to run as normal, and the
embeded resources to be used, but calling Battlestone.exe -dev will
cause the game to look for external files to use for it's data, instead of it's
embeded resources. This way , if testers run Battlestone.exe -dev
it will easily allow them to change the contents of images and game data,
to get it working exactly the way they want before it's all compiled into
the final release.
These are my thoughts, but let me know if any of you guys have any
better ideas of how this could be done. |
|