Inspiration

The reddit hackathon inspired me to try to create my first game. Because I saw it while the contest was more than halfway through, I knew I had to keep the concept simple. I was inspired the classic Japanese word game Shiritori I used to play with my son. My goal was to simply to build a game from start to finish and get it published on Reddit.

What it does

Last Word Standing is a minimalist word chain game where players create a chain of words where each new word starts with thelast letter of the previous word. Players cannot repeat words, have 7 seconds to come up with each word, and must respect the daily rule, ex - no words that end in "n". When you run out of time, your chain ends. The leaderboard resets daily for a new chance to get to the top each day.

How I built it

I did some research on existing reddit games to understand what the typical user flow and screen layout. I decided on a concept and created a detailed prompt including the user flow for Figma Make. After a few rounds and some manual manipulation, I felt confident with a UI starting point.

I followed the App Quickstart link to get set up with template project using devvit. I consulted with Chat GPT to understand the project setup and practiced making some UI changes on my on by editing the CSS and HTML for the game and splash files.

I connected Github Copilot to VSCode and add screenshots of my key screens. I then worked with both Chat and Copilot to define the file structure and game logic. The Devvit platform made it relativley easy to quickly see each iteration. Occassionally I would go back to Figma to ideate on an update based on screenshots of the prototype. From there it was a cycle of building and testing until I had something I considered a solid, functioning MVP.

Challenges I ran into

I struggled a with some of the Devvit setup, running into errors installing the CLI tools and not understanding how to access the playtest environment correctly. Once I realized I could test in the mobile app and not just on the desktop dev url, I saw that my CSS was all wrong. The width and height were being contained in a container inside the post view.

For the game logic and functionality, I had to figure out how to access a dictionary to choose the start word and validate user word inputs. I wasn't able to set up an API call so I ended up using a json file as the dictionary. I tried to use mock data for the leaderboard, but it would only work on one screen and not the other. I ended up removing mock data as it seemed to be taking too much time for a temporary use case. There were a number of UX issues that testing helped identify, from visual consistency, to navigation, to usablity. The mobile keyboad pop up caused the timer to be hidden so I added another timer lower on the screen to help with visibility. The gameplay screen could still use some improvement to handle the keyboard interaction going forward.

Accomplishments that I'm proud of

  • Successfully building and deploying a playable game integrated within Reddit.
  • Leveraging AI tools (ChatGPT and GitHub Copilot) to accelerate development and problem-solving.
  • Designing a clean and user-friendly interface with solid core gameplay.
  • Navigating and mastering the Devvit development environment and deployment workflow.

What I learned

I learned how to navigate the Devvit environment and workflow. I also learned the importance of game logic and considering every use case. As always, user testing is so important to see how design translates to function.

What's next for Last Word Standing

I received some great feedback and would like to update the game logic to have the game play the player by providing every other word. I would also like to find a better why to keep the content more present on the screen while the keyboard is open. Lastly, I would love to customize the UI, add some animations, and potentially sound or haptics if supported.

Built With

Share this project:

Updates