Hova: a small DSL for describing worlds (early projects)

I’ve been working on a small project called Hova.

Hova is a DSL focused on** describing game worlds, entities and universe structures** in a clean and declarative way.

It is not a game engine, and it doesn’t execute logic or handle rendering.

Its only goal is to describe what exists in a universe — not how it run.

Why I built it

When building games or tools, I often felt that world design ended up mixed with engine code, scripting logic or implementation details.

I wanted something that:

  • stays engine-agnostic
  • focuses only on world structure and meaning
  • can be consumed by different tools or pipelines

That’s where Hova came from.

How it works

You write Hova source code describing your world, and it gets converted into a neutral format (currently JSON).

This output can then be consumed by:

  • game engines
  • custom tooling
  • build pipelines
  • converters

Hova doesn’t decide how the world is used — it only describes it.

A small example

anvil Shapes 

    atomic 
        atom visual : "minimal"
        atom hideConfig : "on"
    end

    ore Square 
        spark sides : 4
    end

    ore Triangle
        spark sides : 3
    end

end

Which converts to:

{
    "Shapes": {
        "atomic": {
            "emit": "json"
        },
        "Square": {
            "sides": 4
        },
        "Triangle": {
            "sides": 3
        }
    }
}

Current state

Hova is still an early project.

Documentation is a work in progress, so the /examples folder is currently the main reference to understand the language.

The language itself is evolving, and feedback at this stage is extremely valuable.

What I’m looking for

I’d love feedback on:

  • the language design
  • syntax clarity
  • whether this kind of DSL could be useful in real game or tooling workflows

If you’re interested, here’s the repository:
👉 https://github.com/G4brielXavier/Hova

THANKS FOR READING.

DevegygiebyOL
DevegygiebyOL
Articles: 1190