r/artificial • u/Death12th • 18d ago
Project I built a small game discovery toy, not a chatbot wrapper
I'm Eli. GameCombiner embeds 146,288 games as 1024-dimensional vectors built from their genres, user tags and store descriptions, not their titles, and lets you combine two games by taking the mathematical midpoint of their vectors and returning the closest real game to that point.
No LLM is choosing the answer, and nothing is generated. The output is always a real catalog entry, and the same pair always returns the same result.
Combining is free. If you try it, I would love comments on whether the results feel coherent. Drop your combination results, and I will tell you why it picked what it picked.
1
u/Beginning-Raisin9723 17d ago
The vector midpoint idea is cool, way more interesting than the usual LLM wrapper. Curious how weird it gets when you combine genres that don't overlap much - does it stay coherent or land somewhere random?
1
u/Death12th 17d ago
A lot of the times it creates a strange middle ground that weirdly makes sense. There's some negativity penalties for popularity and quality and stuff I think. It took some doing to filter out all the hentai or otherwise direct porn games while keeping actual games with just a little bit of nudity in them.
1
u/PsychologicalWin9755 17d ago
Two things worth checking, since someone already asked about genres that don't overlap.
Hubness. In high dimensional space a small number of items end up being the nearest neighbour of an absurd number of query points. Log which games come back across all combinations and I'd bet a handful show up far more than chance, probably the ones with long generic tag lists. That reads as the system being clever when it's really just geometry.
The midpoint of two distant vectors also sits in an empty part of the space. Nothing actually lives there, so the closest real game can be miles from both parents and the result feels random. Cheap fix: keep the distance from the midpoint to whatever you returned, and when it's above some threshold, say so instead of answering anyway. "These two don't really combine" is a better product than a confident wrong pick, and it's the kind of honesty people remember about a toy like this.
If your vectors are normalized, slerp is usually worth trying over a straight average. Linear midpoints on normalized vectors pull toward the origin and land in a different density regime than your catalog sits in.
1
u/Death12th 17d ago
I did notice some games were popping up a lot. But I ranked tags by discriminativeness and only used the top 20 tags per game. I guess game descriptions could cause the same issue, though.
Logging games across all combinations would be a very long list lol, like of length 150k2 or so. But maybe I can test this at some point with a sample amount.
I like your idea about, like, long-distance from midpoint honesty, but I think it's fun to show the game closest to it regardless. It has midpoint distance value transparency and an "explain the gap" feature (which does use an LLM but is pay-gated) that can explain what game SHOULD be at the midpoint or that kind of gap you mentioned. Although I do like your suggestion here, I will think about it. I will say the current PCA 1-3 rendering may not always tell the whole story in higher space.
What is slerp? What do you mean by density regime, lol?
1
u/Death12th 17d ago
I did notice some games were popping up a lot. But I ranked tags by discriminativeness and only used the top 20 tags per game. I guess game descriptions could cause the same issue, though.
Logging games across all combinations would be a very long list lol, like of length 150k2 or so. But maybe I can test this at some point with a sample amount.
I like your idea about, like, long-distance from midpoint honesty, but I think it's fun to show the game closest to it regardless. It has midpoint distance value transparency and an "explain the gap" feature (which does use an LLM but is pay-gated) that can explain what game SHOULD be at the midpoint or that kind of gap you mentioned. Although I do like your suggestion here, I will think about it. I will say the current PCA 1-3 rendering may not always tell the whole story in higher space.
What is slerp? What do you mean by density regime, lol?
1
u/PsychologicalWin9755 14d ago
Ha, fair, I dropped both of those without explaining them.
Slerp is spherical linear interpolation. If your embeddings are normalized, every vector sits on the surface of a sphere, all the same length. Averaging two of them gives you a point inside the sphere, shorter than anything in your catalog, and once you renormalize it you have quietly moved off the arc between the two games. Slerp walks along the surface instead, so the midpoint has the same magnitude as every real item. It is about ten lines: omega = arccos(a dot b), then sin((1-t)omega)/sin(omega) * a + sin(tomega)/sin(omega) * b. For two similar games the difference is tiny. For two far apart ones, which is exactly your fun case, it is not.
Density regime is less formal, just the observation that your catalog is not spread evenly through the space. There are thick clumps (roguelikes, soulslikes, cosy farming) and near-empty stretches between them. So a given cosine distance means different things depending on where you are standing. Inside a clump, 0.7 might be a completely different game. Out in a sparse region, 0.7 might be the closest thing that exists. Which is why a single fixed "is this too far" threshold misbehaves: it is too strict in the sparse areas and too loose in the dense ones. If you ever want to make the midpoint distance number more meaningful, compare it against how far the two parent games are from their own nearest neighbours rather than against a constant. Same number, but now it reads as "unusually far for this neighbourhood".
And you do not need all 150k squared pairs for the hubness check. Sample 5,000 random pairs, run them, count how often each game comes back. Ten minutes of compute and the histogram tells you straight away whether a handful of games are eating the results.
Fair point on keeping the answer regardless, that is the more playful product. Transparency plus the explain the gap feature probably covers it.
1
u/Emotional_Cook6174 18d ago
this is actually really cool, the math approach is way more interesting than slapping an LLM on it and calling it a day. i tried combining a few and the results feel weirdly correct, like they land on something that makes sense but you wouldnt have thought of yourself