Random numbers are a fickle mistress: Improving HashtagLove’s Recommendation Algorithm
Improving HashtagLove’s Recommendation Algorithm
When I brought HashtagLove to a local meetup, I got a valuable opportunity to observe new players interacting with the game for the first time. While watching them play, I noticed something interesting—and concerning. Many players seemed to get stuck in a loop, picking tweets almost at random. Of course, this made sense: they had no prior knowledge of the system and didn’t necessarily have a strong preference for one of the three main topics right away.
This observation led me to analyze the underlying recommendation algorithm. Was the game guiding players toward a satisfying outcome, or was it leaving them aimless? To answer this, I ran a simulation to determine how likely it was for a completely random player to reach the endgame.
Analyzing the Old Algorithm
To get a concrete sense of the issue, I reimplemented the recommendation logic in Jupyter and simulated 10,000 playthroughs where players chose posts entirely at random. The results were shocking: only 3% of these random players managed to “finish” the game by consistently comboing one topic.
Clearly, something needed to change. If players had no guidance, they were unlikely to progress toward any meaningful endgame state. At the same time, I didn’t want to make the game feel too forced or railroaded—I still wanted players to have the freedom to explore different perspectives.
Defining the Ideal Player Experience
Before implementing a fix, I took a step back and outlined the core requirements for a better recommendation system:
Must not feel too railroaded or forced
Should allow a random player to reach an endgame state in ~35 steps (~20% chance)
Endgame means achieving a combo count of 10+ in any main topic (except neutral posts)
Should allow players to switch to another path later in the game
Should be flexible enough to support more than three main paths in the future
With this framework in mind, I began experimenting with changes.
A New Approach to Recommendations
The major change I introduced was shifting the recommendation system from purely random chance to a history-aware approach. Instead of purely random post selection, the algorithm now always includes at least one suggestion from the color of the last selected post. This simple tweak ensures that players are subtly encouraged toward a particular path without being locked into it.
Additionally, I revamped the scoring system. The old design used a slow-ramping Fibonacci scale, which made progression feel sluggish. I replaced it with a simple count-based system, where the number of combos directly reflects progress. This change makes it clearer how players are building momentum toward an ending.
The Results: A More Engaging Experience
After implementing these changes, I reran my 10,000-game simulation. The results? The probability of a random player reaching the endgame within 35 steps jumped from 3% to 30%. This means that even players who start without a clear direction are much more likely to have a satisfying playthrough while still allowing for exploration and strategic shifts.
This update achieves a better balance between guidance and freedom. Players are nudged toward a conclusion, but they still have room to explore alternative paths.
Try the Update!
The improved recommendation system is now live in HashtagLove! If you’d like to experience the updated version, check it out here:
🎮 Play HashtagLove: https://thenerdautomaton.itch.io/hashtaglove
I’d love to hear your thoughts—does the new system feel more intuitive? Let me know your feedback!
#GGJ2025 #GameDev #IndieGames #ProceduralDesign #HashtagLove
Files
Get HashtagLove
HashtagLove
Echochamber for your heartbeat
Status | Released |
Author | TheNerdAutomaton |
Genre | Simulation, Educational |
Tags | artgame, ctrlaltdisinfo, experience, ggj25, Global Game Jam, Internet, Short, storygame |
Languages | English |
More posts
- Font fun24 days ago
- Avatar and BGM27 days ago
- Some Polishing, thats long overdue34 days ago
- Post GGJ Update for Ctrl+Alt+Disinfo68 days ago
Leave a comment
Log in with itch.io to leave a comment.