Activity

SamB

Since the last devlog, I’ve turned the GameLoop class logic into a webserver using Redis to persist game state. It exposes the game state as a WebSocket (and an API). Additionally, I’ve finished the basic React frontend that will display the current ongoing game on a very minimal-looking Go board (see picture below). Next, I need to figure out the training logic. It would be cool to have distributed training somehow so anyone could spin up a docker container and help the agent learn faster.

Attachment
0
SamB

I’ve done some research on Reinforcement Learning and how I could code a Go model. So far, I’ve decided on using Python/flask as a backend, with Redis serving as the source of truth. I want anyone who goes to this site to see the same Go game being played, so I’ll need some sort of persistence. I’m gonna mess around with a basic PyTorch model for right now and see if I can get a basic game loop up and running first…

I’m also working on a class for the game logic of the Go board. This will serve as the foundation of move validation and game state handling. I had to do a lot of research about the specific mechanics of the game with Ko and capture rules. It was surprisingly hard to implement every rule programmatically, and I think my current methods might be a little slow… I optimized some methods using caching and hashing, but I may have to look for other optimizations later if the model trains too slowly.

Attachment
0