Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ChecksMate: implement new game #2507

Open
wants to merge 318 commits into
base: main
Choose a base branch
from

Conversation

chesslogic
Copy link
Contributor

@chesslogic chesslogic commented Nov 25, 2023

What is this fixing or adding?

ChecksMate is a client for Chess played against a computer-controlled engine. Unique features include pocket pieces, fairy pieces, and random starting positions.

The client is available here: https://github.com/chesslogic/chessv

How was this tested?

Initial testing

When putting this up for draft, the Archipelago community had never played this in any Unsupported multiworld hosted on the Discord server.

Some automated tests are available in the repository regarding some specific settings.

The author has played ChecksMate in 2 "mid-sized" multiworlds (6-15 games), 1 "large-ish" multiworld (30-40 games), and one or two dozen XS multiworlds (2-5 games). The non-XS multiworlds were async, and the XS multiworlds were sync.

Many of these multiworlds involved multiple copies of ChecksMate. ChecksFinder was common to many XS multiworlds.

Community testing

Since then, in addition to recurring off-server multiworlds, Archipelago players from the Discord have participated in 2 multiworlds involving over 50% copies of ChecksMate as well as dozens of asyncs accepting unsupported apworlds. Even players new to chess have been able to successfully complete their game on sufficiently relaxed settings.

The automated tests have been further honed.

If this makes graphical changes, please attach screenshots.

Please be advised that no ChecksMate client is expected to be added to the Archipelago repository. The author provides releases of a ChecksMate client on GitHub, but the client specification may also be implemented by other Chess tools supporting arbitrary fairy chess formats.

The following images have descriptive alt text.

A Windows Forms client for Archipelago showing a successful connection and adding the DeathLink tag
The home screen of the ChessV client with a Connect to AP button added to the bottom left corner
A list of games in the ChessV index where Archipelago Multiworld is highlighted
An opening knight move by a White player facing several unusual chess pieces of a Black player who has more pieces set aside
A victory screen involving a Queen and a fairy chess piece which appears to be capable of moving like a knight
A cursor holding a ball-shaped piece while a diagonal move option is highlighted
A description of a Berolina Pawn, which can move two spaces diagonally or capture forward
A player with two kings and many Black fairy chess pieces against a standard army
A player with no obvious king and only two pieces and two pawns against a White player making an initial pawn move

@ThePhar ThePhar added the is: new game Pull requests for implementing new games into Archipelago. label Nov 25, 2023
Copy link
Collaborator

@Silvris Silvris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of major things, mostly needing to swap to the options API when 0.4.4 releases as that will greatly reduce the complexity of this PR.

worlds/checksmate/Options.py Outdated Show resolved Hide resolved
worlds/checksmate/Rules.py Outdated Show resolved Hide resolved
worlds/checksmate/Rules.py Outdated Show resolved Hide resolved
worlds/checksmate/Rules.py Outdated Show resolved Hide resolved
worlds/checksmate/Rules.py Outdated Show resolved Hide resolved
worlds/checksmate/Options.py Outdated Show resolved Hide resolved
worlds/checksmate/__init__.py Outdated Show resolved Hide resolved
worlds/checksmate/__init__.py Outdated Show resolved Hide resolved
worlds/checksmate/__init__.py Outdated Show resolved Hide resolved
worlds/checksmate/__init__.py Outdated Show resolved Hide resolved
@chesslogic
Copy link
Contributor Author

Thanks for the review. The comments helped me a lot with style and even performance, and I continue to appreciate your advice.

I expect to leave this in draft until the game is involved in an Unsupported multiworld on the Discord, at which point I will be glad to receive a thorough review.

@qwint qwint removed the affects: core Issues/PRs that touch core and may need additional validation. label Jan 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: new game Pull requests for implementing new games into Archipelago. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants