Skip to content

Latest commit

ย 

History

449 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Evolution Chess

Evolution Chess is a chess variant where pieces gain XP and evolve into new units after captures


Important

๐ŸŒ Languages
๐Ÿ‡บ๐Ÿ‡ธ(en) | ๐Ÿ‡ท๐Ÿ‡บ(ru) | ๐Ÿ‡บ๐Ÿ‡ฆ(ua)| ๐Ÿ‡จ๐Ÿ‡ณ(zh)


Contents


๐ŸŽฎ How to Play

You can play Evolution Chess in two ways:
  1. ๐ŸŒ Play online
  2. ๐Ÿ’ป Download repository and run on your own PC

Note

You can play against your friends or AI


๐Ÿ™ Game Example

๐Ÿ“ธ More screenshots: here


๐ŸŒˆ How Pieces Evolve

When a piece captures another piece, it gains experience and can evolve into a new piece

Evolution tree


๐Ÿ—‚ How to Create Mods

1. Create a mod folder

Create a folder with .json file

2. Add images

If you use custom images:

  • upload them to the /images folder inside your mod (recommended)
  • or place them directly in the mod folder

3. Set symbols for pieces

"SYMBOLS": {
  "pawn": "pawn",
  "king": "king",
  "rook": "rook",
  "knight": "knight",
  "bishop": "bishop",
  "queen": "queen",
  "spearman": "spearman",
  "star": "star"
},

4. Describe pieces information

"PIECE_TYPES": {
  "pawn": { 
    "name": "spearman", 
    "symbol": "spearman", 
    "desc": "pawn that attacks the square directly ahead",
    "role": "pawn", 
    "tier": 1, 
    "xpReq": 1,
    "special": "spear_attack"
  }
}
  • name โ€” display name of the piece
  • symbol โ€” symbol defined in SYMBOLS
  • desc โ€” description of the piece
  • role โ€” special role:
    • king โ€” can castle, losing all kings means defeat
    • pawn โ€” can promote, en passant enabled
    • rook โ€” participates in castling
  • tier โ€” evolution tier
  • xpReq โ€” XP required to evolve (-1 = no evolution)
  • special - special ability
    • spear_attack - attack square ahead
    • revenge - destroy the piece that captured it
    • teleport - teleport to every square without piece on it
    • explode_n - destroy everything within radius n, when this piece captured or capture
    • detonate_n - destroy everything within radius n, when this piece capture or captured, except pawns and kings
    • explode_all_n - destroy everything within radius n, when this piece captured or capture
    • range_capture - capture without moving
    • swap_ally - swap places with same color piece
  • ghost - can go through n pieces (you must set n)
  • immortal - cannot be captured

Warning

You should rewrite all standard pieces logic

Tip

Standard pieces logic is already described in test mode you can use it

5. Write down evolution tree

"EVOLUTION_TREE": {
  "pawn": ["star"],
  "mutant": [],
  "king": [],
  "rook": [],
  "knight": [],
  "bishop": [],
  "queen": []
}

Note

In this evolution tree pawn can evolve into star

Final .json structure

{
  "SYMBOLS": {...},
  "PIECE_TYPES": {...},
  "EVOLUTION_TREE": {...}
}

Final mod structure

mod/
 โ”œโ”€โ”€ images/
 โ””โ”€โ”€ mod.json

Note

If you still don't understand how to create mods or want to see a specific example you can check
mod example


๐Ÿงญ Roadmap

  • Playable alpha
  • 2 layers of evolution
  • Mods support
  • Adaptive engine
  • Better UI for phones
  • Better engine
  • Better control from phone
  • Multiplayer website

โš ๏ธ Known Limitations

  • Visual bugs may appear
  • Control is not polished

โš™๏ธ Engine

The game uses a custom-built engine

The engine is designed to support custom pieces and evolution mechanics

The engine plays at approximately 1300 ELO

The engine is using minimax, alphaโ€“beta pruning and moves sorting


๐Ÿ›  Tech Stack

JavaScript HTML CSS

  • Frontend: HTML, CSS, JavaScript
  • Game Engine: Custom chess engine (JavaScript)
  • Modding: JSON-based mod system
  • Deployment: GitHub Pages

๐Ÿง‘โ€๐Ÿ’ป Authors

About

๐Ÿ”ฅ Chess variant where pieces gain XP and evolve into new units after captures ๐Ÿ”ฅ

Topics

Resources

Code of conduct

Contributing

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages