Poker and FOSS
The intersection of games with free and open-source software (FOSS) was the topic of a miniconf on the first day of this year's linux.conf.au, which was held January 13-17 in Gold Coast, Australia. As part of the miniconf, Bradley M. Kuhn gave a talk that was well outside of his normal conference-talk fare: the game of poker and its relationship to FOSS. It turns out that he did some side work on a FOSS-based poker site along the way, which failed by most measures, but there was also an element of success to the project. The time for a successful FOSS poker project likely has passed at this point, but there are some lessons to be learned from the journey.
The session began with a bit of a jarring sight; after failing to get his "100% free-software laptop" to talk to the projector and running into some other technical hurdle using Karen Sandler's 98% free-software laptop, he ended up presenting his slides from miniconf organizer Tim Nugent's macOS laptop. Kuhn's laptop only has VGA output, which is likely what the input to the projector also is, he said, but having two VGA-to-HDMI adapters in the path has increasingly become a problem for him at conferences. It is yet another example of the difficulty of using free software these days, which is a topic that he and Sandler would be giving a talk on later in the week.
He began with a disclaimer that his employer, Software Freedom Conservancy, had no opinions on nearly everything in the talk. The organization does share his opposition to proprietary software, but online poker and the industry around it are not in its purview, so all of the opinions he would be giving were strictly his own.
Some background
He introduced poker with a definition: "Poker is a gambling game of strategy played by people for money, using cards". The order of the terms in that definition is important, he said. In online poker, though, the "people" element is weakened because you can't see and directly interact with the other people you are playing with. So, unlike real-life poker, online poker is more about sociology than psychology; serious players track the trends of the player base as a whole, rather than trying to recognize the quirks of a particular person.
That means online poker is "really about money". In order to succeed, one has to develop some weird views of the value of money. Even in games with relatively small stakes, players can win or lose a few thousand dollars in a session; in games with "nosebleed stakes", a player could be up or down by a million dollars in an evening. The game is particularly popular in the US, UK, and Australia, he said; it is played online and in face-to-face games in people's homes or at casinos.
Poker became mainstream in the late 1990s, largely due to the "Late Night Poker" television series in the UK. There are a lot of different kinds of poker games, but the show focused on no-limit Texas hold 'em, which is the most "high drama of poker games" so it was well-suited to television. The show pioneered the use of a hole-card camera, so that viewers could see the two unseen cards each player was dealt. That innovation allowed viewers and commentators to analyze the choices that the players were making; without seeing the hole cards, watching other people play poker is about as interesting as "watching paint dry", Kuhn said.
He did not go into the rules of poker much in the talk; a lot of it is not really germane to his topic. The important things to note are that it is a zero-sum, partial-information game where players are playing against each other and not the house (as they are in most other gambling games). It is a game of skill—better players win more over time—but there is a huge element of chance. In order for the house to make any money (casinos are not charities after all), a small percentage of the bets are kept by the house, which is usually called the "rake".
All of that made poker an ideal candidate for online play. He put up a screen shot of a online poker game from 1999 and noted that all of today's poker sites have a similar look. It features a simple user interface that allows players to quickly and easily see the cards and make their bets. Most online poker players do not want sophisticated graphics and the like.
So poker is relatively easy to write an online system for; there are a few "tricky bits", but in comparison to, say, an online multiplayer role-playing game, there are only minimal timing or network-delay issues to handle. It is completely turn-based and the state of the game is easily maintained on the server side. In addition, the client does not need any secret information, so the ability to cheat by extracting secrets from the data sent back and forth is eliminated—or, at least, it should be. The main problem for these systems is scaling them to accommodate as many tables as there is demand for. Serious players want to play in multiple games at once and the house maximizes its revenue by the number of games it can run.
The "watershed moment" for online poker came in 2003 when Chris Moneymaker—his actual birth name, as has been documented—joined into a "satellite tournament" for the World Series of Poker (WSoP). Moneymaker paid $86 to enter the tournament and ended up winning the $10,000 entry into the main WSoP event in Las Vegas; he won that tournament and received $2.5 million for doing so. That created a huge boom in online poker, Kuhn said.
FOSS poker
It turns out that FOSS was both early and late to the online poker world; it was there first, but did not keep up as the market grew, Kuhn said. The rec.gambling.poker newsgroup spawned IRC poker, which was, naturally, played over Internet Relay Chat (IRC). It was not a real money game, but bragging rights within the newsgroup community were important. It eventually stopped being maintained and was gone by the time the other online poker sites started to arise.
Poker hands are ranked based on the rules of the specific type of game, so a "hand evaluator" is needed to determine which hands are better or worse than other hands. The first major hand evaluator and odds calculator was written in 1994 by Cliff Matthews and, perhaps surprisingly, was released under the GPL. It is a highly optimized, fast implementation with a compact hand representation that makes it quite popular to use where hand evaluation is needed.
The hand evaluator code is used by some television shows to display the win likelihood percentage for each of the hidden hands based on the common cards seen so far. He suspects that most of the online poker games use a fork of the code; the server is the only part of the system that needs a hand evaluator, so the forks do not need to be released. He sometimes wonders how things might have been different if a network-services copyleft license (i.e. Affero GPL) had been available and was used by the hand evaluator when it was created.
In 2003, a French company called Mekensleep tried to create the "ultimate poker game" with a 3D site where player avatars would do whizzy animated chip tricks and the like. It looked like a real poker game, but it "failed miserably". As it turned out, though, the company hired Kuhn's lifelong friend Loïc Dachary as its CTO.
Dachary wanted to hire Kuhn as a consultant to work on a free-software implementation of the online system for Mekensleep. But Kuhn was employed at the Free Software Foundation at the time and said he would work on it on weekends for free. He knew that Dachary was morally opposed to proprietary software, so he could trust that the resulting code would be under the GPL or Affero GPL. Kuhn worked on the project from 2003 until 2005, when it failed.
The reason that it failed, he said, was because no one wants poker to be like a regular video game. Poker is gambling and the goal for its players is to maximize the number of hands per hour that they play; for good players that equates to making more money and for bad players, "they get more gambling". No one wants to sit in front of a single game, no matter how exciting the animations of the players are; most people play at least two or three simultaneous games, while serious players will sometimes play up to 100 games at once. When he played online poker seriously, he would come home from work and start up nine games on a site with a lot of bad players that he had found.
Cheating scandals
FOSS lost a lot of opportunity by not jumping on the online poker bandwagon more seriously, especially once the scandals in that world started to come to light. For example, one system that was used by two different large sites had implemented a "god mode" in the (proprietary) client, where a special password entered into it would enable that person to see everyone else's cards. The transparency of FOSS could help some with that particular problem, though shady operators would certainly still have the ability to cheat in a variety of ways.
It took a while to discover the god-mode cheat. It essentially came down to the person who bought the password from the original authors using the knowledge in such a way that it became obvious they could see the cards. Poker players all over the world combined the hand records from their games and found that a certain player had impossibly low values for a particular poker statistic; even the best players lose roughly 60% of the time when they call the final bet, they just win enough on the other 40% to more than cover those losses. But the cheating player only lost 2% in those situations, which is effectively impossible unless you know the other people's cards.
In another scandal, Full Tilt Poker, which was co-founded by Chris Ferguson who had worked on IRC poker, co-mingled the money that it held for its customers (i.e. the balance in their accounts) with its operating funds. Its expenses started eating into the player money and it could not pay out the players. The company folded and the founders were charged with running a pyramid scheme.
More than just the game
The FOSS efforts tended to focus on making the game portion of the system better, but that's not really the important part, Kuhn said. Players want the UI to be essentially the same as that of the original sites from 1999 so they can play more and more games, which means there is not really much opportunity for innovation there.
The other piece of the puzzle is the infrastructure software to make the whole site work. That includes tasks like cashier services, player database management, customer relationship management, and collusion detection. It would be easy for, say, three friends to play at the same table and to share information over the phone or in some other way; other players at that table are at an extreme disadvantage, so it is important to be able to detect and prevent that kind of cheating. The proprietary sites do that, but there is no FOSS anti-collusion equivalent.
But there is a free-software implementation for an online poker game, called Pokersource, though the repository is not available yet. Kuhn got notified about his talk being accepted only around a week before the talk or else he would have had the repository up before the talk, he said. There are some outdated versions out there, but the current code is on his laptop and will be made available soon. It is an outgrowth of the effort by Mekensleep; after the project failed, Dachary built a consulting company called OutFlop around the existing code. That code does not have all of the infrastructure parts that would be needed to turn it into a real online poker site, however.
OutFlop got a large French social media site as its primary client. The site wanted to run poker using play money and award prizes to the winners. That allowed Dachary to pay a network of around ten contractors for part-time work on a FOSS code base, including Kuhn. For around three years, the contractors were working to improve the fully FOSS software, which is certainly something of a success. Not every FOSS project is going to last for generations like Linux, he said; Pokersource is kind of a small FOSS success story
The future
"There's no future for free-software online poker at this point", Kuhn said. In 2006, the US passed a law that prevented banks from processing gambling transactions, which made it much harder for players to deposit money and withdraw winnings from the sites. The US Department of Justice warned all of the sites operating in the US to shut down at that time, but only one complied. Then in 2011, on what is called "Black Friday" in poker circles, all of the online poker sites operating in the US were shut down by the government. The pyramid scheme at Full Tilt Poker came to light within weeks after that as players tried to recover their money.
After the shutdown, one site made a deal with the government to take over the debt that Full Tilt had, pay out the players, and pay all of the fines, with the agreement that it could continue operating as individual US states made online poker legal in their jurisdictions. That company is now a juggernaut that would be very difficult for a FOSS project to overcome, even if the investment into the needed infrastructure code was made.
Play money sites are not really a likely possibility either, he thinks. Even though Pokersource could be used to create such a site, there does not seem to be a lot of interest in doing so. For one thing, Zynga put a play money poker game on Facebook early on and pretty much all of the players who might be interested in playing for prizes or bragging rights are playing there. Beyond that, poker players tend to lose interest if there is no money involved, so it would be hard to attract them to running and maintaining such a site.
In answer to a question from Nugent, Kuhn said that he thought there might be room for FOSS games in the wider gaming world. He does not have a lot of knowledge about gaming, but he believes that poker has quirks that make it hard for FOSS to find a way in; it is so rigidly specified, has no room for UI innovation, and is so money-focused that it may just not be a good fit. A new game type or interaction mechanism could perhaps come out of the FOSS world and have a lot of success.
It was an engaging talk, full of anecdotes and tidbits about online poker, that will presumably be available in video form before too long. There was a lot more that he covered in the talk and in the Q&A session; interested readers may want to track the video down when it is available in the LCA 2020 channel on YouTube.
[I would like to thank LWN's travel sponsor, the Linux Foundation, for
travel assistance to Gold Coast for linux.conf.au.]
| Index entries for this article | |
|---|---|
| Conference | linux.conf.au/2020 |
Posted Jan 15, 2020 23:06 UTC (Wed)
by bkuhn (subscriber, #58642)
[Link] (2 responses)
As mentioned, I do have a git-svn repository of the last SVN checkout that I was working on, so for lack of a better place to upload it quickly, I'll try to put that up on GitHub (sigh) in the next few days and will post here when I do.
Posted Jan 16, 2020 7:28 UTC (Thu)
by fwiesweg (guest, #116364)
[Link]
Posted Jan 17, 2020 12:02 UTC (Fri)
by sml (guest, #75391)
[Link]
Rather than Github, you might want to look at https://sourcehut.org/ which is licensed under the AGPL.
Posted Jan 17, 2020 15:21 UTC (Fri)
by imMute (guest, #96323)
[Link] (1 responses)
I'm betting there weren't actually two VGA-to-HDMI adapters used; instead it would be a VGA-to-HDMI adapter and an HDMI-to-VGA adapter. The distinction *matters*. DVI-to-HDMI and HDMI-to-DVI is the only conversion that is truly passive (ie, a physical adapter would work with the data passing in either direction). Any other conversion (between VGA, DVI/HDMI, and DP) is an active conversion and I've personally only ever seen adapters that are uni-directional. I'm being pedantic here because I work at company that does video processing and we've been bitten by this so many times. Here's what we've found:
And don't even get me started about DP++ output ports.
Posted Jan 21, 2020 23:26 UTC (Tue)
by ewen (subscriber, #4772)
[Link]
No VGA involved, except in a few cases on the presenters laptop. For which there was a canned solution sitting in the LCA2020 AV room, a VGA to HDMI scaler, which Bradley did use later in the week.
Most modern venues, including more recently fitted out universities, have either HDMI or HD-SDI input to their projectors. Some of the older projectors will have VGA and HDMI options (like, eg, older televisions), but VGA is increasingly uncommon as an input on venue projectors. And even where VGA exists as an input into the projection equipment, it's increasingly not brought out to the front of the room, as VGA is also not great with long cable runs. Higher end projectors are typically fed via HD-SDI though, because HDMI is a short (cable) run consumer standard, and doesn't deal well with the tens of metres of cable to a large venue projector; HD-SDI is a "broadcast" standard *designed* to keep video quality over longer cable runs. So HDMI to HD-SDI convertor boxes are increasingly common in higher end venues, as close to the input (ie, presenter) as possible.
The days of analogue fed projectors (eg, VGA) in venues are basically over. And realistically were nearly over 5+ years ago when the Linux.Conf.Au capture system switched from VGA input to HDMI input; this isn't a new change. (VGA might still be reasonably common as an option on lower end home/desktop projectors. But even then it wouldn't surprise me to learn a bunch of them are HDMI only now, and I'd be surprised to find even a consumer one now, new, that was VGA input only.)
Ewen
Posted Jan 17, 2020 15:50 UTC (Fri)
by lamby (subscriber, #42621)
[Link]
Posted Jan 29, 2021 20:59 UTC (Fri)
by FilippWillson (guest, #144357)
[Link]
Poker and FOSS
Poker and FOSS
Poker and FOSS
Poker and FOSS
- DP-to-VGA, DP-to-HDMI/DVI: these are very reliable; they're typically very high volume and based on ASICs.
- HDMI-to-VGA: pretty reliable as well; high volume
- VGA-to-HDMI, VGA-to-DP: never actually seen one of these (didn't need it)
- HDMI-to-DP: this is the one that frustrated us the most. There is not nearly the selection as the inverse (DP-to-HDMI) and the reliability is a crapshoot -- often depending on the lot number or firmware version of the device.
Poker and FOSS
Poker and FOSS
Poker and FOSS
