****
worlds-unbound.png
_[]X
Worlds Unbound
worlds-unbound.readme
_[]X

Worlds Unbound

Years-in-development isometric sandbox with custom scripting language, full multiplayer, and a world editor I built from scratch. Demo coming soon.

metadata.json
_[]X
"date": "January 10, 2025"
"stack": [
"Godot 4.3",
"GDScript",
"ENet",
"Multiplayer",
"Custom Language"
]
links.exe
_[]X
worlds-unbound.md
_[]X

Overview

Worlds Unbound is a passion project years in the making—an isometric world-building sandbox where players create, script, and share their own virtual worlds. I built everything from scratch: a full world editor, a custom scripting language with its own compiler pipeline, and a multiplayer system with client-side prediction and server reconciliation.

Key Features

  • Isometric World Editor: Comprehensive tools for placing floors, walls, items, portals, and defining regions. Build everything from cozy homes to sprawling dungeons.

  • Fabrication Scripting Language: A custom natural-language-inspired programming language with a full compiler pipeline. Script NPCs, create interactive objects, and bring your worlds to life.

  • Hub-and-Spoke Multiplayer: Scalable architecture where players can host their own worlds while connecting to a central hub for discovery and social features.

  • 12-Layer Character Customization: Deep character creation with 12 distinct customization layers, from body type to accessories and clothing.

  • Hotbar Inventory System: Intuitive inventory management with full Fabrication integration, allowing scripted items and tools.

Fabrication: The Scripting Language

I built Fabrication from scratch—a natural language-inspired scripting language with its own lexer, parser, and interpreter. Here's what it looks like:

protocol "locked_door" {
  when architect enters tile (5, 10)
    and architect carries item "golden_key"
  then
    show message "The door unlocks!" to architect
    remove item "golden_key" from architect
    teleport architect to (5, 15)
}

protocol "welcome_back" {
  when architect joins
    and persistent architect_variable "has_visited" == true
  then
    show message "Welcome back, friend!" to architect
}

Features include triggers, conditions, multiple variable scopes (world, player, tile, persistent), conditionals, reusable behaviors with parameters, and math expressions.

Technical Highlights

  • Custom Compiler Pipeline: Lexer, parser, and interpreter for Fabrication, all implemented in GDScript
  • Event Bus Pattern: Clean, decoupled architecture for handling game events across systems
  • Position Interpolation: Smooth networked movement with client-side prediction and server reconciliation
  • JSON Persistence: Flexible save system storing worlds, characters, and scripts in human-readable format
  • ENet Networking: Reliable UDP networking for responsive multiplayer gameplay