I hope this is okay to share here! I’ve always struggled with those kanji that look almost identical (you know the ones…), so I built a free game called Kanji Match to help myself—and hopefully others—get better at telling them apart.
Kanji Match connects directly to your WaniKani account and uses your actual kanji progress, so you’re always practicing what’s relevant to you. Here is a showcase:
Features:
Focuses on visually similar kanji that are easy to mix up
Integrates with your WaniKani account (just need your API key)
Uses SRS to time reviews for better retention
Matching gameplay with audio/visual feedback and streak rewards
Detailed session stats and performance summaries
You can grab pre-built versions for Windows, macOS, and Linux, or run it from source with LÖVE2D.
I’d really appreciate any feedback, bug reports, or feature ideas from fellow WKers! If you give it a try, let me know how it goes or if you run into any issues. Thanks, and happy kanji matching!
Updates:
Version 1.3.0 is out, see the changes here. Thanks for the feedback everyone
Yeah me too I’m not sure if the app will actually solve that issue, but I’m having a blast playing with it. I’ll also try writing more kanjis down with pen and paper to reinforce them. If you have any feedback or if you encounter any problems running the app, please let me know!
Oh my I love this!
I study japanese pretty casually, but I think this could come in a lot of help for me and for other people
Or… at least I really like the sequence puzzle, I think it’s very neat! B3
If you haven’t seen this, maybe you could maybe get some inspiration from [Userscript] Niai 似合い Visually Similar Kanji ? As this also tackles the same thing you are currently, albeit in a different manner!
I don’t know, maybe there’s a wheal you don’t have to reinvent by looking at this
I’ve come across this before, but I haven’t had a chance to try it out yet. I’m pretty tech-savvy, but I never really bothered to look into the user scripts for some reason I guess what I could do is add more data sources or switch to a different data source (like the one from Lars Yencken) for the visually similar kanjis. I’ve already created an issue on GitHub. I’ll gather some feedback (hopefully more will come in) and then I’ll start working on the next version
Interesting!
I would recommend to try out user scripts, even at your level, as they can be really cool and elevate the experience, at least for me!
If you’re ever curious, I’d advice you to start with jprspereira’s recommendations; I found it to be a very good starting point!
I am not very tech savvy, so all I can say is good luck with making the code and I hope I can help in any way I can!
Okay the concept what you currently have is already extremely cool !
What would be missing for me to integrate for real regularly into my workflow would be:
ability to load additional kanji known though a file (like json or csv) or another input, WK kanjis do not usually pose me problem, the high levels kanji added through reading though… (maybe designing a standard format around what jpdb exports or WK item inspector produce) my WK level does not reflect my known kanjis and WK has the easy stuff by design…
ability to control the concepts showns through the same data mapping, i like having the full jisho list.
I am a software developer so i am aware that this may either be a walk in the park or really hard and long to implement.
These are NOT a mandatory request, the app is already plenty cool as it is
Leaving my previous answer but I played more with it…
I’m taking back what I said. This is already cool enough, i’m adding it to my tools.
Quick params feedback it’s a lot more engaging for me with sessions of at least 10/15 groups, 5 is too low to get in the mood.
…
…
…
I’m gonna play it more
When you have done all available reviews you still see the ‘Reviews 5’ button. But there are no more reviews to be done. At that point you can only ‘X’ out immediately get the review session complete screen with 0 lessons done.
I get the idea of sound and confetti effects. But they are way over the top. An option to tone them down would be much appreciated as they get grating very fast.
My no.1 request would be an option to have to type in the answer instead of ’ match the boxes’ to really do targeted learning. This makes it too easy.
At first had issues with parsing the WK key. I think it had an extra return in front. Might benefit from trimming those kinds of characters.
Quick params feedback it’s a lot more engaging for me with sessions of at least 10/15 groups, 5 is too low to get in the mood.
I’m not sure if this is clear from the instructions or description, but you can change the number of reviews or lessons per session in the settings. I can also increase the default value to 10. I think 10 is a very common number for things like this, maybe 5 was a bit too low
ability to control the concepts showns through the same data mapping, i like having the full jisho list
I think you’re referring to the meanings, right? So that users can provide the meanings to kanjis themselves in a standardized format?
ability to load additional kanji known though a file (like json or csv) or another input, WK kanjis do not usually pose me problem, the high levels kanji added through reading though… (maybe designing a standard format around what jpdb exports or WK item inspector produce) my WK level does not reflect my known kanjis and WK has the easy stuff by design…
This idea is quite similar to what @Italy suggested, but even more tailored to the user’s needs. I like the concept, but I’m concerned that it might disrupt the main logic of the app or game. Currently, similar kanji groups are loaded based on the user’s current level. I need to figure out how to implement this feature without causing any major issues
I am a software developer so i am aware that this may either be a walk in the park or really hard and long to implement.
Ah nice! I mean the code is available on GitHub, you can also contribute if you like
When you have done all available reviews you still see the ‘Reviews 5’ button. But there are no more reviews to be done. At that point you can only ‘X’ out immediately get the review session complete screen with 0 lessons done.
Ups, I just realized I did not cover this case . I’ll add that to the next update
I get the idea of sound and confetti effects. But they are way over the top. An option to tone them down would be much appreciated as they get grating very fast.
I can add options to deactivate sound and effects or maybe some sliders to tone the effects down
My no.1 request would be an option to have to type in the answer instead of ’ match the boxes’ to really do targeted learning. This makes it too easy.
Hmm, can you elaborate a bit more about this? I also prefer to type in answers usually, but in this context / type of game, I don’t see a good way to add this. What might be possible is a game mode where you see all similar kanjis, you click on each one, and have to type in the meaning. If it’s correct, the kanjis will be removed from the list; if not, you have to try again (or so)
At first had issues with parsing the WK key. I think it had an extra return in front. Might benefit from trimming those kinds of characters.
I can try to remove all unnecessary characters (spaces, returns, etc.) from the string. Tbh I just used copy/paste (this works, maybe I should document that somewhere ) so I did not fully test the functionality
Both of your suggestions will definitely affect some main parts of the app / game. I could ignore the user level for custom-added kanjis, I guess, but the main issue is that this kind of change will change the focus of the app from Wanikani integration to a user / custom integration, so I need to decide what is the optional part, the Wanikani integration or the user / custom integration. As I build the app only with the Wanikani integration in mind, doing this kind of change is a bit more disruptive
I haven’t played with lua in the last decade but i’ll go take a look (not today), it’s just merging data should be easy right ? Right ?
This will be a bit bigger task, I think. A standardized input would need to be defined, a way to import that data at runtime, and then especially the merge of the data with the Wanikani data + the logic handling inside the game mode (maybe no adjustments are needed)
Thanks for providing the link, this looks cool! So it goes a bit in the direction I was thinking. Would you then prefer seeing the Kanji and typing in the meaning, or vice versa?
Don’t bother with any of this I’ll do the feature myself if I can, i think the WK integration as a first input is better because it takes more involved users to go the other route.
Simple is better for adoption and it is plenty useful as it is.
For the group balance I think 50 may be a good start ? Session that are between 5 to 15 min are often a sweet spot for cognitive tasks.
Don’t bother with any of this I’ll do the feature myself if I can, i think the WK integration as a first input is better because it takes more involved users to go the other route.
I’ve created some issues on GitHub. As mentioned, feel free to fork it and play around with the code base. If you run into issues or have questions about the code, let me know!
For the group balance I think 50 may be a good start ? Session that are between 5 to 15 min are often a sweet spot for cognitive tasks.
Maybe. I also get through this rather fast, but I’m not sure if the average user has the same experience. 50 could maybe be a bit too high for some users. I’ll definitely raise the default number, but I’m not sure to which number yet