Show HN: Learn where countries are on the world map with Spaced Repetition (map.koljapluemer.com)

217 points by blackbrokkoli ↗ HN
Hi HN,

I made a web game to practice country locations a while ago and HN liked it, so I thought I'd post my updated version as well.

As for how the game works and feels, I'd really recommend you checking it out for yourself, it's free, no signup, no ads.

The tech stack is Vue + ts + Tailwind/Daisy for the looks. The learning algorithm is a slight modification of the ts version of FSRS.

If you have anything to add, it's open source as well (https://github.com/koljapluemer/learn-worldmap), although not well documented yet.

In the end it's just a little sideproject, but I hope you enjoy it — any feedback welcome :)

84 comments

[ 3.7 ms ] story [ 82.0 ms ] thread
nice job! particularly glad when you close/open tab it continues where you left off

I am your classic american who would embarrass themselves if publicly tested on this. Never done spaced repetition outside of index card analogs, and I like the idea

I'll have to click more to experience the `spaced repetition` bit, just getting an early comment in to cheers you

I am really enjoying this! I'll continue to use this for a while, and I really hope I'll learn more countries in the long term

Also, I absolutely love that it's so easy to start playing (no signup, no popups, etc)

Question: For the countries I know and select first time, I get them multiple times between countries. It's a bit odd to have to select England a couple of times, but the countries I don't know, I seem to get less often, or no repeats at all. Is this intended?

(edit) Question 2: Is there any scenario where you'd actually guess wrong more than once? After the first miss click, the country is highlighted. I don't see I'd ever get "You found country in 3 clicks".

As someone who uses Anki, and has also made a country learning game, this is soooooo smart! Great job! Thank you!
I find it surprisingly effective how you have to get it closer when it zooms in and you have to do it with less context. There were a bunch of countries that I could point general on a map, but that I might mix up with a neighbour, e.g. Guyana and French Guyana. With this method, I got it on the first try, and each time it zoomed in I was able to remember more specifically.
Wow. This is really cool. After reading the headline, I was expecting to see it and think 'meh, why not just use Anki and the Ultimate Geography deck'.

I was wrong!

But the fact I get credit for knowing roughly where a country is, and then it zooms in, is a great idea. And well implemented.

I am going to try this for a bit and, if it works well, I'll ask my son (8yo) to consider adding it to his daily habits.

This is fun!

I can identify all mainland countries but have really hard time with the island nations in Oceania and the Caribbean. Would love to have an option to select which specific area I want to practice with.

Also for countries that I can identify with first click, I have to keep clicking until the cycle is complete. It make sense to zoom and ask to identify the countries again, but maybe stop after getting it right continuously ~3 times?

