Inspiration
We are a group of roommates who all play party games together at home. We also all own raspberry pi's or mini computers that we don't use enough. We felt that we wanted to combine these two things into one with this project
What it does
The goal of our project is to be able to host a server on your local internet using a Raspberry Pi (or theoretically any computer), and have players connect to this server and play a set of games together over the internet in a terminal. We have designs for Tic-Tac-Toe and Blackjack as of right now.
How we built it
We build it by separating and delegating our tasks between the server architecture, game design, client architecture, and TUI design. All of our code is written in python, with the TUI design using a python library called Textual.
Challenges we ran into
The first challenge we ran into as a team was spinning up a raspberry Pi, as none of us had one flashed at the time we started the Hackathon. so we temporarily switched to hosting the server on a computer until we got one running.
The second challenge we ran into had to do with the necessary threading nature of a server and client service. Dealing with hierarchy, multithreading, and talking between the threads posed a great challenge to us who hadn't used threads heavily since our Operational Systems class.
Lastly, we also had trouble setting up the TUI, as we had to learn an entirely new python library and design the terminal to 1. look how we wanted it and 2. perform the tasks that we needed it to.
Accomplishments that we're proud of
We are proud of the great server and client architecture that we build throughout our projects lifecycle, allowing us to learn how they talked to a much deeper level and exercise our knowledge of many different topics that we hadn't seen in years.
We are also proud of our TicTacToe game that runs with no issues on a local network. We had to make all 4 aspects of our project come together perfectly to create the game.
What we learned
We learned an incredible amount of different things when build this project.
Server and client architecture. We learned exactly how servers and clients were run, talked to each other, saved data, and performed actions.
Threading. we learned how threads worked in python compared to other languages, and how to best utilize them in our project.
Textual. we learned how TUI's and the Textual library worked, and how to design a working TUI in Textual.
What's next for Keystone
Next up for keystone, we have a few ideas.
- We want to first finish writing the Blackjack code, allowing people to play that on our local network.
- We want to implement more games, specifically other card games like poker or rummy.
- we want to add an in game chat, so different clients can talk to each other and potentially send emotes. 4.
Log in or sign up for Devpost to join the conversation.