Currently you can only draw horizontal or vertical lines in Shmeppy. Diagonal lines can’t be drawn. Several people have requested that the ability to draw diagonal lines be added to Shmeppy.
I’ve rejected this feature. I’m making this post to record why (though, as always, feel free to weigh in if you’d like to).
The Good: Accuracy
Sometimes walls are diagonal. That’s just a fact of fantasy living. It’s unfortunate that the only way to represent that in Shmeppy is this weird staircase pattern.
Having diagonal lines would allow the maps to be more accurate, and more quickly understood. GMs wouldn’t have to say “oh that’s actually a flat wall, it doesn’t have those divots to hide in… I just can’t draw diagonal lines…”.
The Bad: Fill Tool
Diagonal edges have a bit of bad luck. By themselves, diagonal lines are perfectly reasonable, I think they’d be straightforward to use and feel great for users.
The problem arrives when we integrate those lines with the rest of Shmeppy. Particularly the Fill Tool doesn’t play nice with diagonal lines at all.
The Fill Tool currently fills an entire cell. So if we were to allow diagonal lines for edges, in the example above you’d still have that weird staircase pattern, you’d just also have a diagonal line running alongside it.
Modifying the fill tool to allow users to partially fill cells would be very tricky. Not technically, but design-wise. From a UI perspective I think it would suck for users.
I’ve given thought about many different ways to do it. Every way I could do it adds a lot of complexity to Shmeppy’s UI and tends to go against every one of Shmeppy’s three traits at once.
I could leave the fill tool alone and just have diagonal lines, letting users decide when it’s worth it to use diagonal lines or not. But I think the amount of frustration and confusion users will experience when they can make diagonal lines but not partially fill cells is greater than the current frustration and confusion users experience when they can’t make diagonal lines at all.
This is a downside to implementing diagonal edges, and I think it’s a big one. Far outweighing the increase in accuracy I mentioned above.
Feel free to share your thoughts! I’ve covered the highlights here, but I’m happy to share more of my thinking around this if ya’ll would like. I’ve had many conversations with many people over a long period about diagonal lines, and have lots of thoughts.