rust chess software with a pygame GUI. Officially named Blockade!
This is a chess program that contains both back and front end allowing the user to play against a chess bot. I'm trying to make this in a unique way that allows for a python GUI using pygame and then a rust backend. These two will then be linked together using the PY03 module to turn the rust backend into python modules to allow for chess to be played in a pygame program that runs off of rust logic to improve speed and accuracy. It will have a variety of features and is designed to be used casually and will not link to any databases or external websites as it is an offline experience.
- Interactive main menu.
- Customisable settings through settings menu including:
- feedback on/off
- how long each game lasts
- and more..
- Win statistics window to look at how many time you win,draw,lose. (which saves)
- Feedback on moves you make against the algorithm.
- Fully functional chess algorithm you can play against through a seperate game window.
- Amazing image assets that I drew myself using Aseprite which is a 2D pixel art creation software
I will include all of my documentation and planning for this project inside of the repository for anyone to access to see my thought process and how i designed certain parts of the code.
This project is a big learning experience for me as alongside creating it I am also learning how to use GIT / GitHub so forgive any poor early commits they hopefully get better. Also this project could obviously have very large code refactors due to me not having done any chess programming before, so previous commits could end up looking quite different from newer ones.
I will continue to do version releases of the project until it reaches v1.0 or a version that I am satisfied with.
These screenshots are just to preview what the program looks like and more screenshots will come as the program is developed further.
The main menu where you can access all other parts of the program:
The win statistics window which will link to a txt file to save match results:
The settings menu where you can customise your experience:
While this project repository is mainly to contain the pygame chess program described above, I will also be using this repository to practice a lot of skills that can better me as a programmer. This means that maybe some of the commits to the README or other commits may seem unecessary or excessive but this is all for my own benefit.
examples of personal goals are:
- Get better at creating a good and informative README file using HTML and Markdown along with learning to use scripts that directly add interactable content to my README
- Improve my coding skills in both Rust and Python
- Get better at drawing (pixel art such as chess pieces)
- Learn how to package and my projects and release them as EXE's in different version releases
- Get better at using Git (using console commands) and improving my commits to make them informative, but also more concise
