[Web] YOKKI — A Ranked Multiplayer game w/ Matchmaking: Race, Steal, Sprint, Infinite

:warning: This is a third-party app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

:warning: Disclosure: Even though a good chunk of this system’s backend was written by me, the graphics and music are AI-generated. Please keep this in mind if you prefer to avoid AI-generated content.

Hi everyone! :crabigator:

I’m finally really happy to finally share a project I’ve been working on for the past few months:

YOKKI

YOKKI is a WaniKani companion built around the idea of making studying and doing reviews feel a little more like playing a game. It connects to your WaniKani account and includes both multiplayer and solo modes, along with progression, unlockables, and a few other things to work toward while studying.

The main functions are listed below:

  • Ranked Multiplayer & Matchmaking — Compete against other WaniKani learners in skill-based matches and climb through the ranks in Steal and Race modes.

  • Sprint Mode — Race through a short set of your own pending reviews and track how your speed improves over time, without turning study into a high-pressure experience.

  • Optional WaniKani Review Submission — Decide whether your answers should actually be submitted to WaniKani whenever the subjects are eligible for review.

  • Infinite / Mugen Mode — Practice at your own pace in a relaxed, endless session without competitive pressure.

  • Toshokan Study Mode — Study lessons and subjects before reviewing them, with a dedicated space focused on learning rather than competition.

  • Custom Rooms — Create or join rooms for Race and Steal, play with friends, or practice against CPU opponents.

  • Quick Match — Jump directly into a multiplayer match without having to browse or configure a room.

  • Ranks & Competitive Progression — Earn ranks and league-style badges as you play multiplayer matches.

  • Achievements & Titles — Unlock achievements for milestones such as ranked wins, fast Sprint times, and other accomplishments.

  • Profile Seals & Badges — Display achievements and progression visually on your profile.

  • Customization — Personalize your profile with avatars, frames, kanji fonts, colors, stamps, and other items.

  • In-Game Shop — Earn and spend virtual currency on rewards without affecting gameplay.

There are currently two main multiplayer modes: Steal and Race. Each has its own Honor rating system (based on Glicko-2), which changes as you play against other users in ranked matches.

MULTIPLAYER


:crossed_swords: Steal

Steal is a 1v1 mode where both players compete for the highest score using the same shared deck of WaniKani subjects.

A subject appears for both players at the same time, and the first player to answer correctly gets the point. At the end of the match, whoever has the most points wins.

Since the game needs to build a deck containing subjects that both players have unlocked, Steal requires at least 50 started items on WaniKani.

:chequered_flag: Race

Race works a little differently. Instead of sharing a deck, each player gets their own set of subjects based on the vocabulary they have unlocked in WaniKani.

The goal is simple: finish your entire deck correctly before your opponent does.

So while Steal is more about reacting to the same questions and fighting over points, Race is about getting through your own knowledge as quickly and accurately as possible. Race requires to have at least 30 started items to be able to build your deck.

SOLO

:crescent_moon: Mugen (無限)

For something a lot more relaxed, there’s Mugen, a solo mode designed for working through your pending reviews at your own pace.

There’s no timer and no opponent—you can just keep reviewing for as long as you want. While doing so, you can also earn ¥, YOKKI’s in-game currency, which can be used to unlock rewards.

:books: Toshokan

A focused study mode where you can learn WaniKani subjects at your own pace, without timers or competition. Studying items also earns you in-game currency that you can spend on cosmetics and other items in the shop.

:stopwatch: Sprint

Sprint is inspired by the Sprint mode in Tetris. It’s a solo time trial where the goal is to correctly complete 20 WaniKani subjects as quickly as you can and try to improve your personal best.

Players are placed into a Sprint League based on their WaniKani level, so the subjects you encounter are appropriate for where you currently are in your studies.

One thing I wanted to avoid with Sprint was making it stressful. It’s timed, but it’s intended more as a fun way to measure your own improvement than something that pressures you to perform.

Because of that, you can always choose whether or not to submit the results as WaniKani reviews before starting the match for all modes, as long as the subjects are currently pending for review.

:artist_palette: Progression & customization

