World design tutorial
- philippeqc
- Long Poster - Project Developer - Sage
- Posts: 1526
- Joined: Mon Jul 12, 2004 8:55 am
- Location: Stockholm
- Contact:
World design tutorial
Hi,
Now that maps are very close to be a reality, I thought i would be a good teaser for the interested to learn how to write them. And maybe even to start working on a few of your own.
So here is the tutorial on the World format 0.1! As a bonus, I extracted all the maps (3) from the tutorial and put them in a zip file.
I will gladly welcome corrections and pointers to improve it. And if someone translated it from "technobabble" to "creativebabble", I would take absolutly no offenses what so ever. I know I write will all the warm fuzzy feeling of an electricity bill, and the ease of comprehension of a long distance bill. :D
So enjoy, and start posting your maps.
-ph
Edit: added the DTD file.
Guru: could you allow for attachements with extention .txt?
Edit: The attached tutorial is now version 0.2
Edit: Bumped to version 0.3
Edit: Version update of the tutorial and the dtd. Removed the map included in the tutorial, you will need to cut and paste them out as its been a while I've maintained that collection, and I dont get the impression that anyone used it.
Now that maps are very close to be a reality, I thought i would be a good teaser for the interested to learn how to write them. And maybe even to start working on a few of your own.
So here is the tutorial on the World format 0.1! As a bonus, I extracted all the maps (3) from the tutorial and put them in a zip file.
I will gladly welcome corrections and pointers to improve it. And if someone translated it from "technobabble" to "creativebabble", I would take absolutly no offenses what so ever. I know I write will all the warm fuzzy feeling of an electricity bill, and the ease of comprehension of a long distance bill. :D
So enjoy, and start posting your maps.
-ph
Edit: added the DTD file.
Guru: could you allow for attachements with extention .txt?
Edit: The attached tutorial is now version 0.2
Edit: Bumped to version 0.3
Edit: Version update of the tutorial and the dtd. Removed the map included in the tutorial, you will need to cut and paste them out as its been a while I've maintained that collection, and I dont get the impression that anyone used it.
- Attachments
-
- map-dtd.zip
- The DTD's as of Oct 10, 2005
- (1.36 KiB) Downloaded 639 times
-
- Howto-Maps.zip
- The tutorial, as of Oct 10, 2005
- (9.79 KiB) Downloaded 540 times
Last edited by philippeqc on Mon Oct 10, 2005 9:48 pm, edited 3 times in total.
Canis meus id comedit.
- philippeqc
- Long Poster - Project Developer - Sage
- Posts: 1526
- Joined: Mon Jul 12, 2004 8:55 am
- Location: Stockholm
- Contact:
Not really, hence the "teaser" comment. For movies, they often release a teaser way in advance to get your attention, then come the trailers, telling you the whole movie, and later the actual movie.nemostultae wrote:Do the maps work in any version yet, so we can test them?
If you are adventurous, you can find the code in the "Map Format" discussion. It lacks a few sanity check, but is basically the same. Otherwise, you will have to wait about a week.
The tutorial was a bit that was required. But instead of keeping it on my drive till the publication of the final code, I though some of you might enjoy having a glance at what is coming, and try your hands on a few maps even thou you couldn't test them (*). Who will be the first to post a map?
Finally, once you will actually read the document, you will notice the dry and technical writing style that is more of a definition than a tutorial. Posting it early allows me to receive questions and comments about it, and try to address the issues.
A bit of 2 in the morning logic:
Having the parser without the tutorial would be wrost. You could test all you want, but wouldn't know what to test.
-ph
* you can at least validate your map against the DTD!
Canis meus id comedit.
Code: Select all
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE World SYSTEM "format-0.1.dtd">
<World version="0.1">
<Map name="iron cross" version=".5" author="Your_mom">
<Field>
<Axes number="4"/>
<Spawn x="0" y="-5" xdir="0" ydir="-1" />
<Spawn x="0" y="5" xdir="0" ydir="1" />
<Spawn x="-5" y="0" xdir="-1" ydir="0" />
<Spawn x="5" y="0" xdir="1" ydir="0" />
<Spawn x="350" y="50" xdir="0" ydir="-1" />
<Spawn x="350" y="-50" xdir="0" ydir="1" />
<Spawn x="-350" y="50" xdir="0" ydir="-1" />
<Spawn x="-350" y="-50" xdir="0" ydir="1" />
<Spawn x="-50" y="350" xdir="1" ydir="0" />
<Spawn x="50" y="350" xdir="1" ydir="0" />
<Spawn x="-50" y="-350" xdir="-1" ydir="0" />
<Spawn x="50" y="-350" xdir="1" ydir="0" />
<Wall>
<Point x="-400" y="200" />
<Point x="-300" y="200" />
<Point x="-300" y="100" />
<Point x="-100" y="100" />
<Point x="-100" y="300" />
<Point x="-200" y="300" />
<Point x="-200" y="400" />
<Point x="200" y="400" />
<Point x="200" y="300" />
<Point x="100" y="300" />
<Point x="100" y="100" />
<Point x="300" y="100" />
<Point x="300" y="200" />
<Point x="400" y="200" />
<Point x="400" y="-200" />
<Point x="300" y="-200" />
<Point x="300" y="-100" />
<Point x="100" y="-100" />
<Point x="100" y="-300" />
<Point x="200" y="-300" />
<Point x="200" y="-400" />
<Point x="-200" y="-400" />
<Point x="-200" y="-300" />
<Point x="-100" y="-300" />
<Point x="-100" y="-100" />
<Point x="-300" y="-100" />
<Point x="-300" y="-200" />
<Point x="-400" y="-200" />
<Point x="-400" y="200" />
</Wall>
</Field>
</Map>
</World>
- philippeqc
- Long Poster - Project Developer - Sage
- Posts: 1526
- Joined: Mon Jul 12, 2004 8:55 am
- Location: Stockholm
- Contact:
thats sufficient here's 2 more i madephilippeqc wrote:Neato!
Something that nobody will ever be able to steal from you: that you where the first to make a map.is this right, if so what do i win?
Anyone else got one?
-ph
hope zman doesnt mind me stealing spawn points in these two
Code: Select all
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE World SYSTEM "format-0.1.dtd">
<World version="0.1">
<Map name="testname maze" version=".9" author="Your_mom">
<Field>
<Axes number="4"/>
<Spawn x="255" y="50" xdir="0" ydir="1" />
<Spawn x="245" y="450" xdir="0" ydir="-1" />
<Spawn x="50" y="245" xdir="1" ydir="0" />
<Spawn x="450" y="255" xdir="-1" ydir="0" />
<Spawn x="305" y="100" xdir="0" ydir="1" />
<Spawn x="195" y="400" xdir="0" ydir="-1" />
<Spawn x="100" y="195" xdir="1" ydir="0" />
<Spawn x="400" y="305" xdir="-1" ydir="0" />
<Spawn x="205" y="100" xdir="0" ydir="1" />
<Spawn x="295" y="400" xdir="0" ydir="-1" />
<Spawn x="100" y="295" xdir="1" ydir="0" />
<Spawn x="400" y="205" xdir="-1" ydir="0" />
<Wall>
<Point x="100" y="100" />
<Point x="0" y="100" />
<Point x="0" y="400" />
<Point x="100" y="400" />
<Point x="100" y="500" />
<Point x="400" y="500" />
<Point x="400" y="400" />
<Point x="500" y="400" />
<Point x="500" y="100" />
<Point x="400" y="100" />
<Point x="400" y="0" />
<Point x="100" y="0" />
<Point x="100" y="100" />
</Wall>
</Field>
</Map>
</World>
Code: Select all
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE World SYSTEM "format-0.1.dtd">
<World version="0.1">
<Map name="testname repeat" version=".3" author="Your_mom">
<Field>
<Axes number="4"/>
<Spawn x="255" y="50" xdir="0" ydir="1" />
<Spawn x="245" y="450" xdir="0" ydir="-1" />
<Spawn x="50" y="245" xdir="1" ydir="0" />
<Spawn x="450" y="255" xdir="-1" ydir="0" />
<Spawn x="305" y="100" xdir="0" ydir="1" />
<Spawn x="195" y="400" xdir="0" ydir="-1" />
<Spawn x="100" y="195" xdir="1" ydir="0" />
<Spawn x="400" y="305" xdir="-1" ydir="0" />
<Spawn x="205" y="100" xdir="0" ydir="1" />
<Spawn x="295" y="400" xdir="0" ydir="-1" />
<Spawn x="100" y="295" xdir="1" ydir="0" />
<Spawn x="400" y="205" xdir="-1" ydir="0" />
<Wall>
<Point x="0" y="0" />
<Point x="700" y="0" />
<Point x="700" y="700" />
<Point x="0" y="700" />
<Point x="0" y="0" />
</Wall>
<Wall>
<Point x="100" y="300" />
<Point x="100" y="100" />
<Point x="300" y="100" />
</Wall>
<Wall>
<Point x="100" y="400" />
<Point x="100" y="600" />
<Point x="300" y="600" />
</Wall>
<Wall>
<Point x="400" y="600" />
<Point x="600" y="600" />
<Point x="600" y="400" />
</Wall>
<Wall>
<Point x="400" y="100" />
<Point x="600" y="100" />
<Point x="600" y="300" />
</Wall>
<Wall>
<Point x="200" y="300" />
<Point x="200" y="200" />
<Point x="300" y="200" />
</Wall>
<Wall>
<Point x="200" y="400" />
<Point x="200" y="500" />
<Point x="300" y="500" />
</Wall>
<Wall>
<Point x="500" y="400" />
<Point x="500" y="500" />
<Point x="400" y="500" />
</Wall>
<Wall>
<Point x="500" y="300" />
<Point x="500" y="200" />
<Point x="400" y="200" />
</Wall>
</Field>
</Map>
</World>
- philippeqc
- Long Poster - Project Developer - Sage
- Posts: 1526
- Joined: Mon Jul 12, 2004 8:55 am
- Location: Stockholm
- Contact:
"testname maze.xml" and "testname repeat.xml" now exist on my very small collection of AA maps. May I inspire you to change the name of your maps?
testname maze, you seem to be doing a "cross of the world" theme. Have I revealed your plan too early?
testname repeat is quite dissorienting! That is one nice map.
-ph
testname maze, you seem to be doing a "cross of the world" theme. Have I revealed your plan too early?
testname repeat is quite dissorienting! That is one nice map.
-ph
Canis meus id comedit.
- philippeqc
- Long Poster - Project Developer - Sage
- Posts: 1526
- Joined: Mon Jul 12, 2004 8:55 am
- Location: Stockholm
- Contact:
To all, what do you think of the tutorial. Is it helpfull, obscure, something you read to your kids every night, or a good reason to bring back stoning? A bit of input would be appreciated.
To Your_Mom and nemostultae(*), who are now hard at work making worderous maps, how did it help you? Which part are hard to understand, and which are ok?
To all again: Try to post your maps as attached files. I'm hard at work on a downloader. Attaching your fine work will make it possible for the game to download it. Now I know that the forum refuses you to post some xml files, but I think the following trick will work:
Rename your file, lets say "SuperDuperExtraordinaryMap.xml", to "SuperDuperExtraordinaryMap.xml.is.not.a.zip" or the slightly shorter "SuperDuperExtraordinaryMap.xml.not.zip". This will fool the forum into accepting it, and serve as the base for the clients to download it.
-ph
*You dont have to work so hard around the limitations of that format. Keep some of your finers ideas for later version of the format, and allow us to appreciate the product of your hard work today!
To Your_Mom and nemostultae(*), who are now hard at work making worderous maps, how did it help you? Which part are hard to understand, and which are ok?
To all again: Try to post your maps as attached files. I'm hard at work on a downloader. Attaching your fine work will make it possible for the game to download it. Now I know that the forum refuses you to post some xml files, but I think the following trick will work:
Rename your file, lets say "SuperDuperExtraordinaryMap.xml", to "SuperDuperExtraordinaryMap.xml.is.not.a.zip" or the slightly shorter "SuperDuperExtraordinaryMap.xml.not.zip". This will fool the forum into accepting it, and serve as the base for the clients to download it.
-ph
*You dont have to work so hard around the limitations of that format. Keep some of your finers ideas for later version of the format, and allow us to appreciate the product of your hard work today!
Last edited by philippeqc on Sun Apr 10, 2005 5:38 pm, edited 1 time in total.
Canis meus id comedit.
i think your giving me too much creditphilippeqc wrote:To Your_Mom and nemostultae(*), who are now hard at work making worderous maps, how did it help you? Which part are hard to understand, and which are ok?
the point systems pretty easy to understand you didnt explain the spawn direction stuff very well but most of it was pretty self explanatory if you just look at it. im still kinda confused about the whole multiple (false with custom) axis thing ... but seeing how its optional i just kinda worked around it.
---going to test uploading a map i already posted with that whole .not.zip
tell me if i did it right or wrong
edit -
i couldnt think of good names sooo...maze is the one i would probobly change ... couldnt think of a name for the testname maze map wanna give me some you came up with?...and just take testname off of the repeat map when i give it new spawn points, thats why its version number is so low...May I inspire you to change the name of your maps?
- Attachments
-
- repeatpackagingtest.xml.not.zip
- (2.07 KiB) Downloaded 777 times
- philippeqc
- Long Poster - Project Developer - Sage
- Posts: 1526
- Joined: Mon Jul 12, 2004 8:55 am
- Location: Stockholm
- Contact:
just the dtd and Hexatron map again, on the forum, for me to test the parser code. Sorry!
-ph
Edit: Oups, wrong map. Made one too many test on it.
-ph
Edit: Oups, wrong map. Made one too many test on it.
- Attachments
-
- HexaTRON.xml.not.zip
- The HexaTRON map
- (2.47 KiB) Downloaded 637 times
-
- format-0.1.dtd.not.zip
- The required dtd
- (976 Bytes) Downloaded 776 times
Canis meus id comedit.
- philippeqc
- Long Poster - Project Developer - Sage
- Posts: 1526
- Joined: Mon Jul 12, 2004 8:55 am
- Location: Stockholm
- Contact:
why not "repeat.xml" as file name, "Repeat" in the xml file.Your_mom wrote:i couldnt think of good names sooo...maze is the one i would probobly change ... couldnt think of a name for the testname maze map wanna give me some you came up with?...and just take testname off of the repeat map when i give it new spawn points, thats why its version number is so low...May I inspire you to change the name of your maps?
:) Rule of thumb, always spend an extra 30 seconds and think about the name you put.You never know when someone will decide to, for example, hardcode the link to your map beside the link to the HexaTRON map in their code to show people that their map parser works ;)
-ph
Canis meus id comedit.
well this time i thought about naming it a little bit more, i like the name i came up with. If you look at what the map is you might understand why. I couldnt figure out what to call it so i googled octagon and found its dutch counter part (or so i think) achthoek. Then i figured i would combine it with 'in' (inside). inachthoek sounded wierd to me so i decided to follow in american history and just butcher the dutch part(word) to sound/be more english, and so inachthoek became inaktek, yeah thats how i came up with it. Theres actually 4 octagons inside making a cross design in the center of a larger octagon. packaged it up and everything
- Attachments
-
- inaktek.xml.not.zip
- (2.66 KiB) Downloaded 676 times
-
- Dr Z Level
- Posts: 2246
- Joined: Sun Mar 20, 2005 4:03 pm
- Location: IM: luke@dashjr.org
Interesting... the AIs (as usual) can't handle it, though...Your_mom wrote:well this time i thought about naming it a little bit more, i like the name i came up with. If you look at what the map is you might understand why. I couldnt figure out what to call it so i googled octagon and found its dutch counter part (or so i think) achthoek. Then i figured i would combine it with 'in' (inside). inachthoek sounded wierd to me so i decided to follow in american history and just butcher the dutch part(word) to sound/be more english, and so inachthoek became inaktek, yeah thats how i came up with it. Theres actually 4 octagons inside making a cross design in the center of a larger octagon. packaged it up and everything
I mirrored repeat.xml and inaktek.xml in my maps folder.
-
- Dr Z Level
- Posts: 2246
- Joined: Sun Mar 20, 2005 4:03 pm
- Location: IM: luke@dashjr.org
Circle/40-gon
Made an arena "40-gon" (or rather, I wrote a program to make it
Official server info:
MAP_FILE http://utopios.org/~luke-jr/programs/he ... 40-gon.xml
MAP_UUID 43691273e6ff0d08798e9ae19197c4cf
Screenshots attached
Official server info:
MAP_FILE http://utopios.org/~luke-jr/programs/he ... 40-gon.xml
MAP_UUID 43691273e6ff0d08798e9ae19197c4cf
Screenshots attached
Ok philipp need some help was wondering if this would creat the effect i depicted in the attached picture. Im unsure if i put the <connector> where it should go or if i even did it right.
Code: Select all
<Wall label="west">
<Point x="0" y="0" walled=false/> <-- From this point to the next, no wall is visible. -->
<Point x="0" y="100" />
</Wall>
<Wall label="east">
<Point x="100" y="0" walled=false/> <-- From this point to the next, no wall is visible. -->
<Point x="100" y="100" />
</Wall>
<connectors>
<connector first="west" second="east" crossed="true"/>
</connectors>
- Attachments
-
- s = spawn/start
- umm x1.JPG (5.94 KiB) Viewed 13215 times