Our space theme was inspired while solving space-related USACO problems and watching Star Wars. We wanted to combine this theme with a popular game, and came with multiplayer hide-and-seek, but with a twist.

What it does

Space Cowboys is a four-player game with one seeker and three hiders. Each player is placed in a dark room, and can only see a limited view shined by their flashlights. There are also obstacles that players have to avoid. If the hiders survive past a certain time limit, they win, otherwise if they are all eliminated in the time limit the seeker wins.

How we built it

We built this project using C, and used concepts such as sockets to connect different devices and libraries such as ncurses to display our game.

Challenges we ran into

Connecting the different clients to the game server was a challenge because there was a lot of information to send back and forth, such as for the login page for example. Learning ncurses was also difficult in the beginning because of the functions we were unfamiliar with.

Accomplishments that we're proud of

The final game runs smoothly (without glitches) which is very cool and something we had difficulties accomplishing in the beginning. The final design of the game is also something we’re proud of, because the flashlight and what the user is able to see is clearly indicated on the screen without clutter.

What we learned

We learned how powerful the applications of math are (for the flashlight) and how it can create cool effects. We also learned how to make terminal interfaces and how different that is from working with a website interface, for example. Specifically, terminals register streams of characters rather than key down or key up events, which changed how we had to think about in-game movement. We also learned how to effectively adapt to a new library and how to consult documentation.

What's next for Space Cowboys

We are looking forward to adding sound effects that allow players to hear when someone else is moving near them. We also want a stats page for each user which keeps track of previous game records and times. Additionally, we want to create an option for players who just finished playing to join the game again. We would also like to make it more customizable, such as accommodating for more players or a different time limit.

Built With

  • c
  • ncurses
  • sockets
Share this project: