google-deepmind / google-deepmind/open_spiel

Add game "Belote"

Open
#1,577 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
5.5k
Forks
1.2k
Avg merge
2d 8h
Merged PRs (30d)
4

Description

I recently started working on the implementation of "Belote" (https://en.wikipedia.org/wiki/Belote). Belote is a 4-player partnership trick-taking game similar to Bridge, featuring trump selection, imperfect information, and partnership play. Compared to Bridge, it uses a smaller 32-card deck and a much simpler bidding phase, making it a potentially useful complementary benchmark for imperfect-information algorithms while still capturing the core challenges of partnership coordination and trick-taking strategy.

My current python implementation follows the official French FFBelote rules, where players either pass or take the contract by selecting a trump suit. It is played by two competing partnerships that score points by winning tricks, with optional Belote/Rebelote support. The rules are available here: https://www.ffbelote.org/wp-content/uploads/2016/01/regles-officielles-de-la-Belote-27-01-2016.pdf.

Before I go any further, I wanted to check what you'd prefer. I assume a C++ implementation is the way to go, both for performance and to stay consistent with the rest of OpenSpiel. In that case, would you recommend keeping the Python implementation, or just removing it once the C++ version is ready to avoid maintaining two versions?

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing Python implementation and the official French FFBelote rules linked in the issue. Before implementation, resolve whether OpenSpiel should receive a C++ version, retain the Python version, or both. Done requires an agreed scope and a complete Belote implementation consistent with that decision.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
ai, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.