Edit: It was this - http://www.redistrictinggame.org/game.php
It looks like someone has made one here though: http://gametheorytest.com/gerry/game/
But those maps do describe reality.
If one candidate in a district gets 100,000 votes and another 85,000 votes, both would go to congress and each would get that many vote-points. Rather than number of representative votes, voting outcomes would be determined by who has more vote-points. That way if you have three similarly sized districts, District X and District Y where 40% want party A and 60% want party B, and then district Z where you have 90% want party A and only 10% want party B, you'd still end up with .4/3+.4/3+.9/3 (56%) votes for party A rather than 67% for party B, regardless of how you redistrict. Plus you'd have asymmetric interests where opposing parties would represent the same districts so they would be incentivized to work together, and also some representation for minority regional parties who may align with one party on some issues and another on others.
To limit budgets, I guess there would have to be a maximum number of candidates per district, maybe filtering out anyone who does not have at least 10% of the vote (or some other number determined by some reasonable formula), an option for candidates who don't meet the threshold to reallocate their vote-points to someone who did (or a ranked choice voting system that keeps going until everyone remaining has the minimum vote threshold), and maybe no matter what you'd at least send two candidates unless literally only one candidate had votes.
This would also have a side effect of incentivizing more people to vote and allow people to vote with a bit less strategy and more earnestness.