This is a multiplayer implementation of the popular board game Othello. There is a board class that handles the game logic. There is a server and client file that handles the networking logic required for multiplayer.
I wanted to write this program in order to implement what I've learned about the OSI model and computer networking in general. I knew I was capable of making an Othello CLI and wanted to extend that functionality while simultaneously expanding my understanding of networking with practical experience.
The networking architecture in use here is client-server.
Packets are sent using the TCP on port 61235.
The message format is different depending on the direction of communication between client and server. Messages from the client are integers. Because we are using TCP the first message is the row and the second is column. Messages from the server are a utf-8 string that can be printed to display the board.
I used VS Code and the terminal for development.
The language was Python3. I used several libraries including socket, selectors, and types. These libraries allowed me to implement networking and handle multiple connections.
- Computer Networking in 100 Seconds
- Crash Course Computer Science #28-30
- Socket Programming in Python (Guide)
- Online Multiplayer Game With Python
- Implement a lobby.
- Prompt the user to play again.
- Handle when players disconnect.
- Provide the ability to save game progress.