Dota 2 Customs, and Replicating Game Feel
- Graham Kidd
- May 19, 2021
- 8 min read
** Disclaimer: This post assumes you have a decent level of Dota 2 knowledge, as I use terminology from the game often in my explanations.
A while back, in September of 2020, a few of my friends and I wanted to play Dota 2 together. That would have been fine, but there were six of us. Matchmaking any of the official game modes only allows for a party of five, six if you include a coach. So we looked to custom games that were made to play the vanilla game (All Pick) on a smaller scale.
Unfortunately, every single 3v3 or 4v4 custom game had broken as a result of a recent update which changed a slew of core game mechanics. Either player spawns, couriers, or lane creeps — or some combination of the three — were nonfunctional. Since there were functionally no maps that supported a small game, and we had tried playing on the normal map. The thing is, it's really hard to just ignore large swathes of the map, and if you don't the game turns into 3 sets of what is basically 1v1 mid. If you decide to ignore top lane, for instance, you still have to utilize dire jungle and radiant triangle. If you ignore the bottom lane, it's radiant jungle and dire triangle. The map in Dota 2 has always been relatively asymmetrical, so choosing one half of the map to play on will always put either radiant or dire at a disadvantage. This raises a question: how do you play a small game of Dota 2?

You make it yourself.
This post is all about a map I started back in 2020. You can see it on the Steam workshop here. In hindsight I should have named it "3v3 Vanilla Map" or something else, for discoverability purposes, but I went with "Dota Twolanes" instead.

The image to the right is a top-down screenshot of the map's 2D render, with some additional coloring and lines for viewer clarity: white lines indicate creep pathways, red and blue dots are towers, the green dot is a power rune spawner, the yellow dot is a bounty rune spawner, and the orange dots are neutral creep camps of varying difficulty. The two large X's are the two ancients, or end-game objectives. Red color corresponds to dire, and blue to radiant.
Stepping Through Major Revisions
Early - September 2020
My first versions of the map were boring, somewhat uninspired, and lacking in both variety and flow. What I mean by that is the game didn't really feel like Dota. It definitely was Dota, and when I would load it up with my friends we would definitely play Dota, but teamfights, lane-ing, rotations — everything felt off. The original map had terrible objective incentives and jungle design.

The first iteration of bounty rune spawners were placed on opposite sides of the river, on each team's high ground. Bounty runes are often contested as they provide the entire team with a sudden spike in gold, but in this situation the runes are extremely hard to contest. The only egress is the singular ramp into river, as to either side of the rune you enter the lane and by extension the tower's vision. This makes challenging your opponent on bounty rune spawns way more difficult than it is in the main Dota 2 map, which lead to very passive bounty play where each team would stick to their side of the river unless they were already ahead in the game and felt safe enough to push onto high ground.

I decided to put power runes in a small pool of low ground water next to what I deemed dire safe (the left lane) and radiant safe (pictured, the right lane). This wasn't to promote objective play or contests, but to categorize the lanes into the familiar archetypes found in the main map. They were also placed to help junglers with rotations (haste) or farming (arcane, double damage, regeneration). This was ultimately a flop because the rune was so far out of the way for players in lane, no one would ever leave to grab it. In addition, jungle camps were so far from the river that players in the jungle would generally be a detriment to the team as these games are much faster than traditional 5v5s. No players in the jungle meant these runes never saw any use.

And then we get to the creep meeting-point in the lane, which is what I really mean when I say the map was uninspired. The left and right lanes were mirrors of each other, minus the power runes mentioned above, and the space in-between tier 1 towers was a direct (and poor) replication of Dota's mid lane low ground. Notice the tower radius in green, and how much space exists between it and the creep wave — and even the opposing stairs. My character isn't even in range to attack the melee creep in this picture. The lanes were too large, and too barren.
Mid - October 2020
My second major iteration of the map still had major resemblances to the first, but had pretty major improvements to player encounter spaces and objectives. As I hadn't yet figured out what to do with jungling viability and rune placements, those remained the same.

This is the same lane pictured above, but notice how much closer together the stairs are. Also notice how the stairs are V-shaped instead of line-shaped. This pushes the two high grounds closer together, and gives players more interesting positioning options. The tower is still roughly the same distance from the low ground, but the added triangular pieces of high ground allow opposing players much more freedom to approach tower and push the lane.

