iChess.io Architecture

Hi, my Dear Readers! ;-). Let me start Today’s story with the fact that the iChess.io starts to play Chess and Chess 960 as well ;-).

Without that start statement, any design advantages do not make sense. Please remember that any good architectural design is about how things work, not how things are built. I heard that once, and it made an impression on me. It turns out a clear understanding that it is all about non-functional aspects at the beginning and the end by the functional experience.

So, you may ask how to start with architecture design if you want to move only non-functionally. The answer is simple: you should mimic as much as you can. For example, the first version moves pieces on the board randomly. Does that make sense? For a game, for sure not, but for building a solid design foundation, it does! So, how did I start? I bought the domain and installed the simple UI. I made a simple middle tier with REST and sessions. The game was locked in the beginning, and only a secret touch of pieces on g7h8g7h8g7h8 opened it to try. My home computer did the acceleration on the GPU because I did not want to invest in an expensive VM in the cloud.
So, what did we have at the beginning?

Player <=> UI <=> sessions-based REST API <=> GPU accelerated “random” engine ;-).

If I had a team of people, I could give work to Frontend Engineer, Backend Engineer, AI/ML Scientist, UI/UX Designer, and so on… I tried but even for Chess960 GPU accelerated solution I could not find any coding help from friends… why? I can only guess that it is a very advanced project, and nobody wants to do it for free—way of life work.

How does the design I build work now?

Players <=> Way of Play (by speaking or by click or by tap) <=> Play with AI or ML or HB (human) <=> Access to trained model accelerated on GPU that makes decisions in up to 1.5 seconds (AI) thanks to the State of Art simple but smart engine.

p ;-).

P.S. I wonder what you would say if I offered a pre-order of the portable engine of iChess.io. Do you use your model and the way of training you like? With a detailed explanation of model parameters and so on? I am just asking… ;-).

Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.