Dota 2 Maps

From Valve Developer Community
Revision as of 00:52, 4 January 2014 by Penguinwizzard (talk | contribs) (Updated upversion link to the newer build)
Jump to: navigation, search

There are no official tools to create Dota 2 maps, although the community has hacked together a number of tools to compile Dota 2 maps that work.

Configuring Alien Swarm SDK

Follow Steps 1 through 6 in Cyborgmatt's Model Viewer Guide

Download AlienSwarm SDK.

Go to SteamApps\Common\alien swarm\swarm\ and edit the gameinfo.txt. Add the game content you extracted to the search path (similar to step 6 in cyborgmatt's tutorial).

Configuring Hammer

To properly build a Dota 2 map, you need the following tools:

UpVersion.exe by Penguinwizzard

Work in progress FGD

Download both of these and extract them into the bin folder from above.

Open Hammer, and select Tools -> Options...

Remove the AlienSwarm .fgd file and add the dota 2 fgd from above.

Create a new map. Select 'Run Map'. Hit 'Expert'. Create a new config 'Dota 2'. For the first command, we want to run BSP, so hit New, then 'cmds' and select 'BSP Program' and copy the BSP parameter line from default. Second command we want to run is 'UpVersion', so hit new 'New' then 'Cmds'. Select 'Executable' and find 'UpVersion.exe' in the directory you put it. Add '$path\$file.bsp' to the parameters. Finally, we want to copy the final .bsp file to the dota 2 maps directory, so hit New, then in Cmds select 'Copy File'. The params are '$path\$file.bsp "path\to\dota2\maps"'

Mapping notes

Maps are a much larger scale in Dota 2 than they are in other source games. Units are around 48 units wide, towers are 128x128x320 units tall.

More than 8 displacements may crash Dota 2. There is no known fix for this yet.

If an entity is outside the bounds of the map, it crashes the game with no error.

AlienSwarm converts all brushwork into func_detail, so you need to seal the map with a func_brush named structure_seal

Required entities include: info_player_start_goodguys, info_player_start_badguys, ent_dota_game_events, env_global_light.

Building the NavMesh

Required Tool: GNVTool 1.1 by Penguinwizzard

This tool converts netpbm formats to valve's GNV format. It also converts GNV to pbm files.

netpbms are 1 bit bimap files. Dota 2 uses white for walkable, and black for not walkable

Usage: 'GNVtool.exe tognv source.pbm target.gnv offsetx offsety'

offsetx and offsety are offets by 64 units (offsetx|y * 64). Your pbm dimensions must be divisible by 8 or the grid gets sheared.

list of software that support pbm files or converts to pbm format

You can view your navmesh in game by doing 'dota_gridnav_show 1'

Additional Notes

The func_brush named "structure_seal" should be nodraw. Select a hero by typing "jointeam goodguys/badguys"