This is an absolutely excellent way to learn, I am surprised at just how effective it was. I'd love a "manual" mode that let me discard countries/mark them to stay in rotation.
Yeah, one of the first countries I was asked to identify was "USA" and......that's just a waste of time
interesting idea, will put it on the long-term todo list :)
Love this! Played Worldle (https://worldle.teuteuf.fr/) for a while and this would have been helpful.

Great application of spaced repetition beyond cards.

Try out travle.earth
Came here to mention Travle. Such a fun game! I've learnt a ton of geography through it in recent months!
I wish it had a kayak mode so the traveler could visit islands too.
This is a great idea, though I feel like if you guessed the country accurately the first time I would like it move on to another country. That or a button that lets me skip to new countries. I know where Australia and it's a bit tedious to be forced into spaced repetition for it three times.
+1

Also: After you guess one, a button to jump to Wikipedia to learn more.

Today I learned Lesotho is the largest sovereign enclave; there are two smaller on the Italian peninsula.

-1

I'm surprisingly bad at the first 5 countries suggested but I managed to guess the general region well enough to hit it correctly on the global map.

At the same time, I feel like a lot more people know where Australia is compared to (say) Laos.

I love the zooming in; Did I just know that country was in Europe or did I really know which map-feature was the country?

interesting perspective, as well.

that's really the core struggle with learning games: not being too boring, not being too repetitive, not introducing stuff too fast, enabling user choice but also making sure learning is achieved...

will take both your point and parent poster's point into account :)

I had the same experience. I played for a few minutes, and the only repetitions I got were countries I already identified on the first guess. I didn't get repeats of any country that I missed initially.
very cool - it would be fun to load more detailed outlines at higher resolutions using map tiles or someing. at high zooms some of the shapes are quite blocky
What list did you use for the list of "countries"? (I only ask because the first one I got was Northern Cyprus which is only recognized by Turkey and not a UN state).

edit: I see the code is fetching from the following, which has 177 features:

https://raw.githubusercontent.com/holtzy/D3-graph-gallery/ma...

Interesting, thank you for the link. This answers a few questions I had about preferred country names while trying out the game, such as Czech Republic/Czechia, Swaziland/Eswatini, Turkey/Turkiye. I also found the partially recognized states curious, especially Palestine being reduced to "West Bank".
Ah, geo-politics meets technology. Imagine flying into a country, and the border guards tell you "Did you make this website? Well, the depiction of our country is a few pixels off, that offends us. Hands behind your back.".

Or that that body of water is "Gulf of America" now...

C.f.: https://www.vox.com/culture/2023/7/13/23791805/barbie-map-ni...

It also has Greenland which is just an autonomous region of Denmark, but not the Faroe Islands which is our other autonomous region. I guess Greenland is just more visible due to its size (both regions actually have about the same population)
Also “England” but the shape is the UK.
I had a similar reaction to the borders of Western Sahara, where it seems like most of it is part of Morocco in this map.

Apart from these issues, it's really nice, well done!

Thanks everyone for the feedback. I used a pretty random svg library and was happy that it worked for now, will look into this.
Neat, but England is wrong. The area highlighted when clicking is the United Kingdom.
This is so cool. I modified the script so that the countries are a bit darker (#777), and I found that it helped the borders pop a lot more. It would probably be equally interesting to play this game with no borders at all.

Not to scope creep, but it would be great if users could pick from 1 or 2 themes. Or maybe just refactor it so that changing a global var from the javascript would let you change the colors.

edit: also the collective north and south poles take up about 60% of the zoomed out map. I bet you could crop most of antarctica and a significant portion of the upper northern hemisphere without degrading the experience.

A few thoughts after ~5 minutes:

* I like how the map moves around. It helps nail down relationships to neighbors * I don't mind a few extra "Where's canada", even though it's not that useful * I'd like the pause between answers be shorter. * Small countries are impossible to see when zoomed out on the first exposure, even when selected right. I find myself knowing the area it's in (ie, central america) but not which exact country. So selecting it right when zoomed out doesn't get me the correct answer.

There seems to be a bug with Fiji. It moves the map around, but never zooms in on it.
That’s what they get for putting their country on the international date line.
I like how the position of the map changes to center another place or zooms in to really make you think.

only slight thing is that i wish the map had more contrast, apart from that this is great

This is awesome, I got way more sucked into this than I expected. If you're open to adding more features, a "custom playlist" would be really cool. I'd love to drill myself on the Balkans or West Africa, for instance.
Some Welsh, Scottish and Northern Irish people may take issue with your definition of "England"
Nice job!

A few observations & thoughts:

- With remote islands somewhere in the oceans, the last zoom level isn't very effective since the map will essentially only show the island you're supposed to identify.

- The map's resolution could be higher.

- The challenge (top right) doesn't work for me in Firefox for Android. It always tells me I have guessed wrong (as if I had accidentally tapped somewhere on the map) when in reality I haven't even made a guess in the first place and was waiting for the game to tell me which country to identify.

> With remote islands somewhere in the oceans, the last zoom level isn't very effective since the map will essentially only show the island you're supposed to identify

In some cases with these tiny islands, I see essentially just some specks on the map (where one island is one country, other island is another country). In these cases I would like to see some minimap in the corner, that would show which part of the world I'm looking at. Better resolution would also help (to make the shapes of these islands more recognizable).

But overall, nice app! Would be nice to have some counter of total number of guesses, guesses today, and maybe success ratio for the day or something. And the best thing would be the percent of the countries I have well memorized, something like a progress bar, with the goal of memorizing all the countries.

This may seem odd but I don’t like knowing where countries are, it makes the world seem like a much larger more mysterious place. It’s cool to stumble across some country you never knew existed in some part of the world you barely thought about. Knowing where a country is in the world has little use these days, since transcending physical borders is pretty trivial. It’s mostly a useless fact or piece of trivia now.
Nice little game! One correction: Swaziland has been called Eswatini since 2018. Lots of websites still use the old name, unfortunately.
Eish, even as a South African (who later emigrated) I didn't know that, and now need to learn this new name. So much for "Swazi Gold"...
I’d prefer if it did what Anki does — give me 10-20 new countries before cycling back to ones I’ve already done. Just switching back and forth between two countries I already know over and over again is pretty boring.

Also, why is Antarctica on there?

Although that's a decent UI and gamification with the circles and all, if I seriously wanted to memorize this information, I would just want the data as an Anki deck.

Front of card: country name, plus possibly: recognizably large segment of world map containing that country, without highlighting.

Back of card: same graphic, with that country colored.

Determining whether you got it right is self-evaluation in Anki; if you thought of the correct map shown in by the back of the card, you hit the good button, otherwise bad.

This clever paradigm in Anki means that deck authors don't have to develop UI for the user to specify correct answers.

Say you want to go from dog breed names like "Yorkshire terrier" to photographs (rather than photo to name). How would you develop a UI by which the machine could test you and confirm that you know? Probably multiple choice is all we have. Multiple choice with too few choices gives the answer away to some extent. Too many choices will overwhelm your mobile device screen. You could ask the use to draw the animal. That would be time consuming and require talent not directly related to memorizing dogs.

With self evaluation, you don't need it. You just imagine a Yorkshire terrier as best as you can. Then if you think the back of the card is close to what you were thinking off, you hit Good. If you imagined a Westie, or German Shepherd, so that you are surprised and dismayed by the unexpected Yorkie image, then you hit Bad.

I've done that. You need variations though, or you learn that specific map framing. I like that this has rotations and zooms. Should generalize better.
To learn where in the world Guyana or Myanmar are, all you need to work with is maps that are aligned so that North is toward the top of the screen.

Just like to learn algebra, you don't need to solve equations upside down, or to learn to read, you don't need to read upside down. These variations don't speak to the semantics of the main activity whatsoever.

If you know where every country is from doing spaced repetition and someone gives you a world map upside down, you will easily find a given country; you can mentally rotate the map then.

I think parent is more concerned with the way that after enough times seeing the same image and linking it to an answer, your brain does what your brain does best, which is find mental shortcuts. Gradually you come to associate the image with the answer, without regard to any kind of "why". This process happens rather quickly, and when you're faced with even only a slightly different image, you suddenly find it's very difficult to remember what the country is, despite blazing through it in your reviews.

Changing the image slightly helps force you to actually think about _why_ you know the image is depicting the country in question, rather than simply building automatic visual recall of a country name tied to a specific image.

You can of course achieve the same thing with just having a bunch of different "stylesheets" for your map or something, but that probably requires manual creation in order to not be a complete mess, and still probably isn't as good for building transferable knowledge. This approach on the other hand is much better at building transferable knowledge, but requires more frustration and a much longer time horizon to be able to usefully utilise the knowledge.

If you're, for example, using spaced repetition to learn a complicated foreign script, which can be written in numerous ways (numerous printed fonts, and handwriting styles), you have to be able to recognize and name these variants. That is well and good.

If we are training name to location for a set of countries, the front of the card is the name. You only need multiple versions of that if the country name has spelling or naming variations.

If you're going from map shape to naming the country, and you want to be able to do that in any orientation, then you benefit from training on map rotations. I'm guessing four rotations ought to be enough: upside-down and ninety degrees CW and CCW. That already quadruples the training set; there has to be some reasonable balance.