__ _____/ /_ ____ ____ _____ ___ __ / ___/ __ \/ __ \/ __ `/ __ `/ / / / (__ ) / / / /_/ / /_/ / /_/ / /_/ / /____/_/ /_/\____/\__, /\__, /\__, / /____//____//____/
shoggy
is a 6x6 board, fairy chess variant with spell cards, written in Emacs Lisp.
shoggy
was developed during the Spring Lisp Game Jam 2024.
- GNU Emacs 29.3 with SVG support (probably runs on older versions too)
- There are no third-party packages required.
;; Manual install
;; clone this repo:
;; git clone https://github.com/bcardoso/shoggy
(add-to-list 'load-path "/path/to/shoggy")
(require 'shoggy)
;; With use-package + straight.el
(use-package shoggy
:straight (shoggy :host github :repo "bcardoso/shoggy"
:files (:defaults "images" "sounds")
:build (:not compile))) ;; compiler won't be happy
M-x shoggy RET
You can adjust and toggle some game options in the main screen.
- No checks, no castling: when the
Sage
is captured, the game ends! - No en passant: pawns can move one or two squares in their first move (you can toggle this behavior), and that’s it.
- When a player is out of moves, it’s game over.
- In each turn, you can either move a piece or cast a spell: you are given a spell card after every capture.
- You can’t hold more than 3 cards at a time: cards are randomly discarded if your hand is full.
- All else is pretty much chess.
shoggy
has standard and non-standard pieces:
Name | Atom | Range | Value | Description |
---|---|---|---|---|
Pawn | P | 1 or 2 | 1 | A pawn |
Ferz | F | 1 | 2 | Advisor, like a 1 square bishop |
Wazir | W | 1 | 2 | Like a Rook, also moves 1 square |
Knight | N | 2,1 | 3 | 2,1 Leaper |
Rook | R | board | 5 | Same as a Rook |
Sage | S | 1 | 99 | Like a King, but wiser |
After each capture of an enemy’s piece, you earn a spell card. In your turn, you can either move a piece or cast a spell.
There are three types of spells (for now):
Spell | Description |
---|---|
BOOST | Boost a piece’s range (applies to Ferz or Wazir) |
PROMOTE | Promote a piece (Pawn -> Ferz/Wazir -> Knight -> Rook) |
DEMOTE | Demote an enemy piece (Rook -> Knight -> Ferz/Wazir -> Pawn) |
shoggy
has two engines to play against: dumbfish
and sanefish
.
- dumbfish
- tries to capture pieces or makes random moves
- sanefish
- tries to be a more reasonable fish (the default)
shoggy
was loosely inspired by Shogi, a Japanese chess variant (which you can play online at https://lishogi.org/).
At first I was planning to make a Minichess/Los Alamos chess variant, but I soon started to deviate into other directions.
I also had this idea a long time ago about adding playing cards into the game of chess. Perhaps in the future I’ll add some more spell cards to shoggy
. Also, check out Knightmare Chess, which I discovered during my research of the Game Jam.
So there are hundreds of chess variants and fairy chess pieces out there. This is my own :)
- List of chess variants
- Shogi variants
- Fairy chess piece
- List of fairy chess pieces
- Chess Programming Wiki
I’m thankful to the creators mentioned below for sharing their work under free and open-source licences.
- Piece art: Pixel Chess Pieces by Lucas312 (CC3.0)
- Splash screen: button select.wav by MakoFox (CC3.0)
- Board start: Board Start.mp3 by el_boss (CC0)
- Piece move: chess_move_on_alabaster.wav by mh2o (CC0)
- Piece capture: Piece Placement.mp3 by el_boss (CC0)
- Boost spell: Dialogue box.wav by MakoFox (CC3.0)
- Promote/Demote: Puzzle piece placed on board by el_boss (CC0)
- Card vanish: Shuffle cards by Breviceps (CC0)
- Game end: chess-piece-bounce.ogg by pbimal (CC0)