Harpers Ferry is a great place to get out and walk. It is not always easy finding a place to park. A lot of times you have to park up the hill at the state park area and take a shuttle down or walk down. It is a little bit of a walk but if you like hiking it is a good hike. And of course walking around the town itself.
There is a fee to park at the ranger station and to use the shuttle. If you would rather not pay you can drive down yourself and try to find a place to park. They don't allow parking on the main streets of Harpers Ferry but there is a train station with a parking lot where you might find a place to park.
As far as the food choices. I mentioned Tony's. It is on German Street in Shepherdstown. It is a local "pizza joint". But they serve great sandwiches also. As far as steak houses. That would be Martinsburg area. There is a Ryan's and a lot of other restaurants there. Fast food and set-down type places. As far as BBQ. I don't know of any real good BBQ places. Their might be some, but I have not found any in Martinsburg. There is one in Charles Town. I can't remember the name but it has good food. It is a restaurant of a motel in Charles Town. However, I have never eaten any of their BBQ stuff.
If you really like hiking, Antietam Battlefield is a wonderful place to walk. I don't know how many miles of road their is around the whole area, but I have seen lots of people walking the route.
There is a "trail" around the area with signs posted all over the place telling about the battle. It wounds all around the area. Past farms, cemeteries, statues, and other sites.
Now as far as seeing caves and waterfalls. There is a river at Harpers Ferry, but I don't know of any waterfalls or caves in that area. The rangers at the park station could answer that question a lot better than me.
Outside of Sharpsburg, MD towards Boonsboro, MD there is Crystal Grottos. I have never stopped but almost every time I go by there are several cars there. That is above Shepherdstown, WV in Maryland out on rt. 34.