3 ms·
Hi HN, I made Back Of Your Hand, a map-based game where you're given random street names and you have to locate them on the map. You can play solo or compete wi
by adamlynch 5y ago
Hi HN, I made Back Of Your Hand, a map-based game where you're given random street names and you have to locate them on the map. You can play solo or compete with friends on other devices.
I made it for my dad as a Christmas present. It also gave me an opportunity to learn about geocoding, etc.
Tech: serverless, Leaflet, Turf, Svelte, TypeScript, Cloudflare pages. I tried to use as many open / free tools as I could. I originally used map tiles from OpenStreetMap but they were discontinued so it uses Mapbox and Maptiler now.
Questions / feedback welcome. I also wrote a blog post with more information: https://adamlynch.com/back-of-your-hand https://adamlynch.com/back-of-your-hand. The code: https://github.com/adam-lynch/back-of-your-hand https://github.com/adam-lynch/back-of-your-hand
Warning: it’s pretty difficult, unless your streets are numbered :)
- noisefridge 5y agoNice and fun. Have you considered points of interest, photos from open sources like Panoramio or Creative Commons search, links to Wikipedia articles? Sometimes I get stumped and I also want a picture to explain it
- adamlynch 5y agoVery interesting. No I haven't, thanks
- evil-olive 5y agothis is an awesome idea! only bit of feedback I have is that the street names may need some cleanup / filtering of some kind. I picked a starting location in downtown Seattle (47.60882,-122.33087) and was told to locate "escalator"...it seems to have picked the escalator to the Pioneer Square light rail station as a "street" to be located.
- adamlynch 5y agoI've now excluded "escalator", thanks
- mohitc 5y agoI was asked same street twice in 5 attempts
- darkerside 5y agoI would suggest using intersections instead of streets. I'm not sure how it determines what segment of the street is correct, but I had some random guesses score higher than the correct street I knew but a part that wasn't highlighted in the result set.
- planetsprite 5y agoI played once and it asked me to locate the same street 3 times in one 5 question round.
- JSoet 5y agoFun game, great job, but sometimes the scoring seems kind of random, I would sometimes get ~80 points when placing it pretty much directly on the street, and then sometimes get 90 points when guessing and being a few blocks away... Along with what you mentioned about having different difficulties in terms of radius, would also be fun to be able to choose the difficulty in terms of what types of streets (main streets vs side streets - e.g. only one type, or a mix, or turning down the selection of numbered streets somehow)
- TimPC 5y agoThe circle is a bit large as in larger than a single neighborhood for my city. I feel like the game is useful when it asks you how well you know a single neighborhood. It’s less interesting when it asks you how well you know 2.5 neighborhoods.
- rockostrich 5y agoIt's also kinda silly to do streets for something like Manhattan since it's a grid. But landmarks/businesses would work really well in any city.
- petschge 5y agoIn my case it covers three different villages...
- adamlynch 5y agoThanks for the feedback. I'm considering adding difficulty modes or a way to change the radius. I'd rather that people wouldn't get a perfect score too easily though
- et-al 5y agoI think a difference with Wordle is that we're playing different neighborhoods and different streets every day, so a "cheated" perfect score would have little meaning. And I think when people share their Wordle results, it's often a "wow, I lucked out on that guess" or "phew, almost didn't get it". Perhaps the ability to choose the sample area could be based on the zoom level and hidden under a settings cog?
- adamlynch 5y agoFor now, I've reduced the circle radius by 20%. I plan to make it adjustable in the future.
- TimPC 5y agoI think it’s more important for the game to be meaningful than difficult. How well do you know a neighborhood is deeply meaningful. How well do you know 2.5 neighborhoods isn’t. I’d strongly recommend sacrificing difficulty for meaning here.
- jwagenet 5y agoDropping a pin close enough on mobile to get 100 points was really difficult. I probably was only able to average like 12m accuracy even though the pin appeared to be in the correct place every time. I also did my area twice and around 6/10 were either numbered or major roads that are very easy to ID. It might make sense to deemphasize larger or longer roads and numbered roads for a better balance of true local knowledge.
- jimmaswell 5y agoI'm only getting a blank background on Firefox, both Android and desktop. Edge too, is the service just down?
- adamlynch 5y agoYes but it should be back now? My hosting provider (Cloudflare Pages) seem to have a limit on "functions" I cannot increase. I've worked around it for now but it might open at Cork for everyone. If so, you can zoom out and tap the map to select somewhere else.
- jimmaswell 5y agoI put my town's coordinates in manually and it's still blank, and I don't see anything zooming all the way out. What do you mean by functions? I would just request location with javascript and use Google geolocation as a fallback.
- adamlynch 5y agoOK I'm done with fighting fires for now and can answer that last question. Cloudflare offer "functions" and "workers", they're like functions that run on the edge CDN nodes. These functions receive geolocation information via a function argument. So I've a function that intercepts requests to the app, grabs the geolocation information, and rewrites the URL (inserting the coordinates e.g. /lat,lng). I go into more detail about this in the blog post but originally it just opened in Cork for everyone. I disliked the idea of having an annoying browser prompt for location permissions. I made it for my dad so having no geolocation was fine to begin with and I eventually added the geolocation I described above. Less friction, no extra client-side requests.
- whoopdedo 5y agoThose "annoying prompts" are there for a reason. How do you justify ignoring the users' wishes with regards to accessing personally identifiable information? Also, why WebGL?
- rubyfan 5y agohow does this get my location? I use a Cloudflare WARP+ which seems to mask my IP for most sites but this one looks like it’s using a nearby cell tower?
- adamlynch 5y agoI don't know exactly but I use the geolocation information Cloudflare gives me in my edge function/worker. It's not 100% accurate or reliable. Your result can vary minutes apart or depending on which network you're on.
- kuu 5y agoFirst of all: it's really cool and fun! Congratulations! As a small feedback: adjustable radius would be more fun. For example in the town were I had my childhood, this area is too big and takes other neighbourhood/cities that I don't know, but for where I live now it fits great. Again, nice job and congratulations for making it!
- adamlynch 5y agoFor now, I've reduced the circle radius by 20%. I plan to make it adjustable in the future.
- adamlynch 5y agoThank you :) This has come up so much. I'll be adding it, thanks!
- adenadel 5y agoAnother thing is that it seems you are sampling with replacement. I placed a circle in a rural area (where I grew up) and in one round I got the same street for 3/5 of the selections (and there were 10+ streets within the radius).
- modeless 5y agoI found the game easy in an urban area where I've lived for only three years, but impossible in the rural area where I grew up. It seems to pick main roads in urban areas but in rural areas I get random side roads and cul-de-sacs. The circle should be much bigger in rural areas because people typically drive longer distances. Most of the roads I actually used were outside the circle.
- deleted 5y ago[deleted]
- Breza 5y agoThis is really cool! Could be a great training tool for first responders sitting around the firehouse waiting for a call. FFs/EMTs enjoy any chance to earn bragging rights over each other.