Roots: Homebound
A solarpunk farming-life sim set in a mountain town, built on a full open-world systems stack: procedural world tools, NPC schedules, dialogue, crafting, and more.
Context
Roots: Homebound is a solarpunk farming-life sim set in a mountain town, built mostly solo with a little outside help along the way. I wanted the Stardew-style daily loop, farming, foraging, mining, relationships, but running on a fully open, explorable world instead of a static valley map. I ended up designing and building nearly every system in the game myself, from world tools to UI to core gameplay.
My Work
Solo-built the majority of Roots: Homebound’s systems stack: procedural world tools, a full farming and crafting/inventory pipeline, NPC schedules and dialogue, and custom shading work, all built and optimized to run in a large, open, explorable world rather than a static map.
World & Environment
- Full landscape layout and world design for the mountain town setting.
- PCG systems to scatter trees, logs, branches, berry bushes, rocks, and other harvestable resources across the world.
- A PCG-to-actor conversion system: harvestables start as lightweight PCG instanced static meshes, driven by a data table, and swap into full Blueprint actors only when the player gets close enough to interact. Leaving the area without interacting reverts the actor back to an instance to keep the open world light.
- A tree-cutting system with WPO chop animations and particle effects. Felled trees turn into stumps, with different tree types supporting both felling and stump removal.
- A mining system where rocks have health and break down in layers as they’re struck, including a procedural reveal that shows the embedded resource (iron, jewels, etc.) inside the rock before it’s fully mined.
Time, Weather & Seasons
- Modified the Ultra Dynamic Sky plugin to drive a custom time management system (hours, minutes, seconds, days, seasons, years), broadcast through event dispatchers to every actor listening for a schedule.
- Connected the day system to Ultra Dynamic Weather, including a TV prop that displays the coming week’s forecast.
- In-game rain automatically waters crops.
Farming
- Full crop-growing loop, including a “spirit” crop line, with watering, fertilizing, multi-stage growth, and repeat-harvestable yields.
- Crops wither and die if not watered in time; rain counts toward watering.
- The broader ghost/quest system (ghosts that hand out quests) is planned but not yet built. Right now the only ghost-related content is the spirit seed and spirit crop line.
NPCs & Animals
- Farm animal actors with hunger and affection toward the player, daily sleep schedules, and barn actors with feed troughs. Animals eat when hungry, flee without the right item, and approach the player when holding seeds or hay.
- A full NPC/character system covering schedules, likes/dislikes, favorite foods, home locations, and relationship levels.
- A dialogue system with lines keyed to day, season, location, relationship level, and story milestones, delivered with NPC portrait sprites.
- A speech bubble system that triggers on approach, on leaving, and when NPCs greet each other.
- A mail system that sends the player thank-you notes and other letters tied to the story and quest system.
Player Systems & Progression
- Core character controller: item cycling and use, NPC/object interaction, walk/run, and a hold-to-toggle auto-run.
- Stamina and health systems; running out of either knocks the player out and sends them to the hospital.
- A click and click-and-hold interact system with contextual text prompts and animations.
- A bike system for switching between walking and biking.
- Bug-catching and fishing minigames, spawning catches based on season, location, time of day, and player proximity, each with rarity tiers.
- A leveling system with 9 skill categories (capped at 14 each) feeding into an overall level cap of 99.
- A save/load system tied to a bed interaction, letting the player take a short nap, a long nap, or sleep through the night to restore energy and advance time.
- A replicated inventory component built for reuse across any container, supporting stacking, splitting, dropping, swapping between containers, and sorting by alphabet, rarity, or quantity.
- A cooking component where combining ingredients starts a timer before yielding the result.
- A crafting system with a workbench-proximity bonus and rarity-based outcomes (better ingredients produce better gear).
- A refiner actor that converts raw resources (ore, etc.) into refined materials (bars, etc.) over time.
- A grid-based placement system, locally snapped and globally positioned with overlap checks, used for all in-world placement.
- Placeable map-teleporter actors that designers can drop into the world and name; the in-game map builds its teleport list from these automatically.
- A currency system with its own UI.
- A procedural radial “favorites” wheel (up to 8 slots) that follows the mouse with a spinning center pointer, for quick access to marked items and tools.
- Early weapon/combat systems, currently on hold while I focus on Channel Breachers.
UI/UX
- Inventory widgets, a store widget, and an at-a-glance inventory display that fills in by quarters as stacks pass each 25-item threshold up to 100.
- A hotbar and full player HUD (stamina, health).
- A full main menu with loading and settings screens.
- A player-facing map, auto-populated from placed teleporter actors.
Technical Art
- A layered material system for both the player character and environment art, built around trim sheets.
- Custom cel-shading through material math rather than a post-process overlay, using sun and moon position to drive lighting and color response on objects.
- Here are more of the technical shaders I made for this project (Right Click and Enter FullScreen):
Optimization & Technical Challenges
- Open-world optimization was the biggest technical hurdle: the PCG-to-actor conversion system, custom octahedral impostors, and HLODs for distant objects and locations all exist to keep a large, explorable world performant.
- Designing farming, NPCs, crafting, time/weather, and inventory to all talk to each other cleanly, without stepping on one another, was an ongoing systems-design problem in its own right.
Conclusion
The core loop, farming, mining, foraging, and leveling, is fully playable, backed by save/load, a complete inventory and crafting stack, NPC schedules and dialogue, and a full day/night/season cycle. The project is on hold while I focus on Channel Breachers, but I’d pick it back up with more time and resources. Next steps: simplify a few systems I overcomplicated, port the inventory system to C++, finish out the core gameplay loop, and start on the story system and cinematics for a public demo.