Writing a Chess Server
Following on from the task of producing a draw client, is writing another networked application with a more server oriented approach. Much more creative freedom was ensued this time around, with the option to choose our project idea, development language and method of handling communication between our server and its clients. Despite this my team and I chose to write our server in C++ anyway, using the Winsock 2 interface. In a previous post I stated that I had written a wrapper for Winsock, which up until this point only had support for UDP. For me this was the perfect opportunity to learn more about TCP, implement support in my wrapper and use in a practical manner.
Project wise we have chosen chess, but not the regular grid based game that most are accustomed to. Rather, hexagonal chess using McCooey's rules as pictured below. The name of our project is a play on words, entitled Hexess. Given its limited popularity, hexagonal chess has actually existed since around 1938. Although our original target audience were open minded chess players, we have since rescoped and are now targeting developers wishing to write their own clients. This will be achievable through an API for our multiplayer server, which handles pairing, communication between clients, validation of moves and exchanging of replay data.
Progress so far consists of added TCP support in my Winsock wrapper and near complete documentation for us as developers. This includes use cases, class diagrams and a technical design document detailing how the server should function and perform each operation. The next stage will be implementation of a no frills multiplayer server, able to establish connections and juggle multiple clients. From this point will be actual game and hexagonal chess logic, for validation of moves given McCooey's rules and the state of the game itself. I will follow up on this post in the near future after the projects completion.
Project wise we have chosen chess, but not the regular grid based game that most are accustomed to. Rather, hexagonal chess using McCooey's rules as pictured below. The name of our project is a play on words, entitled Hexess. Given its limited popularity, hexagonal chess has actually existed since around 1938. Although our original target audience were open minded chess players, we have since rescoped and are now targeting developers wishing to write their own clients. This will be achievable through an API for our multiplayer server, which handles pairing, communication between clients, validation of moves and exchanging of replay data.
Progress so far consists of added TCP support in my Winsock wrapper and near complete documentation for us as developers. This includes use cases, class diagrams and a technical design document detailing how the server should function and perform each operation. The next stage will be implementation of a no frills multiplayer server, able to establish connections and juggle multiple clients. From this point will be actual game and hexagonal chess logic, for validation of moves given McCooey's rules and the state of the game itself. I will follow up on this post in the near future after the projects completion.
Comments
Post a Comment