Inspiration

SubSixDegrees is inspired by the classic games Six Degrees of Kevin Bacon and Wiki Racing. The goal was to create a fun and unconventional way for players to explore Reddit, linking subreddits through posts, comments, and user interactions. Much like Six Degrees connects actors to Kevin Bacon through movies, SubSixDegrees uses the vast web of Reddit content to create surprising, sometimes hilarious, connections between subreddits.

What It Does

In SubSixDegrees, players start in a random subreddit and navigate through a series of posts, comments, and user interactions to reach their target subreddit. The game challenges players to find either the shortest path or the most bizarre, unexpected connections between subreddits. The more absurd and creative the journey, the more fun the experience. It’s a game of exploration and connection, showing how even the most distant subreddits are intertwined.

How We Built It

  • Frontend: Built with React and styled to provide an authentic Reddit experience.
  • Backend: Powered by RedditAPIClient, fetching subreddit, post, comment, and user data.
  • Visualization: The game features an interactive tidy tree built with D3.js, allowing players to visualize their journey, backtrack, and explore different paths.

Challenges We Ran Into

  • API Limitations:

    • Image data: Reddit’s API only provides thumbnails for posts, not full-size images.
    • User object NSFW status: The Reddit API returns false for the NSFW flag, even for users who mark their accounts as mature. This limits content filtering.
  • WebView Integration:

    • RedditAPIClient couldn't be directly used within a WebView, which led to a workaround for passing data between the WebView and the main app. In the next iteration, I’m planning to make direct API calls within the WebView to reduce unnecessary data transfers and improve performance.

Accomplishments We’re Proud Of

  • Interactive Map: The ability to visualize your journey and backtrack, creating a sense of exploration rather than just linear progression.
  • Connectivity Challenge: Reddit subreddits are highly siloed compared to Wikipedia’s interconnected pages. I’m proud that I managed to connect these different elements—subreddits, posts, comments, and users—into an engaging game.

What We Learned

  • WebView integration challenges: Managing data flow between the WebView and main application brought unexpected obstacles but also opportunities to optimize performance.
  • Balancing exploration and competition: The game can be played in different styles (speedrunning vs. deep exploration), and refining this balance will make the game even more engaging for players with different preferences.

What’s Next for SubSixDegrees

  • New Features:

    • Community Journey Map: Visualize the network of subreddits, posts, comments, and users explored by the player base.
    • Timed Challenges: Speed-based gameplay where players race against the clock.
    • Multiplayer Mode: Players compete to reach the target subreddit in the fewest moves or fastest time.
    • Leaderboards: Track and display player achievements, challenges, and traversed nodes, with special emphasis on top players once multiplayer is added.
    • Unlockable Achievements & Flairs: Fun rewards, like an “Inception” achievement for reaching this game’s subreddit.
  • UI/UX Upgrades:

    • Pagination support for comments and user profiles (already implemented for posts in subreddit feed).
    • Sorting options (Hot, Top, New) for posts and comments.
    • Keyboard shortcuts & improved navigation for a smoother experience.
    • Mobile optimization for smaller screen sizes.
    • Customization options such as dark mode, text resizing, and accessibility improvements.
    • Improved preview screen to better catch people's eye as they scroll through the feed.

Built With

Share this project:

Updates