Inspiration

Karma's Realm was inspired by the idea of transforming Reddit activity into something personal, calm, and meaningful instead of treating karma as just another competitive score.

We wanted to create a tiny living kingdom inside a Reddit post, where the world quietly reflects the player's Reddit activity from the previous day. Replies can bring new villagers into the realm, positive reception can help villagers grow stronger, and difficult days can increase the pressure on the kingdom through carefully limited events.

The goal is not to encourage players to post or vote more. Instead, the game creates a small daily ritual: open the post, discover what happened while you were away, and continue shaping your realm.

What It Does

Karma's Realm is a single-player pixel-art god simulation that runs directly inside a Reddit post.

Each game post contains a procedurally generated island with villagers, resources, buildings, enemy camps, equipment, daily rewards, auctions, and an evolving in-game economy.

Villagers act autonomously, but players can use Command Mode to select a group and order them to:

  • Move to a specific location
  • Attack an enemy
  • Gather resources
  • Chop a specific tree
  • Mine a specific rock
  • Patrol an area
  • Heal other villagers
  • Perform
  • Construct buildings

The realm uses limited information from the owner's own public Reddit activity during the previous 24 hours, including scores, reply counts, and subreddit information. It never reads comment text, displays real usernames, or performs Reddit actions on the player's behalf.

This activity is transformed into daily changes such as new settlers, villager progression, karma effects, temporary events, and possible invasions.

The game also continues progressing while the Reddit post is closed. When the player returns, a deterministic catch-up system calculates what happened while the realm was sleeping and presents it through a daily Realm report.

How We Built It

We built Karma's Realm using:

  • Devvit Web for Reddit integration, authentication, scheduled jobs, post creation, and access to permitted public activity
  • Phaser for the game simulation, rendering, animations, movement, combat, collisions, pathfinding, and responsive interface
  • TypeScript for the main game and server logic
  • Vite for development and production builds
  • Hono for backend routes and communication
  • Redis for world saves, daily reports, auctions, rewards, and server-authoritative economic data

The procedural world generator creates islands containing forests, mountains, rivers, lakes, waterfalls, resources, buildings, and enemy camps.

We tested hundreds of generated worlds to identify inaccessible terrain, missing camps, broken paths, balance problems, and other edge cases.

We also created a contextual command system. Instead of displaying every possible action, the command bar only shows abilities that the currently selected villagers can perform.

Commands are verb-first. The player chooses an action, such as Attack, Move, Chop, or Mine Rock, and then selects the exact target in the world.

Important systems such as gold, item rewards, auction bids, daily progression, and item grants are validated by the server to reduce exploits and prevent client-side manipulation.

Challenges We Faced

Making the Game Work Inside a Reddit Post

One of the largest challenges was fitting a complete simulation game inside the limited space of a Reddit post.

The interface needed to work correctly on mobile, desktop, and fullscreen displays. Tutorial instructions, inventory windows, villager panels, command controls, and map interactions all needed to remain readable without covering important gameplay elements.

Pathfinding and Stuck Characters

Villagers and enemies needed to navigate around mountains, water, buildings, tents, campfires, trees, rocks, and other obstacles.

Simple direct movement caused characters to become stuck or repeatedly move between the same positions.

To solve this, we implemented A* pathfinding, reachability regions, chase limits, collision logic, and a runtime system that detects repeated movement patterns. When a character becomes stuck, the system calculates a temporary escape route and then resumes the original order.

Offline Progression

The world needed to feel alive even when the Reddit post was closed.

Simply continuing timers would have produced inconsistent or exploitable results, so we created a deterministic catch-up process.

When the player returns, the system calculates:

  • Villager work
  • Food consumption
  • Resource production
  • Enemy activity
  • Camp progression
  • Character movement
  • Daily events
  • Existing player orders

Quick tab changes do not create additional progress, and the same saved state always produces the same catch-up result.

Privacy and Reddit Compliance

Privacy and platform compliance influenced the entire design.

The game only processes the owner's own public Reddit activity. It never reads comment text, exposes usernames, tracks political activity, or acts on Reddit for the player.

It also never asks players to post, comment, or vote in order to progress.

We had to make these restrictions understandable through the onboarding experience and the game's consent system while still keeping the experience simple and enjoyable.

Balancing Interconnected Systems

Enemy camps, raids, hunger, equipment, item rarity, gold generation, auctions, rewards, villager professions, and offline progression all affect one another.

A small adjustment to one system could create unexpected consequences somewhere else.

To manage this, we created automated testing tools for:

  • World generation
  • Equipment
  • Saves
  • Buildings
  • Economy
  • Combat balance
  • Visual regression

We also performed large batches of simulated worlds to confirm that important gameplay elements appeared within reasonable limits.

What We Learned

We learned that an autonomous simulation still needs clear moments of player agency.

In early versions, villagers lived and worked independently, but the player did not have a strong central activity. Command Mode solved this by allowing direct control without removing the feeling that the villagers have lives of their own.

We also learned that procedural generation is not only about making attractive maps. Every generated world must also be navigable, balanced, and compatible with every gameplay system. Automated seed testing became essential.

Another important lesson was that interface design is part of gameplay. A mechanic can be technically complete and still feel confusing when the player cannot clearly see the selected villager, target, equipped item, available action, or next tutorial step.

Responsive layouts, visual feedback, contextual controls, and clear wording became just as important as the underlying simulation.

Finally, we learned that privacy and platform restrictions can strengthen a project. Because we intentionally avoided reading comment text or displaying usernames, Reddit activity became a symbolic influence on the world rather than a direct reproduction of personal data.

Accomplishments We Are Proud Of

We are proud that Karma's Realm evolved from a small autonomous simulation into a complete living-world game.

The final project includes:

  • Procedurally generated islands
  • Autonomous villagers
  • Contextual player commands
  • Combat and enemy invasions
  • Resource gathering
  • Hunger and food supplies
  • Building construction
  • Villager professions
  • Equipment and randomized loot
  • Multiple enemy types
  • Elite enemies
  • Daily rewards
  • Server-authoritative auctions
  • Offline progression
  • Multiple save slots
  • An interactive guided tutorial
  • A karma system that affects the realm's luck

We are especially proud of the privacy-focused design. The game feels connected to the player's Reddit experience without exposing comment text, real usernames, or private information.

We are also proud that the world continues to feel believable while the player is away. Villagers keep working, eating, moving, defending the settlement, and following existing orders.

When the player returns, the Realm report explains what happened instead of presenting unexplained changes.

What's Next

Our next goal is to continue improving balance, accessibility, onboarding, performance, and long-term progression using player feedback.

Future updates could introduce:

  • More buildings
  • Additional villager professions
  • Deeper villager relationships
  • New enemies and enemy behaviors
  • More daily events
  • Additional equipment
  • Greater environmental variety
  • More meaningful long-term decisions

Our main goal is for every realm to feel like a small personal story: a kingdom that changes each day, remembers what happened, and always gives the player something interesting to return to.

Built With

Share this project:

Updates