So, the vast majority of combat happens on flat environments, but most real-world environments are topographically variable. They have hills, and trenches, and slopes, and stuff.
I have no trouble representing dramatic changes in height, things like cliffs and buildings are easily done with separate maps showing the different layers. However, rolling, hilly, sloped environments are very hard to represent in a tactically meaningful way. Slicing it into multiple maps is confusing, because you wind up having like 20 maps for one area, and have people on different maps attacking each other, and area effects which cross topographical layer "slices".
The best I've seen is Cragmaw Cave from LMoP, the main hall slowly slopes upward to a height of ~10ft, then crosses over the main hallway via a bridge. When you're playing it, you don't even realize it's happening... but even there the topography is confusing. It's hard to tell how high up certain areas are, compared to others. It doesn't really matter there, because the different height levels are kept mostly separate, but what of outdoors?
I tried incorporating topographical contour intervals on my maps, but it gets cluttered and confusing with the grid and all my other lines. It also doesn't communicate things like "you can't see him over the edge of this hill" very well.
I use graph paper, pens, and pencils. My maps are austere, white with color coded lines and text, to save time and money. Most are drawn a few hours before a game, (sometimes during if they start a fight somewhere I was not anticipating) and are usually thrown out either immediately after the fight, or at the end if the night. I have no interest spending months of time and money building physical terrain that will only be used for one encounter.
Using a grid-based map, how can I represent sloping terrain clearly in a tactically relevant way?
I only included the 5e tag because that's what I'm playing right now. However, I am asking this in a more general map-making sense.