Inspiration
Ghost is—without a doubt—a great game to play on a road trip. Ghost is a spoken word game in which players contribute a letter to an incomplete, growing word to complete it in such a fashion that it does not end on their turn. Since we could not find this game online, we decided to create this nostalgic game in an online version.
What it does
• Enables a user to play Ghost online with their friends
• Play single-player against a bot in easy, medium, and hard difficulty
How we built it
• React.js -> front end
• Express -> back end + routing + server
• Hop.io -> client and server communication for multiplayer
• Chakra UI -> overall UI
• Datamuse API -> bot and game
Challenges we ran into
Our greatest challenge was connecting different players in the multiplayer mode. We had to learn to use hop.io channels and WebSockets, as well as take care of edge cases like players leaving in the middle of a game.
Another challenge was programming three levels of bots, with the hardest bot being extremely intelligent and near-impossible to beat. We had to filter through thousands of words and have the computer choose the optimal one.
Accomplishments that we're proud of
Proud to have a working online version of Ghost up and running before the time limit! Even prouder to have done it with an almost impossible-to-beat hard difficulty bot with Datamuse API and simple game logic.
What we learned
• Learned how to build a game with the different test cases (how to navigate each of the situations and prevent bugs)
• Getting more familiar with hop.io/socket.io and backend in general
• Effectively using Datamuse API
What's next for Ghost
• Integrating the concept of lives into the game (3 lives per player)
• Best of 7 or 11 Ghost rapid series games
• Adding more popular variants of ghost such as Superghost, Superduperghost, and Xghost
Built With
- chakra-ui
- datamuse-api
- express.js
- hop.io
- react
- socket.io
Log in or sign up for Devpost to join the conversation.