Inspiration

Hookiest Hook was inspired by compact arcade score-chasers: games where the rules are easy to understand, but getting better comes down to routing, timing, and knowing when to take risks. The Reddit Games with a Hook hackathon felt like a natural fit for a game built around daily challenges, shared scoreboards, and quick runs that are easy to replay.

I also wanted the hook mechanic to do more than move the player. In Hookiest Hook, you grapple around the arena, snag coins and drop boxes, and use the layout itself to chase a better score.

What it does

Hookiest Hook is a fast arcade game where players collect coins, snag items, knock drop boxes into chutes, and avoid hazards and enemies.

The game includes:

  • A Daily Timed Challenge shared by all players
  • Endless Normal with saved trial progress
  • Endless Hardcore, where death sends you back to Trial 1
  • Endless Replay for practicing previously completed trials
  • Reddit-powered scoreboards
  • Procedural arenas with scaling enemy modifiers
  • Desktop and mobile controls
  • Music, sound effects, credits, help screens, and saved Devvit progress

How it was built

The game is built with Phaser 4 and TypeScript. The standalone version runs through Vite, which made it faster to test gameplay and balance changes locally. The Reddit version is packaged as a Devvit app.

The standalone game is the main source for gameplay code. An automated sync process copies the client code and runtime assets needed by Devvit, so I do not have to maintain two separate versions of the game.

On the Reddit side, Devvit endpoints handle player sessions, the shared UTC daily challenge, run validation, Endless progress, scoreboards, and data cleanup. Redis stores leaderboard entries, checkpoints, streaks, and other small pieces of player data. Development, public testing, and production each use separate data lanes.

Challenges

The biggest challenge was making procedural levels varied without making them unfair. Generated arenas needed rules for object overlap, reachable goals, enemy placement, and hazards, while still leaving enough variation for repeated runs.

Enemy behavior was another challenge. The enemies needed to handle walls and other blockers without getting stuck, but their movement also had to remain readable and fair to the player.

Adapting a full Phaser game to Devvit took additional work. I wanted local playtesting to stay quick while making the Reddit version responsible for persistent progress, score validation, and shared leaderboards.

What I learned

This was my first time building a game for Reddit or working with Devvit. I learned that Reddit can be more than a place to post a link to a game. A Devvit app can provide the game client, authenticated player identity, server endpoints, persistent Redis data, and direct access to a community of players in one place.

That made features such as shared daily challenges, persistent Endless progress, streaks, and community scoreboards practical without requiring a separate account system or external game server. I also learned how to keep a Phaser game easy to test locally while using Devvit for the parts that need shared, server-managed data.

What's next

The next step is more public playtesting, followed by final balance, audio, and presentation adjustments based on what players find.

Longer-term ideas include community-voted challenge modifiers, more enemy and hazard types, and richer summaries at the end of each run.

Built With

Share this project:

Updates