Skip to main content
GameDev.net gamedev.net
🔒 Locked

Storing Maps

Started by apatequil Jul 13, 2004 at 12:08 PM 15 replies 2.8k views
Original Post
apatequil
apatequil
Hi All, I'm creating a 2d zelda-esque game and am currently deciding on how to store the map. I've decided that I'm going to use a layered approach (a layer for background, bounding box, objects, etc..). This is all fine and dandy, but I'm starting to get worried about the size of the map files. For a 20x20 tile map with only 2 objects, the size of the file is around 150k. Keep in mind that this is before switching to the layered approach, which equates to the map file being about 3 times that of what it is now. Currently I'm using xml to store the data but I'm thinking that might not be the best approach. Would storing the data in binary (or some other language along the lines of xml) be a better approach? Right now I have visions of maps being > 1mB and it seems like that's awfully high for a zelda type game. And these sizes don't include the actual bitmaps or sounds or anything. Just the data describing the layout and positioning of things on the map. Is this a valid concern, or am I just worrying over nothing. Thanks in advance for any suggestions given.
"Flies are born the size they are" -- Undisclosed Person
rKallmeyer
rKallmeyer
what kind of data are you storing in the maps? you could probably cut your size down alot if you are using more then you need.

example: switch
int data[width][height] to
char data[width][height]

as long as you dont need the extra space (can't immagine you would for a zelda-esk game)
Kentaro
Kentaro
What do you mean by using XML to load maps? You mean that you write your maps in XML and then parse the XML and use it to build the map?

If so then yes, you seem to be using an extremely inefficient approach. After all, look at all the characters you have to write to specify the structure of the file... those all take up space! A custom binary file format would cut back on the amount of space you have to use to represent your maps (because you store only what you absolutely need) but you may have to create a map editor for that format as well (as writing your maps in a text editor would be out of the question with a custom binary file format). It's a lot more work than using something easy to write and parse like XML but I think it will cut back on your space requirements quite a lot.

Unfortunately, all of this is just an educated guess on my part and doesn't come from solid experience. Anyone who has created a game like this care to comment?

EDIT: Snipped out a paragraph that was kinda wrong...
Over the centuries, mankind has tried many ways of combating the forces of evil...prayer,fasting, good works and so on. Up until Doom, no one seemed to have thought about thedouble-barrel shotgun. Eat leaden death, demon... -- Terry Pratchett
rKallmeyer
rKallmeyer
I used simple io functions to load and save zelda like maps. Very little space 400 - 600 bytes and very readable from the windows text editor.

Let me know if you would like some code examples.
void*
void*
Although 150k-500k is still not very large, and nothing to worry about for the time being, you may want to ask yourself if the maps really need to be stored in XML. (Presumably that is what this post is, right?)

I'm not putting XML down in any way, here... I use it myself for storing and reading configuration files (screen resolution, audio settings, etc.) when I intend to edit them by hand sometimes.

And that is probably the best (and maybe only) reason to use XML in a game -- it is hand-editable. So before you go too much farther and start relying on XML for your game maps, ask yourself if you will be editing the maps by hand anymore, or if they will be easier generated with a utility such as a map editor.

If you've gotten to the point already where your maps are being generated by a program you wrote, it might be time to move to a binary format, since it will save a tremendous amount of space. If you think there is still a benefit to reading and editing the map files without using an editor built for that task, then the price of that convenience is the larger file size.

Another option, since you already have the ability to write your maps to an XML format, is to code up a binary storage format and keep the ability to translate it into XML in case you want to read the files without the editor. It might help in debugging your map editor somewhere down the line.

If you're not generating the files programmatically, you can still create your own file format that is plain-text but takes up much less space than XML.
Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp."
apatequil
apatequil
Thanks for the quick responses. You guys are correct in assuming that I'm storing the data in xml. This was just because it was easier to edit by hand. I've since created a simple map editor and right now it is exporting to xml. I think i will change this around so that it stores in binary by default and can be exported to xml for testing (as was suggested). As for storing more information that I need to, I probably am. I wanted to make this something that can grow over time so I tried throwing in everything I could think of. I was mainly curious whether or not using a structured language such as xml was good for this type of work and have my answer now. Binary it is. I will still using xml for the config files, but not for the map as well. Thanks so much for the replies.

Sean
"Flies are born the size they are" -- Undisclosed Person
Fingers_
Fingers_
A tilemap in human-readable text format shouldn't take a lot of space... At its simplest it'd be just a block of text where each line equals one row of tiles (one character per tile). In XML you'd use tags in the beginning and end of the data block so your program knows where the map starts and ends.
apatequil
apatequil
hear is an older version of a map that wasn't complete(didn't do layers or anything). I'm sure I'm including information I don't need, but just so you can see what I'm talking about:

