Show HN: A Multiplayer Geography Game Using WebSockets
github.com
github.com
Edit: just played it. Awesome. A few suggestions:
- show me my total score! Unless I'm on the leaderboard, I don't know what it is
- it's unclear whether the "you are #x of Y players" is referring to my standing on just that turn, or the last 20, or what
- more cities, as others have said. Or at least shuffle it better so it's not as obvious when I've gone back to the beginning
Also, a recommendation on making the mechanics work on mobile: make it a race to zoom into the city the fastest. So you have to "pull" the map as fast as you can until the correct location is on the center of the screen. You can zoom as high resolution as you want for more points. This would eliminate the problem of imprecise tapping on mobile, and make it a fun finger motion to practice.
I was pretty pleased to get a few #1s. It countered my several "too far!"s.
Method:
- grab cites.db from repo and dump cities to file with sqlite
- use perl to convert data to json
- use dev console to import cities object
- one quick js function to get called when websockets gives us a 'new_turn' message that sends a 'answer' message with data from our lookup table
I know I cheated, but for me this was super fun. (I never make it to the top of a score board in videos games without some sort of hackery involved).
The way I'd do it is 1) track the current turn, 2) look up the city's coordinates using a reverse geocoder like OSM's Nominatim[1], and 3) draw a marker at the location using Leaflet.
Also, there were a handful of times when the timer would "jump" right at the end (before I'd gotten my pin placed)
EDIT: Also, just remembered... This also exists: https://www.tripadvisor.com/TIQGame
Also, several times it didn't register my clicks and I have to try a few times before it worked.
One issue: the cursor seemed to be inaccurate for me most of the time, even when I knew exactly where the location was. For me, the click registered at the top of the crosshairs (instead of the middle). Further, I might change the cursor to be a map pin, and use the pin's point as the accepted answer.
A few thoughts -Did you have any trouble with the sockets library? -I saw you explicitly mentioned "plane_distance", so are you planning on adding Haversine distance or something else? -Maybe make the map take up the entire screen? Status and first few on the leaderboard could go in the ocean.
I used plane distance because it's faster to compute and the accuracy is good enough for this use case.
Regarding the UX I think it's a good idea to make the map take the entire screen.
Thanks for the feedback
Making games take a determined number of turns would allow players to rest.
Also, displaying the score right along the windows would be nice.
Other than that, great work!
And, if possible, a magnifying glass to the cursor.
Thanks for the game, really enjoyed it!
Awesome game and idea!
The fact that the crowd playing did not bring it down load-wise is just as impressive.
Back-end deployment story?
I've written a similar game a while back (single player, though): http://david-peter.de/quizzity/
Thanks for the feedback
Nice work!
Awesome game.
Great fun all the same!