Inspiration

The heart of Horizon Worlds is its community of creators. We were inspired by the "Open Source Champions" theme to build a tool that would empower creators of every skill level. Our goal was to create more than just a game; we wanted to provide a powerful, flexible foundation that would accelerate the creation process for others. We asked ourselves: "How can we build a tycoon template that is not only fun to play, but is so intuitive that someone with zero coding experience can build and publish their own unique game in an afternoon?" The Modular Tycoon Engine is our answer.

What it does

The Modular Tycoon Engine is a complete, ready-to-remix game template that makes creating a high-quality tycoon world incredibly simple. The core gameplay loop is classic and engaging: players are assigned a plot of land, purchase resource generators, physically collect the items they produce, and sell them at a shop to earn currency for further expansion.

The engine is built to be effortlessly remixed, offering two distinct paths:

The "No-Code" Path: Creators can build a completely new game within minutes simply by swapping 3D models and adjusting numbers (like cost, speed, and sell value) in the editor's properties panel. No scripting is required.

The "Extension" Path: Advanced developers can easily add new game mechanics (like crafting or quests) by hooking into the clean, event-driven architecture, without ever needing to modify the core engine code.

This design fosters a powerful community ecosystem where creators can design and share their own unique assets—from individual generators to entire pre-configured plots—which can be dropped into any world using this engine and work instantly.

How we built it

The engine is built entirely in TypeScript using the Horizon Worlds API, and is founded on three core design principles that relentlessly focus on ease of use:

In-World First: We dramatically simplified the creation process by prioritizing physical interactions over complex UI. Players physically walk into trigger zones to buy and sell. Creators configure the game by placing and linking objects in the world, not by managing abstract data tables.

Modular & Self-Contained: Every component is a "plug-and-play" asset. A creator can configure an asset once, save it, and then drag-and-drop it anywhere. This applies not just to a single GeneratorSlot but to an entire TycoonPlot filled with configured generators, making it a powerful, sharable interactive asset.

Creator-Friendly Configuration: To make remixing as fast and intuitive as possible, game balance is controlled visually. The properties of in-world ResourceDefinition entities act as a central database for item names, icons, and sell values. The system automatically discovers these using tags, making it effortless to add new resources.

The Technical Impact of this architecture is significant. The logic is cleanly separated: the GameManager script acts as the single, authoritative "brain" for all player data, while all other scripts are "dumb" components that only send requests and display the state they are given. This event-driven pattern is a powerful example for other creators to learn from, as it prevents data desync issues and makes the entire system highly extensible.

Challenges we ran into

One of our biggest challenges was perfecting the incredible simplicity of the "no-code" path. Early on, we considered a central "config" script, but realized it broke our "In-World First" rule and added unnecessary complexity. It forced creators to manage an abstract list instead of physically interacting with their game elements. We solved this by developing the tag-based discovery system for ResourceDefinition entities. This was a breakthrough. It allows the GameManager to dynamically build the game's economy at runtime by finding and reading the properties of in-world objects.

A more critical challenge arose from a fundamental limitation in how Horizon Worlds handles remixing: assets from the original creator's library are linked, not copied, to the new world. At the time, our UI assets had properties that linked to other assets (like icon textures). This meant anyone remixing our world would have broken UI, as the links would still point back to our private library.

Our solution was a major architectural refactor. We created manager scripts to handle any properties related to assets. All asset links were moved from the individual UI components and centralized onto the GameManager. This renders the UI assets themselves as simple, "dumb" display components whose only purpose is to be spawned and show data.

To make things even better, we created the ThemeConfig entity. This allows creators to change the theme of all UI assets directly through a single set of properties in the world, meaning they have limited reason to even see the assets themselves. For non-coders, this gives them ultimate control to create their own style of game from a few central, in-world objects. Experienced developers, meanwhile, can still check the well-commented scripts and create their own assets if they wish to manipulate the logic.

Accomplishments that we're proud of

Our greatest accomplishment is making high-quality game creation accessible to everyone. The engine is so intuitive that it requires only a few lines of instruction to get started. This profound ease of use is not just a feature—it's the key that unlocks a new level of community collaboration. The true breakthrough is the modularity of our components. A creator can style a GeneratorSlot, set its price, and save it as a public asset. Another creator can then find that asset, drag it into their world, and it will just work. This concept extends to entire plots; a creator can design a complete, themed starting area with multiple generators, save it as a single public asset, and another creator can use that entire progression block in their game instantly.

This is what we believe the metaverse is all about: fostering an ecosystem of shared knowledge and creativity. We haven't just built a template; we've built a standard for creating interchangeable, community-made content. That shared experience, where creators can so easily build upon each other's work, is what we're most proud of.

What we learned

This project reinforced the importance of a strong architectural philosophy. By strictly adhering to our three core principles, we were able to make design decisions that consistently improved the project's reusability and profound ease of use. We learned that the best way to empower other creators is to build a system that is both powerful in its capabilities and incredibly simple in its implementation.

What's next for the Modular Tycoon Engine

The true power of this engine lies not just in the template itself, but in the community-driven ecosystem it enables. Our vision is to foster a thriving library of compatible, "drag-and-drop" assets that anyone can use. To kickstart this vision, we will be creating and publishing several themed "Generator Packs" as public assets over the coming months to inspire the community. With seasonal events on the horizon, creators can look forward to Halloween and Winter-themed packs to easily add timely content to their worlds. Our main focus is on encouraging and empowering this community-led creativity.

Try it out

Remix the Template: https://horizon.meta.com/world/764940542913881/?hwsh=Zzwjc5RSd7

Follow the Guide: Once you're in the editor, head to the "Creator Hub" area to explore the in-world visual guides that will walk you through everything you need to know to build your own game!

Built With

Share this project:

Updates