As you play and study, you can earn currency and unlock cosmetic items to personalize your profile. I’m currently working with things like avatars, profile frames, stamps, colors, and different kanji styles/fonts, more things will be added over time.

Some rewards can be purchased with the currency you earn by playing, while others are tied to progression or achievements.

The overall idea is that your profile slowly becomes a reflection of your journey through WaniKani.

Currently, the following areas are being worked on:

  • There is a greater focus on security and anti-cheat systems, especially around rankings and 1v1 matches.

  • Ranked matches are also being rebalanced in terms of how much ¥ players can earn. The plan is to use a system where the reward is proportional to the rating change calculated through Glicko-2.

  • In Sprint mode, there is currently a locked Seasonal Deck option. If the project continues to go well, the plan is to select a specific set of items based on the current season of the year (let’s say Halloween vocabulary during october :jack_o_lantern: :ghost:). This would allow players to compete against their own best times on the same fixed set while also giving them a chance to study kanji they may not have encountered yet.

This is a project I’ve become really passionate about, and I’ve put a lot of time into it over the past few days. I’d really appreciate any feedback on things that could be improved.

The project is still in active development, so you can expect more features or adjustments.

I’ve had a lot of fun building this so far, and I’m really excited to finally let other people see it. :grinning_face_with_smiling_eyes::cherry_blossom:

Thank you! :crabigator:

This looks really interesting! However I have some questions about how it works:

  • Do items to review in ranked matches get exclusively pulled from the items you have to currently review, or does it include also items that because of the SRS intervals you shouldn’t review yet? Won’t that mess with the SRS timings if you then submit the answers to Wanikani?
  • Do the decks that get created for challenges also include burned items?
  • I like the “match” idea of competing over who can give the fastest solution to a vocabulary term, but let’s say a user in the level 40/50 range gets matched with someone in the 1/10 level range. To create a deck with items common to both users, they will have to be items in the 1/10 range, that the level 40/50 user has (probably) long burned. What does the platform do in this case?

I have not yet tested it but it looks interesting and will play around with it a bit when I can!

The game only commits your pending reviews to WaniKani when you enable the toggle in the Settings section AND the current game subject is in your reviews queue.

In the Race mode, when the toggle is on, the deck is built by giving complete priority to your pending reviews (players don’t need to share started items). If you don’t have enough pending reviews to fill the match deck, the remaining subjects are randomly chosen from items you’ve started (started_at != null). Items outside your current review queue are not modified, no request is send to the /reviews endpoint for those items.

In Steal, both players must have started every subject in the deck. The deck is built from the intersection of the subjects both players have started, so there’s a much lower chance of getting items from your own review queue:(

The situation in your example is the biggest balance issue we would need to address .-. One possible solution would be to use the league system already used in the Sprint mode to build the deck (one league up every 5 wk levels).

That would address the long-burn issue, but it would also mean that a player at a considerably lower wk level couldn’t play ranked Steal against a higher-level player, regardless of their actual skill. For example, a level 25 player might answer shared subjects faster than a level 40 player, or vice versa. Those two players could still play Steal together in a casual room, where the league restriction wouldn’t apply.

That approach doesn’t sound bad to me, but I’d love to hear your thoughts or any other suggestions :slight_smile:

This is intersting and fun ! :smiley:

The background music and UI is also good. One thing that does confuse me is this -

I thought this was a button but it wasn’t :slightly_smiling_face: Same thing happened in the sprint also…there was also something similar (though I can’t remember what it was). I am just a bit confused so wanted to ask (in case I don’t know something that may be common sense for everyone :laughing: )

The game is good though, would be better if more players joined as always playing with CPU isn’t super fun though It also serves as good practice so not gonna complaint

Thank you for trying it out! I think Sprint is worth playing, especially now that there aren’t many registered users to play with :sweat_smile: The goal is to fill out the ranking lists for each WK league. A setting has been added that lets you select your home country.

Regarding the label that looks like a button, I agree, I removed the pill style from that label. I think it makes it less confusing and makes it look purely informational:

Also, a new deck customization setting was added to 無限 mode. You can now decide the priority given to each type of subject in your deck :crabigator::

This is great, Thank you ! :hugs:

I did try spring though…Its good though it broke some of my confidence :melting_face: