Inspiration
I've really liked word games since I was a kid, but few as much as I liked Gamepigeon's anagrams game. However, I never found anyone who liked the game quite as much as I did, and that was a problem because the game could only be played with two people, and so I thought to build one myself. And that let me see many other ways the game could be improved.
What it does
This is an anagrams game that is platform-independent and offers a lot more flexibility. It can be played alone or multiplayer with as many as 7 other people. There are also settings that allow you to adjust the time or number of letters in the game within reason. It can also be played either by touch or with a keyboard and in a very intuitive way. Finally, the game also lets you examine the words you use to learn their meanings and, ideally, improve your vocabulary.
How we built it
This was built with React, Tailwind, Next.js and Neon. I made it a challenge to fully videcode the app to see the limits of the approach and to submit it in another hackathon that happened at the time (although I cheated this a bit by directly examining the code). While I didn't submit the project for the hackathon in the end, I had a lot of fun working on it. I worked on the frontend with v0 and after tens of refinements I moved it to my local computer and worked on the backend with cursor
Challenges we ran into
By far the greatest challenge I ran into during the course of the project was building a database of words I could use for my game. For some reason, I thought the OED was open-source and, when I found out it wasn't, I soon found out that there were no good alternatives. I had to make a chimera with dictionaries from about 5 different word games, OPTED and the Australian National Dictionary hosted by benjihillard. As a result, the definitions are only present for some words.
I also have no experience with designing or making multiplayer games and I had to ideate a lot of its features from first principles. I had all players in a lobby send frequent heartbeat messages to the backend so it could confirm that they were still online and whether or not to boot them from the lobby. I also had the backend hash all candidate words for a certain root word (word that gets scrambled for the players to form words out of its letters) and send the hashes and the seed so users couldn't just query the words from their consoles. I'm sure I could've done a lot better with anti-cheats and performance but it worked well enough
Accomplishments that we're proud of
Making a fully functional app without writing a single line of code
What we learned
A lot of database and backend management; far beyond anything I've ever done on my other projects. I also always used bootstrap for my frontend so this was a first with tailwind for me.
What's next for Anagrams
For now, just refining it some more: filling up the gaps in the dictionary, improving the performance of the app especially with multiplayer, better user performance tracking, an ELO system and skill-based matchmaking, accessibility improvements. I also want to optimise the game for scalability because I can see it getting thousands of players easily with the right push.
Built With
- cursor
- neon
- next.js
- react
- tailwind
- v0
Log in or sign up for Devpost to join the conversation.