I did not include a picture of this beforehand, but in the earliest version of the map outposts were located in the interior jungles (radiant left and dire right). These were extremely hard to push and maintain control of due to their proximity to the base, and teams who had advantage had access to a very abuseable teleport location when pushing for ancient. I decided to make them harder to contest, given the smaller size of 3v3, by adding a tier 2 tower with invulnerability tied to the tier 1 towers. After taking both tier 1s, players could advance to the outpost, destroy the tier 2 tower guarding it, and claim it for themselves. These were pushed away from the base to allow teams more interesting and less abuseable teleport locations. This was a pretty radical idea, as Dota 2 has nothing resembling this in its normal map. Outposts are typically defended only by players, so having a tier 2 defending and providing vision changes their neutral-vision dynamic and makes them relatively useless (outside of passive bonuses) for the first half of the game.

Also not included above, each base originally had a small exit in the middle guarded by two tier 4 towers. These were placed very close to the ancients, and actually prevented unit pathing, effectively negating the exits I had placed. I fixed this (pictured above), but the exit was very wide and provided a lot of out-of-base vision which would last, completely unobstructed, until the end of the game. But I was satisfied at this point, as were my friends, and we enjoyed playing the map a few more times before new game releases diverted our attention.
Current (as of May 2021)
With the most recent series of updates, I'm much happier with both how the map looks and plays. I increased tree density, redid plant density and placement, blended tree coverage terrain, added models, changed a lane from terrain to bridge assets — lots of purely visual stuff. But I also completely redid the lane shape, river shape, and encounter spaces.

Changing the mid-base exit was one of the simpler changes, but definitely not the easiest. Though vision is still granted, the slanted stairs provide a similar amount of path-able terrain while reducing the overall vision, especially concerning the middle secret shop high ground. It's also more interesting from a visual perspective, as I tried to avoid flat-line ramps wherever I could.

The left lane's redesign came from a desire to provide a more interesting player experience, as well as a more interesting visual. The bridge models are made path-able by a collision quad, and the rock models in the river have obstructed grid paths to properly represent their implicit behavior. Power runes were removed from the small pools and condensed into this one spot to the right, which is just out of vision when standing on the furthest right side of the bridge. Players still have to take a trek to get the rune, but can stay much closer to the creeps and avoid losing experience.

The right lane's redesign is more radical, as it features a two-high island with a singular contestable ward spot. Towers can attack enemy units that are on the stairs, but suffer an accuracy penalty for doing so. This makes the towers push faster as ranged units, such as catapults, can get away with an extra hit or two before dying to tower. The island also has a wide swath of river to the left, with two ramps to high ground on either side, and a split lane on low ground to the right. Trees block off vision there, so players can use the passage as an escape with repositioning tools, or as a flanking lane for stealthy ambushes from behind.

Outposts were moved again, this time closer to the center of the map and not protected by a tower. This maintains their design intent of providing vision and passive bonuses while requiring player defense. This also distinguishes the lanes further, unofficially making radiant's left lane and dire's right lane the "safe" lanes.

Finally, to touch back on encounter spaces and map flow. The original bounty rune system was designed to resemble the bounty system found in Dota 2 prior to patch 7.29. Players had bounties that were located on their side of the river and bounties in the river — four in total. Because of the smaller map size and player pool, I opted to have two bounty runes, one on either side of the river. This resulted in very little player interaction, so I removed the high ground bounty runes and placed a singular spawner in the middle of the river. I also closed off both sides of the river from easy left-to-right pathing, as it was extremely safe. Now, if a player wants to quickly navigate from the left side of the map to the right side, they must either teleport or walk through the river. The only other option is traveling through their secret shop high ground, which is further away from the river and would result in a slower rotation time.
Closing Note

This rough sketch should hopefully illustrate how broad and major the changes I made between v0.1 and v0.8 were. While the two-lane structure and vertical perspective remained, the rest of the map is almost unrecognizable from both gameplay and aesthetic standpoints. I plan to iterate on this map more, specifically after I do more playtesting, but for now I'm satisfied. One shortcoming of the map is the camera perspective, as players on radiant have advantage when moving towards the opponent's side of the map. I would have already implemented this, but as far as I know I have to completely recreate the map with a different bounds, as the current map is 52x64 and attempting to change the bounds (so that I can rotate the map 90 degrees) crashes Hammer. It's going to stay how it is for now, unfortunately, but maybe a future iteration will involve me building a new map from the ground up — perhaps with the cave or underwater tilesets.
If you would like to walk around my map, or play it with friends in a custom lobby, you can find it here. And as always, thanks for reading.
Comments