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 256 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

…e more queen upgrades in pool than majors though. they shouldn't count for anything if i fix that one function (it might already work)
i am not going to actually support this
@chesslogic
Copy link
Contributor Author

All review comments are resolved. Tests are passing. I am going to review recent player and historical maintainer feedback one more time.

I plan to move this PR from draft state to review in the near to immediate future.

I am aware of some client issues (in particular that DeathLink doesn't function), but those issues would not impact the generator implementation.

@chesslogic chesslogic marked this pull request as ready for review November 17, 2024 22:48
@Exempt-Medic Exempt-Medic added the waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. label Nov 18, 2024
Copy link
Member

@Exempt-Medic Exempt-Medic left a comment

Choose a reason for hiding this comment

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

Some initial feedback/review, I will open a PR with some requested changes

worlds/checksmate/docs/checksmate_en.md Outdated Show resolved Hide resolved
worlds/checksmate/docs/checksmate_en.md Outdated Show resolved Hide resolved
worlds/checksmate/docs/checksmate-example.yaml Outdated Show resolved Hide resolved
worlds/checksmate/Presets.py Outdated Show resolved Hide resolved
worlds/checksmate/test/TestPieceLimits.py Outdated Show resolved Hide resolved
worlds/checksmate/Options.py Outdated Show resolved Hide resolved
worlds/checksmate/Options.py Show resolved Hide resolved
worlds/checksmate/Locations.py Outdated Show resolved Hide resolved
worlds/checksmate/Rules.py Outdated Show resolved Hide resolved
worlds/checksmate/Rules.py Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: core Issues/PRs that touch core and may need additional validation. 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