Mapping
AoS contains a Map editor called "Voxed." There are also additional tools: a bitmap converter, which generates heightmaps, and Slab6, a voxel model editor that creates props that Voxed can place.
In this article we discuss the process of building AoS maps, from concept to final, using the current available tools.
Contents |
[edit] Technical Notes
- The map is 512x512x64. However, the lowest z value is always taken up by water, and the second-lowest is treated as unbreakable ground, so your effective maximum height from ground level is 62.
- Players, intel, and CP always spawn in a 128 wide, 256 tall area on their side of the map. E.g. Blue spawns in the area (0-128, 128-384) (with (0, 0) being the top left) and green spawns in (384-511, 128-384).
- The spawning code tries to spawn everything on land, at the highest available point. The vanilla server will test points in the area at random, but time out and spawn on water after a certain number of tries; pyspades guarantees a land spawn if one exists in the area, but only includes "true" ground as land - it does not consider structures that hang over water to be land blocks.
[edit] Concepts
First think about what you want to achieve with the shape and structure of the map. Are you looking to reproduce a certain setting, like a forest or a city? Do you want to achieve a new game dynamic by using the terrain to guide the players? How much area do you want to cover, and how will you keep players from getting lost or frustrated?
Some guidelines for what a typical player is looking for:
- A fast, obvious route with chokepoints, so that players can find the enemy and see action.
- At least one alternative path to sneak around with.
- Cover to hide behind.
- Some flat areas to build structures on, and to make travel easy.
- Some hilly areas, water, or pre-made buildings to add more structure and landmarks to the map.
Also consider griefer's motivations, and how to combat them:
- Some griefing is the result of boredom or frustration. If the map has little action, or it's possible for one team to completely dominate, structure griefing is much more likely.
- Other griefers are opportunistic, and target structures that seem pleasing and easy to topple. Simply making the base of these structures one row thicker can do a lot to stave off the opportunists.
- The most dedicated griefers will treat every impediment to destruction as a challenge, and go straight for the most strategically important parts of the map. Defeating them is not really possible, but you can slow them down considerably by building loose, difficult-to-navigate structures similar to spider towers, and by designing the map in such a way that they are "baited" into an area where they are forced into a fight before they can cause significant damage.
Finally, think about aesthetics. Put on your artist's cap. AoS doesn't allow for a lot of detail, but you can still make a map look good. Pick out a specific color palette to imply a time of day or dominant lighting. Plan your map to be built "in layers," with a few in-game tests before you commit to the final look.
[edit] Model Creation in Slab6
Slab6 models can be used for two purposes:
1. Large 256x256 blocks of terrain, "stamped" on the map. This technique is used for most of the terrain in Mesa and Icecap.
2. Smaller, detailed prop objects: buildings, trees, etc.
Save your result in VOX or KVX, not KV6. KV6 is used in Voxed to place "sprite" models like the in-game ones, so they can't be used for terrain.
[edit] Heightmap Creation
Using one or two 512x512 bitmaps, you can create a complete, colored heightmap to describe hills and water.
[dl.dropbox.com/u/17109687/bct.zip Bitmap converter download]
The bitmap converter takes some skill to use effectively. Although it is easy to take random images and convert them, the results will be nearly unplayable. Pay close attention to the slope of your heightmap, in particular. A useful heightmap has very gentle slopes. Using Gaussian Blur on the heightmap image can help smooth things out.
[edit] Putting it Together in Voxed
Depending on how you built your map, you may or may not have a lot of work to do in Voxed.
Navigating in Voxed is done using the mouse and arrow keys. For in-editor help, press F1 and use the arrow keys to scroll.
The single most important key in Voxed is the U key. It lets you place your Slab6 prop structures. To move around and rotate a structure once it's placed, use the numpad - the 5123 grouping nudges it along the X/Y axes. 4 and 0 move it up and down, and the others do flipping and rotation.
Voxed will not let you place props flush against the edges of the map; you can either live with the resulting border, or use Voxed's shape primitive tools(E, L, W, B, etc.), the size control ([ and ]), and the numeric markers(Spacebar, Backspace) to fill in those areas.
Using Voxed primitives can be useful for touchups, but is not recommended as your primary editing method. They don't give the control necessary to add fine details or color areas.
[edit] Testing
You can get some idea of how the map looks in Voxed. However, the simplest way to get a full test is to run your own server and connect to it in localhost mode. This mode is accessed from aos://16777343 and can also be found on the official AoS "Play" page. If the offical server does not seem to work for you, also try pyspades.
Once you're ready for a full playtest, if you can't host a good server yourself, start asking around. You can post the map on the forums, or come into #AoS IRC.