I guess my expectations were a bit skewed by how long it took me to get movement working thanks to all the scaffolding and client/server communication I had to set up, but I wasn't expecting it to be so easy to get LOS (line of sight) working. It helps that I implemented it entirely on the client side, so there was no pesky client/server interaction to deal with. Just a simple raycasting algorithm using Bresenham, displaying some shading over tiles that are "previously explored but not currently visible," and we're good to go:
Screenshot of LOS working in VVO
Another screenshot of LOS working in VVO
I love how much cooler it looks with LOS and fog of war working.
Maybe next up I'll implement some pathfinding. It would be annoying having to always move one space at a time, so adding the ability to click and move seems like a good player convenience -- and monsters will need pathfinding in any case. I'm guessing that this will take a bit longer to implement than LOS, so I'm not expecting to do another consecutive update tomorrow (though that'd be pretty sweet).