Difference between revisions of "Making Maps for Beginners"

From Armagetron
(5 intermediate revisions by 5 users not shown)
Line 10: Line 10:
 
#[http://www.context.cx/  ConText (Windows)]
 
#[http://www.context.cx/  ConText (Windows)]
 
#[http://www.vim.org/  Vim (many operating systems)]
 
#[http://www.vim.org/  Vim (many operating systems)]
 +
#[http://www.editpadpro.com/ EditPad Pro (Windows]
  
 
===Optional Items===
 
===Optional Items===
You also may want [http://www.armagetron.de/armabell.html Armabell] but it is very buggy. You can design the map on [http://www.armagetron.de/armabell.html Armabell], but you will still need a text editor.
+
You also may want [http://mixnetwork.de/download/ArmaBell.zip Armabell] but it is very buggy. You can design the map on [http://mixnetwork.de/download/ArmaBell.zip Armabell], but you will still need a text editor.
  
 
Also you will need to read [http://armagetron.de/league.html here] to set up [http://www.armagetron.de/armabell.html Armabell]
 
Also you will need to read [http://armagetron.de/league.html here] to set up [http://www.armagetron.de/armabell.html Armabell]
  
Also for ellipses and circles i use [http://generalconsumption.org/armagetron/ General Consumption]. You can also preview your maps there.
+
Also for ellipses and circles i use [http://wrtlprnft.ath.cx/ellipse.php Wrtl's site]. You can also preview your maps [http://crazy-tronners.com/maptools.php here].
  
Another thing that you may need is something to find intersection points this is a JAVA Applet that prints out the intersection in map code format [http://wiki.crazy-tronners.com/Intersection.html]
+
Another thing that you may need is something to find intersection points this is a JAVA Applet that prints out the intersection in map code format [http://crazy-tronners.com/wiki/Intersection.html]
  
 
If you get stuck at any point you can E-mail Kyle at [mailto:armagetronMapMaking@gmail.com]
 
If you get stuck at any point you can E-mail Kyle at [mailto:armagetronMapMaking@gmail.com]
Line 31: Line 32:
 
  category="fortress">
 
  category="fortress">
 
   <Map version="0.2.8">
 
   <Map version="0.2.8">
  <Settings>
+
  <Settings>
  &#60;!--Your field setting goes here-->
+
    &#60;!--Your field setting goes here-->
  </Settings>
+
  </Settings>
 
   <World>
 
   <World>
 
     <Field>
 
     <Field>
Line 76: Line 77:
 
for this one it would be
 
for this one it would be
 
     name-0.0.0.aamap.xml
 
     name-0.0.0.aamap.xml
 +
 +
This next example is a visual representation of the resource tag. Notice how it says something very specific about where the map is located and what it is named. This convention must be followed exactly.
 +
 +
[[Image:RecourseTagExplained.png]]
  
 
===What do I need in my map===
 
===What do I need in my map===
Line 143: Line 148:
 
NOTE:If you want a square (four sided shape) you must specify 5 wall points. If you want a 6-sided shape, then you must specify 7 wall points.
 
NOTE:If you want a square (four sided shape) you must specify 5 wall points. If you want a 6-sided shape, then you must specify 7 wall points.
  
If you want to use Circles go to [http://generalconsumption.org/armagetron/ General Consumption]. That site also works good with any polygon you just need to declare you segments. you also may have to adjust the start and end angle for some maps
+
If you want to use Circles go to [http://wrtlprnft.ath.cx/ellipse.php Wrtl's site]. That site also works good with any polygon you just need to declare you segments. you also may have to adjust the start and end angle for some maps
  
 
====Zones====
 
====Zones====
Line 270: Line 275:
 
===Free-for-all map with walls===
 
===Free-for-all map with walls===
 
This is a map that is a free for all melee, but it has some neat obsicles that you may want to avoid, like the four triangles in the middle
 
This is a map that is a free for all melee, but it has some neat obsicles that you may want to avoid, like the four triangles in the middle
 +
TODO:Make this map work with trunk.
  
 
   <World>
 
   <World>

Revision as of 18:31, 17 October 2009

This is going to teach you how to build custom maps for game play like the ones that the Crazy Tronners Wild Fortress uses.

What do I need to make a map

Text Editor

I used notepad but I found out that PSPad was a lot better with handling codes

  1. Programmer's Notepad Open source, syntax highlighting for xml files.
  2. PSPad (Windows)
  3. Turbopad (Windows, Linux)
  4. ConText (Windows)
  5. Vim (many operating systems)
  6. EditPad Pro (Windows

Optional Items

You also may want Armabell but it is very buggy. You can design the map on Armabell, but you will still need a text editor.

Also you will need to read here to set up Armabell

Also for ellipses and circles i use Wrtl's site. You can also preview your maps here.

Another thing that you may need is something to find intersection points this is a JAVA Applet that prints out the intersection in map code format [1]

If you get stuck at any point you can E-mail Kyle at [2]

How to make a map

Working on instructions.

The basic code layout

<!--this is a comment-->
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<Resource type="aamap" name="name" version="0.0.0" author="author"
category="fortress">
 <Map version="0.2.8">
  <Settings>
   <!--Your field setting goes here-->
  </Settings>
  <World>
   <Field>
    <!--Your field layout goes here-->
   </Field>
  </World>
 </Map>
</Resource>

This is the basic code structure to making a map.

This includes no content right now so if you were to load the map exactly as it is Armagetron Advanced will load in the default map and settings.

Saving the map

where are the maps i downloaded

  • Windows Vista—C:\Users\Username\AppData\Roaming\Armagetron
  • Windows XP—C:\Documents and settings\Username\Application Data\Armagetron

Where do I need to save it

  • Linux — ~/.armagetronad/resource/author/category
  • Windows — C:\Program Files\Armagetron Advanced\resource\author\category
  • Mac OS X — ~/Library/Application Support/Armagetron Advanced/resource/author/category

in your code there are setting that you set and must mach up when you sove the code.

<Resource type="aamap" name="name" version="0.0.0" author="author"
category="fortress">
  • in the author spot rememer to put the exact name of the author from the code.
  • in the category spot rememer to put the exact name of the category from the code.

What do I need to title it

<Resource type="aamap" name="name" version="0.0.0" author="author"
category="fortress">

you simply save it as

    name-version.type.xml

for this one it would be

    name-0.0.0.aamap.xml

This next example is a visual representation of the resource tag. Notice how it says something very specific about where the map is located and what it is named. This convention must be followed exactly.

RecourseTagExplained.png

What do I need in my map

Settings

All the setting they you may set will be shown on a separate page

I am currently working on this secion

Here is a complete list of Map settings

Axes

  <World>
   <Field>
    <Axes number="4"/>
    <!--Your field layout goes here-->
   </Field>
  </World>
 </Map>
</Resource>

The number 4 represents the number of directions in which you can turn. 4 is the default value for this.

Spawn Points or Starting Position

  <World>
   <Field>
    <Axes number="4"/>
    <Spawn x="700" y="1100" xdir="0" ydir="1"/>
    <Spawn x="700" y="300" xdir="0" ydir="1"/>
    <!--Your field layout goes here-->
   </Field>
  </World>
 </Map>
</Resource>

In the spawn

  • the x and y refers to the coordinates (x,y) where the team starts.
  • the xdir and ydir tell what way that you are facing
    • Instead of the xdir and ydir you can put in angle="degrees" where degrees is in degrees starting from the positive x direction.
  • Each spawn creates a new starting position

Also, when you make levels that have just two spawn points, multiple cycles will be created at them in game if more then two people join. This can be useful when making team maps (such as ones for the CT Wild Server), as you only have to make two spawn points instead of 14

Walls

  <World>
   <Field>
    <Axes number="4"/>
    <Spawn x="700" y="1100" xdir="0" ydir="1"/>
    <Spawn x="700" y="300" xdir="0" ydir="1"/>
    <!--Your field layout goes here-->
   <Wall>
    <Point x="0" y="0"/>
    <Point x="1400" y="0"/>
    <Point x="1400" y="1400"/>
    <Point x="0" y="1400"/>
    <Point x="0" y="0"/>
   </Wall>
   </Field>
  </World>
 </Map>
</Resource>

This is the code for a wall surrounding the level, which prevents players from going on to infinity. Your level MUST have at least this type of wall, for it to be classified as a level.

NOTE:If you want a square (four sided shape) you must specify 5 wall points. If you want a 6-sided shape, then you must specify 7 wall points.

If you want to use Circles go to Wrtl's site. That site also works good with any polygon you just need to declare you segments. you also may have to adjust the start and end angle for some maps

Zones

Fortress Zones
  <World>
   <Field>
    <Axes number="4"/>
    <Spawn x="700" y="1100" xdir="0" ydir="1"/>
    <Spawn x="700" y="300" xdir="0" ydir="1"/>
    <!--Your field layout goes here-->
   <Wall>
    <Point x="0" y="0"
    <Point x="400" y="0"
    <Point x="400" y="400"
    <Point x="0" y="400"
    <Point x="0" y="0"
   </Wall>
   <Zone effect="fortress">
   <ShapeCircle radius="20">
   <Point x="700" y="300" />
   </ShapeCircle>
   </Zone>
   <Zone effect="fortress">
   <ShapeCircle radius="20">
   <Point x="700" y="1100" />
   </ShapeCircle>
   </Zone>
   </Field>
  </World>
 </Map>
</Resource>

Above is the method of creating conquest zones for a fortress map. As well as these, you can also create deathzones and winzones:

Deathzones
   <Zone effect="death">
   <ShapeCircle radius="10">
   <Point x="700" y="700"/>
   </ShapeCircle>
   </Zone>
Winzone Code
   <Zone effect="win">
   <ShapeCircle radius="5">
   <Point x="700" y="700"/>
   </ShapeCircle>
   </Zone>

If you wish to tamper with the zone effects, change the Map settings

What your final map code should look like

This section is about what your final coding should look like, so you can double check before you test your map.

Free-for-all

  <World>
   <Field>
    <Axes number="4"/>
    <Spawn x="200" y="100" xdir="0" ydir="1"/>
    <Spawn x="200" y="300" xdir="0" ydir="-1"/>
    <!--Your field layout goes here-->
   <Wall>
    <Point x="0" y="0"/>
    <Point x="1400" y="0"/>
    <Point x="1400" y="1400"/>
    <Point x="0" y="1400"/>
    <Point x="0" y="0"/>
   </Wall>
   </Field>
  </World>
 </Map>
</Resource>

This format will have two sets of opponants (even though it is still free-for-all) facing each other like so:

****insert a pic Ed****

The level stats are: Size: 400×400 Axes:4

Fortress

  <World>
   <Field>
    <Axes number="4"/>
    <Spawn x="200" y="100" xdir="0" ydir="1"/>
    <Spawn x="200" y="300" xdir="0" ydir="-1"/>
    <!--Your field layout goes here-->
   <Wall>
    <Point x="0" y="0"/>
    <Point x="400" y="0"/>
    <Point x="400" y="400"/>
    <Point x="0" y="400"/>
    <Point x="0" y="0"/>
   </Wall>
   <Zone effect="fortress">
   <ShapeCircle radius="20">
   <Point x="200" y="100" />
   </ShapeCircle>
   </Zone>
   <Zone effect="fortress">
   <ShapeCircle radius="20">
   <Point x="200" y="100" />
   </ShapeCircle>
   </Zone>
   </Field>
  </World>
 </Map>
</Resource>

How to Test your map

See Testing Resources.

Commands

This is a Map settings link to the page where we have set up a list of commands (or settings as they are more usually known) that you can add to your map to make it more effective

Examples

The following are examples of the codes and pictures of each of the other two main types of maps

Free-for-all map with walls

This is a map that is a free for all melee, but it has some neat obsicles that you may want to avoid, like the four triangles in the middle TODO:Make this map work with trunk.

  <World>
   <Field>
    <Axes number="4"/>
    <Spawn x="200" y="50" xdir="0" ydir="1"/>
    <Spawn x="200" y="350" xdir="0" ydir="-1"/>
    <!--Your field layout goes here-->
   <Wall>
    <Point x="0" y="0"/>
    <Point x="400" y="0"/>
    <Point x="400" y="400"/>
    <Point x="0" y="400"/>
    <Point x="0" y="0"/>
   </Wall>
   <Wall>
    <Point x="175" y="100"/>
    <Point x="100" y="175"/>
    <Point x="175" y="175"/>
    <Point x="175" y="100"/>
   </Wall>
   <Wall>
    <Point x="225" y="100"/>
    <Point x="300" y="175"/>
    <Point x="225" y="175"/>
    <Point x="225" y="100"/>
   <Wall>
    <Point x="175" y="300"/>
    <Point x="100" y="225"/>
    <Point x="175" y="225"/>
    <Point x="175" y="300"/>
   </Wall>
   <Wall>
    <Point x="225" y="300"/>
    <Point x="300" y="225"/>
    <Point x="225" y="225"/>
    <Point x="225" y="300"/>
   </Wall>
   </Wall>
   </Field>
  </World>
 </Map>
</Resource>

Fortress map with walls

This is a map that incorporates two fortress zones per team, one of each teams is in the middle, forming a sumo. There are some walls and side entrances to allow some sneaky attacking and defending.

  <World>
   <Field>
    <Axes number="4"/>
    <Spawn x="102" y="40"  xdir="0" ydir="1" />
    <Spawn x="98"  y="360" xdir="0" ydir="-1" />
   <Wall>
    <Point x="0"   y="0"   />
    <Point x="200" y="0"   />
    <Point x="200" y="400" />
    <Point x="0"   y="400" />
    <Point x="0"   y="0"   />
   </Wall>
   <Wall>
    <Point x="0"   y="200" />
    <Point x="65"  y="200" />
   </Wall>
   <Wall>
    <Point x="135" y="200" />
    <Point x="200" y="200" />
   </Wall>
   <Wall>
    <Point x="65"  y="240" />
    <Point x="65"  y="160" />
   </Wall>
   <Wall>
    <Point x="135" y="240" />
    <Point x="135" y="160" />
   </Wall>
   <Zone effect="fortress">
   <ShapeCircle radius="30">
   <Point x="100" y="40" />
   </ShapeCircle>
   </Zone>
   <Zone effect="fortress">
   <ShapeCircle radius="30">
   <Point x="100" y="360" />
   </ShapeCircle>
   </Zone>
   <Zone effect="fortress">
   <ShapeCircle radius="35">
   <Point x="100" y="200" />
   </ShapeCircle>
   </Zone>
   <Zone effect="fortress">
   <ShapeCircle radius="35">
   <Point x="100" y="200" />
   </ShapeCircle>
   </Zone>
   </Field>
  </World>
 </Map>
</Resource>