<map name="Midgard" width="20" height="20" numObjects="2" startX="0" startY="0">	<tile x="0" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="1" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="2" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="3" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="4" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="5" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="6" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="7" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="8" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="9" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="10" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="11" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="12" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="13" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="14" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="15" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="16" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="17" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="18" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="19" y="0" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassLight.gif" />	<tile x="0" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="1" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="2" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="3" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="4" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="5" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="6" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="7" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="8" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="9" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="10" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="11" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="12" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="13" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="14" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="15" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="16" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="17" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="18" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="19" y="1" solid="false" speedPenalty="0" rotation="2" onEnter="none" onExit="none" img="tileSets//default//grassLightDarkTransition.gif" />	<tile x="0" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="2" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="3" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="4" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="5" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="6" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="7" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="8" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="9" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="10" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="11" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="12" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="13" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="14" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="15" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="16" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="17" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="18" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="0" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="1" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="2" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="3" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="4" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="5" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="6" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="7" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="8" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="9" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="10" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="11" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="12" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="13" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="14" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="15" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="16" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="17" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="18" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<tile x="19" y="19" solid="false" speedPenalty="0" rotation="0" onEnter="none" onExit="none" img="tileSets//default//grassDark.gif" />	<object type="5" x="128" y="0" isVisible="true" canInteract="false" destructable="false" onInteract="load: ..//maps//dungeon.xml" onAttack="none" onDestroy="none" img="objectSets//misc//headStone.gif" />	<object type="5" x="64" y="32" isVisible="true" canInteract="false" destructable="false" onInteract="dialog: ..//objects//npc//billy_diagNorm.xml" onAttack="billy_diagAtt.xml" onDestroy="none" img="objectSets//misc/cross.gif" /></map>
"Flies are born the size they are" -- Undisclosed Person
graveyard filla
graveyard filla
i dont see the point in using XML for a map file, unless of course you dont have a map editor. in which case, you need a map editor anyway. once you have a map editor, you dont need the map files to be human readable, so you can throw out XML and use a regular txt file, in binary format even. this will save loading times and map file sizes. so make a map editor, cuz youll need one anyway
FTA, my 2D futuristic action MMORPG
Nice Coder
Nice Coder
You could always compresss the XML, because it compresses down VERY well, look at your level format, now how small would it compress down to?
Something to look at

You should do well,
DENC
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
Jiia
Jiia
I think RLE would cut that map down to about 150 bytes. Still, as graveyard suggests, you need a different format. A visual format. There are MANY free 2D tile map editors out there, if your maps do not need specific structuring (obviously they don't, or you wouldn't be using a text generating program). They are pretty easy to make; you can just about copy & paste your game code, and add mouse support.

Just my 2 cents..
Nice Coder
Nice Coder
Na... no need to change your load code now is there?

Go and find a nice command-line decompression program

Say you need to load map 100.xml

system it to deccompress the map file (like system("UNZIP C:\GAME\MAPS\MAP100.ZIP"))

Then acess it normally,
You could even inline it if you wanted to.
Click here to patch the mozilla IDN exploit, or click Here then type in Network.enableidn and set its value to false. Restart the browser for the patches to work.
apatequil
apatequil
I've already built an editor. I think i'm just going to leave the xml reading/writing in there but also add binary input/output. That should reduce the filesize dramatically. Thanks again for all of the input.
"Flies are born the size they are" -- Undisclosed Person
doynax
doynax
You should consider using some kind of tileset too, eg. a file that describes a set of predefined tile attributes. So all you need to store in the map are indexes into this set. At a word per index this should reduce the size from 150 kB to 800 bytes, and with some rle compression you could probably save a few hundred bytes more.
It'll also be a lot easier to manage the graphics if you combine multiple tiles into a single sprite sheet.

Somehow the original Zelda, at 128 kB, managed to store a lot more 20x20 tiles. I have a nagging suspicion that it didn't use XML..
NQ
NQ

Yeah, you BETTER use a tileset. Something that stores the fects about each tile type, and everything else you need to store as a mapfile is the ID-number of that tiletype, and where it is on the map.
I made a zelda-esque game once, in pascal, and i remember my fancy leveleditor that automatically generated a random map of 2000 X 2000 tiles. Complete with cities, forests and 7000 creatures and everything.

The BINARY file ended at about one megabyte.

Let that be a hint about what I think you should do. *smile*
----------------------~NQ - semi-pro graphical artist and hobbyist programmer
smr
smr
The last post was mine. I had some problems registering and couldn't wait any longer to post ...

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.