Cobo Makes Games blog

How to place trees and rocks so a map looks natural

How Mytheria places its trees and rocks: drifts instead of random scatter, habitats with rules, clear roads and a world that gets richer away from home.

Walking past groves of trees and a fallen log at the edge of Runestone Glade in Mytheria
On this page
  1. How do you place trees so a game map looks natural?
  2. The short answer
  3. Place trees in drifts
  4. Give every tree room
  5. Give each sub-area its own recipe
  6. Keep the paths and landmarks clear
  7. Make the world richer away from home
  8. How we place resources in Godot
  9. A checklist for natural-looking placement

Trees scattered at random across a map look evenly sprinkled, with no groves or clearings, while real woods have structure. In Mytheria, our pixel-art co-op game, a few placement rules turn thousands of trees and rocks into woods that look grown instead of sprinkled.

The clip above was filmed for this post, and the numbers below are the game's own.

How do you place trees so a game map looks natural?

Place them in groups. Trees grow in groves with open ground between them, rocks sit together, and different kinds of plants like different spots, such as the water's edge or deep inside a forest. Give each kind of tree or rock its own rules for where it grows, keep roads and important places clear, and the map starts to look like a real place.

The short answer

How Mytheria places trees and rocks:

  • Trees are placed in small groups of three to six, which we call drifts, a step apart.
  • Every tree keeps a minimum distance from everything else, so trunks never overlap.
  • Each sub-area has recipes, for example birches by the water and amber far from any road.
  • Roads, chests, Waystones and mine mouths get space around them.
  • Rarer and more valuable things grow deeper in a region.
  • Placement is worked out from the world's seed, so every player in a world sees the same woods.

Place trees in drifts

The trees and rocks below use the same drift sizes, steps and spacing as our Woodland's ordinary trees. Try them first at random and then in drifts:

Compare plain random with drifts, then switch the rules on and off

A diagram with the game's own distances: drifts of three to six trees, spacing between them and clear space along the road. New seed lays out a different strip.

At random, every spot is equally likely, which sounds natural but leaves the trees evenly sprinkled with no shape to them. With drifts, the game picks a spot, places a small group around it, each tree about 46 units from the last, and moves on. Groves form, and the gaps between them become clearings and paths, with the same number of trees as before.

Give every tree room

A tree keeps at least 60 units from any other resource, a big old oak 84, and rocks keep their distance too. Without that spacing, trunks overlap and crowns merge into green blobs that are hard to read and hard to walk through, and with it every tree is a clear target you can chop.

Give each sub-area its own recipe

The Woodland is made of eleven sub-areas, each with its own character (why a big world needs them is in how to make a game world bigger without making it empty). Each one gets a short list of recipes: which kind of tree or rock, how many, how big the drifts are, how far apart, and where in the sub-area they like to grow. In Northwood Cove, pines grow inside the wood, birches on the edge by the sea cliffs, and a few boulders on the coast. Fernmoss Dells has birches and wild roses beside the tarns and fallen logs scattered through. The Sleeping Wood has big old oaks in groups of one to three around the sleeping Colossus, with moss boulders and windfall.

The "where" comes from a small set of rules: anywhere, on the edge near the coast or the meadow, inside away from the edge, beside water, framing a road, or deep, well away from every road. A birch rule of "beside water" gives a place more character than any number of extra trees.

Keep the paths and landmarks clear

A tree in the middle of the road or a rock on top of a treasure chest spoils a map, so every recipe keeps clear of certain places. Trees stay at least 52 units from a road's edge and rocks 34, and some recipes line a road on both sides, so paths are framed by trees. How the roads themselves are drawn is in pixel art grass and paths.

Chests and puzzle pieces keep 48 units clear and Waystones 64. Mine and temple entrances keep 150 units, so the way in is open and obvious. Camps get a small glade, and a few hand-placed clearings stay empty on purpose.

Make the world richer away from home

Every kind of resource has a value: a wild rose 0.5, an ordinary tree 1, a boulder 2 to 2.5, a crystal spire 3.5 and an amber vein 4.5. Sub-areas near home get the common things, like wood, stone and flowers, and sub-areas deeper in the region get old oaks, crystal spires and amber veins. Amber veins only grow "deep", at least 140 units from any road, so you have to go looking for them. These spots aren't fixed either: every dawn the groves move within the same rules, as the island reshuffles every day explains.

The further you walk from home, the richer the woods get, which gives you a reason to explore.

How we place resources in Godot

In our Godot code, every random choice in placement comes from the world's seed, so a world always lays out the same way on every player's computer. A shared budget limits how many resources the world holds, so a recipe can never flood a region. Placement never moves or removes anything already there: players, creatures, drops and earlier resources win every conflict, and a skipped spot stays skipped, so a saved world never suddenly grows a tree.

Grass, ferns and small props are placed by a separate pass with the same kind of rules, including clearings kept open on purpose, and that pass doesn't touch the game's state at all.

Once the trees are in place, they still need to move, which is covered in how to make a pixel art forest feel alive.

What happens when one of those rocks is broken, frame by frame, is in how to make a rock break feel satisfying.

A checklist for natural-looking placement

  • Place trees and rocks in drifts.
  • Give every tree and rock minimum spacing.
  • Give each area its own recipe and simple "where" rules.
  • Keep roads, chests, waypoints and entrances clear, and frame roads with trees.
  • Put rarer things deeper and further from the road.
  • Make placement deterministic from the world's seed.

Further reading

Wishlist Mytheria

Mytheria is a pixel-art co-op adventure for one to four players, coming to Steam for Windows, macOS and Steam Deck. A wishlist is the best way to follow it and to help us.

See the game Join the Discord

Mytheria

Coming to Steam

The store page isn't up yet. Leave your email and we'll tell you when you can wishlist Mytheria on Steam.

We'll send that one email and never share your address.

Windows · macOS · Steam Deck