As promised, here’s my implementation of the Caylus: Magna Carta boardgame in Python. It uses the original art scanned from the game, which naturally I do not own, and I will therefore take it down immediately if anyone complains. It’s single-player against the AI only, but as with the boardgame you can select between one and three opponents.
Usage note:
- It runs in a window with a fixed resolution of 1,280 x 960. I understand this causes problems for some people, but there’s no easy way to fix this.
- The main menu offers an AI Cheats option which isn’t implemented and therefore does nothing. My original idea was to allow the AI to know what cards the human player is currently holding in his/her hand and to allow the AI to know which card(s) it is going to draw before it actually does so.
- At the present time, the AI does cheat somewhat though everything technically is still legal. See if you can spot how the AI cheats! This is a game of almost perfect information anyway.
- My feedback indicates that the AI does decently but don’t expect miracles. It is not a true AI in the sense that it searches through a tree of all possibilities and chooses a decision that maximizes its own points while minimizing those of its opponents. Instead, it uses a set of arbitrary heuristics to make decisions, which I based on how I would play the game myself.
- The download is kind of big because I stupidly used uncompressed bitmaps during development. I recently tried to just resave the art assets in a more compressed format, but it looks like I would need to manually retouch them again to make them look right. So bitmaps it is. Sorry.
- Again, if you send me bug reports I’ll fix them, especially if you spot places where the rules aren’t being complied with or crash errors. But I probably won’t be adding any new features.
Downloads
- This is the standalone version of the program. Just unzip it somewhere and launch caylusmc.exe.
- This contains the Python sources, including the PGU components that I used for the UI. To run this, you’ll need the Python interpreter (version 3+) and the appropriate version of the Pygame library installed.
Hope you all like it!